@projectcor/people-microfront 1.0.2-8 → 1.0.2

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 (113) hide show
  1. package/lib/App.js +8 -45
  2. package/lib/App.stories.js +27 -2
  3. package/lib/components/DeleteTeamModal/DeleteTeamModal.js +8 -5
  4. package/lib/components/DeleteTeamModal/DeleteTeamModal.styles.js +11 -10
  5. package/lib/components/DeletedUserIcon/DeletedUserIcon.js +5 -3
  6. package/lib/components/DeletedUserIcon/DeletedUserIcon.styles.js +2 -2
  7. package/lib/components/DisabledUserIcon/DisabledUserIcon.js +3 -2
  8. package/lib/components/DisabledUserIcon/DisabledUserIcon.styles.js +2 -2
  9. package/lib/components/EmptyStateTeams/EmptyStateTeams.js +4 -3
  10. package/lib/components/EmptyStateTeams/EmptyStateTeams.styles.js +3 -2
  11. package/lib/components/EmptyUser/EmptyUser.js +9 -48
  12. package/lib/components/EmptyUser/EmptyUser.styles.js +18 -0
  13. package/lib/components/ErrorComponent/ErrorComponent.spec.js +3 -2
  14. package/lib/components/ErrorComponent/ErrorComponent.styles.js +5 -5
  15. package/lib/components/ErrorTeams/ErrorTeams.styles.js +3 -2
  16. package/lib/components/Filters/FilterChip/FilterChip.js +52 -32
  17. package/lib/components/Filters/FilterChip/FilterChip.styles.js +6 -0
  18. package/lib/components/Filters/LabelFilter/LabelFilter.js +22 -20
  19. package/lib/components/Filters/LabelFilter/LabelFilter.styles.js +4 -4
  20. package/lib/components/Filters/SearchComponent/SearchComponent.js +3 -5
  21. package/lib/components/HeaderTeams/HeaderTeams.js +4 -3
  22. package/lib/components/HeaderTeams/HeaderTeams.style.js +3 -2
  23. package/lib/components/Icons/UserIconLock.js +3 -2
  24. package/lib/components/Icons/UserIconWithCross.js +3 -2
  25. package/lib/components/Illustration/EmptyFilter.js +67 -0
  26. package/lib/components/Layout/Layout.js +23 -2
  27. package/lib/components/Layout/Layout.styles.js +19 -3
  28. package/lib/components/Layout/index.js +2 -3
  29. package/lib/components/MenuOptions/MenuOptions.js +127 -40
  30. package/lib/components/MenuOptions/MenuOptions.styles.js +8 -4
  31. package/lib/components/Modal/ModalLayout.js +4 -4
  32. package/lib/components/Modal/ModalLayout.style.js +9 -9
  33. package/lib/components/ModalBlockedUser/ModalBlockedUser.js +47 -0
  34. package/lib/components/ModalBlockedUser/ModalBlockedUser.styles.js +14 -0
  35. package/lib/components/ModalBlockedUser/index.js +2 -0
  36. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.js +14 -52
  37. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.styles.js +37 -0
  38. package/lib/components/ModalEditUserPosition/UserEditPositionRow.js +55 -168
  39. package/lib/components/ModalEditUserPosition/UserEditPositionRow.styles.js +56 -1
  40. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.js +109 -25
  41. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.styles.js +9 -4
  42. package/lib/components/ModalOptionsWithSearch/SearchInput.js +5 -2
  43. package/lib/components/Pagination/Pagination.styles.js +5 -1
  44. package/lib/components/Pagination/PaginationView.js +83 -0
  45. package/lib/components/Search/InputSearch.js +3 -2
  46. package/lib/components/Search/Search.js +18 -15
  47. package/lib/components/Table/Header/HeaderTable.js +29 -41
  48. package/lib/components/Table/Header/HeaderTable.styles.js +15 -0
  49. package/lib/components/Table/Row/Row.js +59 -27
  50. package/lib/components/Table/Row/Row.styles.js +40 -18
  51. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.js +8 -5
  52. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.styles.js +7 -6
  53. package/lib/components/Table/TeamRow/AddUsers/AddUsers.js +92 -61
  54. package/lib/components/Table/TeamRow/AddUsers/AddUsers.styles.js +8 -3
  55. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.js +8 -5
  56. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.styles.js +7 -6
  57. package/lib/components/Table/TeamRow/TeamRow.js +40 -13
  58. package/lib/components/Table/TeamRow/TeamRow.styles.js +7 -0
  59. package/lib/components/Table/TeamRow/UsersRow/UsersRow.js +10 -6
  60. package/lib/components/Table/TeamRow/UsersRow/UsersRow.styles.js +5 -4
  61. package/lib/components/TeamDetailsModal/MembersSelect.js +38 -35
  62. package/lib/components/TeamDetailsModal/TeamDetailsModal.js +21 -17
  63. package/lib/components/TeamDetailsModal/TeamDetailsModal.styles.js +30 -21
  64. package/lib/components/UserRow/UserRow.js +17 -70
  65. package/lib/components/UserRow/UserRow.styles.js +33 -4
  66. package/lib/container/Body/BodyContainer.js +52 -33
  67. package/lib/container/Body/BodyContainerViewTeams.js +37 -18
  68. package/lib/container/Filters/FiltersContainer.js +99 -34
  69. package/lib/container/Filters/FiltersTeamsContainer.js +1 -5
  70. package/lib/container/MainView/MainTeamsView.js +24 -22
  71. package/lib/container/MainView/MainUsersView.js +46 -80
  72. package/lib/container/MainView/MainUsersView.styles.js +32 -0
  73. package/lib/container/MainView/MainView.js +2 -4
  74. package/lib/container/Pagination/PaginationContainer.js +10 -123
  75. package/lib/container/Pagination/PaginationTeamsContainer.js +32 -0
  76. package/lib/container/RouterComponent/RouterComponent.js +24 -45
  77. package/lib/container/RouterComponent/RouterComponent.stories.js +1 -3
  78. package/lib/container/RouterComponent/RouterComponent.styles.js +26 -0
  79. package/lib/container/TableContainer/TableContainer.js +35 -11
  80. package/lib/context/TeamsContext.js +8 -2
  81. package/lib/context/UsersContext.js +45 -22
  82. package/lib/hooks/useAbortController.js +15 -11
  83. package/lib/hooks/useCreateTeams.js +8 -4
  84. package/lib/hooks/useDebouncedCallback.js +27 -0
  85. package/lib/hooks/useDeleteTeam.js +5 -1
  86. package/lib/hooks/useGetTeams.js +45 -19
  87. package/lib/hooks/useGetUserPositionFilter.js +5 -2
  88. package/lib/hooks/useGetUsers.js +38 -17
  89. package/lib/hooks/useGetUsersForFilter.js +1 -2
  90. package/lib/hooks/useGraphAdapter.js +19 -8
  91. package/lib/hooks/useLoadMoreGuard.js +16 -0
  92. package/lib/hooks/useResize.js +9 -4
  93. package/lib/lang/i18nextForWeb.js +2 -2
  94. package/lib/lang/translation/br.json +63 -13
  95. package/lib/lang/translation/en.json +64 -13
  96. package/lib/lang/translation/es.json +64 -13
  97. package/lib/lang/translation/fr.json +66 -15
  98. package/lib/query/getTeams.js +2 -2
  99. package/lib/query/getUsers.js +2 -2
  100. package/lib/types/global.d.js +1 -1
  101. package/lib/types/userType.d.js +1 -1
  102. package/lib/utils/formatNumber.js +55 -0
  103. package/lib/utils/tabUrl.js +20 -0
  104. package/package.json +2 -2
  105. package/readme.md +223 -52
  106. package/lib/components/ModalBloquedUser/ModalBloquedUser.js +0 -70
  107. package/lib/components/ModalBloquedUser/index.js +0 -2
  108. package/lib/components/Pagination/Pagination.js +0 -78
  109. package/lib/components/ShowMore/ShowMore.js +0 -12
  110. package/lib/components/ShowMore/ShowMore.style.js +0 -10
  111. package/lib/components/ShowMore/index.js +0 -2
  112. package/lib/components/Table/Content/ContentTable.js +0 -7
  113. package/lib/components/Table/Content/index.js +0 -2
@@ -1,11 +1,13 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import { useState, useEffect, useRef, useCallback } from 'react';
4
+ import { useTranslation } from 'react-i18next';
5
+ import pallete from '@projectcor/theme/lib/base/colors';
4
6
  import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
5
7
  import { CUSelect } from '@projectcor/selector/lib/components/CUSelect';
6
8
  import { SearchComponent } from '../Filters/SearchComponent/SearchComponent';
7
9
  import { useGetUsers } from '../../hooks/useGetUsers';
8
- import { useDebounce } from '../../hooks/useDebounce';
10
+ import { useDebouncedCallback } from '../../hooks/useDebouncedCallback';
9
11
  import { SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperSelectIcon, SCMemberItemContent, SCMemberCheckbox, SCMemberSearchWrapper } from './TeamDetailsModal.styles';
