@bigbinary/neeto-team-members-frontend 2.11.5 → 2.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.
package/dist/index.cjs.js CHANGED
@@ -4,23 +4,26 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
6
6
  var React = require('react');
7
- var i18next = require('i18next');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var reactI18next = require('react-i18next');
8
9
  var neetoCist = require('@bigbinary/neeto-cist');
9
- var constants = require('@bigbinary/neeto-commons-frontend/constants');
10
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
+ var neetoIcons = require('@bigbinary/neeto-icons');
11
11
  var Container = require('@bigbinary/neeto-molecules/Container');
12
12
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
13
- var ramda = require('ramda');
13
+ var formik = require('@bigbinary/neetoui/formik');
14
+ var i18next = require('i18next');
15
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
16
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
14
17
  var reactQuery = require('react-query');
15
- var devtools = require('react-query/devtools');
16
18
  var axios = require('axios');
17
- var neetoIcons = require('@bigbinary/neeto-icons');
18
- var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
19
- var neetoui = require('@bigbinary/neetoui');
20
- var reactI18next = require('react-i18next');
21
- var formik$1 = require('@bigbinary/neetoui/formik');
22
- var formik = require('formik');
23
19
  var yup = require('yup');
20
+ var withImmutableActions = require('@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions');
21
+ var zustand = require('zustand');
22
+ var shallow = require('zustand/shallow');
23
+ var ramda = require('ramda');
24
+ var devtools = require('react-query/devtools');
25
+ var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
26
+ var formik$1 = require('formik');
24
27
  var classnames = require('classnames');
25
28
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
26
29
  var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
@@ -52,12 +55,13 @@ function _interopNamespace(e) {
52
55
  }
53
56
 
54
57
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
55
- var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
56
58
  var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
57
59
  var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
60
+ var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
58
61
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
59
- var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
60
62
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
63
+ var withImmutableActions__default = /*#__PURE__*/_interopDefaultLegacy(withImmutableActions);
64
+ var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
61
65
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
62
66
  var MoreDropdown__default = /*#__PURE__*/_interopDefaultLegacy(MoreDropdown);
63
67
  var SubHeaderMolecule__default = /*#__PURE__*/_interopDefaultLegacy(SubHeaderMolecule);
@@ -166,6 +170,425 @@ function _slicedToArray(arr, i) {
166
170
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
167
171
  }
168
172
 
173
+ function _toPrimitive(input, hint) {
174
+ if (_typeof(input) !== "object" || input === null) return input;
175
+ var prim = input[Symbol.toPrimitive];
176
+ if (prim !== undefined) {
177
+ var res = prim.call(input, hint || "default");
178
+ if (_typeof(res) !== "object") return res;
179
+ throw new TypeError("@@toPrimitive must return a primitive value.");
180
+ }
181
+ return (hint === "string" ? String : Number)(input);
182
+ }
183
+
184
+ function _toPropertyKey(arg) {
185
+ var key = _toPrimitive(arg, "string");
186
+ return _typeof(key) === "symbol" ? key : String(key);
187
+ }
188
+
189
+ function _defineProperty(obj, key, value) {
190
+ key = _toPropertyKey(key);
191
+ if (key in obj) {
192
+ Object.defineProperty(obj, key, {
193
+ value: value,
194
+ enumerable: true,
195
+ configurable: true,
196
+ writable: true
197
+ });
198
+ } else {
199
+ obj[key] = value;
200
+ }
201
+ return obj;
202
+ }
203
+
204
+ var ADMIN_ROLE_NAME = "Admin";
205
+ var OWNER_ROLE_NAME = "Owner";
206
+ var ADMIN_ROLES = [ADMIN_ROLE_NAME, OWNER_ROLE_NAME];
207
+ var MANAGE_MEMBERS_PERMISSION = "members.manage_members";
208
+ var MANAGE_ROLES_PERMISSION = "settings.manage_roles";
209
+ var VIEW_MEMBERS_PERMISSION = "members.view_members";
210
+ var VIEW_ROLES_PERMISSION = "settings.view_roles";
211
+ var QUERY_KEYS = {
212
+ PERMISSIONS: "neeto-team-members-permissions",
213
+ ROLES: "neeto-team-members-roles",
214
+ GLOBAL_ROLES: "neeto-team-members-global-roles",
215
+ TEAMS: "neeto-team-members-teams",
216
+ TEAMS_DEPENDENCIES: "neeto-team-members-teams-dependencies",
217
+ COUNTRIES_LIST: "countries-list",
218
+ USER_PROFILE: "user-profile"
219
+ };
220
+ var BASE_URL = "team_members";
221
+ var BIGBINARY_BOT_EMAIL = "bot@bigbinary.com";
222
+ var DATE_FORMAT_OPTIONS = [{
223
+ label: i18next.t("neetoTeamMembers.profile.common.mmddyy"),
224
+ value: "%m/%d/%Y"
225
+ }, {
226
+ label: i18next.t("neetoTeamMembers.profile.common.ddmmyy"),
227
+ value: "%d/%m/%Y"
228
+ }];
229
+
230
+ var fetchCountries = function fetchCountries() {
231
+ return axios__default["default"].get("".concat(BASE_URL, "/profile/countries"));
232
+ };
233
+ var fetchUserDetails = function fetchUserDetails() {
234
+ return axios__default["default"].get("".concat(BASE_URL, "/profile/user"));
235
+ };
236
+ var updateUser = function updateUser(_ref) {
237
+ var id = _ref.id,
238
+ payload = _ref.payload;
239
+ return axios__default["default"].put("".concat(BASE_URL, "/profile/user/").concat(id), payload);
240
+ };
241
+ var profileApi = {
242
+ fetchCountries: fetchCountries,
243
+ fetchUserDetails: fetchUserDetails,
244
+ updateUser: updateUser
245
+ };
246
+
247
+ function ownKeys$h(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
248
+ function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
249
+ var useFetchProfile = function useFetchProfile(options) {
250
+ return reactQuery.useQuery([QUERY_KEYS.USER_PROFILE], profileApi.fetchUserDetails, _objectSpread$h({
251
+ staleTime: constants.DEFAULT_STALE_TIME,
252
+ refetchOnWindowFocus: true
253
+ }, options));
254
+ };
255
+ var useUpdateProfileMutation = function useUpdateProfileMutation(options) {
256
+ return reactUtils.useMutationWithInvalidation(profileApi.updateUser, _objectSpread$h(_objectSpread$h({
257
+ keysToInvalidate: [[QUERY_KEYS.USER_PROFILE]]
258
+ }, options), {}, {
259
+ onSuccess: function onSuccess() {
260
+ return window.location.reload();
261
+ }
262
+ }));
263
+ };
264
+
265
+ var PROFILE_VALIDATION_SCHEMA = yup__namespace.object().shape({
266
+ firstName: yup__namespace.string().trim().required(i18next.t("neetoTeamMembers.profile.form.isRequired.firstName")).matches(/^[a-zA-Z0-9 ,'-áéíóúÁÉÍÓÚ]+$/i, i18next.t("neetoTeamMembers.profile.form.invalidName")).matches(/^[^.]+$/i, i18next.t("neetoTeamMembers.profile.form.dotsNotAllowed")),
267
+ lastName: yup__namespace.string().trim().required(i18next.t("neetoTeamMembers.profile.form.isRequired.lastName")).matches(/^[a-zA-Z0-9 ,'-áéíóúÁÉÍÓÚ]+$/i, i18next.t("neetoTeamMembers.profile.form.invalidName")).matches(/^[^.]+$/i, i18next.t("neetoTeamMembers.profile.form.dotsNotAllowed")),
268
+ dateFormat: yup__namespace.string().required(i18next.t("neetoTeamMembers.profile.form.isRequired.dateFormat"))
269
+ });
270
+ var MY_PROFILE_PATH = "/auth/profile/edit";
271
+
272
+ function ownKeys$g(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
273
+ function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
274
+ var useFetchCountries = function useFetchCountries(options) {
275
+ return reactQuery.useQuery([QUERY_KEYS.COUNTRIES_LIST], profileApi.fetchCountries, _objectSpread$g({
276
+ staleTime: constants.DEFAULT_STALE_TIME
277
+ }, options));
278
+ };
279
+
280
+ var findTimeZoneAndCountry = function findTimeZoneAndCountry(timeZoneName, countries) {
281
+ return countries.reduce(function (acc, country) {
282
+ var timeZone = neetoCist.findBy({
283
+ name: timeZoneName
284
+ }, country.timeZones);
285
+ return timeZone ? {
286
+ country: country,
287
+ timeZone: timeZone
288
+ } : acc;
289
+ }, {
290
+ country: null,
291
+ timeZone: null
292
+ });
293
+ };
294
+
295
+ var useCountries = function useCountries(user) {
296
+ var _useState = React.useState([]),
297
+ _useState2 = _slicedToArray(_useState, 2),
298
+ timeZoneDropdownOptions = _useState2[0],
299
+ setTimeZoneDropdownOptions = _useState2[1];
300
+ var _useState3 = React.useState(null),
301
+ _useState4 = _slicedToArray(_useState3, 2),
302
+ selectedCountryOption = _useState4[0],
303
+ setSelectedCountryOption = _useState4[1];
304
+ var _useState5 = React.useState(null),
305
+ _useState6 = _slicedToArray(_useState5, 2),
306
+ selectedTimeZoneOption = _useState6[0],
307
+ setSelectedTimeZoneOption = _useState6[1];
308
+ var _useFetchCountries = useFetchCountries(),
309
+ _useFetchCountries$da = _useFetchCountries.data,
310
+ _useFetchCountries$da2 = _useFetchCountries$da === void 0 ? {} : _useFetchCountries$da,
311
+ _useFetchCountries$da3 = _useFetchCountries$da2.countries,
312
+ countries = _useFetchCountries$da3 === void 0 ? [] : _useFetchCountries$da3,
313
+ isLoading = _useFetchCountries.isLoading;
314
+ var formatTimeZoneOptions = function formatTimeZoneOptions(timeZones) {
315
+ return (timeZones === null || timeZones === void 0 ? void 0 : timeZones.map(formatTimeZoneOption)) || [];
316
+ };
317
+ var formatTimeZoneOption = function formatTimeZoneOption(timeZone) {
318
+ var currentTimeInUTC = new Date();
319
+ var options = {
320
+ timeZone: timeZone === null || timeZone === void 0 ? void 0 : timeZone.name,
321
+ hour12: true,
322
+ hour: "numeric",
323
+ minute: "numeric"
324
+ };
325
+ var currentTime = currentTimeInUTC.toLocaleString("en-US", options);
326
+ return {
327
+ label: i18next.t("neetoTeamMembers.profile.common.timeZoneOption", {
328
+ timeZone: timeZone === null || timeZone === void 0 ? void 0 : timeZone.name,
329
+ currentTime: currentTime
330
+ }),
331
+ value: timeZone === null || timeZone === void 0 ? void 0 : timeZone.id,
332
+ name: timeZone === null || timeZone === void 0 ? void 0 : timeZone.name
333
+ };
334
+ };
335
+ var formatCountryOption = function formatCountryOption(country) {
336
+ return {
337
+ label: country === null || country === void 0 ? void 0 : country.name,
338
+ value: country === null || country === void 0 ? void 0 : country.id
339
+ };
340
+ };
341
+ var countryDropdownOptions = React.useMemo(function () {
342
+ return countries.map(formatCountryOption);
343
+ }, [countries]);
344
+ var handleCountryChange = function handleCountryChange(countryOption) {
345
+ setSelectedCountryOption(countryOption);
346
+ var dependentFields = {};
347
+ var selectedCountry = neetoCist.findById(countryOption.value, countries);
348
+ var timeZoneOptions = formatTimeZoneOptions(selectedCountry.timeZones);
349
+ setTimeZoneDropdownOptions(timeZoneOptions);
350
+ if (neetoCist.isNotEmpty(timeZoneOptions)) {
351
+ setSelectedTimeZoneOption(timeZoneOptions[0]);
352
+ dependentFields.timeZone = timeZoneOptions[0].name;
353
+ }
354
+ dependentFields.dateFormat = selectedCountry.dateFormat;
355
+ return dependentFields;
356
+ };
357
+ React.useEffect(function () {
358
+ if (!neetoCist.isPresent(countries)) return;
359
+ if (user !== null && user !== void 0 && user.timeZone) {
360
+ var _findTimeZoneAndCount = findTimeZoneAndCountry(user.timeZone, countries),
361
+ country = _findTimeZoneAndCount.country,
362
+ timeZone = _findTimeZoneAndCount.timeZone;
363
+ setSelectedCountryOption(formatCountryOption(country));
364
+ setTimeZoneDropdownOptions(formatTimeZoneOptions(country.timeZones));
365
+ setSelectedTimeZoneOption(formatTimeZoneOption(timeZone));
366
+ }
367
+ }, [user, countries]);
368
+ return {
369
+ countryDropdownOptions: countryDropdownOptions,
370
+ timeZoneDropdownOptions: timeZoneDropdownOptions,
371
+ selectedCountryOption: selectedCountryOption,
372
+ selectedTimeZoneOption: selectedTimeZoneOption,
373
+ isFetchingCountriesList: isLoading,
374
+ handleCountryChange: handleCountryChange,
375
+ handleTimeZoneChange: setSelectedTimeZoneOption
376
+ };
377
+ };
378
+
379
+ function ownKeys$f(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
380
+ function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
381
+ var ChangeProfile = function ChangeProfile(_ref) {
382
+ var onClose = _ref.onClose;
383
+ var _useTranslation = reactI18next.useTranslation(),
384
+ t = _useTranslation.t;
385
+ var _useFetchProfile = useFetchProfile(),
386
+ _useFetchProfile$data = _useFetchProfile.data,
387
+ _useFetchProfile$data2 = _useFetchProfile$data === void 0 ? {} : _useFetchProfile$data,
388
+ _useFetchProfile$data3 = _useFetchProfile$data2.user,
389
+ user = _useFetchProfile$data3 === void 0 ? {} : _useFetchProfile$data3,
390
+ isFetchingUserDetails = _useFetchProfile.isFetching;
391
+ var _user$firstName = user.firstName,
392
+ firstName = _user$firstName === void 0 ? "" : _user$firstName,
393
+ _user$lastName = user.lastName,
394
+ lastName = _user$lastName === void 0 ? "" : _user$lastName,
395
+ _user$dateFormat = user.dateFormat,
396
+ dateFormat = _user$dateFormat === void 0 ? DATE_FORMAT_OPTIONS[0].value : _user$dateFormat,
397
+ _user$timeZone = user.timeZone,
398
+ timeZone = _user$timeZone === void 0 ? "" : _user$timeZone;
399
+ var _useCountries = useCountries(user),
400
+ countryDropdownOptions = _useCountries.countryDropdownOptions,
401
+ timeZoneDropdownOptions = _useCountries.timeZoneDropdownOptions,
402
+ selectedCountryOption = _useCountries.selectedCountryOption,
403
+ selectedTimeZoneOption = _useCountries.selectedTimeZoneOption,
404
+ isFetchingCountriesList = _useCountries.isFetchingCountriesList,
405
+ _useCountries$handleC = _useCountries.handleCountryChange,
406
+ handleCountryChange = _useCountries$handleC === void 0 ? neetoCist.noop : _useCountries$handleC,
407
+ _useCountries$handleT = _useCountries.handleTimeZoneChange,
408
+ handleTimeZoneChange = _useCountries$handleT === void 0 ? neetoCist.noop : _useCountries$handleT;
409
+ var _useUpdateProfileMuta = useUpdateProfileMutation(),
410
+ updateProfile = _useUpdateProfileMuta.mutate,
411
+ isUpdatingProfile = _useUpdateProfileMuta.isLoading;
412
+ var initialFormValues = {
413
+ firstName: firstName,
414
+ lastName: lastName,
415
+ timeZone: timeZone,
416
+ dateFormat: dateFormat
417
+ };
418
+ var handleSubmit = function handleSubmit(values) {
419
+ var payload = {
420
+ user: _objectSpread$f(_objectSpread$f({}, values), {}, {
421
+ timeZone: selectedTimeZoneOption.name
422
+ })
423
+ };
424
+ updateProfile({
425
+ id: user.id,
426
+ payload: payload
427
+ });
428
+ };
429
+ if (isUpdatingProfile || isFetchingCountriesList || isFetchingUserDetails) {
430
+ return /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
431
+ }
432
+ return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
433
+ formProps: {
434
+ "data-cy": "ntm-profile-form"
435
+ },
436
+ formikProps: {
437
+ initialValues: initialFormValues,
438
+ validationSchema: PROFILE_VALIDATION_SCHEMA,
439
+ onSubmit: handleSubmit
440
+ }
441
+ }, function (_ref2) {
442
+ var setFieldValue = _ref2.setFieldValue,
443
+ values = _ref2.values;
444
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
445
+ className: "w-full"
446
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
447
+ className: "w-full space-y-6 pb-6"
448
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
449
+ className: "grid grid-cols-2 gap-4"
450
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
451
+ autoFocus: true,
452
+ required: true,
453
+ "data-cy": "profile-first-name-text-field",
454
+ "data-test-id": "ntm-profile-first-name",
455
+ label: t("neetoTeamMembers.profile.inputs.label.firstName"),
456
+ name: "firstName",
457
+ type: "text",
458
+ placeholder: t("neetoTeamMembers.profile.inputs.placeholder.firstName")
459
+ }), /*#__PURE__*/React__default["default"].createElement(formik.Input, {
460
+ required: true,
461
+ "data-cy": "profile-last-name-text-field",
462
+ "data-test-id": "ntm-profile-last-name",
463
+ label: t("neetoTeamMembers.profile.inputs.label.lastName"),
464
+ name: "lastName",
465
+ type: "text",
466
+ placeholder: t("neetoTeamMembers.profile.inputs.placeholder.lastName")
467
+ })), /*#__PURE__*/React__default["default"].createElement(formik.Select, {
468
+ required: true,
469
+ "data-cy": "ntm-profile-country-select",
470
+ label: t("neetoTeamMembers.profile.inputs.label.selectCountry"),
471
+ name: "countryId",
472
+ options: countryDropdownOptions,
473
+ value: selectedCountryOption,
474
+ onChange: function onChange(option) {
475
+ var dependentFields = handleCountryChange(option);
476
+ setFieldValue("dateFormat", dependentFields === null || dependentFields === void 0 ? void 0 : dependentFields.dateFormat);
477
+ setFieldValue("timeZone", dependentFields === null || dependentFields === void 0 ? void 0 : dependentFields.timeZone);
478
+ }
479
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
480
+ className: "space-y-2"
481
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Select, {
482
+ required: true,
483
+ "data-cy": "ntm-profile-time-zone-select",
484
+ name: "timeZoneId",
485
+ options: timeZoneDropdownOptions,
486
+ value: selectedTimeZoneOption,
487
+ label: t("neetoTeamMembers.profile.inputs.label.selectTimeZone"),
488
+ onChange: function onChange(option) {
489
+ setFieldValue("timeZone", option === null || option === void 0 ? void 0 : option.name);
490
+ handleTimeZoneChange(option);
491
+ }
492
+ })), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
493
+ required: true
494
+ }, t("neetoTeamMembers.profile.inputs.label.dateFormat")), /*#__PURE__*/React__default["default"].createElement(neetoui.Radio, {
495
+ className: "mt-2 space-x-4"
496
+ }, DATE_FORMAT_OPTIONS.map(function (_ref3) {
497
+ var label = _ref3.label,
498
+ value = _ref3.value;
499
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Radio.Item, {
500
+ label: label,
501
+ value: value,
502
+ checked: values.dateFormat === value,
503
+ "data-cy": "ntm-profile-date-format-radio",
504
+ key: value,
505
+ name: "dateFormat",
506
+ onChange: function onChange(event) {
507
+ return setFieldValue("dateFormat", event.target.value);
508
+ }
509
+ });
510
+ })))), /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
511
+ className: "neeto-ui-bg-gray-100 neeto-ui-border-gray-300 mt-8 flex w-full items-center"
512
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
513
+ style: "body2"
514
+ }, t("neetoTeamMembers.profile.common.toUpdateProfile")), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
515
+ "data-cy": "ntm-visit-auth-button",
516
+ "data-test-id": "ntm-visit-auth-button",
517
+ href: MY_PROFILE_PATH,
518
+ icon: neetoIcons.ExternalLink,
519
+ label: t("neetoTeamMembers.profile.common.neetoAuth"),
520
+ style: "link",
521
+ target: "_blank"
522
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
523
+ className: "flex items-center space-x-2"
524
+ }, /*#__PURE__*/React__default["default"].createElement(formik.ActionBlock, {
525
+ cancelButtonProps: {
526
+ "data-test-id": "ntm-profile-cancel-button",
527
+ "data-cy": "ntm-profile-cancel-button",
528
+ disabled: false,
529
+ style: "text",
530
+ className: "ml-2",
531
+ onClick: onClose
532
+ },
533
+ submitButtonProps: {
534
+ "data-cy": "ntm-profile-submit-button",
535
+ "data-test-id": "ntm-profile-save-changes-button",
536
+ loading: isUpdatingProfile
537
+ }
538
+ })));
539
+ });
540
+ };
541
+
542
+ /* eslint-disable @bigbinary/neeto/ensure-zustand-stores-are-type-annotated */
543
+ var useProfileUpdateStore = zustand.create(withImmutableActions__default["default"](function (set) {
544
+ return {
545
+ isOpen: false,
546
+ setIsOpen: function setIsOpen(arg) {
547
+ if (typeof arg === "function") {
548
+ set(function (state) {
549
+ return {
550
+ isOpen: arg(state.isOpen)
551
+ };
552
+ });
553
+ } else {
554
+ set({
555
+ isOpen: arg
556
+ });
557
+ }
558
+ }
559
+ };
560
+ }));
561
+ var useProfileUpdatePaneState = function useProfileUpdatePaneState() {
562
+ return useProfileUpdateStore(function (_ref) {
563
+ var isOpen = _ref.isOpen,
564
+ setIsOpen = _ref.setIsOpen;
565
+ return [isOpen, setIsOpen];
566
+ }, shallow.shallow);
567
+ };
568
+
569
+ var Profile$1 = function Profile() {
570
+ var _useProfileUpdatePane = useProfileUpdatePaneState(),
571
+ _useProfileUpdatePane2 = _slicedToArray(_useProfileUpdatePane, 2),
572
+ isOpen = _useProfileUpdatePane2[0],
573
+ setIsOpen = _useProfileUpdatePane2[1];
574
+ var _useTranslation = reactI18next.useTranslation(),
575
+ t = _useTranslation.t;
576
+ var onClose = function onClose() {
577
+ return setIsOpen(false);
578
+ };
579
+ return /*#__PURE__*/React__default["default"].createElement("div", {
580
+ className: "w-full"
581
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
582
+ isOpen: isOpen,
583
+ onClose: onClose
584
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
585
+ style: "h2",
586
+ weight: "semibold"
587
+ }, t("neetoTeamMembers.profile.common.myProfile"))), /*#__PURE__*/React__default["default"].createElement(ChangeProfile, {
588
+ onClose: onClose
589
+ })));
590
+ };
591
+
169
592
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
170
593
 