10
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
13
  export var MembersSelect = function MembersSelect(_ref) {
@@ -15,6 +17,8 @@ export var MembersSelect = function MembersSelect(_ref) {
15
17
  _useState2 = _slicedToArray(_useState, 2),
16
18
  showSelectMembers = _useState2[0],
17
19
  setShowSelectMembers = _useState2[1];
20
+ var _useTranslation = useTranslation('teams'),
21
+ t = _useTranslation.t;
18
22
  var _useGetUsers = useGetUsers(),
19
23
  handleGetUsers = _useGetUsers.handleGetUsers,
20
24
  users = _useGetUsers.users,
@@ -25,13 +29,13 @@ export var MembersSelect = function MembersSelect(_ref) {
25
29
  _useState4 = _slicedToArray(_useState3, 2),
26
30
  searchValue = _useState4[0],
27
31
  setSearchValue = _useState4[1];
28
- var debouncedSearchValue = useDebounce(searchValue, 300);
29
32
  var _useState5 = useState([]),
30
33
  _useState6 = _slicedToArray(_useState5, 2),
31
34
  accumulatedUsers = _useState6[0],
32
35
  setAccumulatedUsers = _useState6[1];
33
36
  var scrollContainerRef = useRef(null);
34
37
  var isLoadingMoreRef = useRef(false);
38
+ var currentSearchRef = useRef('');
35
39
  var handleSelectMember = function handleSelectMember(member) {
36
40
  var alredySelected = value.some(function (m) {
37
41
  return m.id === member.id;
@@ -47,32 +51,36 @@ export var MembersSelect = function MembersSelect(_ref) {
47
51
  }]));
48
52
  }
49
53
  };
50
- var handleSearch = function handleSearch(e) {
54
+ var fetchUsers = useCallback(function (searchInput) {
55
+ currentSearchRef.current = searchInput;
56
+ setAccumulatedUsers([]);
57
+ isLoadingMoreRef.current = false;
58
+ handleGetUsers({
59
+ page: 1,
60
+ searchInput: searchInput
61
+ });
62
+ }, [handleGetUsers]);
63
+ var debouncedFetchUsers = useDebouncedCallback(fetchUsers, 300);
64
+ var handleSearch = useCallback(function (e) {
51
65
  setSearchValue(e.target.value);
52
- };
53
-
54
- // Resetear usuarios acumulados cuando cambia el search o se abre el selector
66
+ debouncedFetchUsers(e.target.value);
67
+ }, [debouncedFetchUsers]);
55
68
  useEffect(function () {
56
- if (showSelectMembers) {
69
+ if (!showSelectMembers) {
70
+ setSearchValue('');
57
71
  setAccumulatedUsers([]);
58
- isLoadingMoreRef.current = false;
59
- handleGetUsers({
60
- page: 1,
61
- searchInput: debouncedSearchValue
62
- });
63
72
  }
64
- }, [debouncedSearchValue, showSelectMembers, handleGetUsers]);
65
-
66
- // Acumular usuarios cuando se reciben nuevos datos
73
+ }, [showSelectMembers]);
74
+ useEffect(function () {
75
+ if (!showSelectMembers) return;
76
+ fetchUsers('');
77
+ }, [showSelectMembers, fetchUsers]);
67
78
  useEffect(function () {
68
79
  if (users.length > 0 && showSelectMembers) {
69
80
  if (currentPage === 1) {
70
- // Si es la primera página, reemplazar
71
81
  setAccumulatedUsers(users);
72
82
  } else {
73
- // Si es una página posterior, agregar a los existentes
74
83
  setAccumulatedUsers(function (prev) {
75
- // Evitar duplicados
76
84
  var existingIds = new Set(prev.map(function (u) {
77
85
  return u.id;
78
86
  }));
@@ -91,16 +99,15 @@ export var MembersSelect = function MembersSelect(_ref) {
91
99
  var scrollTop = container.scrollTop,
92
100
  scrollHeight = container.scrollHeight,
93
101
  clientHeight = container.clientHeight;
94
- var isNearBottom = scrollTop + clientHeight >= scrollHeight - 10; // 10px de margen
95
-
102
+ var isNearBottom = scrollTop + clientHeight >= scrollHeight - 10;
96
103
  if (isNearBottom && currentPage < totalPages) {
97
104
  isLoadingMoreRef.current = true;
98
105
  handleGetUsers({
99
106
  page: currentPage + 1,
100
- searchInput: debouncedSearchValue
107
+ searchInput: currentSearchRef.current
101
108
  });
102
109
  }
103
- }, [currentPage, totalPages, loading, handleGetUsers, debouncedSearchValue]);
110
+ }, [currentPage, totalPages, loading, handleGetUsers]);
104
111
  useEffect(function () {
105
112
  var container = scrollContainerRef.current;
106
113
  if (!container || !showSelectMembers) return undefined;
@@ -110,21 +117,19 @@ export var MembersSelect = function MembersSelect(_ref) {
110
117
  };
111
118
  }, [handleScroll, showSelectMembers]);
112
119
  var handleClickActionSelect = function handleClickActionSelect() {
113
- setShowSelectMembers(!showSelectMembers);
114
- if (!showSelectMembers) {
115
- setSearchValue('');
116
- setAccumulatedUsers([]);
117
- }
120
+ setShowSelectMembers(function (prev) {
121
+ return !prev;
122
+ });
118
123
  };
119
124
  return /*#__PURE__*/_jsxs(CUSelect, {
120
- title: "Agregar miembros *",
121
- placeholder: "Seleccionar miembros",
125
+ title: t('modal.addMembersTitle'),
126
+ placeholder: t('modal.addMembersPlaceholder'),
122
127
  endIcon: /*#__PURE__*/_jsx(SCWrapperSelectIcon, {
123
128
  isOpen: showSelectMembers,
124
129
  children: /*#__PURE__*/_jsx(ChevronDown, {
125
130
  width: "16px",
126
131
  height: "16px",
127
- color: "#20201F"
132
+ color: pallete.colors.dark
128
133
  })
129
134
  }),
130
135
  value: value.map(function (member) {
@@ -140,7 +145,7 @@ export var MembersSelect = function MembersSelect(_ref) {
140
145
  ref: scrollContainerRef,
141
146
  children: [/*#__PURE__*/_jsx(SCMemberSearchWrapper, {
142
147
  children: /*#__PURE__*/_jsx(SearchComponent, {
143
- placeholder: "Buscar miembro",
148
+ placeholder: t('modal.searchMemberPlaceholder'),
144
149
  onChange: handleSearch,
145
150
  value: searchValue
146
151
  })
@@ -154,9 +159,7 @@ export var MembersSelect = function MembersSelect(_ref) {
154
159
  e.stopPropagation();
155
160
  handleSelectMember(member);
156
161
  },
157
- style: {
158
- backgroundColor: isSelected ? '#edfaff' : 'transparent'
159
- },
162
+ isSelected: isSelected,
160
163
  children: /*#__PURE__*/_jsxs(SCMemberItemContent, {
161
164
  children: [/*#__PURE__*/_jsx("span", {
162
165
  children: memberName
@@ -175,4 +178,4 @@ export var MembersSelect = function MembersSelect(_ref) {
175
178
  })]
176
179
  });
177
180
  };
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwiQ2hldnJvbkRvd24iLCJDVVNlbGVjdCIsIlNlYXJjaENvbXBvbmVudCIsInVzZUdldFVzZXJzIiwidXNlRGVib3VuY2UiLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwiU0NNZW1iZXJJdGVtQ29udGVudCIsIlNDTWVtYmVyQ2hlY2tib3giLCJTQ01lbWJlclNlYXJjaFdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWVtYmVyc1NlbGVjdCIsIl9yZWYiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1NlbGVjdE1lbWJlcnMiLCJzZXRTaG93U2VsZWN0TWVtYmVycyIsIl91c2VHZXRVc2VycyIsImhhbmRsZUdldFVzZXJzIiwidXNlcnMiLCJjdXJyZW50UGFnZSIsInRvdGFsUGFnZXMiLCJsb2FkaW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWFyY2hWYWx1ZSIsInNldFNlYXJjaFZhbHVlIiwiZGVib3VuY2VkU2VhcmNoVmFsdWUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImFjY3VtdWxhdGVkVXNlcnMiLCJzZXRBY2N1bXVsYXRlZFVzZXJzIiwic2Nyb2xsQ29udGFpbmVyUmVmIiwiaXNMb2FkaW5nTW9yZVJlZiIsImhhbmRsZVNlbGVjdE1lbWJlciIsIm1lbWJlciIsImFscmVkeVNlbGVjdGVkIiwic29tZSIsIm0iLCJpZCIsImZpbHRlciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZVNlYXJjaCIsImUiLCJ0YXJnZXQiLCJjdXJyZW50IiwicGFnZSIsInNlYXJjaElucHV0IiwibGVuZ3RoIiwicHJldiIsImV4aXN0aW5nSWRzIiwiU2V0IiwibWFwIiwidSIsIm5ld1VzZXJzIiwiaGFzIiwiaGFuZGxlU2Nyb2xsIiwiY29udGFpbmVyIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiaXNOZWFyQm90dG9tIiwidW5kZWZpbmVkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVDbGlja0FjdGlvblNlbGVjdCIsInRpdGxlIiwicGxhY2Vob2xkZXIiLCJlbmRJY29uIiwiaXNPcGVuIiwiY2hpbGRyZW4iLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwiam9pbiIsIm9wZW4iLCJoYW5kbGVDbGlja0FjdGlvbiIsIm9uQ2xpY2siLCJyZWYiLCJtZW1iZXJOYW1lIiwiaXNTZWxlY3RlZCIsInN0b3BQcm9wYWdhdGlvbiIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwidHlwZSIsImNoZWNrZWQiLCJyZWFkT25seSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RlYW1EZXRhaWxzTW9kYWwvTWVtYmVyc1NlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIENoYW5nZUV2ZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyBDVVNlbGVjdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3NlbGVjdG9yL2xpYi9jb21wb25lbnRzL0NVU2VsZWN0J1xuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vRmlsdGVycy9TZWFyY2hDb21wb25lbnQvU2VhcmNoQ29tcG9uZW50J1xuaW1wb3J0IHsgdXNlR2V0VXNlcnMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRVc2VycydcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQge1xuICBTQ0JhY2tkcm9wSW5wdXRTZWxlY3QsXG4gIFNDQ1VJdGVtc0xpc3QsXG4gIFNDQ1VTZWxlY3RJdGVtLFxuICBTQ1dyYXBwZXJTZWxlY3RJY29uLFxuICBTQ01lbWJlckl0ZW1Db250ZW50LFxuICBTQ01lbWJlckNoZWNrYm94LFxuICBTQ01lbWJlclNlYXJjaFdyYXBwZXIsXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5pbXBvcnQgeyBUZWFtVXNlciB9IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC50eXBlcydcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi90eXBlcy91c2VyVHlwZSdcblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJTZWxlY3Rpb24ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgTWVtYmVyc1NlbGVjdFByb3BzIHtcbiAgdmFsdWU6IE1lbWJlclNlbGVjdGlvbltdXG4gIG9uQ2hhbmdlOiAoaW5wdXQ6IHN0cmluZywgdmFsdWU6IE1lbWJlclNlbGVjdGlvbltdKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBNZW1iZXJzU2VsZWN0ID0gKHsgdmFsdWUsIG9uQ2hhbmdlIH06IE1lbWJlcnNTZWxlY3RQcm9wcykgPT4ge1xuICBjb25zdCBbc2hvd1NlbGVjdE1lbWJlcnMsIHNldFNob3dTZWxlY3RNZW1iZXJzXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCB1c2VycywgY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcgfSA9IHVzZUdldFVzZXJzKClcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgZGVib3VuY2VkU2VhcmNoVmFsdWUgPSB1c2VEZWJvdW5jZShzZWFyY2hWYWx1ZSwgMzAwKVxuICBjb25zdCBbYWNjdW11bGF0ZWRVc2Vycywgc2V0QWNjdW11bGF0ZWRVc2Vyc10gPSB1c2VTdGF0ZTxVc2VyW10+KFtdKVxuICBjb25zdCBzY3JvbGxDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0TWVtYmVyID0gKG1lbWJlcjogVXNlciB8IFRlYW1Vc2VyKSA9PiB7XG4gICAgY29uc3QgYWxyZWR5U2VsZWN0ZWQgPSB2YWx1ZS5zb21lKG0gPT4gbS5pZCA9PT0gbWVtYmVyLmlkKVxuICAgIGlmIChhbHJlZHlTZWxlY3RlZCkge1xuICAgICAgb25DaGFuZ2UoXG4gICAgICAgICdtZW1iZXJzJyxcbiAgICAgICAgdmFsdWUuZmlsdGVyKG0gPT4gbS5pZCAhPT0gbWVtYmVyLmlkKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkNoYW5nZSgnbWVtYmVycycsIFsuLi52YWx1ZSwgeyBpZDogbWVtYmVyLmlkLCBuYW1lOiBgJHttZW1iZXIuZmlyc3ROYW1lfSAke21lbWJlci5sYXN0TmFtZX1gIH1dKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKGUudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgLy8gUmVzZXRlYXIgdXN1YXJpb3MgYWN1bXVsYWRvcyBjdWFuZG8gY2FtYmlhIGVsIHNlYXJjaCBvIHNlIGFicmUgZWwgc2VsZWN0b3JcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2hvd1NlbGVjdE1lbWJlcnMpIHtcbiAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnMoW10pXG4gICAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgaGFuZGxlR2V0VXNlcnMoeyBwYWdlOiAxLCBzZWFyY2hJbnB1dDogZGVib3VuY2VkU2VhcmNoVmFsdWUgfSlcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZSwgc2hvd1NlbGVjdE1lbWJlcnMsIGhhbmRsZUdldFVzZXJzXSlcblxuICAvLyBBY3VtdWxhciB1c3VhcmlvcyBjdWFuZG8gc2UgcmVjaWJlbiBudWV2b3MgZGF0b3NcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlcnMubGVuZ3RoID4gMCAmJiBzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIC8vIFNpIGVzIGxhIHByaW1lcmEgcMOhZ2luYSwgcmVlbXBsYXphclxuICAgICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKHVzZXJzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2kgZXMgdW5hIHDDoWdpbmEgcG9zdGVyaW9yLCBhZ3JlZ2FyIGEgbG9zIGV4aXN0ZW50ZXNcbiAgICAgICAgc2V0QWNjdW11bGF0ZWRVc2VycyhwcmV2ID0+IHtcbiAgICAgICAgICAvLyBFdml0YXIgZHVwbGljYWRvc1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcCh1ID0+IHUuaWQpKVxuICAgICAgICAgIGNvbnN0IG5ld1VzZXJzID0gdXNlcnMuZmlsdGVyKHUgPT4gIWV4aXN0aW5nSWRzLmhhcyh1LmlkKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLm5ld1VzZXJzXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gIH0sIFt1c2VycywgY3VycmVudFBhZ2UsIHNob3dTZWxlY3RNZW1iZXJzXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCBsb2FkaW5nIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzTmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMCAvLyAxMHB4IGRlIG1hcmdlblxuXG4gICAgaWYgKGlzTmVhckJvdHRvbSAmJiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogY3VycmVudFBhZ2UgKyAxLCBzZWFyY2hJbnB1dDogZGVib3VuY2VkU2VhcmNoVmFsdWUgfSlcbiAgICB9XG4gIH0sIFtjdXJyZW50UGFnZSwgdG90YWxQYWdlcywgbG9hZGluZywgaGFuZGxlR2V0VXNlcnMsIGRlYm91bmNlZFNlYXJjaFZhbHVlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHNjcm9sbENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIXNob3dTZWxlY3RNZW1iZXJzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhbmRsZVNjcm9sbCwgc2hvd1NlbGVjdE1lbWJlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFNob3dTZWxlY3RNZW1iZXJzKCFzaG93U2VsZWN0TWVtYmVycylcbiAgICBpZiAoIXNob3dTZWxlY3RNZW1iZXJzKSB7XG4gICAgICBzZXRTZWFyY2hWYWx1ZSgnJylcbiAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnMoW10pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q1VTZWxlY3RcbiAgICAgIHRpdGxlPVwiQWdyZWdhciBtaWVtYnJvcyAqXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWNjaW9uYXIgbWllbWJyb3NcIlxuICAgICAgZW5kSWNvbj17XG4gICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9PlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCIjMjAyMDFGXCIgLz5cbiAgICAgICAgPC9TQ1dyYXBwZXJTZWxlY3RJY29uPlxuICAgICAgfVxuICAgICAgdmFsdWU9e3ZhbHVlLm1hcChtZW1iZXIgPT4gbWVtYmVyLm5hbWUpLmpvaW4oJyAtICcpfVxuICAgICAgb3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9XG4gICAgICBoYW5kbGVDbGlja0FjdGlvbj17aGFuZGxlQ2xpY2tBY3Rpb25TZWxlY3R9XG4gICAgPlxuICAgICAgPFNDQmFja2Ryb3BJbnB1dFNlbGVjdCBvbkNsaWNrPXsoKSA9PiBzZXRTaG93U2VsZWN0TWVtYmVycyhmYWxzZSl9IC8+XG4gICAgICA8U0NDVUl0ZW1zTGlzdCByZWY9e3Njcm9sbENvbnRhaW5lclJlZn0+XG4gICAgICAgIDxTQ01lbWJlclNlYXJjaFdyYXBwZXI+XG4gICAgICAgICAgPFNlYXJjaENvbXBvbmVudCBwbGFjZWhvbGRlcj1cIkJ1c2NhciBtaWVtYnJvXCIgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH0gdmFsdWU9e3NlYXJjaFZhbHVlfSAvPlxuICAgICAgICA8L1NDTWVtYmVyU2VhcmNoV3JhcHBlcj5cbiAgICAgICAge2FjY3VtdWxhdGVkVXNlcnMubWFwKG1lbWJlciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWBcbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWU/LnNvbWUobSA9PiBtLmlkID09PSBtZW1iZXIuaWQpIHx8IGZhbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e21lbWJlci5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE1lbWJlcihtZW1iZXIpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogaXNTZWxlY3RlZCA/ICcjZWRmYWZmJyA6ICd0cmFuc3BhcmVudCcgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNDTWVtYmVySXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPHNwYW4+e21lbWJlck5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxTQ01lbWJlckNoZWNrYm94XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgIHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RNZW1iZXIobWVtYmVyKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NDTWVtYmVySXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICA8L1NDQ1VTZWxlY3RJdGVtPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8L1NDQ1VJdGVtc0xpc3Q+XG4gICAgPC9DVVNlbGVjdD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFFBQVEsRUFBZUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsUUFBUSxPQUFPO0FBQzdFLFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUN2RSxTQUFTQyxlQUFlLFFBQVEsNENBQTRDO0FBQzVFLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxTQUNFQyxxQkFBcUIsRUFDckJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLG1CQUFtQixFQUNuQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsMkJBQTJCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQWNsQyxPQUFPLElBQU1DLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsSUFBQSxFQUFnRDtFQUFBLElBQTFDQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUFFQyxRQUFRLEdBQUFGLElBQUEsQ0FBUkUsUUFBUTtFQUM3QyxJQUFBQyxTQUFBLEdBQWtEeEIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBeUIsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBMURHLGlCQUFpQixHQUFBRixVQUFBO0lBQUVHLG9CQUFvQixHQUFBSCxVQUFBO0VBQzlDLElBQUFJLFlBQUEsR0FBb0V0QixXQUFXLENBQUMsQ0FBQztJQUF6RXVCLGNBQWMsR0FBQUQsWUFBQSxDQUFkQyxjQUFjO0lBQUVDLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0lBQUVDLFdBQVcsR0FBQUgsWUFBQSxDQUFYRyxXQUFXO0lBQUVDLFVBQVUsR0FBQUosWUFBQSxDQUFWSSxVQUFVO0lBQUVDLE9BQU8sR0FBQUwsWUFBQSxD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
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQ2hldnJvbkRvd24iLCJDVVNlbGVjdCIsIlNlYXJjaENvbXBvbmVudCIsInVzZUdldFVzZXJzIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwiU0NNZW1iZXJJdGVtQ29udGVudCIsIlNDTWVtYmVyQ2hlY2tib3giLCJTQ01lbWJlclNlYXJjaFdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWVtYmVyc1NlbGVjdCIsIl9yZWYiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1NlbGVjdE1lbWJlcnMiLCJzZXRTaG93U2VsZWN0TWVtYmVycyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlR2V0VXNlcnMiLCJoYW5kbGVHZXRVc2VycyIsInVzZXJzIiwiY3VycmVudFBhZ2UiLCJ0b3RhbFBhZ2VzIiwibG9hZGluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VhcmNoVmFsdWUiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYWNjdW11bGF0ZWRVc2VycyIsInNldEFjY3VtdWxhdGVkVXNlcnMiLCJzY3JvbGxDb250YWluZXJSZWYiLCJpc0xvYWRpbmdNb3JlUmVmIiwiY3VycmVudFNlYXJjaFJlZiIsImhhbmRsZVNlbGVjdE1lbWJlciIsIm1lbWJlciIsImFscmVkeVNlbGVjdGVkIiwic29tZSIsIm0iLCJpZCIsImZpbHRlciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImZldGNoVXNlcnMiLCJzZWFyY2hJbnB1dCIsImN1cnJlbnQiLCJwYWdlIiwiZGVib3VuY2VkRmV0Y2hVc2VycyIsImhhbmRsZVNlYXJjaCIsImUiLCJ0YXJnZXQiLCJsZW5ndGgiLCJwcmV2IiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJtYXAiLCJ1IiwibmV3VXNlcnMiLCJoYXMiLCJoYW5kbGVTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc05lYXJCb3R0b20iLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0IiwidGl0bGUiLCJwbGFjZWhvbGRlciIsImVuZEljb24iLCJpc09wZW4iLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJjb2xvcnMiLCJkYXJrIiwiam9pbiIsIm9wZW4iLCJoYW5kbGVDbGlja0FjdGlvbiIsIm9uQ2xpY2siLCJyZWYiLCJtZW1iZXJOYW1lIiwiaXNTZWxlY3RlZCIsInN0b3BQcm9wYWdhdGlvbiIsInR5cGUiLCJjaGVja2VkIiwicmVhZE9ubHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsL01lbWJlcnNTZWxlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCBDaGFuZ2VFdmVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgcGFsbGV0ZSBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ1VTZWxlY3QgfSBmcm9tICdAcHJvamVjdGNvci9zZWxlY3Rvci9saWIvY29tcG9uZW50cy9DVVNlbGVjdCdcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL0ZpbHRlcnMvU2VhcmNoQ29tcG9uZW50L1NlYXJjaENvbXBvbmVudCdcbmltcG9ydCB7IHVzZUdldFVzZXJzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlR2V0VXNlcnMnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZWRDYWxsYmFjayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJ1xuaW1wb3J0IHtcbiAgU0NCYWNrZHJvcElucHV0U2VsZWN0LFxuICBTQ0NVSXRlbXNMaXN0LFxuICBTQ0NVU2VsZWN0SXRlbSxcbiAgU0NXcmFwcGVyU2VsZWN0SWNvbixcbiAgU0NNZW1iZXJJdGVtQ29udGVudCxcbiAgU0NNZW1iZXJDaGVja2JveCxcbiAgU0NNZW1iZXJTZWFyY2hXcmFwcGVyLFxufSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgVGVhbVVzZXIgfSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwudHlwZXMnXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXNlclR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU2VsZWN0aW9uIHtcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIE1lbWJlcnNTZWxlY3RQcm9wcyB7XG4gIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXVxuICBvbkNoYW5nZTogKGlucHV0OiBzdHJpbmcsIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXSkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgTWVtYmVyc1NlbGVjdCA9ICh7IHZhbHVlLCBvbkNoYW5nZSB9OiBNZW1iZXJzU2VsZWN0UHJvcHMpID0+IHtcbiAgY29uc3QgW3Nob3dTZWxlY3RNZW1iZXJzLCBzZXRTaG93U2VsZWN0TWVtYmVyc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCB1c2VycywgY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcgfSA9IHVzZUdldFVzZXJzKClcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2FjY3VtdWxhdGVkVXNlcnMsIHNldEFjY3VtdWxhdGVkVXNlcnNdID0gdXNlU3RhdGU8VXNlcltdPihbXSlcbiAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBjdXJyZW50U2VhcmNoUmVmID0gdXNlUmVmKCcnKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE1lbWJlciA9IChtZW1iZXI6IFVzZXIgfCBUZWFtVXNlcikgPT4ge1xuICAgIGNvbnN0IGFscmVkeVNlbGVjdGVkID0gdmFsdWUuc29tZShtID0+IG0uaWQgPT09IG1lbWJlci5pZClcbiAgICBpZiAoYWxyZWR5U2VsZWN0ZWQpIHtcbiAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAnbWVtYmVycycsXG4gICAgICAgIHZhbHVlLmZpbHRlcihtID0+IG0uaWQgIT09IG1lbWJlci5pZClcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb25DaGFuZ2UoJ21lbWJlcnMnLCBbLi4udmFsdWUsIHsgaWQ6IG1lbWJlci5pZCwgbmFtZTogYCR7bWVtYmVyLmZpcnN0TmFtZX0gJHttZW1iZXIubGFzdE5hbWV9YCB9XSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBmZXRjaFVzZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlYXJjaElucHV0OiBzdHJpbmcpID0+IHtcbiAgICAgIGN1cnJlbnRTZWFyY2hSZWYuY3VycmVudCA9IHNlYXJjaElucHV0XG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogMSwgc2VhcmNoSW5wdXQgfSlcbiAgICB9LFxuICAgIFtoYW5kbGVHZXRVc2Vyc11cbiAgKVxuXG4gIGNvbnN0IGRlYm91bmNlZEZldGNoVXNlcnMgPSB1c2VEZWJvdW5jZWRDYWxsYmFjayhmZXRjaFVzZXJzLCAzMDApXG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZXRTZWFyY2hWYWx1ZShlLnRhcmdldC52YWx1ZSlcbiAgICAgIGRlYm91bmNlZEZldGNoVXNlcnMoZS50YXJnZXQudmFsdWUpXG4gICAgfSxcbiAgICBbZGVib3VuY2VkRmV0Y2hVc2Vyc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgc2V0U2VhcmNoVmFsdWUoJycpXG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgIH1cbiAgfSwgW3Nob3dTZWxlY3RNZW1iZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd1NlbGVjdE1lbWJlcnMpIHJldHVyblxuICAgIGZldGNoVXNlcnMoJycpXG4gIH0sIFtzaG93U2VsZWN0TWVtYmVycywgZmV0Y2hVc2Vyc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlcnMubGVuZ3RoID4gMCAmJiBzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnModXNlcnMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcCh1ID0+IHUuaWQpKVxuICAgICAgICAgIGNvbnN0IG5ld1VzZXJzID0gdXNlcnMuZmlsdGVyKHUgPT4gIWV4aXN0aW5nSWRzLmhhcyh1LmlkKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLm5ld1VzZXJzXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gIH0sIFt1c2VycywgY3VycmVudFBhZ2UsIHNob3dTZWxlY3RNZW1iZXJzXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCBsb2FkaW5nIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzTmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgaWYgKGlzTmVhckJvdHRvbSAmJiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogY3VycmVudFBhZ2UgKyAxLCBzZWFyY2hJbnB1dDogY3VycmVudFNlYXJjaFJlZi5jdXJyZW50IH0pXG4gICAgfVxuICB9LCBbY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcsIGhhbmRsZUdldFVzZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHNjcm9sbENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIXNob3dTZWxlY3RNZW1iZXJzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhbmRsZVNjcm9sbCwgc2hvd1NlbGVjdE1lbWJlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFNob3dTZWxlY3RNZW1iZXJzKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDVVNlbGVjdFxuICAgICAgdGl0bGU9e3QoJ21vZGFsLmFkZE1lbWJlcnNUaXRsZScpfVxuICAgICAgcGxhY2Vob2xkZXI9e3QoJ21vZGFsLmFkZE1lbWJlcnNQbGFjZWhvbGRlcicpfVxuICAgICAgZW5kSWNvbj17XG4gICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9PlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9e3BhbGxldGUuY29sb3JzLmRhcmt9IC8+XG4gICAgICAgIDwvU0NXcmFwcGVyU2VsZWN0SWNvbj5cbiAgICAgIH1cbiAgICAgIHZhbHVlPXt2YWx1ZS5tYXAobWVtYmVyID0+IG1lbWJlci5uYW1lKS5qb2luKCcgLSAnKX1cbiAgICAgIG9wZW49e3Nob3dTZWxlY3RNZW1iZXJzfVxuICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249e2hhbmRsZUNsaWNrQWN0aW9uU2VsZWN0fVxuICAgID5cbiAgICAgIDxTQ0JhY2tkcm9wSW5wdXRTZWxlY3Qgb25DbGljaz17KCkgPT4gc2V0U2hvd1NlbGVjdE1lbWJlcnMoZmFsc2UpfSAvPlxuICAgICAgPFNDQ1VJdGVtc0xpc3QgcmVmPXtzY3JvbGxDb250YWluZXJSZWZ9PlxuICAgICAgICA8U0NNZW1iZXJTZWFyY2hXcmFwcGVyPlxuICAgICAgICAgIDxTZWFyY2hDb21wb25lbnRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCdtb2RhbC5zZWFyY2hNZW1iZXJQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDTWVtYmVyU2VhcmNoV3JhcHBlcj5cbiAgICAgICAge2FjY3VtdWxhdGVkVXNlcnMubWFwKG1lbWJlciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWBcbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWU/LnNvbWUobSA9PiBtLmlkID09PSBtZW1iZXIuaWQpIHx8IGZhbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e21lbWJlci5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE1lbWJlcihtZW1iZXIpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgICAgIDxzcGFuPnttZW1iZXJOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8U0NNZW1iZXJDaGVja2JveFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0TWVtYmVyKG1lbWJlcilcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgPC9TQ0NVU2VsZWN0SXRlbT5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC9TQ0NVSXRlbXNMaXN0PlxuICAgIDwvQ1VTZWxlY3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxRQUFRLEVBQWVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUM3RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sbUNBQW1DO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUN2RSxTQUFTQyxlQUFlLFFBQVEsNENBQTRDO0FBQzVFLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0Msb0JBQW9CLFFBQVEsa0NBQWtDO0FBQ3ZFLFNBQ0VDLHFCQUFxQixFQUNyQkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsbUJBQW1CLEVBQ25CQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixRQUNoQiwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBY2xDLE9BQU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBQyxJQUFBLEVBQWdEO0VBQUEsSUFBMUNDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQUVDLFFBQVEsR0FBQUYsSUFBQSxDQUFSRSxRQUFRO0VBQzdDLElBQUFDLFNBQUEsR0FBa0QxQixRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUEyQixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUExREcsaUJBQWlCLEdBQUFGLFVBQUE7SUFBRUcsb0JBQW9CLEdBQUFILFVBQUE7RUFDOUMsSUFBQUksZUFBQSxHQUFjM0IsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUE3QjRCLENBQUMsR0FBQUQsZUFBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsWUFBQSxHQUFvRXhCLFdBQVcsQ0FBQyxDQUFDO0lBQXpFeUIsY0FBYyxHQUFBRCxZQUFBLENBQWRDLGNBQWM7SUFBRUMsS0FBSyxHQUFBRixZQUFBLENBQUxFLEtBQUs7SUFBRUMsV0FBVyxHQUFBSCxZQUFBLENBQVhHLFdBQVc7SUFBRUMsVUFBVSxHQUFBSixZQUFBLENBQVZJLFVBQVU7SUFBRUMsT0FBTyxHQUFBTCxZQUFBLENBQVBLLE9BQU87RUFDL0QsSUFBQUMsVUFBQSxHQUFzQ3ZDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFBQXdDLFVBQUEsR0FBQVosY0FBQSxDQUFBVyxVQUFBO0lBQTNDRSxXQUFXLEdBQUFELFVBQUE7SUFBRUUsY0FBYyxHQUFBRixVQUFBO0VBQ2xDLElBQUFHLFVBQUEsR0FBZ0QzQyxRQUFRLENBQVMsRUFBRSxDQUFDO0lBQUE0QyxVQUFBLEdBQUFoQixjQUFBLENBQUFlLFVBQUE7SUFBN0RFLGdCQUFnQixHQUFBRCxVQUFBO0lBQUVFLG1CQUFtQixHQUFBRixVQUFBO0VBQzVDLElBQU1HLGtCQUFrQixHQUFHN0MsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDdkQsSUFBTThDLGdCQUFnQixHQUFHOUMsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUN0QyxJQUFNK0MsZ0JBQWdCLEdBQUcvQyxNQUFNLENBQUMsRUFBRSxDQUFDO0VBRW5DLElBQU1nRCxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJQyxNQUF1QixFQUFLO0lBQ3RELElBQU1DLGNBQWMsR0FBRzVCLEtBQUssQ0FBQzZCLElBQUksQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDQyxFQUFFLEtBQUtKLE1BQU0sQ0FBQ0ksRUFBRTtJQUFBLEVBQUM7SUFDMUQsSUFBSUgsY0FBYyxFQUFFO01BQ2xCM0IsUUFBUSxDQUNOLFNBQVMsRUFDVEQsS0FBSyxDQUFDZ0MsTUFBTSxDQUFDLFVBQUFGLENBQUM7UUFBQSxPQUFJQSxDQUFDLENBQUNDLEVBQUUsS0FBS0osTUFBTSxDQUFDSSxFQUFFO01BQUEsRUFDdEMsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMOUIsUUFBUSxDQUFDLFNBQVMsS0FBQWdDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBTWxDLEtBQUssSUFBRTtRQUFFK0IsRUFBRSxFQUFFSixNQUFNLENBQUNJLEVBQUU7UUFBRUksSUFBSSxLQUFBRixNQUFBLENBQUtOLE1BQU0sQ0FBQ1MsU0FBUyxPQUFBSCxNQUFBLENBQUlOLE1BQU0sQ0FBQ1UsUUFBUTtNQUFHLENBQUMsRUFBQyxDQUFDO0lBQ3BHO0VBQ0YsQ0FBQztFQUVELElBQU1DLFVBQVUsR0FBRzNELFdBQVcsQ0FDNUIsVUFBQzRELFdBQW1CLEVBQUs7SUFDdkJkLGdCQUFnQixDQUFDZSxPQUFPLEdBQUdELFdBQVc7SUFDdENqQixtQkFBbUIsQ0FBQyxFQUFFLENBQUM7SUFDdkJFLGdCQUFnQixDQUFDZ0IsT0FBTyxHQUFHLEtBQUs7SUFDaEM5QixjQUFjLENBQUM7TUFBRStCLElBQUksRUFBRSxDQUFDO01BQUVGLFdBQVcsRUFBWEE7SUFBWSxDQUFDLENBQUM7RUFDMUMsQ0FBQyxFQUNELENBQUM3QixjQUFjLENBQ2pCLENBQUM7RUFFRCxJQUFNZ0MsbUJBQW1CLEdBQUd4RCxvQkFBb0IsQ0FBQ29ELFVBQVUsRUFBRSxHQUFHLENBQUM7RUFFakUsSUFBTUssWUFBWSxHQUFHaEUsV0FBVyxDQUM5QixVQUFDaUUsQ0FBZ0MsRUFBSztJQUNwQzFCLGNBQWMsQ0FBQzBCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDN0MsS0FBSyxDQUFDO0lBQzlCMEMsbUJBQW1CLENBQUNFLENBQUMsQ0FBQ0MsTUFBTSxDQUFDN0MsS0FBSyxDQUFDO0VBQ3JDLENBQUMsRUFDRCxDQUFDMEMsbUJBQW1CLENBQ3RCLENBQUM7RUFFRGpFLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNEIsaUJBQWlCLEVBQUU7TUFDdEJhLGNBQWMsQ0FBQyxFQUFFLENBQUM7TUFDbEJJLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztJQUN6QjtFQUNGLENBQUMsRUFBRSxDQUFDakIsaUJBQWlCLENBQUMsQ0FBQztFQUV2QjVCLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDNEIsaUJBQWlCLEVBQUU7SUFDeEJpQyxVQUFVLENBQUMsRUFBRSxDQUFDO0VBQ2hCLENBQUMsRUFBRSxDQUFDakMsaUJBQWlCLEVBQUVpQyxVQUFVLENBQUMsQ0FBQztFQUVuQzdELFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSWtDLEtBQUssQ0FBQ21DLE1BQU0sR0FBRyxDQUFDLElBQUl6QyxpQkFBaUIsRUFBRTtNQUN6QyxJQUFJTyxXQUFXLEtBQUssQ0FBQyxFQUFFO1FBQ3JCVSxtQkFBbUIsQ0FBQ1gsS0FBSyxDQUFDO01BQzVCLENBQUMsTUFBTTtRQUNMVyxtQkFBbUIsQ0FBQyxVQUFBeUIsSUFBSSxFQUFJO1VBQzFCLElBQU1DLFdBQVcsR0FBRyxJQUFJQyxHQUFHLENBQUNGLElBQUksQ0FBQ0csR0FBRyxDQUFDLFVBQUFDLENBQUM7WUFBQSxPQUFJQSxDQUFDLENBQUNwQixFQUFFO1VBQUEsRUFBQyxDQUFDO1VBQ2hELElBQU1xQixRQUFRLEdBQUd6QyxLQUFLLENBQUNxQixNQUFNLENBQUMsVUFBQW1CLENBQUM7WUFBQSxPQUFJLENBQUNILFdBQVcsQ0FBQ0ssR0FBRyxDQUFDRixDQUFDLENBQUNwQixFQUFFLENBQUM7VUFBQSxFQUFDO1VBQzFELFVBQUFFLE1BQUEsQ0FBQUMsa0JBQUEsQ0FBV2EsSUFBSSxHQUFBYixrQkFBQSxDQUFLa0IsUUFBUTtRQUM5QixDQUFDLENBQUM7TUFDSjtNQUNBNUIsZ0JBQWdCLENBQUNnQixPQUFPLEdBQUcsS0FBSztJQUNsQztFQUNGLENBQUMsRUFBRSxDQUFDN0IsS0FBSyxFQUFFQyxXQUFXLEVBQUVQLGlCQUFpQixDQUFDLENBQUM7RUFFM0MsSUFBTWlELFlBQVksR0FBRzNFLFdBQVcsQ0FBQyxZQUFNO0lBQ3JDLElBQU00RSxTQUFTLEdBQUdoQyxrQkFBa0IsQ0FBQ2lCLE9BQU87SUFDNUMsSUFBSSxDQUFDZSxTQUFTLElBQUl6QyxPQUFPLElBQUlVLGdCQUFnQixDQUFDZ0IsT0FBTyxFQUFFO0lBRXZELElBQVFnQixTQUFTLEdBQWlDRCxTQUFTLENBQW5EQyxTQUFTO01BQUVDLFlBQVksR0FBbUJGLFNBQVMsQ0FBeENFLFlBQVk7TUFBRUMsWUFBWSxHQUFLSCxTQUFTLENBQTFCRyxZQUFZO0lBQzdDLElBQU1DLFlBQVksR0FBR0gsU0FBUyxHQUFHRSxZQUFZLElBQUlELFlBQVksR0FBRyxFQUFFO0lBRWxFLElBQUlFLFlBQVksSUFBSS9DLFdBQVcsR0FBR0MsVUFBVSxFQUFFO01BQzVDVyxnQkFBZ0IsQ0FBQ2dCLE9BQU8sR0FBRyxJQUFJO01BQy9COUIsY0FBYyxDQUFDO1FBQUUrQixJQUFJLEVBQUU3QixXQUFXLEdBQUcsQ0FBQztRQUFFMkIsV0FBVyxFQUFFZCxnQkFBZ0IsQ0FBQ2U7TUFBUSxDQUFDLENBQUM7SUFDbEY7RUFDRixDQUFDLEVBQUUsQ0FBQzVCLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVKLGNBQWMsQ0FBQyxDQUFDO0VBRXREakMsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNOEUsU0FBUyxHQUFHaEMsa0JBQWtCLENBQUNpQixPQUFPO0lBQzVDLElBQUksQ0FBQ2UsU0FBUyxJQUFJLENBQUNsRCxpQkFBaUIsRUFBRSxPQUFPdUQsU0FBUztJQUV0REwsU0FBUyxDQUFDTSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVQLFlBQVksQ0FBQztJQUNsRCxPQUFPLFlBQU07TUFDWEMsU0FBUyxDQUFDTyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUVSLFlBQVksQ0FBQztJQUN2RCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNBLFlBQVksRUFBRWpELGlCQUFpQixDQUFDLENBQUM7RUFFckMsSUFBTTBELHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUEsRUFBUztJQUNwQ3pELG9CQUFvQixDQUFDLFVBQUF5QyxJQUFJO01BQUEsT0FBSSxDQUFDQSxJQUFJO0lBQUEsRUFBQztFQUNyQyxDQUFDO0VBRUQsb0JBQ0VsRCxLQUFBLENBQUNkLFFBQVE7SUFDUGlGLEtBQUssRUFBRXhELENBQUMsQ0FBQyx1QkFBdUIsQ0FBRTtJQUNsQ3lELFdBQVcsRUFBRXpELENBQUMsQ0FBQyw2QkFBNkIsQ0FBRTtJQUM5QzBELE9BQU8sZUFDTHZFLElBQUEsQ0FBQ0wsbUJBQW1CO01BQUM2RSxNQUFNLEVBQUU5RCxpQkFBa0I7TUFBQStELFFBQUEsZUFDN0N6RSxJQUFBLENBQUNiLFdBQVc7UUFBQ3VGLEtBQUssRUFBQyxNQUFNO1FBQUNDLE1BQU0sRUFBQyxNQUFNO1FBQUNDLEtBQUssRUFBRTFGLE9BQU8sQ0FBQzJGLE1BQU0sQ0FBQ0M7TUFBSyxDQUFFO0lBQUMsQ0FDbkQsQ0FDdEI7SUFDRHpFLEtBQUssRUFBRUEsS0FBSyxDQUFDa0QsR0FBRyxDQUFDLFVBQUF2QixNQUFNO01BQUEsT0FBSUEsTUFBTSxDQUFDUSxJQUFJO0lBQUEsRUFBQyxDQUFDdUMsSUFBSSxDQUFDLEtBQUssQ0FBRTtJQUNwREMsSUFBSSxFQUFFdEUsaUJBQWtCO0lBQ3hCdUUsaUJBQWlCLEVBQUViLHVCQUF3QjtJQUFBSyxRQUFBLGdCQUUzQ3pFLElBQUEsQ0FBQ1IscUJBQXFCO01BQUMwRixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtRQUFBLE9BQVF2RSxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7TUFBQTtJQUFDLENBQUUsQ0FBQyxlQUNyRVQsS0FBQSxDQUFDVCxhQUFhO01BQUMwRixHQUFHLEVBQUV2RCxrQkFBbUI7TUFBQTZDLFFBQUEsZ0JBQ3JDekUsSUFBQSxDQUFDRixxQkFBcUI7UUFBQTJFLFFBQUEsZUFDcEJ6RSxJQUFBLENBQUNYLGVBQWU7VUFDZGlGLFdBQVcsRUFBRXpELENBQUMsQ0FBQywrQkFBK0IsQ0FBRTtVQUNoRFAsUUFBUSxFQUFFMEMsWUFBYTtVQUN2QjNDLEtBQUssRUFBRWlCO1FBQVksQ0FDcEI7TUFBQyxDQUNtQixDQUFDLEVBQ3ZCSSxnQkFBZ0IsQ0FBQzZCLEdBQUcsQ0FBQyxVQUFBdkIsTUFBTSxFQUFJO1FBQzlCLElBQU1vRCxVQUFVLE1BQUE5QyxNQUFBLENBQU1OLE1BQU0sQ0FBQ1MsU0FBUyxPQUFBSCxNQUFBLENBQUlOLE1BQU0sQ0FBQ1UsUUFBUSxDQUFFO1FBQzNELElBQU0yQyxVQUFVLEdBQUcsQ0FBQWhGLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNkIsSUFBSSxDQUFDLFVBQUFDLENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUNDLEVBQUUsS0FBS0osTUFBTSxDQUFDSSxFQUFFO1FBQUEsRUFBQyxLQUFJLEtBQUs7UUFDaEUsb0JBQ0VwQyxJQUFBLENBQUNOLGNBQWM7VUFFYndGLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO1lBQ1pBLENBQUMsQ0FBQ3FDLGVBQWUsQ0FBQyxDQUFDO1lBQ25CdkQsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQztVQUM1QixDQUFFO1VBQ0ZxRCxVQUFVLEVBQUVBLFVBQVc7VUFBQVosUUFBQSxlQUV2QnZFLEtBQUEsQ0FBQ04sbUJBQW1CO1lBQUE2RSxRQUFBLGdCQUNsQnpFLElBQUE7Y0FBQXlFLFFBQUEsRUFBT1c7WUFBVSxDQUFPLENBQUMsZUFDekJwRixJQUFBLENBQUNILGdCQUFnQjtjQUNmMEYsSUFBSSxFQUFDLFVBQVU7Y0FDZkMsT0FBTyxFQUFFSCxVQUFXO2NBQ3BCSSxRQUFRO2NBQ1JQLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO2dCQUNaQSxDQUFDLENBQUNxQyxlQUFlLENBQUMsQ0FBQztnQkFDbkJ2RCxrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDO2NBQzVCO1lBQUUsQ0FDSCxDQUFDO1VBQUEsQ0FDaUI7UUFBQyxHQWxCakJBLE1BQU0sQ0FBQ0ksRUFtQkUsQ0FBQztNQUVyQixDQUFDLENBQUM7SUFBQSxDQUNXLENBQUM7RUFBQSxDQUNSLENBQUM7QUFFZixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -4,12 +4,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  import React, { useState, useEffect } from 'react';
6
6
  import { useTranslation } from 'react-i18next';
7
+ import pallete from '@projectcor/theme/lib/base/colors';
7
8
  import { CUButton } from '@projectcor/button/lib/components/CUButton';
8
9
  import { Cross } from '@projectcor/icons/lib/components/Cross';
9
10
  import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
10
11
  import { Input } from '@projectcor/input/lib';
11
12
  import { CUSelect } from '@projectcor/selector/lib/components/CUSelect';
12
- import { SCTDMOverlay, SCTDMContainer, SCTDMHeader, SCTDMTitle, SCTDMCloseButton, SCTDMContent, SCTDMSection, SCTDMSectionLabel, SCTDMSectionValue, SCTDMUsersList, SCTDMWorkspaceTag, SCTDMButtonsContainer, SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperTextArea, SCTextAreaLabel, SCTextArea, SCWrapperSelectIcon } from './TeamDetailsModal.styles';
13
+ import { SCTDMOverlay, SCTDMContainer, SCTDMHeader, SCTDMTitle, SCTDMCloseButton, SCTDMContent, SCTDMSection, SCTDMSectionLabel, SCTDMSectionValue, SCTDMUsersList, SCTDMWorkspaceTag, SCTDMButtonsContainer, SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperTextArea, SCTextAreaLabel, SCTextArea, SCTextAreaCounter, SCWrapperSelectIcon } from './TeamDetailsModal.styles';
13
14
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
15
  export var TeamDetailsModal = function TeamDetailsModal(_ref) {
15
16
  var _formData$workspace;
@@ -144,7 +145,7 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
144
145
  children: /*#__PURE__*/_jsx(Cross, {
145
146
  width: 20,
146
147
  height: 20,
147
- color: "#A4ADB5"
148
+ color: pallete.grey[300]
148
149
  })
149
150
  })]
150
151
  }), isViewMode && team ? /*#__PURE__*/_jsxs(_Fragment, {
@@ -169,20 +170,20 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
169
170
  children: [/*#__PURE__*/_jsx(SCTDMSectionLabel, {
170
171
  children: t('teams.modal.descriptionLabel')
171
172
  }), /*#__PURE__*/_jsx(SCTDMSectionValue, {
172
- children: team.description
173
+ children: team.description || '-'
173
174
  })]
174
175
  })]
175
176
  }), /*#__PURE__*/_jsxs(SCTDMButtonsContainer, {
176
- children: [!window.hasWorkspacesFeature && /*#__PURE__*/_jsx(CUButton, {
177
- variant: "contained",
178
- size: "medium",
179
- onClick: handleEditClick,
180
- children: t('teams.modal.editButton')
181
- }), /*#__PURE__*/_jsx(CUButton, {
177
+ children: [/*#__PURE__*/_jsx(CUButton, {
182
178
  variant: "text",
183
179
  size: "medium",
184
180
  onClick: handleCloseModal,
185
181
  children: t('teams.cancel')
182
+ }), !window.hasWorkspacesFeature && /*#__PURE__*/_jsx(CUButton, {
183
+ variant: "contained",
184
+ size: "medium",
185
+ onClick: handleEditClick,
186
+ children: t('teams.modal.editButton')
186
187
  })]
187
188
  })]
188
189
  }) : /*#__PURE__*/_jsxs(_Fragment, {
@@ -190,12 +191,15 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
190
191
  children: [/*#__PURE__*/_jsx(SCTDMSection, {
191
192
  children: /*#__PURE__*/_jsx(Input, {
192
193
  labelText: t('teams.modal.nameLabel'),
193
- withCounter: false,
194
+ withCounter: true,
195
+ maxLength: 255,
194
196
  value: formData.name || (team && mode === 'edit' ? team.name : ''),
195
197
  placeholder: t('teams.modal.namePlaceholder'),
196
198
  handleSetText: function handleSetText(value) {
197
199
  return handleInputChange('name', value);
198
- }
200
+ },
201
+ hasError: formData.name.length > 255,
202
+ errorMessage: t('modal.nameMaxLengthError')
199
203
  }, "team-name-".concat((team === null || team === void 0 ? void 0 : team.id) || 'new', "-").concat(mode, "-").concat(isOpen))
200
204
  }), window.hasWorkspacesFeature && /*#__PURE__*/_jsx(SCTDMSection, {
201
205
  children: /*#__PURE__*/_jsxs(CUSelect, {
@@ -206,7 +210,7 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
206
210
  children: /*#__PURE__*/_jsx(ChevronDown, {
207
211
  width: "16px",
208
212
  height: "16px",
209
- color: "#20201F"
213
+ color: pallete.colors.dark
210
214
  })
211
215
  }),
212
216
  value: ((_formData$workspace = formData.workspace) === null || _formData$workspace === void 0 ? void 0 : _formData$workspace.name) || '',
@@ -241,7 +245,10 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
241
245
  },
242
246
  spellCheck: false,
243
247
  placeholder: t('teams.modal.descriptionPlaceholder'),
244
- id: "myTextarea"
248
+ id: "myTextarea",
249
+ maxLength: 255
250
+ }), /*#__PURE__*/_jsxs(SCTextAreaCounter, {
251
+ children: [formData.description.length, " / 255"]
245
252
  })]
246
253
  })
247
254
  })]