171
594
  function getDefaultExportFromCjs (x) {
@@ -1572,54 +1995,6 @@ var withReactQuery = function withReactQuery(Component) {
1572
1995
  return QueryWrapper;
1573
1996
  };
1574
1997
 
1575
- function _toPrimitive(input, hint) {
1576
- if (_typeof(input) !== "object" || input === null) return input;
1577
- var prim = input[Symbol.toPrimitive];
1578
- if (prim !== undefined) {
1579
- var res = prim.call(input, hint || "default");
1580
- if (_typeof(res) !== "object") return res;
1581
- throw new TypeError("@@toPrimitive must return a primitive value.");
1582
- }
1583
- return (hint === "string" ? String : Number)(input);
1584
- }
1585
-
1586
- function _toPropertyKey(arg) {
1587
- var key = _toPrimitive(arg, "string");
1588
- return _typeof(key) === "symbol" ? key : String(key);
1589
- }
1590
-
1591
- function _defineProperty(obj, key, value) {
1592
- key = _toPropertyKey(key);
1593
- if (key in obj) {
1594
- Object.defineProperty(obj, key, {
1595
- value: value,
1596
- enumerable: true,
1597
- configurable: true,
1598
- writable: true
1599
- });
1600
- } else {
1601
- obj[key] = value;
1602
- }
1603
- return obj;
1604
- }
1605
-
1606
- var ADMIN_ROLE_NAME = "Admin";
1607
- var OWNER_ROLE_NAME = "Owner";
1608
- var ADMIN_ROLES = [ADMIN_ROLE_NAME, OWNER_ROLE_NAME];
1609
- var MANAGE_MEMBERS_PERMISSION = "members.manage_members";
1610
- var MANAGE_ROLES_PERMISSION = "settings.manage_roles";
1611
- var VIEW_MEMBERS_PERMISSION = "members.view_members";
1612
- var VIEW_ROLES_PERMISSION = "settings.view_roles";
1613
- var QUERY_KEYS = {
1614
- PERMISSIONS: "neeto-team-members-permissions",
1615
- ROLES: "neeto-team-members-roles",
1616
- GLOBAL_ROLES: "neeto-team-members-global-roles",
1617
- TEAMS: "neeto-team-members-teams",
1618
- TEAMS_DEPENDENCIES: "neeto-team-members-teams-dependencies"
1619
- };
1620
- var BASE_URL = "team_members";
1621
- var BIGBINARY_BOT_EMAIL = "bot@bigbinary.com";
1622
-
1623
1998
  var fetch$3 = function fetch() {
1624
1999
  return axios__default["default"].get("".concat(BASE_URL, "/permissions"));
1625
2000
  };
@@ -1893,7 +2268,7 @@ var getErrorFieldName = function getErrorFieldName(formikErrors) {
1893
2268
 
1894
2269
  var ScrollToErrorField = function ScrollToErrorField(_ref) {
1895
2270
  var formRef = _ref.formRef;
1896
- var _useFormikContext = formik.useFormikContext(),
2271
+ var _useFormikContext = formik$1.useFormikContext(),
1897
2272
  submitCount = _useFormikContext.submitCount,
1898
2273
  isValid = _useFormikContext.isValid,
1899
2274
  errors = _useFormikContext.errors;
@@ -2024,7 +2399,7 @@ var Permissions = function Permissions(_ref) {
2024
2399
  permissionRelationConfig = _ref$permissionRelati === void 0 ? {} : _ref$permissionRelati;
2025
2400
  var _useTranslation = reactI18next.useTranslation(),
2026
2401
  t = _useTranslation.t;
2027
- var _useFormikContext = formik.useFormikContext(),
2402
+ var _useFormikContext = formik$1.useFormikContext(),
2028
2403
  setFieldValue = _useFormikContext.setFieldValue,
2029
2404
  values = _useFormikContext.values;
2030
2405
  var _values$permissionIds = values.permissionIds,
@@ -2191,7 +2566,7 @@ var ManageRoles = function ManageRoles(_ref) {
2191
2566
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2192
2567
  "data-cy": "ntm-add-role-title",
2193
2568
  style: "h2"
2194
- }, isEdit ? t("neetoTeamMembers.labels.editRole") : t("neetoTeamMembers.labels.addNewRole"))), /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
2569
+ }, isEdit ? t("neetoTeamMembers.labels.editRole") : t("neetoTeamMembers.labels.addNewRole"))), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
2195
2570
  formikProps: formikProps,
2196
2571
  ref: formReference
2197
2572
  }, function (_ref2) {
@@ -2203,7 +2578,7 @@ var ManageRoles = function ManageRoles(_ref) {
2203
2578
  className: "ntm-roles-pane__body"
2204
2579
  }, /*#__PURE__*/React__default["default"].createElement("div", {
2205
2580
  className: "ntm-roles-pane__body-wrapper"
2206
- }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
2581
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
2207
2582
  required: true,
2208
2583
  unlimitedChars: true,
2209
2584
  "data-cy": "ntm-add-role-name-text-field",
@@ -2213,7 +2588,7 @@ var ManageRoles = function ManageRoles(_ref) {
2213
2588
  placeholder: t("neetoTeamMembers.placeholders.enterName"),
2214
2589
  readOnly: isReadOnly,
2215
2590
  ref: inputReference
2216
- }), /*#__PURE__*/React__default["default"].createElement(formik$1.Textarea, {
2591
+ }), /*#__PURE__*/React__default["default"].createElement(formik.Textarea, {
2217
2592
  unlimitedChars: true,
2218
2593
  "data-cy": "ntm-add-role-description-text-field",
2219
2594
  label: t("neetoTeamMembers.common.description"),
@@ -5930,7 +6305,7 @@ var AppList = function AppList(_ref) {
5930
6305
  _useState2 = _slicedToArray(_useState, 2),
5931
6306
  isAppListEnabled = _useState2[0],
5932
6307
  setIsAppListEnabled = _useState2[1];
5933
- var _useFormikContext = formik.useFormikContext(),
6308
+ var _useFormikContext = formik$1.useFormikContext(),
5934
6309
  _useFormikContext$val = _useFormikContext.values,
5935
6310
  _useFormikContext$val2 = _useFormikContext$val.emails,
5936
6311
  emails = _useFormikContext$val2 === void 0 ? [] : _useFormikContext$val2,
@@ -5992,7 +6367,7 @@ var AppList = function AppList(_ref) {
5992
6367
  content: t("neetoTeamMembers.tooltips.hostAppIsRequired"),
5993
6368
  disabled: !isCurrentApp,
5994
6369
  position: "left"
5995
- }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
6370
+ }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(formik.Switch, {
5996
6371
  checked: isAppRoleSelectionChecked,
5997
6372
  disabled: isCurrentApp,
5998
6373
  name: "appsRoles[".concat(index, "].isEnabled"),
@@ -6009,7 +6384,7 @@ var AppList = function AppList(_ref) {
6009
6384
  position: "top"
6010
6385
  }, /*#__PURE__*/React__default["default"].createElement("span", {
6011
6386
  className: "ntm-manage-members-app-roles__select-wrapper"
6012
- }, /*#__PURE__*/React__default["default"].createElement(formik$1.Select, {
6387
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Select, {
6013
6388
  isDisabled: isCurrentApp || !isEnabled,
6014
6389
  name: "appRoles[".concat(index, "].activeRole"),
6015
6390
  options: buildRoleOptions(globalRoles[appName]),
@@ -6116,7 +6491,7 @@ var Confirmation = function Confirmation() {
6116
6491
  var _globalProps$organiza;
6117
6492
  var _useTranslation = reactI18next.useTranslation(),
6118
6493
  t = _useTranslation.t;
6119
- var _useFormikContext = formik.useFormikContext(),
6494
+ var _useFormikContext = formik$1.useFormikContext(),
6120
6495
  _useFormikContext$val = _useFormikContext.values,
6121
6496
  emails = _useFormikContext$val.emails,
6122
6497
  role = _useFormikContext$val.role,
@@ -6256,7 +6631,7 @@ var MultipleEmailInput = reactUtils.withT(function (_ref) {
6256
6631
  selectedMember = _ref$selectedMember === void 0 ? null : _ref$selectedMember;
6257
6632
  return /*#__PURE__*/React__default["default"].createElement("div", {
6258
6633
  className: "neeto-ui-w-full"
6259
- }, selectedMember ? /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6634
+ }, selectedMember ? /*#__PURE__*/React__default["default"].createElement(formik.Input, {
6260
6635
  disabled: true,
6261
6636
  "data-cy": "ntm-manage-member-email-input",
6262
6637
  name: "emails",
@@ -6273,7 +6648,7 @@ var MultipleEmailInput = reactUtils.withT(function (_ref) {
6273
6648
  style: "link",
6274
6649
  target: "_blank"
6275
6650
  }))
6276
- }) : /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, {
6651
+ }) : /*#__PURE__*/React__default["default"].createElement(formik.MultiEmailInput, {
6277
6652
  required: true,
6278
6653
  counter: COUNTER_PROPS,
6279
6654
  "data-cy": "ntm-manage-member-email-input",
@@ -6292,12 +6667,12 @@ var NameInputs = function NameInputs(_ref) {
6292
6667
  t = _useTranslation.t;
6293
6668
  return /*#__PURE__*/React__default["default"].createElement("div", {
6294
6669
  className: "neeto-ui-flex neeto-ui-w-full neeto-ui-gap-4"
6295
- }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6670
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
6296
6671
  "data-cy": "ntm-edit-member-first-name-text-field",
6297
6672
  label: t("neetoTeamMembers.labels.firstName"),
6298
6673
  name: "firstName",
6299
6674
  ref: innerRef
6300
- }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6675
+ }), /*#__PURE__*/React__default["default"].createElement(formik.Input, {
6301
6676
  "data-cy": "ntm-edit-member-last-name-text-field",
6302
6677
  label: t("neetoTeamMembers.labels.lastName"),
6303
6678
  name: "lastName"
@@ -6339,7 +6714,7 @@ var RolesRadioGroup = function RolesRadioGroup(_ref) {
6339
6714
  var _useTranslation = reactI18next.useTranslation(),
6340
6715
  t = _useTranslation.t;
6341
6716
  var history = reactRouterDom.useHistory();
6342
- var _useFormikContext = formik.useFormikContext(),
6717
+ var _useFormikContext = formik$1.useFormikContext(),
6343
6718
  values = _useFormikContext.values,
6344
6719
  setFieldValue = _useFormikContext.setFieldValue;
6345
6720
  var setDefaultSelection = function setDefaultSelection(currentRole) {
@@ -6362,7 +6737,7 @@ var RolesRadioGroup = function RolesRadioGroup(_ref) {
6362
6737
  }
6363
6738
  });
6364
6739
  };
6365
- return /*#__PURE__*/React__default["default"].createElement(formik$1.Radio, {
6740
+ return /*#__PURE__*/React__default["default"].createElement(formik.Radio, {
6366
6741
  stacked: true,
6367
6742
  className: "ntm-members-radio-group",
6368
6743
  "data-cy": "ntm-manage-member-roles-group",
@@ -6391,7 +6766,7 @@ var RolesRadioGroup = function RolesRadioGroup(_ref) {
6391
6766
  className: "ntm-members-form-radio-item__wrapper",
6392
6767
  htmlFor: neetoCist.slugify(name),
6393
6768
  key: id
6394
- }, /*#__PURE__*/React__default["default"].createElement(formik$1.Radio.Item, {
6769
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Radio.Item, {
6395
6770
  className: "ntm-members-form-radio-item__label",
6396
6771
  "data-cy": "ntm-manage-member-roles-button",
6397
6772
  defaultChecked: ramda.identical(name, role),
@@ -6580,7 +6955,7 @@ var ManageMember = function ManageMember(_ref) {
6580
6955
  "data-cy": "ntm-manage-members-pane-header",
6581
6956
  style: "h2",
6582
6957
  weight: "semibold"
6583
- }, getTitle())), /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
6958
+ }, getTitle())), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
6584
6959
  ref: formReference,
6585
6960
  formikProps: _objectSpread$1(_objectSpread$1({}, MANAGE_MEMBERS_FORMIK_PROPS), {}, {
6586
6961
  initialValues: renderInitialValues(selectedMember, filteredRoles, globalRoles),
@@ -6859,10 +7234,16 @@ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r
6859
7234
  var css = ":root{--ntm-roles-table-default-scroll:15px;--ntm-roles-table-cell-height:48px;--ntm-roles-sidebar-width:396px;--ntm-roles-table-header-height:72px}.ntm-scrollbar__inner{height:200px;width:100%}.ntm-scrollbar__outer{height:150px;left:0;overflow:hidden;position:absolute;top:0;visibility:hidden;width:200px}.ntm-empty-state{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ntm-members{overflow:auto;width:100%}.ntm-members-wrapper{display:flex}.ntm-members-page-loader{height:100vh;width:100%}.ntm-members-table__wrapper{display:flex;gap:.75rem;justify-content:space-between;width:100%}.ntm-members-table__column{align-items:center;display:flex;gap:.5rem}.ntm-members-form__header{margin-bottom:.5rem}.ntm-members-form__body{padding-bottom:1rem;width:100%}.ntm-members-form__body>*+*{margin-top:1.5rem}.ntm-members-form__footer{display:flex;gap:.5rem}.ntm-manage-members__header{align-items:flex-start;display:flex}.ntm-manage-members__header>*+*{margin-left:.5rem}.ntm-manage-members__app-roles{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0;width:100%}.ntm-manage-members-app-roles__select-wrapper{max-width:250px;width:50%}.ntm-manage-members-effective-app-roles{align-items:center;display:flex;justify-content:space-between;padding:.25rem 0}.ntm-manage-members-effective-app-roles__role-name{max-width:300px;width:67%}.ntm-members-radio-group,.ntm-members-radio-group .neeto-ui-radio__container--stacked{width:100%}.ntm-members-radio-group__label{padding-right:4px}.ntm-members-radio-group__icon{cursor:pointer}.ntm-members-form-radio-item__wrapper{cursor:pointer;padding:8px 0!important;width:100%}.ntm-members-form-radio-item__wrapper:first-child{padding-top:0!important}.ntm-members-form-radio-item__label{margin-bottom:0!important}.ntm-members-form-radio-item__description,.ntm-product-roles-table th{color:rgb(var(--neeto-ui-gray-700))}.ntm-product-roles-table th{font-size:var(--neeto-ui-text-xs);font-weight:var(--neeto-ui-font-bold);text-transform:uppercase;vertical-align:middle}.ntm-product-roles-table td,.ntm-product-roles-table th{border:1px solid rgb(var(--neeto-ui-gray-300));padding:8px;text-align:left}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox[type=checkbox]{margin-top:4px}.ntm-roles-table__wrapper{height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 24px);padding:0 40px;width:100%}@media screen and (max-width:1024px){.ntm-roles-table__wrapper{--neeto-molecules-main-header-with-breadcrumbs-height:216px}}@media screen and (max-width:768px){.ntm-roles-table__wrapper{--neeto-molecules-main-header-with-breadcrumbs-height:186px;overflow:hidden;padding:0 20px}}.ntm-roles-table__container{display:flex;height:100%}@media screen and (max-width:768px){.ntm-roles-table__container{overflow-y:auto}}.ntm-roles-table__sidebar{border:thin solid rgb(var(--neeto-ui-gray-300));height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 28px);min-width:396px;min-width:var(--ntm-roles-sidebar-width);width:396px;width:var(--ntm-roles-sidebar-width)}.ntm-roles-table-sidebar__search{height:72px;height:var(--ntm-roles-table-header-height);padding:20px 24px}.ntm-roles-table-sidebar__list{height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 115px);height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - var(--ntm-roles-table-header-height) - var(--ntm-roles-table-default-scroll) - 28px);overflow-y:auto}.ntm-roles-table-sidebar__list div:last-child .ntm-roles-table-sidebar__list-item:last-child{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table-sidebar__list-item{align-items:center;display:flex;justify-content:space-between;min-height:48px;min-height:var(--ntm-roles-table-cell-height);padding:12px 24px}.ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted{background-color:rgb(var(--neeto-ui-primary-100));padding:12px 24px}.ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted){border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table-sidebar__list-item:last-child{border-bottom:none}.ntm-roles-table__columns{border-bottom:thin solid rgb(var(--neeto-ui-gray-300));border-top:thin solid rgb(var(--neeto-ui-gray-300));flex-grow:1;height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 28px);overflow:hidden}@media screen and (max-width:768px){.ntm-roles-table__columns{overflow:visible;overflow:initial}}.ntm-roles-table__cell{align-items:center;border-right:thin solid rgb(var(--neeto-ui-gray-300));display:flex;height:48px;height:var(--ntm-roles-table-cell-height);justify-content:center;min-height:48px;min-height:var(--ntm-roles-table-cell-height);min-width:200px;padding:12px 8px;width:100%}.ntm-roles-table-cell__checkbox-wrapper{height:1rem;margin:auto;position:absolute;width:1rem;z-index:10}.ntm-roles-table-cell__checkbox{z-index:10}.ntm-roles-table__header{align-items:center;display:flex;overflow-x:auto}.ntm-roles-table__header .ntm-roles-table__cell{height:72px;height:var(--ntm-roles-table-header-height)}@media screen and (max-width:768px){.ntm-roles-table__header{overflow:visible;overflow:initial}}.ntm-roles-table-header-cell__container{align-items:center;display:flex;justify-content:space-between;overflow:hidden;width:100%}.ntm-roles-table-header__dropdown{flex-shrink:0;margin:3px}.ntm-roles-table-header__role-name{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.ntm-roles-table__rows{height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - 115px);height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - var(--ntm-roles-table-header-height) - var(--ntm-roles-table-default-scroll) - 28px);overflow-y:auto;scrollbar-width:none;width:100%}.ntm-roles-table__rows::-webkit-scrollbar{height:0;width:0}.ntm-roles-table__rows::-webkit-scrollbar-thumb{background:rgb(var(--neeto-ui-gray-300));border-radius:50px}.ntm-roles-table__rows::-webkit-scrollbar-thumb:hover{border-radius:50px}.ntm-roles-table__rows::-webkit-scrollbar-track{background:rgb(var(--neeto-ui-gray-300))}.ntm-roles-table__rows div:last-child .ntm-roles-table__row:last-child .ntm-roles-table__cell{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table__row{align-items:center;display:flex}.ntm-roles-table__row .ntm-roles-table__cell{overflow:hidden;position:relative}.ntm-roles-table__row .ntm-roles-table__cell p{min-width:340px;opacity:0;width:340px}.ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell{background-color:rgb(var(--neeto-ui-primary-100))}.ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table__row:last-child .ntm-roles-table__cell{border-bottom:none}.ntm-roles-table-sidebar__drop-down-button{color:rgb(var(--neeto-ui-gray-600));cursor:pointer}.ntm-roles-modal__body>*+*{margin-top:1rem}.ntm-roles-modal__footer{display:flex;gap:.5rem}.ntm-roles-pane__body{margin-bottom:1.5rem;width:100%}.ntm-roles-pane__body-wrapper>*+*{margin-top:1rem}.ntm-roles-pane__body>*+*{margin-top:1.5rem}.ntm-roles-pane__footer{display:flex;gap:.5rem}.ntm-roles-permission__heading{color:rgb(var(--neeto-ui-gray-500));text-transform:uppercase}.ntm-roles-permission__card{background-color:rgb(var(--neeto-ui-white));display:flex;flex-direction:column;gap:.75rem;padding:.4rem 0;position:relative}.ntm-roles-permission__card:after{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:1px;left:-15px;position:absolute;top:14px;width:10px}.ntm-roles-permission__card--description{flex-grow:1}.ntm-roles-permission__card--checkbox{padding:0 .5rem}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container .neeto-ui-checkbox[type=checkbox]:disabled+.neeto-ui-label{cursor:not-allowed;opacity:.5}.ntm-roles-permission__sub-blocks{position:relative}.ntm-roles-permission__sub-blocks:before{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:calc(100% - 14px);left:8px;position:absolute;top:0;width:1px}.ntm-roles-permission__sub-blocks:empty{display:none}.ntm-roles-permission-category-card{border:1px solid rgb(var(--neeto-ui-gray-400));border-radius:var(--neeto-ui-rounded);padding:10px 20px}.ntm-roles-permission-category-card>.ntm-roles-permission__card:after{display:none}.ntm-roles-help-url-wrapper{align-items:center;display:flex;justify-content:center;padding:1rem 0;width:100%}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9hYnN0cmFjdHMvX3Jvb3Quc2NzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9hcHBsaWNhdGlvbi5zY3NzIiwiYXBwL2phdmFzY3JpcHQvc3JjL3N0eWxlc2hlZXRzL2Jhc2UvX2Jhc2Uuc2NzcyIsImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL19lbXB0eS1zdGF0ZS5zY3NzIiwiYXBwL2phdmFzY3JpcHQvc3JjL3N0eWxlc2hlZXRzL3BhZ2VzL19tZW1iZXJzLnNjc3MiLCJhcHAvamF2YXNjcmlwdC9zcmMvc3R5bGVzaGVldHMvcGFnZXMvX3JvbGVzLnNjc3MiLCJhcHAvamF2YXNjcmlwdC9zcmMvc3R5bGVzaGVldHMvYWJzdHJhY3RzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLHFDQUFBLENBQ0Esa0NBQUEsQ0FDQSwrQkFBQSxDQUNBLG9DQ0NGLENDSkUsc0JBRUUsWUFBQSxDQURBLFVEUUosQ0NKRSxzQkFLRSxZQUFBLENBRkEsTUFBQSxDQUdBLGVBQUEsQ0FMQSxpQkFBQSxDQUNBLEtBQUEsQ0FLQSxpQkFBQSxDQUhBLFdEU0osQ0VuQkEsaUJBSUUsa0JBQUEsQ0FEQSxZQUFBLENBREEsV0FBQSxDQUdBLHNCQUFBLENBSkEsVUYwQkYsQ0czQkEsYUFDRSxhQUFBLENBQ0EsVUg4QkYsQ0c1QkUscUJBQ0UsWUg4QkosQ0czQkUseUJBRUUsWUFBQSxDQURBLFVIOEJKLENHekJJLDRCQUVFLFlBQUEsQ0FFQSxVQUFBLENBREEsNkJBQUEsQ0FGQSxVSDhCTixDR3pCSSwyQkFFRSxrQkFBQSxDQURBLFlBQUEsQ0FFQSxTSDJCTixDR3RCSSwwQkFDRSxtQkh3Qk4sQ0dyQkksd0JBRUUsbUJBQUEsQ0FEQSxVSHdCTixDR3RCTSw0QkFDRSxpQkh3QlIsQ0dwQkksMEJBQ0UsWUFBQSxDQUNBLFNIc0JOLENHakJBLDRCQUVFLHNCQUFBLENBREEsWUhxQkYsQ0dsQkUsZ0NBQ0UsaUJIb0JKLENHaEJBLCtCQUVFLGtCQUFBLENBREEsWUFBQSxDQUVBLDZCQUFBLENBRUEsZUFBQSxDQURBLFVIb0JGLENHaEJBLDhDQUVFLGVBQUEsQ0FEQSxTSG9CRixDR2hCQSx3Q0FFRSxrQkFBQSxDQURBLFlBQUEsQ0FFQSw2QkFBQSxDQUNBLGdCSG1CRixDR2hCQSxtREFFRSxlQUFBLENBREEsU0hvQkYsQ0dkRSxzRkFDRSxVSG9CSixDR2pCRSxnQ0FDRSxpQkhtQkosQ0doQkUsK0JBQ0UsY0hrQkosQ0diRSxzQ0FFRSxjQUFBLENBQ0EsdUJBQUEsQ0FGQSxVSGtCSixDR2ZJLGtEQUNFLHVCSGlCTixDR2JFLG9DQUNFLHlCSGVKLENHTkUsc0VBTEUsbUNIc0JKLENHakJFLDRCQUVFLGlDQUFBLENBRUEscUNBQUEsQ0FDQSx3QkFBQSxDQUZBLHFCSGNKLENHVkUsd0RBRUUsOENBQUEsQ0FFQSxXQUFBLENBREEsZUhhSixDR1BFLG1HQUNFLHNCSFVKLENHUkUsdUdBQ0UsY0hVSixDSWxKQSwwQkFFRSxzRkFBQSxDQUdBLGNBQUEsQ0FKQSxVSnVKRixDSWpKRSxxQ0FQRiwwQkFRSSwyREpvSkYsQ0FDRixDSWxKRSxvQ0FYRiwwQkFZSSwyREFBQSxDQUdBLGVBQUEsQ0FEQSxjSnFKRixDQUNGLENJakpBLDRCQUNFLFlBQUEsQ0FDQSxXSm9KRixDSWxKRSxvQ0FKRiw0QkFLSSxlSnFKRixDQUNGLENJbEpBLDBCQU1FLCtDQUFBLENBSkEsc0ZBQUEsQ0FHQSxlQUFBLENBQUEsd0NBQUEsQ0FKQSxXQUFBLENBQUEsb0NKd0pGLENJaEpBLGlDQUVFLFdBQUEsQ0FBQSwyQ0FBQSxDQURBLGlCSm9KRixDSWhKQSwrQkFDRSx1RkFBQSxDQUFBLHFLQUFBLENBS0EsZUorSUYsQ0kxSVEsNkZBQ0Usc0RKNElWLENJcklBLG9DQUdFLGtCQUFBLENBRkEsWUFBQSxDQUNBLDZCQUFBLENBR0EsZUFBQSxDQUFBLDZDQUFBLENBREEsaUJKeUlGLENJdElFLG9GQUNFLGlEQUFBLENBQ0EsaUJKd0lKLENJcklFLDBGQUNFLHNESnVJSixDSXBJRSwrQ0FDRSxrQkpzSUosQ0lsSUEsMEJBT0Usc0RBQUEsQ0FEQSxtREFBQSxDQUxBLFdBQUEsQ0FDQSxzRkFBQSxDQUdBLGVKcUlGLENJaklFLG9DQVRGLDBCQVVJLGdCQUFBLENBQUEsZ0JKb0lGLENBQ0YsQ0lqSUEsdUJBU0Usa0JBQUEsQ0FFQSxxREFBQSxDQUpBLFlBQUEsQ0FKQSxXQUFBLENBQUEseUNBQUEsQ0FLQSxzQkFBQSxDQUpBLGVBQUEsQ0FBQSw2Q0FBQSxDQUZBLGVBQUEsQ0FHQSxnQkFBQSxDQUpBLFVKNElGLENJL0hBLHdDQUVFLFdBQUEsQ0FFQSxXQUFBLENBSEEsaUJBQUEsQ0FFQSxVQUFBLENBRUEsVUprSUYsQ0kvSEEsZ0NBQ0UsVUprSUYsQ0kvSEEseUJBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsZUprSUYsQ0loSUUsZ0RBQ0UsV0FBQSxDQUFBLDJDSmtJSixDSS9IRSxvQ0FURix5QkFVSSxnQkFBQSxDQUFBLGdCSmtJRixDQUNGLENJL0hBLHdDQUdFLGtCQUFBLENBRkEsWUFBQSxDQUNBLDZCQUFBLENBR0EsZUFBQSxDQURBLFVKbUlGLENJL0hBLGtDQUVFLGFBQUEsQ0FEQSxVSm1JRixDSS9IQSxtQ0FDRSxlQUFBLENBR0EsaUJBQUEsQ0FGQSxzQkFBQSxDQUNBLGtCQUFBLENBRUEsVUprSUYsQ0kvSEEsdUJBRUUsdUZBQUEsQ0FBQSxxS0FBQSxDQUtBLGVBQUEsQ0MvSkEsb0JBQUEsQ0R5SkEsVUpxSUYsQ0s1UkUsMENBRUUsUUQ2SkEsQ0M5SkEsT0wrUkosQ0szUkUsZ0RBQ0Usd0NEMEpBLENDekpBLGtCTDZSSixDSzFSRSxzREFDRSxrQkw0UkosQ0t6UkUsZ0RBQ0Usd0NMMlJKLENJbElVLDhGQUNFLHNESm9JWixDSTVIQSxzQkFFRSxrQkFBQSxDQURBLFlKZ0lGLENJN0hFLDZDQUNFLGVBQUEsQ0FDQSxpQkorSEosQ0k1SEksK0NBR0UsZUFBQSxDQUZBLFNBQUEsQ0FDQSxXSitITixDSXpISSwrRUFDRSxpREoySE4sQ0l0SEkscUZBQ0Usc0RKd0hOLENJbkhJLHdEQUNFLGtCSnFITixDSWhIQSwyQ0FDRSxtQ0FBQSxDQUNBLGNKbUhGLENJL0dFLDJCQUNFLGVKa0hKLENJL0dFLHlCQUNFLFlBQUEsQ0FDQSxTSmlISixDSTVHRSxzQkFFRSxvQkFBQSxDQURBLFVKZ0hKLENJN0dJLGtDQUNFLGVKK0dOLENJNUdJLDBCQUNFLGlCSjhHTixDSTFHRSx3QkFDRSxZQUFBLENBQ0EsU0o0R0osQ0l2R0UsK0JBQ0UsbUNBQUEsQ0FDQSx3QkowR0osQ0l2R0UsNEJBQ0UsMkNBQUEsQ0FHQSxZQUFBLENBQ0EscUJBQUEsQ0FDQSxVQUFBLENBQ0EsZUFBQSxDQUxBLGlCSjZHSixDSXRHSSxrQ0FDRSw4Q0FBQSxDQUNBLFVBQUEsQ0FDQSxVQUFBLENBQ0EsVUFBQSxDQUNBLGlCQUFBLENBQ0EsUUFBQSxDQUNBLFVKd0dOLENJckdJLHlDQUNFLFdKdUdOLENJcEdJLHNDQUNFLGVKc0dOLENJbkdJLHNGQUNFLHNCSnFHTixDSW5HTSxpSkFFRSxrQkFBQSxDQURBLFVKc0dSLENJaEdFLGtDQUNFLGlCSmtHSixDSWhHSSx5Q0FDRSw4Q0FBQSxDQUVBLFVBQUEsQ0FDQSx3QkFBQSxDQUNBLFFBQUEsQ0FDQSxpQkFBQSxDQUpBLEtBQUEsQ0FLQSxTSmtHTixDSS9GSSx3Q0FDRSxZSmlHTixDSTVGQSxvQ0FHRSw4Q0FBQSxDQURBLHFDQUFBLENBREEsaUJKaUdGLENJN0ZJLHNFQUNFLFlKK0ZOLENJMUZBLDRCQUdFLGtCQUFBLENBRkEsWUFBQSxDQUdBLHNCQUFBLENBQ0EsY0FBQSxDQUhBLFVKZ0dGIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAtLW50bS1yb2xlcy10YWJsZS1kZWZhdWx0LXNjcm9sbDogMTVweDtcbiAgLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQ6IDQ4cHg7XG4gIC0tbnRtLXJvbGVzLXNpZGViYXItd2lkdGg6IDM5NnB4O1xuICAtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0OiA3MnB4O1xufVxuIiwiOnJvb3Qge1xuICAtLW50bS1yb2xlcy10YWJsZS1kZWZhdWx0LXNjcm9sbDogMTVweDtcbiAgLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQ6IDQ4cHg7XG4gIC0tbnRtLXJvbGVzLXNpZGViYXItd2lkdGg6IDM5NnB4O1xuICAtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0OiA3MnB4O1xufVxuXG4ubnRtLXNjcm9sbGJhcl9faW5uZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyMDBweDtcbn1cbi5udG0tc2Nyb2xsYmFyX19vdXRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5udG0tZW1wdHktc3RhdGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm50bS1tZW1iZXJzIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xufVxuLm50bS1tZW1iZXJzLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLm50bS1tZW1iZXJzLXBhZ2UtbG9hZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG59XG4ubnRtLW1lbWJlcnMtdGFibGVfX3dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNzVyZW07XG59XG4ubnRtLW1lbWJlcnMtdGFibGVfX2NvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2hlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5udG0tbWVtYmVycy1mb3JtX19ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2JvZHkgPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cbi5udG0tbWVtYmVycy1mb3JtX19mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4ubnRtLW1hbmFnZS1tZW1iZXJzX19oZWFkZXIgPiAqICsgKiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2FwcC1yb2xlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWFwcC1yb2xlc19fc2VsZWN0LXdyYXBwZXIge1xuICB3aWR0aDogNTAlO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWVmZmVjdGl2ZS1hcHAtcm9sZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVycy1lZmZlY3RpdmUtYXBwLXJvbGVzX19yb2xlLW5hbWUge1xuICB3aWR0aDogNjclO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xufVxuXG4ubnRtLW1lbWJlcnMtcmFkaW8tZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi5udG0tbWVtYmVycy1yYWRpby1ncm91cCAubmVldG8tdWktcmFkaW9fX2NvbnRhaW5lci0tc3RhY2tlZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwX19sYWJlbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cbi5udG0tbWVtYmVycy1yYWRpby1ncm91cF9faWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbV9fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDhweCAwcHggIWltcG9ydGFudDtcbn1cbi5udG0tbWVtYmVycy1mb3JtLXJhZGlvLWl0ZW1fX3dyYXBwZXI6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG59XG4ubnRtLW1lbWJlcnMtZm9ybS1yYWRpby1pdGVtX19sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi5udG0tbWVtYmVycy1mb3JtLXJhZGlvLWl0ZW1fX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTcwMCkpO1xufVxuXG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUgdGgge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNzAwKSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmVldG8tdWktdGV4dC14cyk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1uZWV0by11aS1mb250LWJvbGQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLm50bS1wcm9kdWN0LXJvbGVzLXRhYmxlIHRkLFxuLm50bS1wcm9kdWN0LXJvbGVzLXRhYmxlIHRoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19fY2hlY2tib3gtYWxpZ24tc3RhcnQubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2NoZWNrYm94LWFsaWduLXN0YXJ0Lm5lZXRvLXVpLWNoZWNrYm94X193cmFwcGVyIC5uZWV0by11aS1jaGVja2JveFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuLm50bS1yb2xlcy10YWJsZV9fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uZWV0by1tb2xlY3VsZXMtbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpIC0gMjRweCk7XG4gIHBhZGRpbmc6IDAgNDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAubnRtLXJvbGVzLXRhYmxlX193cmFwcGVyIHtcbiAgICAtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodDogMjE2cHg7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5udG0tcm9sZXMtdGFibGVfX3dyYXBwZXIge1xuICAgIC0tbmVldG8tbW9sZWN1bGVzLW1haW4taGVhZGVyLXdpdGgtYnJlYWRjcnVtYnMtaGVpZ2h0OiAxODZweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubnRtLXJvbGVzLXRhYmxlX19jb250YWluZXIge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cbn1cblxuLm50bS1yb2xlcy10YWJsZV9fc2lkZWJhciB7XG4gIHdpZHRoOiB2YXIoLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aCk7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCkgLSAyOHB4KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aCk7XG4gIGJvcmRlcjogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19zZWFyY2gge1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIGhlaWdodDogdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3Qge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1uZWV0by1tb2xlY3VsZXMtbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpIC0gdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQpIC0gdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsKSAtIDI4cHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0IGRpdjpsYXN0LWNoaWxkIC5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICBtaW4taGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQpO1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW0ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktcHJpbWFyeS0xMDApKTtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW06bm90KC5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fbGlzdC1pdGVtLS1oaWdobGlnaHRlZCkge1xuICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX2NvbHVtbnMge1xuICBmbGV4LWdyb3c6IDE7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCkgLSAyOHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5udG0tcm9sZXMtdGFibGVfX2NvbHVtbnMge1xuICAgIG92ZXJmbG93OiB1bnNldDtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGhlaWdodDogdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWNlbGwtaGVpZ2h0KTtcbiAgbWluLWhlaWdodDogdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWNlbGwtaGVpZ2h0KTtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmlnaHQ6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtY2VsbF9fY2hlY2tib3gtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1jZWxsX19jaGVja2JveCB7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuLm50bS1yb2xlcy10YWJsZV9faGVhZGVyIC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICBoZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0KTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5udG0tcm9sZXMtdGFibGVfX2hlYWRlciB7XG4gICAgb3ZlcmZsb3c6IHVuc2V0O1xuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyLWNlbGxfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyX19kcm9wZG93biB7XG4gIG1hcmdpbjogM3B4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1oZWFkZXJfX3JvbGUtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCkgLSB2YXIoLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodCkgLSB2YXIoLS1udG0tcm9sZXMtdGFibGUtZGVmYXVsdC1zY3JvbGwpIC0gMjhweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cbi5udG0tcm9sZXMtdGFibGVfX3Jvd3M6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuLm50bS1yb2xlcy10YWJsZV9fcm93czo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuLm50bS1yb2xlcy10YWJsZV9fcm93czo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbn1cbi5udG0tcm9sZXMtdGFibGVfX3Jvd3MgZGl2Omxhc3QtY2hpbGQgLm50bS1yb2xlcy10YWJsZV9fcm93Omxhc3QtY2hpbGQgLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3cgLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5udG0tcm9sZXMtdGFibGVfX3JvdyAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHAge1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMzQwcHg7XG4gIG1pbi13aWR0aDogMzQwcHg7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3cubnRtLXJvbGVzLXRhYmxlX19yb3ctLWhpZ2hsaWdodGVkIC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktcHJpbWFyeS0xMDApKTtcbn1cbi5udG0tcm9sZXMtdGFibGVfX3Jvdzpub3QoLm50bS1yb2xlcy10YWJsZV9fcm93LS1oaWdobGlnaHRlZCkgLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3c6bGFzdC1jaGlsZCAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19kcm9wLWRvd24tYnV0dG9uIHtcbiAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTYwMCkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5udG0tcm9sZXMtbW9kYWxfX2JvZHkgPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG4ubnRtLXJvbGVzLW1vZGFsX19mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wYW5lX19ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5udG0tcm9sZXMtcGFuZV9fYm9keS13cmFwcGVyID4gKiArICoge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuLm50bS1yb2xlcy1wYW5lX19ib2R5ID4gKiArICoge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG4ubnRtLXJvbGVzLXBhbmVfX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2hlYWRpbmcge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNTAwKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktd2hpdGUpKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDFweDtcbiAgbGVmdDogLTE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNHB4O1xuICB3aWR0aDogMTBweDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZC0tZGVzY3JpcHRpb24ge1xuICBmbGV4LWdyb3c6IDE7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQtLWNoZWNrYm94IHtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQgLm5lZXRvLXVpLWNoZWNrYm94X193cmFwcGVyIC5uZWV0by11aS1jaGVja2JveF9fY29udGFpbmVyIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQgLm5lZXRvLXVpLWNoZWNrYm94X193cmFwcGVyIC5uZWV0by11aS1jaGVja2JveF9fY29udGFpbmVyIC5uZWV0by11aS1jaGVja2JveFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCArIC5uZWV0by11aS1sYWJlbCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2NrcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2Nrczo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIHRvcDogMDtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNHB4KTtcbiAgbGVmdDogOHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX3N1Yi1ibG9ja3M6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubnRtLXJvbGVzLXBlcm1pc3Npb24tY2F0ZWdvcnktY2FyZCB7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tbmVldG8tdWktcm91bmRlZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTQwMCkpO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQgPiAubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQ6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm50bS1yb2xlcy1oZWxwLXVybC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59IiwiLm50bS1zY3JvbGxiYXIge1xuICAmX19pbm5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgfVxuXG4gICZfX291dGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4iLCIubnRtLWVtcHR5LXN0YXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIubnRtLW1lbWJlcnMge1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJi1wYWdlLWxvYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgfVxuXG4gICYtdGFibGUge1xuICAgICZfX3dyYXBwZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgIH1cbiAgICAmX19jb2x1bW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmLWZvcm0ge1xuICAgICZfX2hlYWRlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgJiA+ICogKyAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiAwLjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgfVxufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzX19hcHAtcm9sZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVycy1hcHAtcm9sZXNfX3NlbGVjdC13cmFwcGVyIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVycy1lZmZlY3RpdmUtYXBwLXJvbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnMtZWZmZWN0aXZlLWFwcC1yb2xlc19fcm9sZS1uYW1lIHtcbiAgd2lkdGg6IDY3JTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbn1cblxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC5uZWV0by11aS1yYWRpb19fY29udGFpbmVyLS1zdGFja2VkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX2xhYmVsIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIH1cblxuICAmX19pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbSB7XG4gICZfX3dyYXBwZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiA4cHggMHB4ICFpbXBvcnRhbnQ7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNzAwKSk7XG4gIH1cbn1cblxuLm50bS1wcm9kdWN0LXJvbGVzLXRhYmxlIHtcbiAgdGgge1xuICAgIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbiAgICBmb250LXNpemU6IHZhcigtLW5lZXRvLXVpLXRleHQteHMpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLW5lZXRvLXVpLWZvbnQtYm9sZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuICB0ZCxcbiAgdGgge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogOHB4O1xuICB9XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2NoZWNrYm94LWFsaWduLXN0YXJ0Lm5lZXRvLXVpLWNoZWNrYm94X193cmFwcGVyIHtcbiAgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uZWV0by11aS1jaGVja2JveFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxufVxuIiwiLm50bS1yb2xlcy10YWJsZV9fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoXG4gICAgMTAwdmggLSB2YXIoLS1uZWV0by1tb2xlY3VsZXMtbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpIC0gMjRweFxuICApO1xuICBwYWRkaW5nOiAwIDQwcHg7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLS1uZWV0by1tb2xlY3VsZXMtbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQ6IDIxNnB4O1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodDogMTg2cHg7XG5cbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX3NpZGViYXIge1xuICB3aWR0aDogdmFyKC0tbnRtLXJvbGVzLXNpZGViYXItd2lkdGgpO1xuICBoZWlnaHQ6IGNhbGMoXG4gICAgMTAwdmggLSB2YXIoLS1uZWV0by1tb2xlY3VsZXMtbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpIC0gMjhweFxuICApO1xuICBtaW4td2lkdGg6IHZhcigtLW50bS1yb2xlcy1zaWRlYmFyLXdpZHRoKTtcbiAgYm9yZGVyOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX3NlYXJjaCB7XG4gIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgaGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodCk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fbGlzdCB7XG4gIGhlaWdodDogY2FsYyhcbiAgICAxMDB2aCAtIHZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCkgLVxuICAgICAgdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQpIC1cbiAgICAgIHZhcigtLW50bS1yb2xlcy10YWJsZS1kZWZhdWx0LXNjcm9sbCkgLSAyOHB4XG4gICk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgZGl2IHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW0ge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHggMjRweDtcbiAgbWluLWhlaWdodDogdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWNlbGwtaGVpZ2h0KTtcblxuICAmLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW0tLWhpZ2hsaWdodGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktcHJpbWFyeS0xMDApKTtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gIH1cblxuICAmOm5vdCgubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQpIHtcbiAgICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX2NvbHVtbnMge1xuICBmbGV4LWdyb3c6IDE7XG4gIGhlaWdodDogY2FsYyhcbiAgICAxMDB2aCAtIHZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCkgLSAyOHB4XG4gICk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBvdmVyZmxvdzogdW5zZXQ7XG4gIH1cbn1cblxuLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1jZWxsLWhlaWdodCk7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1jZWxsLWhlaWdodCk7XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGJvcmRlci1yaWdodDogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1jZWxsX19jaGVja2JveC13cmFwcGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDFyZW07XG4gIHdpZHRoOiAxcmVtO1xuICBtYXJnaW46IGF1dG87XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLWNlbGxfX2NoZWNrYm94IHtcbiAgei1pbmRleDogMTA7XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gICAgaGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodCk7XG4gIH1cblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIG92ZXJmbG93OiB1bnNldDtcbiAgfVxufVxuXG4ubnRtLXJvbGVzLXRhYmxlLWhlYWRlci1jZWxsX19jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLWhlYWRlcl9fZHJvcGRvd24ge1xuICBtYXJnaW46IDNweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyX19yb2xlLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm50bS1yb2xlcy10YWJsZV9fcm93cyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoXG4gICAgMTAwdmggLSAje3ZhcigtLW5lZXRvLW1vbGVjdWxlcy1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCl9IC0gdmFyKFxuICAgICAgICAtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0XG4gICAgICApIC0gdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsKSAtIDI4cHhcbiAgKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgQGluY2x1ZGUgc2Nyb2xsYmFycyhcbiAgICAwcHgsXG4gICAgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSksXG4gICAgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSlcbiAgKTtcblxuICBkaXYge1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAubnRtLXJvbGVzLXRhYmxlX19yb3cge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy10YWJsZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIEhpZGRlbiAtIEp1c3QgZm9yIGhlaWdodCByZWZlcmVuY2VcbiAgICBwIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB3aWR0aDogMzQwcHg7XG4gICAgICBtaW4td2lkdGg6IDM0MHB4O1xuICAgIH1cbiAgfVxuXG4gICYubnRtLXJvbGVzLXRhYmxlX19yb3ctLWhpZ2hsaWdodGVkIHtcbiAgICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1wcmltYXJ5LTEwMCkpO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5udG0tcm9sZXMtdGFibGVfX3Jvdy0taGlnaGxpZ2h0ZWQpIHtcbiAgICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgfVxuICB9XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fZHJvcC1kb3duLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS02MDApKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubnRtLXJvbGVzLW1vZGFsIHtcbiAgJl9fYm9keSA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMC41cmVtO1xuICB9XG59XG5cbi5udG0tcm9sZXMtcGFuZSB7XG4gICZfX2JvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICYtd3JhcHBlciA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgJiA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uIHtcbiAgJl9faGVhZGluZyB7XG4gICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTUwMCkpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktd2hpdGUpKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBsZWZ0OiAtMTVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTRweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgICYtLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmLS1jaGVja2JveCB7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIC5uZWV0by11aS1jaGVja2JveFt0eXBlPVwiY2hlY2tib3hcIl06ZGlzYWJsZWQgKyAubmVldG8tdWktbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fc3ViLWJsb2NrcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICAgICAgdG9wOiAwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTRweCk7XG4gICAgICBsZWZ0OiA4cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS00MDApKTtcbiAgJiA+IC5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1oZWxwLXVybC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG4iLCJAbWl4aW4gc2Nyb2xsYmFycyhcbiAgJHNpemUsXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiAkbmVldG8tdWktZ3JheS0zMDAsXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFxuKSB7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG59XG4iXX0= */";
6860
7235
  n(css,{});
6861
7236
 
7237
+ var Profile = {
7238
+ Pane: Profile$1,
7239
+ usePaneState: useProfileUpdatePaneState
7240
+ };
7241
+
6862
7242
  exports.MANAGE_MEMBERS_PERMISSION = MANAGE_MEMBERS_PERMISSION;
6863
7243
  exports.MANAGE_ROLES_PERMISSION = MANAGE_ROLES_PERMISSION;
6864
7244
  exports.ManageMember = ManageMember;
6865
7245
  exports.Permissions = Permissions;
7246
+ exports.Profile = Profile;
6866
7247
  exports.Roles = index$1;
6867
7248
  exports.RolesRadioGroup = RolesRadioGroup;
6868
7249
  exports.TeamMembers = index;