@@ -256,9 +263,6 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
256
263
  variant: "contained",
257
264
  size: "medium",
258
265
  onClick: handleSave,
259
- style: {
260
- backgroundColor: '#666666'
261
- },
262
266
  children: mode === 'create' ? t('teams.createTeam') : t('teams.saveChanges')
263
267
  })]
264
268
  })]
@@ -266,4 +270,4 @@ export var TeamDetailsModal = function TeamDetailsModal(_ref) {
266
270
  })
267
271
  });
268
272
  };
269
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlVHJhbnNsYXRpb24iLCJDVUJ1dHRvbiIsIkNyb3NzIiwiQ2hldnJvbkRvd24iLCJJbnB1dCIsIkNVU2VsZWN0IiwiU0NURE1PdmVybGF5IiwiU0NURE1Db250YWluZXIiLCJTQ1RETUhlYWRlciIsIlNDVERNVGl0bGUiLCJTQ1RETUNsb3NlQnV0dG9uIiwiU0NURE1Db250ZW50IiwiU0NURE1TZWN0aW9uIiwiU0NURE1TZWN0aW9uTGFiZWwiLCJTQ1RETVNlY3Rpb25WYWx1ZSIsIlNDVERNVXNlcnNMaXN0IiwiU0NURE1Xb3Jrc3BhY2VUYWciLCJTQ1RETUJ1dHRvbnNDb250YWluZXIiLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJUZXh0QXJlYSIsIlNDVGV4dEFyZWFMYWJlbCIsIlNDVGV4dEFyZWEiLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVGVhbURldGFpbHNNb2RhbCIsIl9yZWYiLCJfZm9ybURhdGEkd29ya3NwYWNlIiwidGVhbSIsImlzT3BlbiIsIm9uQ2xvc2UiLCJvbkVkaXQiLCJvbkNyZWF0ZSIsIl9yZWYkbW9kZSIsIm1vZGUiLCJ3b3Jrc3BhY2VzTGlzdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRWRpdE1vZGUiLCJzZXRJc0VkaXRNb2RlIiwiX3VzZVN0YXRlMyIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJtZW1iZXJzIiwiZGVzY3JpcHRpb24iLCJfdXNlU3RhdGU0IiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1NlbGVjdFdvcmtzcGFjZSIsInNldFNob3dTZWxlY3RXb3Jrc3BhY2UiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaWQiLCJ1c2VycyIsIm1hcCIsInVzZXIiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZvcm1hdFVzZXJzIiwiam9pbiIsImhhbmRsZUVkaXRDbGljayIsImhhbmRsZUNhbmNlbEVkaXQiLCJoYW5kbGVTYXZlIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJmaWVsZCIsInZhbHVlIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRNb2RhbFRpdGxlIiwiaXNGb3JtQ29tcGxldGUiLCJ3aW5kb3ciLCJoYXNXb3Jrc3BhY2VzRmVhdHVyZSIsInRyaW0iLCJsZW5ndGgiLCJpc1ZpZXdNb2RlIiwib25DbGljayIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsInZhcmlhbnQiLCJzaXplIiwibGFiZWxUZXh0Iiwid2l0aENvdW50ZXIiLCJwbGFjZWhvbGRlciIsImhhbmRsZVNldFRleHQiLCJ0aXRsZSIsImVuZEljb24iLCJvcGVuIiwiaGFuZGxlQ2xpY2tBY3Rpb24iLCJodG1sRm9yIiwib25DaGFuZ2UiLCJzcGVsbENoZWNrIiwiZGlzYWJsZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RlYW1EZXRhaWxzTW9kYWwvVGVhbURldGFpbHNNb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IENVQnV0dG9uIH0gZnJvbSAnQHByb2plY3Rjb3IvYnV0dG9uL2xpYi9jb21wb25lbnRzL0NVQnV0dG9uJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IENoZXZyb25Eb3duIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkRvd24nXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2lucHV0L2xpYidcbmltcG9ydCB7IENVU2VsZWN0IH0gZnJvbSAnQHByb2plY3Rjb3Ivc2VsZWN0b3IvbGliL2NvbXBvbmVudHMvQ1VTZWxlY3QnXG5pbXBvcnQgeyBUZWFtRGV0YWlsc01vZGFsUHJvcHMsIEZvcm1EYXRhLCBXb3Jrc3BhY2UgfSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwudHlwZXMnXG5pbXBvcnQgeyBNZW1iZXJTZWxlY3Rpb24gfSBmcm9tICcuL01lbWJlcnNTZWxlY3QnXG5pbXBvcnQge1xuICBTQ1RETU92ZXJsYXksXG4gIFNDVERNQ29udGFpbmVyLFxuICBTQ1RETUhlYWRlcixcbiAgU0NURE1UaXRsZSxcbiAgU0NURE1DbG9zZUJ1dHRvbixcbiAgU0NURE1Db250ZW50LFxuICBTQ1RETVNlY3Rpb24sXG4gIFNDVERNU2VjdGlvbkxhYmVsLFxuICBTQ1RETVNlY3Rpb25WYWx1ZSxcbiAgU0NURE1Vc2Vyc0xpc3QsXG4gIFNDVERNV29ya3NwYWNlVGFnLFxuICBTQ1RETUJ1dHRvbnNDb250YWluZXIsXG4gIFNDQmFja2Ryb3BJbnB1dFNlbGVjdCxcbiAgU0NDVUl0ZW1zTGlzdCxcbiAgU0NDVVNlbGVjdEl0ZW0sXG4gIFNDV3JhcHBlclRleHRBcmVhLFxuICBTQ1RleHRBcmVhTGFiZWwsXG4gIFNDVGV4dEFyZWEsXG4gIFNDV3JhcHBlclNlbGVjdEljb24sXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBUZWFtRGV0YWlsc01vZGFsID0gKHtcbiAgdGVhbSxcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBvbkVkaXQsXG4gIG9uQ3JlYXRlLFxuICBtb2RlID0gJ3ZpZXcnLFxuICB3b3Jrc3BhY2VzTGlzdCxcbn06IFRlYW1EZXRhaWxzTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCBbaXNFZGl0TW9kZSwgc2V0SXNFZGl0TW9kZV0gPSB1c2VTdGF0ZShtb2RlID09PSAnZWRpdCcgfHwgbW9kZSA9PT0gJ2NyZWF0ZScpXG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGU8Rm9ybURhdGE+KHtcbiAgICBuYW1lOiAnJyxcbiAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgbWVtYmVyczogW10sXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9KVxuICBjb25zdCBbc2hvd1NlbGVjdFdvcmtzcGFjZSwgc2V0U2hvd1NlbGVjdFdvcmtzcGFjZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2kgY2FtYmlhIGVsIG1vZG8sIGFqdXN0YXIgaXNFZGl0TW9kZVxuICAgIHNldElzRWRpdE1vZGUobW9kZSA9PT0gJ2VkaXQnIHx8IG1vZGUgPT09ICdjcmVhdGUnKVxuICB9LCBbbW9kZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgLy8gUmVzZXRlYXIgY3VhbmRvIGVsIG1vZGFsIHNlIGNpZXJyYVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChtb2RlID09PSAnY3JlYXRlJykge1xuICAgICAgLy8gUmVzZXRlYXIgZm9ybXVsYXJpbyBwYXJhIGNyZWFyXG4gICAgICBzZXRGb3JtRGF0YSh7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodGVhbSkge1xuICAgICAgLy8gQWN0dWFsaXphciBmb3JtdWxhcmlvIGN1YW5kbyBoYXkgdW4gZXF1aXBvIChtb2RvIHZpZXcgbyBlZGl0KVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiB0ZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIHdvcmtzcGFjZTogdGVhbS53b3Jrc3BhY2UgPyB7IGlkOiB0ZWFtLndvcmtzcGFjZS5pZCwgbmFtZTogdGVhbS53b3Jrc3BhY2UubmFtZSB9IDogbnVsbCxcbiAgICAgICAgbWVtYmVyczogdGVhbS51c2Vycy5tYXAodXNlciA9PiAoeyBpZDogdXNlci5pZCwgbmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gIH0pKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRlYW0uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3RlYW0sIG1vZGUsIGlzT3Blbl0pXG5cbiAgaWYgKCFpc09wZW4pIHJldHVybiBudWxsXG4gIGlmIChtb2RlID09PSAndmlldycgJiYgIWlzRWRpdE1vZGUgJiYgIXRlYW0pIHJldHVybiBudWxsXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKGZhbHNlKVxuICAgIHNldEZvcm1EYXRhKHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgbWVtYmVyczogW10sXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgfSlcbiAgICBvbkNsb3NlKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0ICYmICFpc0VkaXRNb2RlKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRVc2VycyA9ICgpID0+IHtcbiAgICBpZiAoIXRlYW0pIHJldHVybiAnJ1xuICAgIHJldHVybiB0ZWFtLnVzZXJzLm1hcCh1c2VyID0+IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YCkuam9pbignIC0gJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRDbGljayA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDYW5jZWxFZGl0ID0gKCkgPT4ge1xuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2F2ZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScgJiYgb25DcmVhdGUpIHtcbiAgICAgIG9uQ3JlYXRlKGZvcm1EYXRhKVxuICAgIH0gZWxzZSBpZiAob25FZGl0KSB7XG4gICAgICBvbkVkaXQoZm9ybURhdGEpXG4gICAgfVxuICAgIHNldElzRWRpdE1vZGUoZmFsc2UpXG4gICAgaWYgKG1vZGUgPT09ICdjcmVhdGUnKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgV29ya3NwYWNlIHwgbnVsbCB8IE1lbWJlclNlbGVjdGlvbltdKSA9PiB7XG4gICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWVsZF06IHZhbHVlLFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgZ2V0TW9kYWxUaXRsZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5jcmVhdGVUaXRsZScpXG4gICAgaWYgKGlzRWRpdE1vZGUpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5lZGl0VGl0bGUnKVxuICAgIHJldHVybiB0ZWFtPy5uYW1lIHx8ICcnXG4gIH1cblxuICBjb25zdCBpc0Zvcm1Db21wbGV0ZSA9IHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZVxuICAgID8gZm9ybURhdGEubmFtZS50cmltKCkubGVuZ3RoID4gMCAmJiBmb3JtRGF0YS53b3Jrc3BhY2UgIT09IG51bGxcbiAgICA6IGZvcm1EYXRhLm5hbWUudHJpbSgpLmxlbmd0aCA+IDBcblxuICBjb25zdCBpc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnICYmICFpc0VkaXRNb2RlXG5cbiAgcmV0dXJuIChcbiAgICA8U0NURE1PdmVybGF5IG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja30+XG4gICAgICA8U0NURE1Db250YWluZXI+XG4gICAgICAgIDxTQ1RETUhlYWRlcj5cbiAgICAgICAgICA8U0NURE1UaXRsZT57Z2V0TW9kYWxUaXRsZSgpfTwvU0NURE1UaXRsZT5cbiAgICAgICAgICA8U0NURE1DbG9zZUJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgIDxDcm9zcyB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPVwiI0E0QURCNVwiIC8+XG4gICAgICAgICAgPC9TQ1RETUNsb3NlQnV0dG9uPlxuICAgICAgICA8L1NDVERNSGVhZGVyPlxuXG4gICAgICAgIHtpc1ZpZXdNb2RlICYmIHRlYW0gPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC51c2Vyc0xhYmVsJyl9PC9TQ1RETVNlY3Rpb25MYWJlbD5cbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgICA8U0NURE1Vc2Vyc0xpc3Q+e2Zvcm1hdFVzZXJzKCl9PC9TQ1RETVVzZXJzTGlzdD5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cblxuICAgICAgICAgICAgICB7d2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC53b3Jrc3BhY2VzTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgICAgICB7dGVhbS53b3Jrc3BhY2UgPyA8U0NURE1Xb3Jrc3BhY2VUYWc+e3RlYW0ud29ya3NwYWNlLm5hbWV9PC9TQ1RETVdvcmtzcGFjZVRhZz4gOiAnLSd9XG4gICAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbkxhYmVsPnt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvbkxhYmVsJyl9PC9TQ1RETVNlY3Rpb25MYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb25WYWx1ZT57dGVhbS5kZXNjcmlwdGlvbn08L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVFZGl0Q2xpY2t9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RlYW1zLm1vZGFsLmVkaXRCdXR0b24nKX1cbiAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cInRleHRcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17aGFuZGxlQ2xvc2VNb2RhbH0+XG4gICAgICAgICAgICAgICAge3QoJ3RlYW1zLmNhbmNlbCcpfVxuICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgPC9TQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2B0ZWFtLW5hbWUtJHt0ZWFtPy5pZCB8fCAnbmV3J30tJHttb2RlfS0ke2lzT3Blbn1gfVxuICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0PXt0KCd0ZWFtcy5tb2RhbC5uYW1lTGFiZWwnKX1cbiAgICAgICAgICAgICAgICAgIHdpdGhDb3VudGVyPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5uYW1lIHx8ICh0ZWFtICYmIG1vZGUgPT09ICdlZGl0JyA/IHRlYW0ubmFtZSA6ICcnKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5uYW1lUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRleHQ9e3ZhbHVlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCduYW1lJywgdmFsdWUpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHsvKiB7bW9kZSA9PT0gJ2NyZWF0ZScgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8TWVtYmVyc1NlbGVjdCB2YWx1ZT17Zm9ybURhdGEubWVtYmVyc30gb25DaGFuZ2U9e2hhbmRsZUlucHV0Q2hhbmdlfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfSAqL31cblxuICAgICAgICAgICAgICB7d2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPENVU2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPXt0KCd0ZWFtcy5tb2RhbC53b3Jrc3BhY2VUaXRsZScpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgndGVhbXMubW9kYWwud29ya3NwYWNlUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgICAgZW5kSWNvbj17XG4gICAgICAgICAgICAgICAgICAgICAgPFNDV3JhcHBlclNlbGVjdEljb24gaXNPcGVuPXtzaG93U2VsZWN0V29ya3NwYWNlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9XCIjMjAyMDFGXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1NDV3JhcHBlclNlbGVjdEljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLndvcmtzcGFjZT8ubmFtZSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgICAgb3Blbj17c2hvd1NlbGVjdFdvcmtzcGFjZX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249eygpID0+IHNldFNob3dTZWxlY3RXb3Jrc3BhY2UoIXNob3dTZWxlY3RXb3Jrc3BhY2UpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U0NCYWNrZHJvcElucHV0U2VsZWN0IG9uQ2xpY2s9eygpID0+IHNldFNob3dTZWxlY3RXb3Jrc3BhY2UoZmFsc2UpfSAvPlxuICAgICAgICAgICAgICAgICAgICA8U0NDVUl0ZW1zTGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICB7d29ya3NwYWNlc0xpc3QubWFwKHdvcmtzcGFjZSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8U0NDVVNlbGVjdEl0ZW0ga2V5PXt3b3Jrc3BhY2UuaWR9IG9uQ2xpY2s9eygpID0+IGhhbmRsZUlucHV0Q2hhbmdlKCd3b3Jrc3BhY2UnLCB3b3Jrc3BhY2UpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3dvcmtzcGFjZS5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TQ0NVU2VsZWN0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9TQ0NVSXRlbXNMaXN0PlxuICAgICAgICAgICAgICAgICAgPC9DVVNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICB7IXdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxTQ1dyYXBwZXJUZXh0QXJlYT5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFMYWJlbCBodG1sRm9yPVwibXlUZXh0YXJlYVwiPnt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvbkxhYmVsJyl9PC9TQ1RleHRBcmVhTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1RleHRBcmVhXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCdkZXNjcmlwdGlvbicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dCgndGVhbXMubW9kYWwuZGVzY3JpcHRpb25QbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwibXlUZXh0YXJlYVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1NDV3JhcHBlclRleHRBcmVhPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVDYW5jZWxFZGl0fT5cbiAgICAgICAgICAgICAgICB7dCgndGVhbXMuY2FuY2VsJyl9XG4gICAgICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvblxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNGb3JtQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2F2ZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6ICcjNjY2NjY2JyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge21vZGUgPT09ICdjcmVhdGUnID8gdCgndGVhbXMuY3JlYXRlVGVhbScpIDogdCgndGVhbXMuc2F2ZUNoYW5nZXMnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgIDwvU0NURE1CdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9TQ1RETUNvbnRhaW5lcj5cbiAgICA8L1NDVERNT3ZlcmxheT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2xELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFFBQVEsUUFBUSw0Q0FBNEM7QUFDckUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUd2RSxTQUNFQyxZQUFZLEVBQ1pDLGNBQWMsRUFDZEMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLGdCQUFnQixFQUNoQkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGlCQUFpQixFQUNqQkMsaUJBQWlCLEVBQ2pCQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMscUJBQXFCLEVBQ3JCQyxxQkFBcUIsRUFDckJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsVUFBVSxFQUNWQyxtQkFBbUIsUUFDZCwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUVsQyxPQUFPLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUFDLElBQUEsRUFRQTtFQUFB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
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQ1VCdXR0b24iLCJDcm9zcyIsIkNoZXZyb25Eb3duIiwiSW5wdXQiLCJDVVNlbGVjdCIsIlNDVERNT3ZlcmxheSIsIlNDVERNQ29udGFpbmVyIiwiU0NURE1IZWFkZXIiLCJTQ1RETVRpdGxlIiwiU0NURE1DbG9zZUJ1dHRvbiIsIlNDVERNQ29udGVudCIsIlNDVERNU2VjdGlvbiIsIlNDVERNU2VjdGlvbkxhYmVsIiwiU0NURE1TZWN0aW9uVmFsdWUiLCJTQ1RETVVzZXJzTGlzdCIsIlNDVERNV29ya3NwYWNlVGFnIiwiU0NURE1CdXR0b25zQ29udGFpbmVyIiwiU0NCYWNrZHJvcElucHV0U2VsZWN0IiwiU0NDVUl0ZW1zTGlzdCIsIlNDQ1VTZWxlY3RJdGVtIiwiU0NXcmFwcGVyVGV4dEFyZWEiLCJTQ1RleHRBcmVhTGFiZWwiLCJTQ1RleHRBcmVhIiwiU0NUZXh0QXJlYUNvdW50ZXIiLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVGVhbURldGFpbHNNb2RhbCIsIl9yZWYiLCJfZm9ybURhdGEkd29ya3NwYWNlIiwidGVhbSIsImlzT3BlbiIsIm9uQ2xvc2UiLCJvbkVkaXQiLCJvbkNyZWF0ZSIsIl9yZWYkbW9kZSIsIm1vZGUiLCJ3b3Jrc3BhY2VzTGlzdCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzRWRpdE1vZGUiLCJzZXRJc0VkaXRNb2RlIiwiX3VzZVN0YXRlMyIsIm5hbWUiLCJ3b3Jrc3BhY2UiLCJtZW1iZXJzIiwiZGVzY3JpcHRpb24iLCJfdXNlU3RhdGU0IiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1NlbGVjdFdvcmtzcGFjZSIsInNldFNob3dTZWxlY3RXb3Jrc3BhY2UiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiaWQiLCJ1c2VycyIsIm1hcCIsInVzZXIiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZvcm1hdFVzZXJzIiwiam9pbiIsImhhbmRsZUVkaXRDbGljayIsImhhbmRsZUNhbmNlbEVkaXQiLCJoYW5kbGVTYXZlIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJmaWVsZCIsInZhbHVlIiwicHJldiIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRNb2RhbFRpdGxlIiwiaXNGb3JtQ29tcGxldGUiLCJ3aW5kb3ciLCJoYXNXb3Jrc3BhY2VzRmVhdHVyZSIsInRyaW0iLCJsZW5ndGgiLCJpc1ZpZXdNb2RlIiwib25DbGljayIsImNoaWxkcmVuIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsImdyZXkiLCJ2YXJpYW50Iiwic2l6ZSIsImxhYmVsVGV4dCIsIndpdGhDb3VudGVyIiwibWF4TGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJoYW5kbGVTZXRUZXh0IiwiaGFzRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJ0aXRsZSIsImVuZEljb24iLCJjb2xvcnMiLCJkYXJrIiwib3BlbiIsImhhbmRsZUNsaWNrQWN0aW9uIiwiaHRtbEZvciIsIm9uQ2hhbmdlIiwic3BlbGxDaGVjayIsImRpc2FibGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGVhbURldGFpbHNNb2RhbC9UZWFtRGV0YWlsc01vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQ1VCdXR0b24gfSBmcm9tICdAcHJvamVjdGNvci9idXR0b24vbGliL2NvbXBvbmVudHMvQ1VCdXR0b24nXG5pbXBvcnQgeyBDcm9zcyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzJ1xuaW1wb3J0IHsgQ2hldnJvbkRvd24gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uRG93bidcbmltcG9ydCB7IElucHV0IH0gZnJvbSAnQHByb2plY3Rjb3IvaW5wdXQvbGliJ1xuaW1wb3J0IHsgQ1VTZWxlY3QgfSBmcm9tICdAcHJvamVjdGNvci9zZWxlY3Rvci9saWIvY29tcG9uZW50cy9DVVNlbGVjdCdcbmltcG9ydCB7IFRlYW1EZXRhaWxzTW9kYWxQcm9wcywgRm9ybURhdGEsIFdvcmtzcGFjZSB9IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC50eXBlcydcbmltcG9ydCB7IE1lbWJlclNlbGVjdGlvbiB9IGZyb20gJy4vTWVtYmVyc1NlbGVjdCdcbmltcG9ydCB7XG4gIFNDVERNT3ZlcmxheSxcbiAgU0NURE1Db250YWluZXIsXG4gIFNDVERNSGVhZGVyLFxuICBTQ1RETVRpdGxlLFxuICBTQ1RETUNsb3NlQnV0dG9uLFxuICBTQ1RETUNvbnRlbnQsXG4gIFNDVERNU2VjdGlvbixcbiAgU0NURE1TZWN0aW9uTGFiZWwsXG4gIFNDVERNU2VjdGlvblZhbHVlLFxuICBTQ1RETVVzZXJzTGlzdCxcbiAgU0NURE1Xb3Jrc3BhY2VUYWcsXG4gIFNDVERNQnV0dG9uc0NvbnRhaW5lcixcbiAgU0NCYWNrZHJvcElucHV0U2VsZWN0LFxuICBTQ0NVSXRlbXNMaXN0LFxuICBTQ0NVU2VsZWN0SXRlbSxcbiAgU0NXcmFwcGVyVGV4dEFyZWEsXG4gIFNDVGV4dEFyZWFMYWJlbCxcbiAgU0NUZXh0QXJlYSxcbiAgU0NUZXh0QXJlYUNvdW50ZXIsXG4gIFNDV3JhcHBlclNlbGVjdEljb24sXG59IGZyb20gJy4vVGVhbURldGFpbHNNb2RhbC5zdHlsZXMnXG5cbmV4cG9ydCBjb25zdCBUZWFtRGV0YWlsc01vZGFsID0gKHtcbiAgdGVhbSxcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBvbkVkaXQsXG4gIG9uQ3JlYXRlLFxuICBtb2RlID0gJ3ZpZXcnLFxuICB3b3Jrc3BhY2VzTGlzdCxcbn06IFRlYW1EZXRhaWxzTW9kYWxQcm9wcykgPT4ge1xuICBjb25zdCBbaXNFZGl0TW9kZSwgc2V0SXNFZGl0TW9kZV0gPSB1c2VTdGF0ZShtb2RlID09PSAnZWRpdCcgfHwgbW9kZSA9PT0gJ2NyZWF0ZScpXG4gIGNvbnN0IFtmb3JtRGF0YSwgc2V0Rm9ybURhdGFdID0gdXNlU3RhdGU8Rm9ybURhdGE+KHtcbiAgICBuYW1lOiAnJyxcbiAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgbWVtYmVyczogW10sXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9KVxuICBjb25zdCBbc2hvd1NlbGVjdFdvcmtzcGFjZSwgc2V0U2hvd1NlbGVjdFdvcmtzcGFjZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2kgY2FtYmlhIGVsIG1vZG8sIGFqdXN0YXIgaXNFZGl0TW9kZVxuICAgIHNldElzRWRpdE1vZGUobW9kZSA9PT0gJ2VkaXQnIHx8IG1vZGUgPT09ICdjcmVhdGUnKVxuICB9LCBbbW9kZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgLy8gUmVzZXRlYXIgY3VhbmRvIGVsIG1vZGFsIHNlIGNpZXJyYVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgICBtZW1iZXJzOiBbXSxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChtb2RlID09PSAnY3JlYXRlJykge1xuICAgICAgLy8gUmVzZXRlYXIgZm9ybXVsYXJpbyBwYXJhIGNyZWFyXG4gICAgICBzZXRGb3JtRGF0YSh7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB3b3Jrc3BhY2U6IG51bGwsXG4gICAgICAgIG1lbWJlcnM6IFtdLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAodGVhbSkge1xuICAgICAgLy8gQWN0dWFsaXphciBmb3JtdWxhcmlvIGN1YW5kbyBoYXkgdW4gZXF1aXBvIChtb2RvIHZpZXcgbyBlZGl0KVxuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBuYW1lOiB0ZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIHdvcmtzcGFjZTogdGVhbS53b3Jrc3BhY2UgPyB7IGlkOiB0ZWFtLndvcmtzcGFjZS5pZCwgbmFtZTogdGVhbS53b3Jrc3BhY2UubmFtZSB9IDogbnVsbCxcbiAgICAgICAgbWVtYmVyczogdGVhbS51c2Vycy5tYXAodXNlciA9PiAoeyBpZDogdXNlci5pZCwgbmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gIH0pKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRlYW0uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW3RlYW0sIG1vZGUsIGlzT3Blbl0pXG5cbiAgaWYgKCFpc09wZW4pIHJldHVybiBudWxsXG4gIGlmIChtb2RlID09PSAndmlldycgJiYgIWlzRWRpdE1vZGUgJiYgIXRlYW0pIHJldHVybiBudWxsXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VNb2RhbCA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKGZhbHNlKVxuICAgIHNldEZvcm1EYXRhKHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgd29ya3NwYWNlOiBudWxsLFxuICAgICAgbWVtYmVyczogW10sXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgfSlcbiAgICBvbkNsb3NlKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0ICYmICFpc0VkaXRNb2RlKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBmb3JtYXRVc2VycyA9ICgpID0+IHtcbiAgICBpZiAoIXRlYW0pIHJldHVybiAnJ1xuICAgIHJldHVybiB0ZWFtLnVzZXJzLm1hcCh1c2VyID0+IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YCkuam9pbignIC0gJylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRDbGljayA9ICgpID0+IHtcbiAgICBzZXRJc0VkaXRNb2RlKHRydWUpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDYW5jZWxFZGl0ID0gKCkgPT4ge1xuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2F2ZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScgJiYgb25DcmVhdGUpIHtcbiAgICAgIG9uQ3JlYXRlKGZvcm1EYXRhKVxuICAgIH0gZWxzZSBpZiAob25FZGl0KSB7XG4gICAgICBvbkVkaXQoZm9ybURhdGEpXG4gICAgfVxuICAgIHNldElzRWRpdE1vZGUoZmFsc2UpXG4gICAgaWYgKG1vZGUgPT09ICdjcmVhdGUnKSB7XG4gICAgICBoYW5kbGVDbG9zZU1vZGFsKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgV29ya3NwYWNlIHwgbnVsbCB8IE1lbWJlclNlbGVjdGlvbltdKSA9PiB7XG4gICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWVsZF06IHZhbHVlLFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgZ2V0TW9kYWxUaXRsZSA9ICgpID0+IHtcbiAgICBpZiAobW9kZSA9PT0gJ2NyZWF0ZScpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5jcmVhdGVUaXRsZScpXG4gICAgaWYgKGlzRWRpdE1vZGUpIHJldHVybiB0KCd0ZWFtcy5tb2RhbC5lZGl0VGl0bGUnKVxuICAgIHJldHVybiB0ZWFtPy5uYW1lIHx8ICcnXG4gIH1cblxuICBjb25zdCBpc0Zvcm1Db21wbGV0ZSA9IHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZVxuICAgID8gZm9ybURhdGEubmFtZS50cmltKCkubGVuZ3RoID4gMCAmJiBmb3JtRGF0YS53b3Jrc3BhY2UgIT09IG51bGxcbiAgICA6IGZvcm1EYXRhLm5hbWUudHJpbSgpLmxlbmd0aCA+IDBcblxuICBjb25zdCBpc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnICYmICFpc0VkaXRNb2RlXG5cbiAgcmV0dXJuIChcbiAgICA8U0NURE1PdmVybGF5IG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja30+XG4gICAgICA8U0NURE1Db250YWluZXI+XG4gICAgICAgIDxTQ1RETUhlYWRlcj5cbiAgICAgICAgICA8U0NURE1UaXRsZT57Z2V0TW9kYWxUaXRsZSgpfTwvU0NURE1UaXRsZT5cbiAgICAgICAgICA8U0NURE1DbG9zZUJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgIDxDcm9zcyB3aWR0aD17MjB9IGhlaWdodD17MjB9IGNvbG9yPXtwYWxsZXRlLmdyZXlbMzAwXX0gLz5cbiAgICAgICAgICA8L1NDVERNQ2xvc2VCdXR0b24+XG4gICAgICAgIDwvU0NURE1IZWFkZXI+XG5cbiAgICAgICAge2lzVmlld01vZGUgJiYgdGVhbSA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDVERNQ29udGVudD5cbiAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLnVzZXJzTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb25WYWx1ZT5cbiAgICAgICAgICAgICAgICAgIDxTQ1RETVVzZXJzTGlzdD57Zm9ybWF0VXNlcnMoKX08L1NDVERNVXNlcnNMaXN0PlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuXG4gICAgICAgICAgICAgIHt3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLndvcmtzcGFjZXNMYWJlbCcpfTwvU0NURE1TZWN0aW9uTGFiZWw+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgICAgIHt0ZWFtLndvcmtzcGFjZSA/IDxTQ1RETVdvcmtzcGFjZVRhZz57dGVhbS53b3Jrc3BhY2UubmFtZX08L1NDVERNV29ya3NwYWNlVGFnPiA6ICctJ31cbiAgICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uVmFsdWU+XG4gICAgICAgICAgICAgICAgPC9TQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgeyF3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgKFxuICAgICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uTGFiZWw+e3QoJ3RlYW1zLm1vZGFsLmRlc2NyaXB0aW9uTGFiZWwnKX08L1NDVERNU2VjdGlvbkxhYmVsPlxuICAgICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvblZhbHVlPnt0ZWFtLmRlc2NyaXB0aW9uIHx8ICctJ308L1NDVERNU2VjdGlvblZhbHVlPlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxTQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgICAgIDxDVUJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVDbG9zZU1vZGFsfT5cbiAgICAgICAgICAgICAgICB7dCgndGVhbXMuY2FuY2VsJyl9XG4gICAgICAgICAgICAgIDwvQ1VCdXR0b24+XG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8Q1VCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIHNpemU9XCJtZWRpdW1cIiBvbkNsaWNrPXtoYW5kbGVFZGl0Q2xpY2t9PlxuICAgICAgICAgICAgICAgICAge3QoJ3RlYW1zLm1vZGFsLmVkaXRCdXR0b24nKX1cbiAgICAgICAgICAgICAgICA8L0NVQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9TQ1RETUJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxTQ1RETUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxTQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2B0ZWFtLW5hbWUtJHt0ZWFtPy5pZCB8fCAnbmV3J30tJHttb2RlfS0ke2lzT3Blbn1gfVxuICAgICAgICAgICAgICAgICAgbGFiZWxUZXh0PXt0KCd0ZWFtcy5tb2RhbC5uYW1lTGFiZWwnKX1cbiAgICAgICAgICAgICAgICAgIHdpdGhDb3VudGVyXG4gICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9ezI1NX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5uYW1lIHx8ICh0ZWFtICYmIG1vZGUgPT09ICdlZGl0JyA/IHRlYW0ubmFtZSA6ICcnKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5uYW1lUGxhY2Vob2xkZXInKX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNldFRleHQ9e3ZhbHVlID0+IGhhbmRsZUlucHV0Q2hhbmdlKCduYW1lJywgdmFsdWUpfVxuICAgICAgICAgICAgICAgICAgaGFzRXJyb3I9e2Zvcm1EYXRhLm5hbWUubGVuZ3RoID4gMjU1fVxuICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlPXt0KCdtb2RhbC5uYW1lTWF4TGVuZ3RoRXJyb3InKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cblxuICAgICAgICAgICAgICB7Lyoge21vZGUgPT09ICdjcmVhdGUnICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPE1lbWJlcnNTZWxlY3QgdmFsdWU9e2Zvcm1EYXRhLm1lbWJlcnN9IG9uQ2hhbmdlPXtoYW5kbGVJbnB1dENoYW5nZX0gLz5cbiAgICAgICAgICAgICAgICA8L1NDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgKX0gKi99XG5cbiAgICAgICAgICAgICAge3dpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiAoXG4gICAgICAgICAgICAgICAgPFNDVERNU2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxDVVNlbGVjdFxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17dCgndGVhbXMubW9kYWwud29ya3NwYWNlVGl0bGUnKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3QoJ3RlYW1zLm1vZGFsLndvcmtzcGFjZVBsYWNlaG9sZGVyJyl9XG4gICAgICAgICAgICAgICAgICAgIGVuZEljb249e1xuICAgICAgICAgICAgICAgICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdFdvcmtzcGFjZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIGNvbG9yPXtwYWxsZXRlLmNvbG9ycy5kYXJrfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU0NXcmFwcGVyU2VsZWN0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEud29ya3NwYWNlPy5uYW1lIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICBvcGVuPXtzaG93U2VsZWN0V29ya3NwYWNlfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGlja0FjdGlvbj17KCkgPT4gc2V0U2hvd1NlbGVjdFdvcmtzcGFjZSghc2hvd1NlbGVjdFdvcmtzcGFjZSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0JhY2tkcm9wSW5wdXRTZWxlY3Qgb25DbGljaz17KCkgPT4gc2V0U2hvd1NlbGVjdFdvcmtzcGFjZShmYWxzZSl9IC8+XG4gICAgICAgICAgICAgICAgICAgIDxTQ0NVSXRlbXNMaXN0PlxuICAgICAgICAgICAgICAgICAgICAgIHt3b3Jrc3BhY2VzTGlzdC5tYXAod29ya3NwYWNlID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbSBrZXk9e3dvcmtzcGFjZS5pZH0gb25DbGljaz17KCkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ3dvcmtzcGFjZScsIHdvcmtzcGFjZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7d29ya3NwYWNlLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NDQ1VTZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L1NDQ1VJdGVtc0xpc3Q+XG4gICAgICAgICAgICAgICAgICA8L0NVU2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvU0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIHshd2luZG93Lmhhc1dvcmtzcGFjZXNGZWF0dXJlICYmIChcbiAgICAgICAgICAgICAgICA8U0NURE1TZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPFNDV3JhcHBlclRleHRBcmVhPlxuICAgICAgICAgICAgICAgICAgICA8U0NUZXh0QXJlYUxhYmVsIGh0bWxGb3I9XCJteVRleHRhcmVhXCI+e3QoJ3RlYW1zLm1vZGFsLmRlc2NyaXB0aW9uTGFiZWwnKX08L1NDVGV4dEFyZWFMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoJ2Rlc2NyaXB0aW9uJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCd0ZWFtcy5tb2RhbC5kZXNjcmlwdGlvblBsYWNlaG9sZGVyJyl9XG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJteVRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg9ezI1NX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFNDVGV4dEFyZWFDb3VudGVyPntmb3JtRGF0YS5kZXNjcmlwdGlvbi5sZW5ndGh9IC8gMjU1PC9TQ1RleHRBcmVhQ291bnRlcj5cbiAgICAgICAgICAgICAgICAgIDwvU0NXcmFwcGVyVGV4dEFyZWE+XG4gICAgICAgICAgICAgICAgPC9TQ1RETVNlY3Rpb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NDVERNQ29udGVudD5cblxuICAgICAgICAgICAgPFNDVERNQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPENVQnV0dG9uIHZhcmlhbnQ9XCJ0ZXh0XCIgc2l6ZT1cIm1lZGl1bVwiIG9uQ2xpY2s9e2hhbmRsZUNhbmNlbEVkaXR9PlxuICAgICAgICAgICAgICAgIHt0KCd0ZWFtcy5jYW5jZWwnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgICAgPENVQnV0dG9uIGRpc2FibGVkPXshaXNGb3JtQ29tcGxldGV9IHZhcmlhbnQ9XCJjb250YWluZWRcIiBzaXplPVwibWVkaXVtXCIgb25DbGljaz17aGFuZGxlU2F2ZX0+XG4gICAgICAgICAgICAgICAge21vZGUgPT09ICdjcmVhdGUnID8gdCgndGVhbXMuY3JlYXRlVGVhbScpIDogdCgndGVhbXMuc2F2ZUNoYW5nZXMnKX1cbiAgICAgICAgICAgICAgPC9DVUJ1dHRvbj5cbiAgICAgICAgICAgIDwvU0NURE1CdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9TQ1RETUNvbnRhaW5lcj5cbiAgICA8L1NDVERNT3ZlcmxheT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ2xELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLE9BQU9DLE9BQU8sTUFBTSxtQ0FBbUM7QUFDdkQsU0FBU0MsUUFBUSxRQUFRLDRDQUE0QztBQUNyRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTQyxRQUFRLFFBQVEsOENBQThDO0FBR3ZFLFNBQ0VDLFlBQVksRUFDWkMsY0FBYyxFQUNkQyxXQUFXLEVBQ1hD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