@projectcor/maia-components 2.35.4-0 → 2.35.4-1

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 (105) hide show
  1. package/lib/App.js +44 -19
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +4 -63
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +3 -31
  4. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +4 -16
  5. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
  6. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  8. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  9. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
  10. package/lib/components/atoms/MAIAInput/MAIAInput.js +17 -234
  11. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +2 -84
  12. package/lib/components/atoms/MAIAInput/styles.js +11 -15
  13. package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
  14. package/lib/components/atoms/icons/index.js +1 -5
  15. package/lib/components/index.js +2 -1
  16. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +11 -34
  17. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +9 -7
  18. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +8 -4
  19. package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
  20. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +23 -60
  21. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +69 -70
  22. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +242 -333
  23. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +104 -131
  24. package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -15
  25. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +8 -1
  26. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  27. package/lib/components/molecules/Sidebar/Sidebar.js +32 -34
  28. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  29. package/lib/components/molecules/Sidebar/Sidebar.spec.js +22 -2
  30. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +12 -21
  31. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +1 -8
  32. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +184 -430
  33. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +22 -78
  34. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +72 -132
  35. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +484 -0
  36. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
  37. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  38. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  39. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  40. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  41. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +217 -0
  42. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +102 -0
  43. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +147 -0
  44. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  45. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  46. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  47. package/lib/components/organisms/ChatAIPage/pageHomeMockCards.js +17 -0
  48. package/lib/constants/config.js +4 -1
  49. package/lib/constants/permissions/index.js +2 -2
  50. package/lib/constants/permissions/utils.js +6 -3
  51. package/lib/dev/DevMaiaPage.js +30 -0
  52. package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
  53. package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
  54. package/lib/hooks/useChatManager/useChatManager.js +4 -5
  55. package/lib/hooks/useContextMentions.js +56 -96
  56. package/lib/hooks/useEntitySearch.js +278 -92
  57. package/lib/hooks/useEvent.js +2 -15
  58. package/lib/hooks/useEvent.spec.js +2 -7
  59. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  60. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  61. package/lib/hooks/useMentionAllowedTypes.js +25 -9
  62. package/lib/hooks/useMentionAllowedTypes.spec.js +15 -4
  63. package/lib/hooks/useMentionPopover.js +33 -9
  64. package/lib/index.js +5 -2
  65. package/lib/lang/br/index.js +32 -39
  66. package/lib/lang/en/index.js +32 -39
  67. package/lib/lang/es/index.js +33 -40
  68. package/lib/lang/fr/index.js +32 -39
  69. package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
  70. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +3 -3
  71. package/lib/services/maia/Orchestrator/orchestrator.js +3 -6
  72. package/lib/services/maia/Skills/createSkill.js +1 -1
  73. package/lib/services/maia/Skills/createSkill.spec.js +5 -14
  74. package/lib/services/maia/Skills/getSkills.js +40 -70
  75. package/lib/services/maia/Skills/updateSkill.js +1 -1
  76. package/lib/services/maia/Skills/updateSkill.spec.js +4 -11
  77. package/lib/styles/cascade.js +29 -3
  78. package/lib/styles/transitions.js +3 -1
  79. package/lib/types/agentModal.js +1 -1
  80. package/lib/types/global.d.js +1 -1
  81. package/lib/types/skill.js +1 -1
  82. package/lib/utils/contextMentionTriggers.js +5 -2
  83. package/lib/utils/contextMentionTriggers.spec.js +6 -8
  84. package/lib/utils/maiaPageRoute.js +24 -0
  85. package/lib/utils/maiaPageRoute.spec.js +23 -0
  86. package/lib/utils/normalizeAgentConnectors.js +16 -44
  87. package/lib/utils/normalizeAgentConnectors.spec.js +13 -43
  88. package/lib/utils/renderContextMentions.js +18 -39
  89. package/package.json +1 -1
  90. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
  91. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  92. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
  93. package/lib/components/atoms/SkillsDropdown/index.js +0 -2
  94. package/lib/components/atoms/icons/PlusIcon.js +0 -29
  95. package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
  96. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
  97. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
  98. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -77
  99. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
  100. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -95
  101. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -96
  102. package/lib/hooks/useSkillsCatalog.js +0 -66
  103. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  104. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -72
  105. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
@@ -47,7 +47,8 @@ var useDerivedScope = function useDerivedScope() {
47
47
  mcpSlugs: mcpSlugs,
48
48
  agentEntity: agentEntity
49
49
  };
50
- }, [clientId, projectId, mcpSlugs, agentEntity]);
50
+ }, [clientId, projectId, mcpSlugs, agentEntity] // skills se inyecta en useMentionPopover
51
+ );
51
52
  };
52
53
 
53
54
  /**
@@ -60,6 +61,7 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
60
61
  var editorRef = _ref4.editorRef,
61
62
  popoverAnchorRef = _ref4.popoverAnchorRef,
62
63
  enabledTypes = _ref4.enabledTypes,
64
+ skills = _ref4.skills,
63
65
  onMentionAdded = _ref4.onMentionAdded;
64
66
  var _useT = useT(),
65
67
  t = _useT.t;
@@ -96,7 +98,12 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
96
98
  var hasEmittedOpen = useRef(false);
97
99
  var popoverRef = useRef(null);
98
100
  var getCaretRect = useCaretPosition();
99
- var scope = useDerivedScope();
101
+ var derivedScope = useDerivedScope();
102
+ var scope = useMemo(function () {
103
+ return skills ? _objectSpread(_objectSpread({}, derivedScope), {}, {
104
+ skills: skills
105
+ }) : derivedScope;
106
+ }, [derivedScope, skills]);
100
107
  var _useEntitySearch = useEntitySearch(activeType, scope),
101
108
  items = _useEntitySearch.items,
102
109
  loading = _useEntitySearch.loading,
@@ -106,7 +113,8 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
106
113
  isLoadingMore = _useEntitySearch.isLoadingMore,
107
114
  loadMore = _useEntitySearch.loadMore,
108
115
  searchValue = _useEntitySearch.searchValue,
109
- updateSearchValue = _useEntitySearch.updateSearchValue;
116
+ updateSearchValue = _useEntitySearch.updateSearchValue,
117
+ skillsCatalogEmpty = _useEntitySearch.skillsCatalogEmpty;
110
118
  useEffect(function () {
111
119
  if (!allowedTypes.includes(activeType)) {
112
120
  setActiveType(defaultType);
@@ -146,12 +154,19 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
146
154
  return;
147
155
  }
148
156
  if (trigger.active) {
157
+ // detectMentionTrigger marca @/ como atRunLength === -1 (slash consumido, no queda en query)
158
+ var isSkillTrigger = allowedTypes.includes('skill') && trigger.atRunLength === -1;
149
159
  var atRunTabTypes = getAtRunTabTypes(allowedTypes);
150
- var atRunTypesOrAll = atRunTabTypes.length > 0 ? atRunTabTypes : allowedTypes;
160
+ var atRunTypesOrAll = atRunTabTypes.length > 0 ? atRunTabTypes : allowedTypes.filter(function (type) {
161
+ return type !== 'skill';
162
+ });
151
163
  var isSlashTrigger = trigger.atRunLength < 0;
152
164
  var typeFromAt;
153
165
  var effectiveQuery;
154
- if (isSlashTrigger) {
166
+ if (isSkillTrigger) {
167
+ typeFromAt = 'skill';
168
+ effectiveQuery = trigger.query;
169
+ } else if (isSlashTrigger) {
155
170
  typeFromAt = getTypeFromTriggerSequence(trigger.atRunLength, allowedTypes, defaultType);
156
171
  effectiveQuery = trigger.query;
157
172
  } else {
@@ -208,9 +223,17 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
208
223
  close();
209
224
  }, [editorRef, onMentionAdded, event, close]);
210
225
  var handleTypeChange = useCallback(function (type) {
211
- var _editorRef$current3;
212
226
  setActiveType(type);
213
- (_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || _editorRef$current3.syncTriggerAtRunLength(getTriggerSequenceFromType(type, allowedTypes));
227
+ if (type === 'skill') {
228
+ var _editorRef$current3;
229
+ (_editorRef$current3 = editorRef.current) === null || _editorRef$current3 === void 0 || _editorRef$current3.syncSkillTrigger();
230
+ } else {
231
+ var _editorRef$current4;
232
+ var nextRunLength = getTriggerSequenceFromType(type, allowedTypes.filter(function (entityType) {
233
+ return entityType !== 'skill';
234
+ }));
235
+ (_editorRef$current4 = editorRef.current) === null || _editorRef$current4 === void 0 || _editorRef$current4.syncTriggerAtRunLength(nextRunLength);
236
+ }
214
237
  event(EVENTS.aiChatMentionTypeSwitch, {
215
238
  type: type
216
239
  });
@@ -312,6 +335,7 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
312
335
  loading: loading,
313
336
  error: error,
314
337
  hideRecentsLabel: hideRecentsLabel,
338
+ skillsCatalogEmpty: skillsCatalogEmpty,
315
339
  hasMore: hasMore,
316
340
  isLoadingMore: isLoadingMore,
317
341
  onReachListEnd: loadMore,
@@ -329,7 +353,7 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
329
353
  }
330
354
  })
331
355
  }));
332
- }, [popoverOpen, popoverPos, mentionPopoverZIndex, allowedTypes, activeType, handleTypeChange, items, loading, error, hideRecentsLabel, hasMore, isLoadingMore, loadMore, searchValue, tooltipZIndex, insertSelectedItem, activeIndex, isKeyboardNavActive]);
356
+ }, [popoverOpen, popoverPos, mentionPopoverZIndex, allowedTypes, activeType, handleTypeChange, items, loading, error, hideRecentsLabel, skillsCatalogEmpty, hasMore, isLoadingMore, loadMore, searchValue, tooltipZIndex, insertSelectedItem, activeIndex, isKeyboardNavActive]);
333
357
  return {
334
358
  popoverOpen: popoverOpen,
335
359
  resetMentionOpenTracking: resetMentionOpenTracking,
@@ -339,4 +363,4 @@ export var useMentionPopover = function useMentionPopover(_ref4) {
339
363
  close: close
340
364
  };
341
365
  };
342
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF0UnVuVGFiVHlwZXMiLCJnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSIsImdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlIiwianN4IiwiX2pzeCIsIk1FTlRJT05fUE9QT1ZFUl9HQVBfUFgiLCJNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYIiwiTUVOVElPTl9QT1BPVkVSX0ZBTExCQUNLX1dJRFRIX1BYIiwidXNlRGVyaXZlZFNjb3BlIiwiX3JlZiIsIl9jdHgkY2xpZW50JGlkIiwiX2N0eCRjbGllbnQiLCJfY3R4JGVudGl0eVZhbHVlcyIsIl9yZWYyIiwiX3JlZjMiLCJfY3R4JHByb2plY3QkaWQiLCJfY3R4JHByb2plY3QiLCJfY3R4JGVudGl0eVZhbHVlczIiLCJfY3R4JGNoaXBzUHJvamVjdCIsIl9jdHgkYWdlbnQkZW50aXR5IiwiX2N0eCRhZ2VudCIsIl9jdHgkYWdlbnQkY29ubmVjdG9ycyIsIl9jdHgkYWdlbnQyIiwiY3R4IiwiY2xpZW50SWQiLCJjbGllbnQiLCJpZCIsImVudGl0eVZhbHVlcyIsInByb2plY3RJZCIsInByb2plY3QiLCJjaGlwc1Byb2plY3QiLCJhZ2VudEVudGl0eSIsImFnZW50IiwiZW50aXR5IiwibWNwU2x1Z3NLZXkiLCJjb25uZWN0b3JzIiwiZmluZCIsImMiLCJncm91cCIsInNsdWdzIiwiam9pbiIsIm1jcFNsdWdzIiwiX2N0eCRhZ2VudCRjb25uZWN0b3JzMiIsIl9jdHgkYWdlbnQzIiwicmF3IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiU2V0IiwiZmlsdGVyIiwicyIsInRyaW0iLCJsZW5ndGgiLCJzb3J0IiwidXNlTWVudGlvblBvcG92ZXIiLCJfcmVmNCIsImVkaXRvclJlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJlbmFibGVkVHlwZXMiLCJvbk1lbnRpb25BZGRlZCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZU1lbnRpb25BbGxvd2VkVHlwIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJtZW50aW9uUG9wb3ZlclpJbmRleCIsInRvb2x0aXBaSW5kZXgiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicG9wb3Zlck9wZW4iLCJzZXRQb3BvdmVyT3BlbiIsIl91c2VTdGF0ZTUiLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJfdXNlU3RhdGU2IiwicG9wb3ZlclBvcyIsInNldFBvcG92ZXJQb3MiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzS2V5Ym9hcmROYXZBY3RpdmUiLCJzZXRJc0tleWJvYXJkTmF2QWN0aXZlIiwiaGFzRW1pdHRlZE9wZW4iLCJwb3BvdmVyUmVmIiwiZ2V0Q2FyZXRSZWN0Iiwic2NvcGUiLCJfdXNlRW50aXR5U2VhcmNoIiwiaXRlbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoaWRlUmVjZW50c0xhYmVsIiwiaGFzTW9yZSIsImlzTG9hZGluZ01vcmUiLCJsb2FkTW9yZSIsInNlYXJjaFZhbHVlIiwidXBkYXRlU2VhcmNoVmFsdWUiLCJpbmNsdWRlcyIsInBvc2l0aW9uUG9wb3ZlciIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1ciIsIl9lZGl0b3JSZWYkY3VycmVudCRnZSIsIl9lZGl0b3JSZWYkY3VycmVudCIsIl9lZGl0b3JSZWYkY3VycmVudCRnZTIiLCJfY2FyZXQkdG9wIiwiZnJvbUFuY2hvciIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJmcm9tRWRpdG9yIiwiZ2V0RWRpdG9yQ2xpZW50UmVjdCIsImNhbGwiLCJ3aWR0aFJlY3QiLCJjYXJldCIsImxlZnRTb3VyY2UiLCJ0b3BTb3VyY2UiLCJ0b3AiLCJ2aWV3cG9ydFciLCJ3aW5kb3ciLCJpbm5lcldpZHRoIiwidmlld3BvcnRIIiwiaW5uZXJIZWlnaHQiLCJNYXRoIiwibWF4IiwibWluIiwicmVzZXRNZW50aW9uT3BlblRyYWNraW5nIiwiY2xvc2UiLCJoYW5kbGVUcmlnZ2VyIiwidHJpZ2dlciIsImFjdGl2ZSIsImF0UnVuVGFiVHlwZXMiLCJhdFJ1blR5cGVzT3JBbGwiLCJpc1NsYXNoVHJpZ2dlciIsImF0UnVuTGVuZ3RoIiwidHlwZUZyb21BdCIsImVmZmVjdGl2ZVF1ZXJ5IiwicXVlcnkiLCJvdmVyZmxvd0F0Q291bnQiLCJlZmZlY3RpdmVBdFJ1bkxlbmd0aCIsImNvbmNhdCIsInJlcGVhdCIsImFpQ2hhdE1lbnRpb25PcGVuIiwidHlwZSIsImluc2VydFNlbGVjdGVkSXRlbSIsIml0ZW0iLCJfaXRlbSRyYXckY2xpZW50SWQiLCJfaXRlbSRyYXckY2xpZW50TmFtZSIsIl9pdGVtJHJhdyRwcm9qZWN0TmFtZSIsIl9pdGVtJHJhdyRmZWVJZCIsIl9pdGVtJHJhdyRmYXRoZXJJZCIsIl9pdGVtJHJhdyRmYXRoZXJUaXRsZSIsIl9pdGVtJHJhdyR0b3RhbFByb3llYyIsIl9pdGVtJHJhdyRuYW1lIiwiX2l0ZW0kcmF3JHBpY3R1cmUiLCJfaXRlbSRyYXckcG9zaXRpb25OYW0iLCJfaXRlbSRyYXckZW1haWwiLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwibWVudGlvbiIsImxhYmVsIiwicHJpbWFyeSIsIm1ldGFkYXRhIiwiY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwiZmVlSWQiLCJmYXRoZXJJZCIsImZhdGhlclRpdGxlIiwidG90YWxQcm95ZWN0b3MiLCJuYW1lIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsImVtYWlsIiwiaW5zZXJ0TWVudGlvbiIsImFpQ2hhdE1lbnRpb25TZWxlY3QiLCJTdHJpbmciLCJoYW5kbGVUeXBlQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50MyIsInN5bmNUcmlnZ2VyQXRSdW5MZW5ndGgiLCJhaUNoYXRNZW50aW9uVHlwZVN3aXRjaCIsImhhbmRsZUtleURvd24iLCJlIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJtZXRhS2V5IiwiYWx0S2V5IiwiaWR4IiwiaW5kZXhPZiIsImRlbHRhIiwibmV4dElkeCIsInByZXYiLCJ1bmRlZmluZWQiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVQb2ludGVyRG93bk91dHNpZGUiLCJtb3VzZUV2ZW50IiwiX3BvcG92ZXJSZWYkY3VycmVudCIsIl9wb3BvdmVyQW5jaG9yUmVmJGN1cjIiLCJ0YXJnZXQiLCJjb250YWlucyIsImRvY3VtZW50IiwicHJldklzTG9hZGluZ01vcmVSZWYiLCJwb3BvdmVyTm9kZSIsIl9vYmplY3RTcHJlYWQiLCJyZWYiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJjaGlsZHJlbiIsIm9uVHlwZUNoYW5nZSIsIm9uUmVhY2hMaXN0RW5kIiwia2V5Ym9hcmRIaW50IiwiZGVmYXVsdFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwib25Nb3VzZU1vdmVJbkxpc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHtcbiAgQ29udGV4dE1lbnRpb25Qb3BvdmVyLFxuICBNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSLFxuICBTQ01QQW5jaG9yLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBFbnRpdHlTZWFyY2hTY29wZSwgdXNlRW50aXR5U2VhcmNoIH0gZnJvbSAnLi91c2VFbnRpdHlTZWFyY2gnXG5pbXBvcnQgeyB1c2VNZW50aW9uQWxsb3dlZFR5cGVzIH0gZnJvbSAnLi91c2VNZW50aW9uQWxsb3dlZFR5cGVzJ1xuaW1wb3J0IHsgdXNlQ2FyZXRQb3NpdGlvbiB9IGZyb20gJy4vdXNlQ2FyZXRQb3NpdGlvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7XG4gIGdldEF0UnVuVGFiVHlwZXMsXG4gIGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlLFxuICBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSxcbn0gZnJvbSAnLi4vdXRpbHMvY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCA9IDRcbmNvbnN0IE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFggPSA4XG5jb25zdCBNRU5USU9OX1BPUE9WRVJfRkFMTEJBQ0tfV0lEVEhfUFggPSAzMjBcblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJPcHRpb25zID0ge1xuICBlZGl0b3JSZWY6IFJlZk9iamVjdDxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT5cbiAgLyoqXG4gICAqIE5vZG8gY3V5byBhbmNobyB5IGFsaW5lYWNpw7NuIGhvcml6b250YWwgZGVmaW5lbiBlbCBwb3BvdmVyIChwLiBlai4gd3JhcHBlciBkZWwgaW5wdXQgZW4gTUFJQSkuXG4gICAqIEVsIGFuY2xhIHZlcnRpY2FsIGVzIGVsIGNhcmV0IC8gdGV4dG8gZGVsIHRyaWdnZXIgYEBgLiBTaSBubyBoYXkgY2FyZXQsIHNlIHVzYSBlbCBib3JkZSBzdXBlcmlvciBkZSBlc3RlIG5vZG8uXG4gICAqL1xuICBwb3BvdmVyQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIE92ZXJyaWRlIGRlbCBzZXQgZGUgdGFicyBwZXJtaXRpZGFzOyBzaSBubyBzZSBwYXNhIHNlIGRlcml2YSBkZWwgYWdlbnQuICovXG4gIGVuYWJsZWRUeXBlcz86IENvbnRleHRFbnRpdHlUeXBlW11cbiAgLyoqIENhbGxiYWNrIGN1YW5kbyBlbCB1c3VhcmlvIGluc2VydGEgdW5hIG1lbnRpb24gdsOtYSBjbGljay90ZWNsYWRvLiAqL1xuICBvbk1lbnRpb25BZGRlZD86IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VNZW50aW9uUG9wb3ZlclJldHVybiA9IHtcbiAgcG9wb3Zlck9wZW46IGJvb2xlYW5cbiAgLyoqXG4gICAqIFJlaW5pY2lhIGVsIHRyYWNraW5nIGRlIGBBSV9DSEFUX01FTlRJT05fT1BFTmAgKHByaW1lcmEgYXBlcnR1cmEgcG9yIG1lbnNhamUpLlxuICAgKiBMbGFtYXIgdHJhcyBlbnZpYXIgZWwgbWVuc2FqZSBvIGFsIGNhbWJpYXIgZGUgY29udmVyc2FjacOzbi5cbiAgICovXG4gIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZzogKCkgPT4gdm9pZFxuICAvKiogUHJvY2VzYSBlbCB0cmlnZ2VyIHByb3ZlbmllbnRlIGRlbCBgQ29udGV4dE1lbnRpb25FZGl0b3Iub25JbnB1dGAuICovXG4gIGhhbmRsZVRyaWdnZXI6ICh0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9KSA9PiB2b2lkXG4gIC8qKlxuICAgKiBNYW5lam8gZGUgdGVjbGFzIHJlbGF0aXZhcyBhbCBwb3BvdmVyIChuYXZlZ2FjacOzbiwgc2VsZWNjacOzbiwgY2FtYmlvIGRlXG4gICAqIHRhYiB5IGVzY2FwZSkuIERldnVlbHZlIGB0cnVlYCBzaSBjb25zdW1pw7MgbGEga2V5LCBwYXJhIHF1ZSBlbCBjb25zdW1lclxuICAgKiBwdWVkYSBkZWNpZGlyIHNpIHNlZ3VpciBwcm9jZXNhbmRvIG90cmFzIHRlY2xhcyAocC5lai4gRW50ZXIgcGFyYSBlbnZpYXIpLlxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiBib29sZWFuXG4gIC8qKiBOb2RvIGRlbCBwb3BvdmVyOyBlbCBjb25zdW1lciBkZWJlIHBvcnRhcmxvIGNvbiBgY3JlYXRlUG9ydGFsYC4gKi9cbiAgcG9wb3Zlck5vZGU6IFJlYWN0Tm9kZSB8IG51bGxcbiAgLyoqIENpZXJyYSBlbCBwb3BvdmVyIHkgbGltcGlhIGVsIHF1ZXJ5LiAqL1xuICBjbG9zZTogKCkgPT4gdm9pZFxufVxuXG4vKipcbiAqIERlcml2YSBjbGllbnRJZCwgcHJvamVjdElkLCBhZ2VudEVudGl0eSB5IE1DUCBkZXNkZSBlbCBjb250ZXh0byBnbG9iYWwgKGluY2wuXG4gKiBgZW50aXR5VmFsdWVzYCB5IGBjaGlwc1Byb2plY3RgKSBwYXJhIGZpbHRyYXIgcmVjZW50cyB5IGLDunNxdWVkYSBHcmFwaFFMLlxuICovXG5jb25zdCB1c2VEZXJpdmVkU2NvcGUgPSAoKTogRW50aXR5U2VhcmNoU2NvcGUgPT4ge1xuICBjb25zdCBjdHggPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgY2xpZW50SWQgPSBjdHguY2xpZW50Py5pZCA/PyBjdHguZW50aXR5VmFsdWVzPy5jbGllbnRJZCA/PyBudWxsXG4gIGNvbnN0IHByb2plY3RJZCA9IGN0eC5wcm9qZWN0Py5pZCA/PyBjdHguZW50aXR5VmFsdWVzPy5wcm9qZWN0SWQgPz8gY3R4LmNoaXBzUHJvamVjdD8ucHJvamVjdElkID8/IG51bGxcbiAgY29uc3QgYWdlbnRFbnRpdHkgPSBjdHguYWdlbnQ/LmVudGl0eSA/PyBudWxsXG4gIGNvbnN0IG1jcFNsdWdzS2V5ID0gKGN0eC5hZ2VudD8uY29ubmVjdG9ycz8uZmluZChjID0+IGMuZ3JvdXAgPT09ICdNQ1AnKT8uc2x1Z3MgPz8gW10pLmpvaW4oJ3wnKVxuXG4gIGNvbnN0IG1jcFNsdWdzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcmF3ID0gY3R4LmFnZW50Py5jb25uZWN0b3JzPy5maW5kKGMgPT4gYy5ncm91cCA9PT0gJ01DUCcpPy5zbHVncyA/PyBbXVxuICAgIHJldHVybiBbLi4ubmV3IFNldChyYXcuZmlsdGVyKChzKTogcyBpcyBzdHJpbmcgPT4gdHlwZW9mIHMgPT09ICdzdHJpbmcnICYmIHMudHJpbSgpLmxlbmd0aCA+IDApKV0uc29ydCgpXG4gIH0sIFttY3BTbHVnc0tleV0pXG5cbiAgcmV0dXJuIHVzZU1lbW88RW50aXR5U2VhcmNoU2NvcGU+KFxuICAgICgpID0+ICh7IGNsaWVudElkLCBwcm9qZWN0SWQsIG1jcFNsdWdzLCBhZ2VudEVudGl0eSB9KSxcbiAgICBbY2xpZW50SWQsIHByb2plY3RJZCwgbWNwU2x1Z3MsIGFnZW50RW50aXR5XVxuICApXG59XG5cbi8qKlxuICogRW5jYXBzdWxhIGxhIGzDs2dpY2EgZGVsIHBvcG92ZXIgZGUgQC1tZW50aW9ucyAoZXN0YWRvLCBmZXRjaCBwb3IgdGFiLCBhbmFseXRpY3MsXG4gKiBwb3NpY2lvbmFtaWVudG8pLiBFbCBjb25zdW1lciBtYW50aWVuZSBlbCBlZGl0b3IgeSBlbCBlbnbDrW8gZGVsIG1lbnNhamUuXG4gKiBMb3MgZmlsdHJvcyBkZSBiw7pzcXVlZGEgdXNhbiBgdXNlRGVyaXZlZFNjb3BlYDogZXNwZWNpYWxpc3RhIHByb3llY3RvIGFjb3RhIHRhcmVhc1xuICogYWwgYHByb2plY3RJZGAgZGVsIGNvbnRleHRvOyBlc3BlY2lhbGlzdGEgY2xpZW50ZSwgcHJveWVjdG9zIGFsIGBjbGllbnRJZGAgKGVuIGBleHRyYWAgZGUgc2VhcmNoKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZU1lbnRpb25Qb3BvdmVyID0gKHtcbiAgZWRpdG9yUmVmLFxuICBwb3BvdmVyQW5jaG9yUmVmLFxuICBlbmFibGVkVHlwZXMsXG4gIG9uTWVudGlvbkFkZGVkLFxufTogVXNlTWVudGlvblBvcG92ZXJPcHRpb25zKTogVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlIH0gPSB1c2VNZW50aW9uQWxsb3dlZFR5cGVzKGVuYWJsZWRUeXBlcylcbiAgY29uc3QgbWVudGlvblBvcG92ZXJaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oZGVmYXVsdFR5cGUpXG4gIGNvbnN0IFtwb3BvdmVyT3Blbiwgc2V0UG9wb3Zlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwb3BvdmVyUG9zLCBzZXRQb3BvdmVyUG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7XG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzS2V5Ym9hcmROYXZBY3RpdmUsIHNldElzS2V5Ym9hcmROYXZBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhc0VtaXR0ZWRPcGVuID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwb3BvdmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZ2V0Q2FyZXRSZWN0ID0gdXNlQ2FyZXRQb3NpdGlvbigpXG5cbiAgY29uc3Qgc2NvcGUgPSB1c2VEZXJpdmVkU2NvcGUoKVxuICBjb25zdCB7IGl0ZW1zLCBsb2FkaW5nLCBlcnJvciwgaGlkZVJlY2VudHNMYWJlbCwgaGFzTW9yZSwgaXNMb2FkaW5nTW9yZSwgbG9hZE1vcmUsIHNlYXJjaFZhbHVlLCB1cGRhdGVTZWFyY2hWYWx1ZSB9ID1cbiAgICB1c2VFbnRpdHlTZWFyY2goYWN0aXZlVHlwZSwgc2NvcGUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFsbG93ZWRUeXBlcy5pbmNsdWRlcyhhY3RpdmVUeXBlKSkge1xuICAgICAgc2V0QWN0aXZlVHlwZShkZWZhdWx0VHlwZSlcbiAgICB9XG4gIH0sIFthbGxvd2VkVHlwZXMsIGFjdGl2ZVR5cGUsIGRlZmF1bHRUeXBlXSlcblxuICBjb25zdCBwb3NpdGlvblBvcG92ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgZnJvbUFuY2hvciA9IHBvcG92ZXJBbmNob3JSZWY/LmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgZnJvbUVkaXRvciA9IGVkaXRvclJlZi5jdXJyZW50Py5nZXRFZGl0b3JDbGllbnRSZWN0Py4oKSA/PyBudWxsXG4gICAgY29uc3Qgd2lkdGhSZWN0ID0gZnJvbUFuY2hvciA/PyBmcm9tRWRpdG9yXG4gICAgY29uc3QgY2FyZXQgPSBnZXRDYXJldFJlY3QoJ0AnKVxuXG4gICAgY29uc3Qgd2lkdGggPSB3aWR0aFJlY3QgJiYgd2lkdGhSZWN0LndpZHRoID4gMCA/IHdpZHRoUmVjdC53aWR0aCA6IE1FTlRJT05fUE9QT1ZFUl9GQUxMQkFDS19XSURUSF9QWFxuICAgIGNvbnN0IGxlZnRTb3VyY2UgPSB3aWR0aFJlY3QgJiYgd2lkdGhSZWN0LndpZHRoID4gMCA/IHdpZHRoUmVjdC5sZWZ0IDogY2FyZXQ/LmxlZnRcbiAgICBjb25zdCB0b3BTb3VyY2UgPSBjYXJldD8udG9wID8/ICh3aWR0aFJlY3QgJiYgd2lkdGhSZWN0LndpZHRoID4gMCA/IHdpZHRoUmVjdC50b3AgOiBudWxsKVxuXG4gICAgaWYgKGxlZnRTb3VyY2UgPT0gbnVsbCB8fCB0b3BTb3VyY2UgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCB2aWV3cG9ydFcgPSB3aW5kb3cuaW5uZXJXaWR0aFxuICAgIGNvbnN0IHZpZXdwb3J0SCA9IHdpbmRvdy5pbm5lckhlaWdodFxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1heChcbiAgICAgIE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFgsXG4gICAgICBNYXRoLm1pbih2aWV3cG9ydFcgLSB3aWR0aCAtIE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFgsIGxlZnRTb3VyY2UpXG4gICAgKVxuXG4gICAgLyoqIEFuY2hvIGRlbCBpbnB1dDsgYm9yZGUgaW5mZXJpb3IgfjRweCBwb3IgZW5jaW1hIGRlbCBgQGAgcXVlIGFicmUgbGFzIG1lbmNpb25lcy4gKi9cbiAgICBzZXRQb3BvdmVyUG9zKHtcbiAgICAgIHdpZHRoLFxuICAgICAgbGVmdCxcbiAgICAgIGJvdHRvbTogdmlld3BvcnRIIC0gdG9wU291cmNlICsgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCxcbiAgICB9KVxuICB9LCBbcG9wb3ZlckFuY2hvclJlZiwgZWRpdG9yUmVmLCBnZXRDYXJldFJlY3RdKVxuXG4gIGNvbnN0IHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gZmFsc2VcbiAgfSwgW10pXG5cbiAgY29uc3QgY2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0UG9wb3Zlck9wZW4oZmFsc2UpXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUoJycpXG4gIH0sIFt1cGRhdGVTZWFyY2hWYWx1ZV0pXG5cbiAgY29uc3QgaGFuZGxlVHJpZ2dlciA9IHVzZUNhbGxiYWNrKFxuICAgICh0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9KSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAocG9wb3Zlck9wZW4pIGNsb3NlKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0cmlnZ2VyLmFjdGl2ZSkge1xuICAgICAgICBjb25zdCBhdFJ1blRhYlR5cGVzID0gZ2V0QXRSdW5UYWJUeXBlcyhhbGxvd2VkVHlwZXMpXG4gICAgICAgIGNvbnN0IGF0UnVuVHlwZXNPckFsbCA9IGF0UnVuVGFiVHlwZXMubGVuZ3RoID4gMCA/IGF0UnVuVGFiVHlwZXMgOiBhbGxvd2VkVHlwZXNcbiAgICAgICAgY29uc3QgaXNTbGFzaFRyaWdnZXIgPSB0cmlnZ2VyLmF0UnVuTGVuZ3RoIDwgMFxuXG4gICAgICAgIGxldCB0eXBlRnJvbUF0OiBDb250ZXh0RW50aXR5VHlwZVxuICAgICAgICBsZXQgZWZmZWN0aXZlUXVlcnk6IHN0cmluZ1xuXG4gICAgICAgIGlmIChpc1NsYXNoVHJpZ2dlcikge1xuICAgICAgICAgIHR5cGVGcm9tQXQgPSBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSh0cmlnZ2VyLmF0UnVuTGVuZ3RoLCBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlKVxuICAgICAgICAgIGVmZmVjdGl2ZVF1ZXJ5ID0gdHJpZ2dlci5xdWVyeVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG92ZXJmbG93QXRDb3VudCA9IE1hdGgubWF4KDAsIHRyaWdnZXIuYXRSdW5MZW5ndGggLSBhdFJ1blRhYlR5cGVzLmxlbmd0aClcbiAgICAgICAgICBjb25zdCBlZmZlY3RpdmVBdFJ1bkxlbmd0aCA9IE1hdGgubWluKHRyaWdnZXIuYXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbC5sZW5ndGgpXG4gICAgICAgICAgZWZmZWN0aXZlUXVlcnkgPSBgJHsnQCcucmVwZWF0KG92ZXJmbG93QXRDb3VudCl9JHt0cmlnZ2VyLnF1ZXJ5fWBcbiAgICAgICAgICB0eXBlRnJvbUF0ID0gZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoZWZmZWN0aXZlQXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbCwgZGVmYXVsdFR5cGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgc2V0UG9wb3Zlck9wZW4odHJ1ZSlcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgICBpZiAoIWhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uT3BlbiwgeyB0eXBlOiB0eXBlRnJvbUF0IH0pXG4gICAgICAgICAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZShlZmZlY3RpdmVRdWVyeSlcbiAgICAgIH0gZWxzZSBpZiAocG9wb3Zlck9wZW4pIHtcbiAgICAgICAgY2xvc2UoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUsIHBvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXIsIHVwZGF0ZVNlYXJjaFZhbHVlLCBldmVudCwgY2xvc2VdXG4gIClcblxuICBjb25zdCBpbnNlcnRTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgICAgbGFiZWw6IGl0ZW0ucHJpbWFyeSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBjbGllbnRJZDogaXRlbS5yYXcuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICBjbGllbnROYW1lOiBpdGVtLnJhdy5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucmF3LnByb2plY3ROYW1lID8/IG51bGwsXG4gICAgICAgICAgZmVlSWQ6IGl0ZW0ucmF3LmZlZUlkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVySWQ6IGl0ZW0ucmF3LmZhdGhlcklkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVyVGl0bGU6IGl0ZW0ucmF3LmZhdGhlclRpdGxlID8/IG51bGwsXG4gICAgICAgICAgdG90YWxQcm95ZWN0b3M6IGl0ZW0ucmF3LnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gICAgICAgICAgbmFtZTogaXRlbS5yYXcubmFtZSA/PyBudWxsLFxuICAgICAgICAgIHBpY3R1cmU6IGl0ZW0ucmF3LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgICAgICBwb3NpdGlvbk5hbWU6IGl0ZW0ucmF3LnBvc2l0aW9uTmFtZSA/PyBudWxsLFxuICAgICAgICAgIGVtYWlsOiBpdGVtLnJhdy5lbWFpbCA/PyBudWxsLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydE1lbnRpb24obWVudGlvbilcbiAgICAgIG9uTWVudGlvbkFkZGVkPy4obWVudGlvbilcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uU2VsZWN0LCB7IHR5cGU6IG1lbnRpb24udHlwZSwgaWQ6IFN0cmluZyhtZW50aW9uLmlkKSB9KVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW2VkaXRvclJlZiwgb25NZW50aW9uQWRkZWQsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVR5cGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHtcbiAgICAgIHNldEFjdGl2ZVR5cGUodHlwZSlcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jVHJpZ2dlckF0UnVuTGVuZ3RoKGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlKHR5cGUsIGFsbG93ZWRUeXBlcykpXG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0TWVudGlvblR5cGVTd2l0Y2gsIHsgdHlwZSB9KVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZWRpdG9yUmVmLCBldmVudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiBib29sZWFuID0+IHtcbiAgICAgIGlmICghcG9wb3Zlck9wZW4gfHwgYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JykgJiYgKGUubWV0YUtleSB8fCBlLmFsdEtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNvbnN0IGlkeCA9IGFsbG93ZWRUeXBlcy5pbmRleE9mKGFjdGl2ZVR5cGUpXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMVxuICAgICAgICBjb25zdCBuZXh0SWR4ID0gKGlkeCArIGRlbHRhICsgYWxsb3dlZFR5cGVzLmxlbmd0aCkgJSBhbGxvd2VkVHlwZXMubGVuZ3RoXG4gICAgICAgIGhhbmRsZVR5cGVDaGFuZ2UoYWxsb3dlZFR5cGVzW25leHRJZHhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IChpdGVtcy5sZW5ndGggPiAwID8gTWF0aC5taW4ocHJldiArIDEsIGl0ZW1zLmxlbmd0aCAtIDEpIDogMCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IE1hdGgubWF4KHByZXYgLSAxLCAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGluc2VydFNlbGVjdGVkSXRlbShpdGVtc1thY3RpdmVJbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIFtwb3BvdmVyT3BlbiwgaXRlbXMsIGFsbG93ZWRUeXBlcywgYWN0aXZlVHlwZSwgYWN0aXZlSW5kZXgsIGluc2VydFNlbGVjdGVkSXRlbSwgY2xvc2UsIGhhbmRsZVR5cGVDaGFuZ2VdXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW3BvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXJdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQudGFyZ2V0IGFzIE5vZGUgfCBudWxsXG4gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuXG4gICAgICBpZiAocG9wb3ZlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgfSwgW3BvcG92ZXJPcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZl0pXG5cbiAgY29uc3QgcHJldklzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlXG4gICAgfVxuICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgc2V0QWN0aXZlSW5kZXgoMClcbiAgfSwgW2l0ZW1zLmxlbmd0aCwgYWN0aXZlVHlwZV0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXBvcG92ZXJPcGVuKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8U0NNUEFuY2hvclxuICAgICAgICByZWY9e3BvcG92ZXJSZWZ9XG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9wb3ZlclBvcy5ib3R0b219XG4gICAgICAgICRsZWZ0PXtwb3BvdmVyUG9zLmxlZnR9XG4gICAgICAgICR3aWR0aD17cG9wb3ZlclBvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17bWVudGlvblBvcG92ZXJaSW5kZXh9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIDxDb250ZXh0TWVudGlvblBvcG92ZXJcbiAgICAgICAgICBhbGxvd2VkVHlwZXM9e2FsbG93ZWRUeXBlc31cbiAgICAgICAgICBhY3RpdmVUeXBlPXthY3RpdmVUeXBlfVxuICAgICAgICAgIG9uVHlwZUNoYW5nZT17aGFuZGxlVHlwZUNoYW5nZX1cbiAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaGlkZVJlY2VudHNMYWJlbD17aGlkZVJlY2VudHNMYWJlbH1cbiAgICAgICAgICBoYXNNb3JlPXtoYXNNb3JlfVxuICAgICAgICAgIGlzTG9hZGluZ01vcmU9e2lzTG9hZGluZ01vcmV9XG4gICAgICAgICAgb25SZWFjaExpc3RFbmQ9e2xvYWRNb3JlfVxuICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICBrZXlib2FyZEhpbnQ9e3QoJ2NvbnRleHRNZW50aW9uLmtleWJvYXJkSGludCcsIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ05hdmVnYWNpw7NuIGVudHJlIHBlc3Rhw7FhczogQCwgQEAsIEBAQOKApiBlbiBvcmRlbi4gVGFtYmnDqW4gQWx0L0NtZCArIOKGkC/ihpInLFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2luc2VydFNlbGVjdGVkSXRlbX1cbiAgICAgICAgICBhY3RpdmVJbmRleD17YWN0aXZlSW5kZXh9XG4gICAgICAgICAgb25BY3RpdmVJbmRleENoYW5nZT17c2V0QWN0aXZlSW5kZXh9XG4gICAgICAgICAgaXNLZXlib2FyZE5hdkFjdGl2ZT17aXNLZXlib2FyZE5hdkFjdGl2ZX1cbiAgICAgICAgICBvbk1vdXNlTW92ZUluTGlzdD17KCkgPT4gc2V0SXNLZXlib2FyZE5hdkFjdGl2ZShmYWxzZSl9XG4gICAgICAgIC8+XG4gICAgICA8L1NDTVBBbmNob3I+XG4gICAgKVxuICB9LCBbXG4gICAgcG9wb3Zlck9wZW4sXG4gICAgcG9wb3ZlclBvcyxcbiAgICBtZW50aW9uUG9wb3ZlclpJbmRleCxcbiAgICBhbGxvd2VkVHlwZXMsXG4gICAgYWN0aXZlVHlwZSxcbiAgICBoYW5kbGVUeXBlQ2hhbmdlLFxuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdG9vbHRpcFpJbmRleCxcbiAgICBpbnNlcnRTZWxlY3RlZEl0ZW0sXG4gICAgYWN0aXZlSW5kZXgsXG4gICAgaXNLZXlib2FyZE5hdkFjdGl2ZSxcbiAgXSlcblxuICByZXR1cm4geyBwb3BvdmVyT3BlbiwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nLCBoYW5kbGVUcmlnZ2VyLCBoYW5kbGVLZXlEb3duLCBwb3BvdmVyTm9kZSwgY2xvc2UgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBSUVBLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxlQUFl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
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIk1BSUFfVEFTS19QQU5FTF9PVkVSTEFZX0FUVFIiLCJTQ01QQW5jaG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwidXNlRW50aXR5U2VhcmNoIiwidXNlTWVudGlvbkFsbG93ZWRUeXBlcyIsInVzZUNhcmV0UG9zaXRpb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF0UnVuVGFiVHlwZXMiLCJnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSIsImdldFR5cGVGcm9tVHJpZ2dlclNlcXVlbmNlIiwianN4IiwiX2pzeCIsIk1FTlRJT05fUE9QT1ZFUl9HQVBfUFgiLCJNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYIiwiTUVOVElPTl9QT1BPVkVSX0ZBTExCQUNLX1dJRFRIX1BYIiwidXNlRGVyaXZlZFNjb3BlIiwiX3JlZiIsIl9jdHgkY2xpZW50JGlkIiwiX2N0eCRjbGllbnQiLCJfY3R4JGVudGl0eVZhbHVlcyIsIl9yZWYyIiwiX3JlZjMiLCJfY3R4JHByb2plY3QkaWQiLCJfY3R4JHByb2plY3QiLCJfY3R4JGVudGl0eVZhbHVlczIiLCJfY3R4JGNoaXBzUHJvamVjdCIsIl9jdHgkYWdlbnQkZW50aXR5IiwiX2N0eCRhZ2VudCIsIl9jdHgkYWdlbnQkY29ubmVjdG9ycyIsIl9jdHgkYWdlbnQyIiwiY3R4IiwiY2xpZW50SWQiLCJjbGllbnQiLCJpZCIsImVudGl0eVZhbHVlcyIsInByb2plY3RJZCIsInByb2plY3QiLCJjaGlwc1Byb2plY3QiLCJhZ2VudEVudGl0eSIsImFnZW50IiwiZW50aXR5IiwibWNwU2x1Z3NLZXkiLCJjb25uZWN0b3JzIiwiZmluZCIsImMiLCJncm91cCIsInNsdWdzIiwiam9pbiIsIm1jcFNsdWdzIiwiX2N0eCRhZ2VudCRjb25uZWN0b3JzMiIsIl9jdHgkYWdlbnQzIiwicmF3IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiU2V0IiwiZmlsdGVyIiwicyIsInRyaW0iLCJsZW5ndGgiLCJzb3J0IiwidXNlTWVudGlvblBvcG92ZXIiLCJfcmVmNCIsImVkaXRvclJlZiIsInBvcG92ZXJBbmNob3JSZWYiLCJlbmFibGVkVHlwZXMiLCJza2lsbHMiLCJvbk1lbnRpb25BZGRlZCIsIl91c2VUIiwidCIsImV2ZW50IiwiX3VzZU1lbnRpb25BbGxvd2VkVHlwIiwiYWxsb3dlZFR5cGVzIiwiZGVmYXVsdFR5cGUiLCJtZW50aW9uUG9wb3ZlclpJbmRleCIsInRvb2x0aXBaSW5kZXgiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhY3RpdmVUeXBlIiwic2V0QWN0aXZlVHlwZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicG9wb3Zlck9wZW4iLCJzZXRQb3BvdmVyT3BlbiIsIl91c2VTdGF0ZTUiLCJib3R0b20iLCJsZWZ0Iiwid2lkdGgiLCJfdXNlU3RhdGU2IiwicG9wb3ZlclBvcyIsInNldFBvcG92ZXJQb3MiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImlzS2V5Ym9hcmROYXZBY3RpdmUiLCJzZXRJc0tleWJvYXJkTmF2QWN0aXZlIiwiaGFzRW1pdHRlZE9wZW4iLCJwb3BvdmVyUmVmIiwiZ2V0Q2FyZXRSZWN0IiwiZGVyaXZlZFNjb3BlIiwic2NvcGUiLCJfb2JqZWN0U3ByZWFkIiwiX3VzZUVudGl0eVNlYXJjaCIsIml0ZW1zIiwibG9hZGluZyIsImVycm9yIiwiaGlkZVJlY2VudHNMYWJlbCIsImhhc01vcmUiLCJpc0xvYWRpbmdNb3JlIiwibG9hZE1vcmUiLCJzZWFyY2hWYWx1ZSIsInVwZGF0ZVNlYXJjaFZhbHVlIiwic2tpbGxzQ2F0YWxvZ0VtcHR5IiwiaW5jbHVkZXMiLCJwb3NpdGlvblBvcG92ZXIiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJfZWRpdG9yUmVmJGN1cnJlbnQkZ2UyIiwiX2NhcmV0JHRvcCIsImZyb21BbmNob3IiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZnJvbUVkaXRvciIsImdldEVkaXRvckNsaWVudFJlY3QiLCJjYWxsIiwid2lkdGhSZWN0IiwiY2FyZXQiLCJsZWZ0U291cmNlIiwidG9wU291cmNlIiwidG9wIiwidmlld3BvcnRXIiwid2luZG93IiwiaW5uZXJXaWR0aCIsInZpZXdwb3J0SCIsImlubmVySGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsInJlc2V0TWVudGlvbk9wZW5UcmFja2luZyIsImNsb3NlIiwiaGFuZGxlVHJpZ2dlciIsInRyaWdnZXIiLCJhY3RpdmUiLCJpc1NraWxsVHJpZ2dlciIsImF0UnVuTGVuZ3RoIiwiYXRSdW5UYWJUeXBlcyIsImF0UnVuVHlwZXNPckFsbCIsInR5cGUiLCJpc1NsYXNoVHJpZ2dlciIsInR5cGVGcm9tQXQiLCJlZmZlY3RpdmVRdWVyeSIsInF1ZXJ5Iiwib3ZlcmZsb3dBdENvdW50IiwiZWZmZWN0aXZlQXRSdW5MZW5ndGgiLCJjb25jYXQiLCJyZXBlYXQiLCJhaUNoYXRNZW50aW9uT3BlbiIsImluc2VydFNlbGVjdGVkSXRlbSIsIml0ZW0iLCJfaXRlbSRyYXckY2xpZW50SWQiLCJfaXRlbSRyYXckY2xpZW50TmFtZSIsIl9pdGVtJHJhdyRwcm9qZWN0TmFtZSIsIl9pdGVtJHJhdyRmZWVJZCIsIl9pdGVtJHJhdyRmYXRoZXJJZCIsIl9pdGVtJHJhdyRmYXRoZXJUaXRsZSIsIl9pdGVtJHJhdyR0b3RhbFByb3llYyIsIl9pdGVtJHJhdyRuYW1lIiwiX2l0ZW0kcmF3JHBpY3R1cmUiLCJfaXRlbSRyYXckcG9zaXRpb25OYW0iLCJfaXRlbSRyYXckZW1haWwiLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwibWVudGlvbiIsImxhYmVsIiwicHJpbWFyeSIsIm1ldGFkYXRhIiwiY2xpZW50TmFtZSIsInByb2plY3ROYW1lIiwiZmVlSWQiLCJmYXRoZXJJZCIsImZhdGhlclRpdGxlIiwidG90YWxQcm95ZWN0b3MiLCJuYW1lIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsImVtYWlsIiwiaW5zZXJ0TWVudGlvbiIsImFpQ2hhdE1lbnRpb25TZWxlY3QiLCJTdHJpbmciLCJoYW5kbGVUeXBlQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50MyIsInN5bmNTa2lsbFRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwibmV4dFJ1bkxlbmd0aCIsImVudGl0eVR5cGUiLCJzeW5jVHJpZ2dlckF0UnVuTGVuZ3RoIiwiYWlDaGF0TWVudGlvblR5cGVTd2l0Y2giLCJoYW5kbGVLZXlEb3duIiwiZSIsImtleSIsInByZXZlbnREZWZhdWx0IiwibWV0YUtleSIsImFsdEtleSIsImlkeCIsImluZGV4T2YiLCJkZWx0YSIsIm5leHRJZHgiLCJwcmV2IiwidW5kZWZpbmVkIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlIiwibW91c2VFdmVudCIsIl9wb3BvdmVyUmVmJGN1cnJlbnQiLCJfcG9wb3ZlckFuY2hvclJlZiRjdXIyIiwidGFyZ2V0IiwiY29udGFpbnMiLCJkb2N1bWVudCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwicG9wb3Zlck5vZGUiLCJyZWYiLCJfZGVmaW5lUHJvcGVydHkiLCIkYm90dG9tIiwiJGxlZnQiLCIkd2lkdGgiLCIkekluZGV4Iiwib25Nb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJjaGlsZHJlbiIsIm9uVHlwZUNoYW5nZSIsIm9uUmVhY2hMaXN0RW5kIiwia2V5Ym9hcmRIaW50IiwiZGVmYXVsdFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJvbkFjdGl2ZUluZGV4Q2hhbmdlIiwib25Nb3VzZU1vdmVJbkxpc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlTWVudGlvblBvcG92ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleWJvYXJkRXZlbnQsXG4gIFJlYWN0Tm9kZSxcbiAgUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3JIYW5kbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHtcbiAgQ29udGV4dE1lbnRpb25Qb3BvdmVyLFxuICBNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSLFxuICBTQ01QQW5jaG9yLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2F0b21zL0NvbnRleHRNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IHVzZU1haWFUYXNrUGFuZWxaSW5kZXggfSBmcm9tICcuL3VzZU1haWFUYXNrUGFuZWxaSW5kZXgnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBFbnRpdHlTZWFyY2hTY29wZSwgdXNlRW50aXR5U2VhcmNoIH0gZnJvbSAnLi91c2VFbnRpdHlTZWFyY2gnXG5pbXBvcnQgeyB1c2VNZW50aW9uQWxsb3dlZFR5cGVzIH0gZnJvbSAnLi91c2VNZW50aW9uQWxsb3dlZFR5cGVzJ1xuaW1wb3J0IHsgdXNlQ2FyZXRQb3NpdGlvbiB9IGZyb20gJy4vdXNlQ2FyZXRQb3NpdGlvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUsIENvbnRleHRNZW50aW9uLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgU2tpbGwgfSBmcm9tICcuLi90eXBlcy9za2lsbCdcbmltcG9ydCB7XG4gIGdldEF0UnVuVGFiVHlwZXMsXG4gIGdldFRyaWdnZXJTZXF1ZW5jZUZyb21UeXBlLFxuICBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSxcbn0gZnJvbSAnLi4vdXRpbHMvY29udGV4dE1lbnRpb25UcmlnZ2VycydcblxuY29uc3QgTUVOVElPTl9QT1BPVkVSX0dBUF9QWCA9IDRcbmNvbnN0IE1FTlRJT05fUE9QT1ZFUl9WSUVXUE9SVF9QQURfUFggPSA4XG5jb25zdCBNRU5USU9OX1BPUE9WRVJfRkFMTEJBQ0tfV0lEVEhfUFggPSAzMjBcblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJPcHRpb25zID0ge1xuICBlZGl0b3JSZWY6IFJlZk9iamVjdDxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT5cbiAgLyoqXG4gICAqIE5vZG8gY3V5byBhbmNobyB5IGFsaW5lYWNpw7NuIGhvcml6b250YWwgZGVmaW5lbiBlbCBwb3BvdmVyIChwLiBlai4gd3JhcHBlciBkZWwgaW5wdXQgZW4gTUFJQSkuXG4gICAqIEVsIGFuY2xhIHZlcnRpY2FsIGVzIGVsIGNhcmV0IC8gdGV4dG8gZGVsIHRyaWdnZXIgYEBgLiBTaSBubyBoYXkgY2FyZXQsIHNlIHVzYSBlbCBib3JkZSBzdXBlcmlvciBkZSBlc3RlIG5vZG8uXG4gICAqL1xuICBwb3BvdmVyQW5jaG9yUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD5cbiAgLyoqIE92ZXJyaWRlIGRlbCBzZXQgZGUgdGFicyBwZXJtaXRpZGFzOyBzaSBubyBzZSBwYXNhIHNlIGRlcml2YSBkZWwgYWdlbnQuICovXG4gIGVuYWJsZWRUeXBlcz86IENvbnRleHRFbnRpdHlUeXBlW11cbiAgLyoqIFNraWxscyBpbnllY3RhZGFzIGRpcmVjdGFtZW50ZSAoZGV2L3Rlc3RpbmcpLiBTaSBzZSBwcm92ZWVuLCBzZSBvbWl0ZSBlbCBmZXRjaCBSRVNULiAqL1xuICBza2lsbHM/OiBTa2lsbFtdXG4gIC8qKiBDYWxsYmFjayBjdWFuZG8gZWwgdXN1YXJpbyBpbnNlcnRhIHVuYSBtZW50aW9uIHbDrWEgY2xpY2svdGVjbGFkby4gKi9cbiAgb25NZW50aW9uQWRkZWQ/OiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPSB7XG4gIHBvcG92ZXJPcGVuOiBib29sZWFuXG4gIC8qKlxuICAgKiBSZWluaWNpYSBlbCB0cmFja2luZyBkZSBgQUlfQ0hBVF9NRU5USU9OX09QRU5gIChwcmltZXJhIGFwZXJ0dXJhIHBvciBtZW5zYWplKS5cbiAgICogTGxhbWFyIHRyYXMgZW52aWFyIGVsIG1lbnNhamUgbyBhbCBjYW1iaWFyIGRlIGNvbnZlcnNhY2nDs24uXG4gICAqL1xuICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmc6ICgpID0+IHZvaWRcbiAgLyoqIFByb2Nlc2EgZWwgdHJpZ2dlciBwcm92ZW5pZW50ZSBkZWwgYENvbnRleHRNZW50aW9uRWRpdG9yLm9uSW5wdXRgLiAqL1xuICBoYW5kbGVUcmlnZ2VyOiAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4gdm9pZFxuICAvKipcbiAgICogTWFuZWpvIGRlIHRlY2xhcyByZWxhdGl2YXMgYWwgcG9wb3ZlciAobmF2ZWdhY2nDs24sIHNlbGVjY2nDs24sIGNhbWJpbyBkZVxuICAgKiB0YWIgeSBlc2NhcGUpLiBEZXZ1ZWx2ZSBgdHJ1ZWAgc2kgY29uc3VtacOzIGxhIGtleSwgcGFyYSBxdWUgZWwgY29uc3VtZXJcbiAgICogcHVlZGEgZGVjaWRpciBzaSBzZWd1aXIgcHJvY2VzYW5kbyBvdHJhcyB0ZWNsYXMgKHAuZWouIEVudGVyIHBhcmEgZW52aWFyKS5cbiAgICovXG4gIGhhbmRsZUtleURvd246IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gYm9vbGVhblxuICAvKiogTm9kbyBkZWwgcG9wb3ZlcjsgZWwgY29uc3VtZXIgZGViZSBwb3J0YXJsbyBjb24gYGNyZWF0ZVBvcnRhbGAuICovXG4gIHBvcG92ZXJOb2RlOiBSZWFjdE5vZGUgfCBudWxsXG4gIC8qKiBDaWVycmEgZWwgcG9wb3ZlciB5IGxpbXBpYSBlbCBxdWVyeS4gKi9cbiAgY2xvc2U6ICgpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgY2xpZW50SWQsIHByb2plY3RJZCwgYWdlbnRFbnRpdHkgeSBNQ1AgZGVzZGUgZWwgY29udGV4dG8gZ2xvYmFsIChpbmNsLlxuICogYGVudGl0eVZhbHVlc2AgeSBgY2hpcHNQcm9qZWN0YCkgcGFyYSBmaWx0cmFyIHJlY2VudHMgeSBiw7pzcXVlZGEgR3JhcGhRTC5cbiAqL1xuY29uc3QgdXNlRGVyaXZlZFNjb3BlID0gKCk6IEVudGl0eVNlYXJjaFNjb3BlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGNsaWVudElkID0gY3R4LmNsaWVudD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8uY2xpZW50SWQgPz8gbnVsbFxuICBjb25zdCBwcm9qZWN0SWQgPSBjdHgucHJvamVjdD8uaWQgPz8gY3R4LmVudGl0eVZhbHVlcz8ucHJvamVjdElkID8/IGN0eC5jaGlwc1Byb2plY3Q/LnByb2plY3RJZCA/PyBudWxsXG4gIGNvbnN0IGFnZW50RW50aXR5ID0gY3R4LmFnZW50Py5lbnRpdHkgPz8gbnVsbFxuICBjb25zdCBtY3BTbHVnc0tleSA9IChjdHguYWdlbnQ/LmNvbm5lY3RvcnM/LmZpbmQoYyA9PiBjLmdyb3VwID09PSAnTUNQJyk/LnNsdWdzID8/IFtdKS5qb2luKCd8JylcblxuICBjb25zdCBtY3BTbHVncyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJhdyA9IGN0eC5hZ2VudD8uY29ubmVjdG9ycz8uZmluZChjID0+IGMuZ3JvdXAgPT09ICdNQ1AnKT8uc2x1Z3MgPz8gW11cbiAgICByZXR1cm4gWy4uLm5ldyBTZXQocmF3LmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSAnc3RyaW5nJyAmJiBzLnRyaW0oKS5sZW5ndGggPiAwKSldLnNvcnQoKVxuICB9LCBbbWNwU2x1Z3NLZXldKVxuXG4gIHJldHVybiB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoeyBjbGllbnRJZCwgcHJvamVjdElkLCBtY3BTbHVncywgYWdlbnRFbnRpdHkgfSksXG4gICAgW2NsaWVudElkLCBwcm9qZWN0SWQsIG1jcFNsdWdzLCBhZ2VudEVudGl0eV0gLy8gc2tpbGxzIHNlIGlueWVjdGEgZW4gdXNlTWVudGlvblBvcG92ZXJcbiAgKVxufVxuXG4vKipcbiAqIEVuY2Fwc3VsYSBsYSBsw7NnaWNhIGRlbCBwb3BvdmVyIGRlIEAtbWVudGlvbnMgKGVzdGFkbywgZmV0Y2ggcG9yIHRhYiwgYW5hbHl0aWNzLFxuICogcG9zaWNpb25hbWllbnRvKS4gRWwgY29uc3VtZXIgbWFudGllbmUgZWwgZWRpdG9yIHkgZWwgZW52w61vIGRlbCBtZW5zYWplLlxuICogTG9zIGZpbHRyb3MgZGUgYsO6c3F1ZWRhIHVzYW4gYHVzZURlcml2ZWRTY29wZWA6IGVzcGVjaWFsaXN0YSBwcm95ZWN0byBhY290YSB0YXJlYXNcbiAqIGFsIGBwcm9qZWN0SWRgIGRlbCBjb250ZXh0bzsgZXNwZWNpYWxpc3RhIGNsaWVudGUsIHByb3llY3RvcyBhbCBgY2xpZW50SWRgIChlbiBgZXh0cmFgIGRlIHNlYXJjaCkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VNZW50aW9uUG9wb3ZlciA9ICh7XG4gIGVkaXRvclJlZixcbiAgcG9wb3ZlckFuY2hvclJlZixcbiAgZW5hYmxlZFR5cGVzLFxuICBza2lsbHMsXG4gIG9uTWVudGlvbkFkZGVkLFxufTogVXNlTWVudGlvblBvcG92ZXJPcHRpb25zKTogVXNlTWVudGlvblBvcG92ZXJSZXR1cm4gPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgeyBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlIH0gPSB1c2VNZW50aW9uQWxsb3dlZFR5cGVzKGVuYWJsZWRUeXBlcylcbiAgY29uc3QgbWVudGlvblBvcG92ZXJaSW5kZXggPSB1c2VNYWlhVGFza1BhbmVsWkluZGV4KDEyMDAsICdvdmVybGF5JylcbiAgY29uc3QgdG9vbHRpcFpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTUwMCwgJ292ZXJsYXknKVxuICBjb25zdCBbYWN0aXZlVHlwZSwgc2V0QWN0aXZlVHlwZV0gPSB1c2VTdGF0ZTxDb250ZXh0RW50aXR5VHlwZT4oZGVmYXVsdFR5cGUpXG4gIGNvbnN0IFtwb3BvdmVyT3Blbiwgc2V0UG9wb3Zlck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtwb3BvdmVyUG9zLCBzZXRQb3BvdmVyUG9zXSA9IHVzZVN0YXRlPHsgYm90dG9tOiBudW1iZXI7IGxlZnQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9Pih7XG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgd2lkdGg6IDAsXG4gIH0pXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzS2V5Ym9hcmROYXZBY3RpdmUsIHNldElzS2V5Ym9hcmROYXZBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGhhc0VtaXR0ZWRPcGVuID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBwb3BvdmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZ2V0Q2FyZXRSZWN0ID0gdXNlQ2FyZXRQb3NpdGlvbigpXG5cbiAgY29uc3QgZGVyaXZlZFNjb3BlID0gdXNlRGVyaXZlZFNjb3BlKClcbiAgY29uc3Qgc2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoc2tpbGxzID8geyAuLi5kZXJpdmVkU2NvcGUsIHNraWxscyB9IDogZGVyaXZlZFNjb3BlKSxcbiAgICBbZGVyaXZlZFNjb3BlLCBza2lsbHNdXG4gIClcbiAgY29uc3Qge1xuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWUsXG4gICAgc2tpbGxzQ2F0YWxvZ0VtcHR5LFxuICB9ID0gdXNlRW50aXR5U2VhcmNoKGFjdGl2ZVR5cGUsIHNjb3BlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoYWN0aXZlVHlwZSkpIHtcbiAgICAgIHNldEFjdGl2ZVR5cGUoZGVmYXVsdFR5cGUpXG4gICAgfVxuICB9LCBbYWxsb3dlZFR5cGVzLCBhY3RpdmVUeXBlLCBkZWZhdWx0VHlwZV0pXG5cbiAgY29uc3QgcG9zaXRpb25Qb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZyb21BbmNob3IgPSBwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgIGNvbnN0IGZyb21FZGl0b3IgPSBlZGl0b3JSZWYuY3VycmVudD8uZ2V0RWRpdG9yQ2xpZW50UmVjdD8uKCkgPz8gbnVsbFxuICAgIGNvbnN0IHdpZHRoUmVjdCA9IGZyb21BbmNob3IgPz8gZnJvbUVkaXRvclxuICAgIGNvbnN0IGNhcmV0ID0gZ2V0Q2FyZXRSZWN0KCdAJylcblxuICAgIGNvbnN0IHdpZHRoID0gd2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3Qud2lkdGggOiBNRU5USU9OX1BPUE9WRVJfRkFMTEJBQ0tfV0lEVEhfUFhcbiAgICBjb25zdCBsZWZ0U291cmNlID0gd2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3QubGVmdCA6IGNhcmV0Py5sZWZ0XG4gICAgY29uc3QgdG9wU291cmNlID0gY2FyZXQ/LnRvcCA/PyAod2lkdGhSZWN0ICYmIHdpZHRoUmVjdC53aWR0aCA+IDAgPyB3aWR0aFJlY3QudG9wIDogbnVsbClcblxuICAgIGlmIChsZWZ0U291cmNlID09IG51bGwgfHwgdG9wU291cmNlID09IG51bGwpIHJldHVyblxuXG4gICAgY29uc3Qgdmlld3BvcnRXID0gd2luZG93LmlubmVyV2lkdGhcbiAgICBjb25zdCB2aWV3cG9ydEggPSB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5tYXgoXG4gICAgICBNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYLFxuICAgICAgTWF0aC5taW4odmlld3BvcnRXIC0gd2lkdGggLSBNRU5USU9OX1BPUE9WRVJfVklFV1BPUlRfUEFEX1BYLCBsZWZ0U291cmNlKVxuICAgIClcblxuICAgIC8qKiBBbmNobyBkZWwgaW5wdXQ7IGJvcmRlIGluZmVyaW9yIH40cHggcG9yIGVuY2ltYSBkZWwgYEBgIHF1ZSBhYnJlIGxhcyBtZW5jaW9uZXMuICovXG4gICAgc2V0UG9wb3ZlclBvcyh7XG4gICAgICB3aWR0aCxcbiAgICAgIGxlZnQsXG4gICAgICBib3R0b206IHZpZXdwb3J0SCAtIHRvcFNvdXJjZSArIE1FTlRJT05fUE9QT1ZFUl9HQVBfUFgsXG4gICAgfSlcbiAgfSwgW3BvcG92ZXJBbmNob3JSZWYsIGVkaXRvclJlZiwgZ2V0Q2FyZXRSZWN0XSlcblxuICBjb25zdCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaGFzRW1pdHRlZE9wZW4uY3VycmVudCA9IGZhbHNlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFBvcG92ZXJPcGVuKGZhbHNlKVxuICAgIHVwZGF0ZVNlYXJjaFZhbHVlKCcnKVxuICB9LCBbdXBkYXRlU2VhcmNoVmFsdWVdKVxuXG4gIGNvbnN0IGhhbmRsZVRyaWdnZXIgPSB1c2VDYWxsYmFjayhcbiAgICAodHJpZ2dlcjogeyBhY3RpdmU6IGJvb2xlYW47IHF1ZXJ5OiBzdHJpbmc7IGF0UnVuTGVuZ3RoOiBudW1iZXIgfSkgPT4ge1xuICAgICAgaWYgKGFsbG93ZWRUeXBlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKHBvcG92ZXJPcGVuKSBjbG9zZSgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHJpZ2dlci5hY3RpdmUpIHtcbiAgICAgICAgLy8gZGV0ZWN0TWVudGlvblRyaWdnZXIgbWFyY2EgQC8gY29tbyBhdFJ1bkxlbmd0aCA9PT0gLTEgKHNsYXNoIGNvbnN1bWlkbywgbm8gcXVlZGEgZW4gcXVlcnkpXG4gICAgICAgIGNvbnN0IGlzU2tpbGxUcmlnZ2VyID0gYWxsb3dlZFR5cGVzLmluY2x1ZGVzKCdza2lsbCcpICYmIHRyaWdnZXIuYXRSdW5MZW5ndGggPT09IC0xXG4gICAgICAgIGNvbnN0IGF0UnVuVGFiVHlwZXMgPSBnZXRBdFJ1blRhYlR5cGVzKGFsbG93ZWRUeXBlcylcbiAgICAgICAgY29uc3QgYXRSdW5UeXBlc09yQWxsID0gYXRSdW5UYWJUeXBlcy5sZW5ndGggPiAwID8gYXRSdW5UYWJUeXBlcyA6IGFsbG93ZWRUeXBlcy5maWx0ZXIodHlwZSA9PiB0eXBlICE9PSAnc2tpbGwnKVxuICAgICAgICBjb25zdCBpc1NsYXNoVHJpZ2dlciA9IHRyaWdnZXIuYXRSdW5MZW5ndGggPCAwXG5cbiAgICAgICAgbGV0IHR5cGVGcm9tQXQ6IENvbnRleHRFbnRpdHlUeXBlXG4gICAgICAgIGxldCBlZmZlY3RpdmVRdWVyeTogc3RyaW5nXG5cbiAgICAgICAgaWYgKGlzU2tpbGxUcmlnZ2VyKSB7XG4gICAgICAgICAgdHlwZUZyb21BdCA9ICdza2lsbCdcbiAgICAgICAgICBlZmZlY3RpdmVRdWVyeSA9IHRyaWdnZXIucXVlcnlcbiAgICAgICAgfSBlbHNlIGlmIChpc1NsYXNoVHJpZ2dlcikge1xuICAgICAgICAgIHR5cGVGcm9tQXQgPSBnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSh0cmlnZ2VyLmF0UnVuTGVuZ3RoLCBhbGxvd2VkVHlwZXMsIGRlZmF1bHRUeXBlKVxuICAgICAgICAgIGVmZmVjdGl2ZVF1ZXJ5ID0gdHJpZ2dlci5xdWVyeVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG92ZXJmbG93QXRDb3VudCA9IE1hdGgubWF4KDAsIHRyaWdnZXIuYXRSdW5MZW5ndGggLSBhdFJ1blRhYlR5cGVzLmxlbmd0aClcbiAgICAgICAgICBjb25zdCBlZmZlY3RpdmVBdFJ1bkxlbmd0aCA9IE1hdGgubWluKHRyaWdnZXIuYXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbC5sZW5ndGgpXG4gICAgICAgICAgZWZmZWN0aXZlUXVlcnkgPSBgJHsnQCcucmVwZWF0KG92ZXJmbG93QXRDb3VudCl9JHt0cmlnZ2VyLnF1ZXJ5fWBcbiAgICAgICAgICB0eXBlRnJvbUF0ID0gZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UoZWZmZWN0aXZlQXRSdW5MZW5ndGgsIGF0UnVuVHlwZXNPckFsbCwgZGVmYXVsdFR5cGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgc2V0UG9wb3Zlck9wZW4odHJ1ZSlcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgICBpZiAoIWhhc0VtaXR0ZWRPcGVuLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uT3BlbiwgeyB0eXBlOiB0eXBlRnJvbUF0IH0pXG4gICAgICAgICAgICBoYXNFbWl0dGVkT3Blbi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRBY3RpdmVUeXBlKHR5cGVGcm9tQXQpXG4gICAgICAgICAgcG9zaXRpb25Qb3BvdmVyKClcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTZWFyY2hWYWx1ZShlZmZlY3RpdmVRdWVyeSlcbiAgICAgIH0gZWxzZSBpZiAocG9wb3Zlck9wZW4pIHtcbiAgICAgICAgY2xvc2UoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZGVmYXVsdFR5cGUsIHBvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXIsIHVwZGF0ZVNlYXJjaFZhbHVlLCBldmVudCwgY2xvc2VdXG4gIClcblxuICBjb25zdCBpbnNlcnRTZWxlY3RlZEl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICAoaXRlbTogQ29udGV4dE1lbnRpb25JdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW50aW9uOiBDb250ZXh0TWVudGlvbiA9IHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgICAgbGFiZWw6IGl0ZW0ucHJpbWFyeSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBjbGllbnRJZDogaXRlbS5yYXcuY2xpZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICBjbGllbnROYW1lOiBpdGVtLnJhdy5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucmF3LnByb2plY3ROYW1lID8/IG51bGwsXG4gICAgICAgICAgZmVlSWQ6IGl0ZW0ucmF3LmZlZUlkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVySWQ6IGl0ZW0ucmF3LmZhdGhlcklkID8/IG51bGwsXG4gICAgICAgICAgZmF0aGVyVGl0bGU6IGl0ZW0ucmF3LmZhdGhlclRpdGxlID8/IG51bGwsXG4gICAgICAgICAgdG90YWxQcm95ZWN0b3M6IGl0ZW0ucmF3LnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gICAgICAgICAgbmFtZTogaXRlbS5yYXcubmFtZSA/PyBudWxsLFxuICAgICAgICAgIHBpY3R1cmU6IGl0ZW0ucmF3LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgICAgICBwb3NpdGlvbk5hbWU6IGl0ZW0ucmF3LnBvc2l0aW9uTmFtZSA/PyBudWxsLFxuICAgICAgICAgIGVtYWlsOiBpdGVtLnJhdy5lbWFpbCA/PyBudWxsLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/Lmluc2VydE1lbnRpb24obWVudGlvbilcbiAgICAgIG9uTWVudGlvbkFkZGVkPy4obWVudGlvbilcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRNZW50aW9uU2VsZWN0LCB7IHR5cGU6IG1lbnRpb24udHlwZSwgaWQ6IFN0cmluZyhtZW50aW9uLmlkKSB9KVxuICAgICAgY2xvc2UoKVxuICAgIH0sXG4gICAgW2VkaXRvclJlZiwgb25NZW50aW9uQWRkZWQsIGV2ZW50LCBjbG9zZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVR5cGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHtcbiAgICAgIHNldEFjdGl2ZVR5cGUodHlwZSlcbiAgICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jU2tpbGxUcmlnZ2VyKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5leHRSdW5MZW5ndGggPSBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGFsbG93ZWRUeXBlcy5maWx0ZXIoZW50aXR5VHlwZSA9PiBlbnRpdHlUeXBlICE9PSAnc2tpbGwnKVxuICAgICAgICApXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5zeW5jVHJpZ2dlckF0UnVuTGVuZ3RoKG5leHRSdW5MZW5ndGgpXG4gICAgICB9XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0TWVudGlvblR5cGVTd2l0Y2gsIHsgdHlwZSB9KVxuICAgIH0sXG4gICAgW2FsbG93ZWRUeXBlcywgZWRpdG9yUmVmLCBldmVudF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiBib29sZWFuID0+IHtcbiAgICAgIGlmICghcG9wb3Zlck9wZW4gfHwgYWxsb3dlZFR5cGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNsb3NlKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JykgJiYgKGUubWV0YUtleSB8fCBlLmFsdEtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGNvbnN0IGlkeCA9IGFsbG93ZWRUeXBlcy5pbmRleE9mKGFjdGl2ZVR5cGUpXG4gICAgICAgIGNvbnN0IGRlbHRhID0gZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMVxuICAgICAgICBjb25zdCBuZXh0SWR4ID0gKGlkeCArIGRlbHRhICsgYWxsb3dlZFR5cGVzLmxlbmd0aCkgJSBhbGxvd2VkVHlwZXMubGVuZ3RoXG4gICAgICAgIGhhbmRsZVR5cGVDaGFuZ2UoYWxsb3dlZFR5cGVzW25leHRJZHhdKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IChpdGVtcy5sZW5ndGggPiAwID8gTWF0aC5taW4ocHJldiArIDEsIGl0ZW1zLmxlbmd0aCAtIDEpIDogMCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgc2V0SXNLZXlib2FyZE5hdkFjdGl2ZSh0cnVlKVxuICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2ID0+IE1hdGgubWF4KHByZXYgLSAxLCAwKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGluc2VydFNlbGVjdGVkSXRlbShpdGVtc1thY3RpdmVJbmRleF0pXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LFxuICAgIFtwb3BvdmVyT3BlbiwgaXRlbXMsIGFsbG93ZWRUeXBlcywgYWN0aXZlVHlwZSwgYWN0aXZlSW5kZXgsIGluc2VydFNlbGVjdGVkSXRlbSwgY2xvc2UsIGhhbmRsZVR5cGVDaGFuZ2VdXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcG9wb3Zlck9wZW4pIHJldHVybiB1bmRlZmluZWRcbiAgICBwb3NpdGlvblBvcG92ZXIoKVxuICAgIGNvbnN0IGhhbmRsZXIgPSAoKSA9PiBwb3NpdGlvblBvcG92ZXIoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVyLCB0cnVlKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlciwgdHJ1ZSlcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVyKVxuICAgIH1cbiAgfSwgW3BvcG92ZXJPcGVuLCBwb3NpdGlvblBvcG92ZXJdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb3BvdmVyT3BlbikgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd25PdXRzaWRlID0gKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IG1vdXNlRXZlbnQudGFyZ2V0IGFzIE5vZGUgfCBudWxsXG4gICAgICBpZiAoIXRhcmdldCkgcmV0dXJuXG4gICAgICBpZiAocG9wb3ZlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGlmIChwb3BvdmVyQW5jaG9yUmVmPy5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpKSByZXR1cm5cbiAgICAgIGNsb3NlKClcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUpXG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSlcbiAgfSwgW3BvcG92ZXJPcGVuLCBjbG9zZSwgcG9wb3ZlckFuY2hvclJlZl0pXG5cbiAgY29uc3QgcHJldklzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlXG4gICAgfVxuICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG4gICAgc2V0QWN0aXZlSW5kZXgoMClcbiAgfSwgW2l0ZW1zLmxlbmd0aCwgYWN0aXZlVHlwZV0pXG5cbiAgY29uc3QgcG9wb3Zlck5vZGUgPSB1c2VNZW1vPFJlYWN0Tm9kZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXBvcG92ZXJPcGVuKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8U0NNUEFuY2hvclxuICAgICAgICByZWY9e3BvcG92ZXJSZWZ9XG4gICAgICAgIHsuLi57IFtNQUlBX1RBU0tfUEFORUxfT1ZFUkxBWV9BVFRSXTogJycgfX1cbiAgICAgICAgJGJvdHRvbT17cG9wb3ZlclBvcy5ib3R0b219XG4gICAgICAgICRsZWZ0PXtwb3BvdmVyUG9zLmxlZnR9XG4gICAgICAgICR3aWR0aD17cG9wb3ZlclBvcy53aWR0aH1cbiAgICAgICAgJHpJbmRleD17bWVudGlvblBvcG92ZXJaSW5kZXh9XG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIDxDb250ZXh0TWVudGlvblBvcG92ZXJcbiAgICAgICAgICBhbGxvd2VkVHlwZXM9e2FsbG93ZWRUeXBlc31cbiAgICAgICAgICBhY3RpdmVUeXBlPXthY3RpdmVUeXBlfVxuICAgICAgICAgIG9uVHlwZUNoYW5nZT17aGFuZGxlVHlwZUNoYW5nZX1cbiAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgaGlkZVJlY2VudHNMYWJlbD17aGlkZVJlY2VudHNMYWJlbH1cbiAgICAgICAgICBza2lsbHNDYXRhbG9nRW1wdHk9e3NraWxsc0NhdGFsb2dFbXB0eX1cbiAgICAgICAgICBoYXNNb3JlPXtoYXNNb3JlfVxuICAgICAgICAgIGlzTG9hZGluZ01vcmU9e2lzTG9hZGluZ01vcmV9XG4gICAgICAgICAgb25SZWFjaExpc3RFbmQ9e2xvYWRNb3JlfVxuICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICBrZXlib2FyZEhpbnQ9e3QoJ2NvbnRleHRNZW50aW9uLmtleWJvYXJkSGludCcsIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ05hdmVnYWNpw7NuIGVudHJlIHBlc3Rhw7FhczogQCwgQEAsIEBAQOKApiBlbiBvcmRlbi4gVGFtYmnDqW4gQWx0L0NtZCArIOKGkC/ihpInLFxuICAgICAgICAgIH0pfVxuICAgICAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICAgICAgb25JdGVtU2VsZWN0ZWQ9e2luc2VydFNlbGVjdGVkSXRlbX1cbiAgICAgICAgICBhY3RpdmVJbmRleD17YWN0aXZlSW5kZXh9XG4gICAgICAgICAgb25BY3RpdmVJbmRleENoYW5nZT17c2V0QWN0aXZlSW5kZXh9XG4gICAgICAgICAgaXNLZXlib2FyZE5hdkFjdGl2ZT17aXNLZXlib2FyZE5hdkFjdGl2ZX1cbiAgICAgICAgICBvbk1vdXNlTW92ZUluTGlzdD17KCkgPT4gc2V0SXNLZXlib2FyZE5hdkFjdGl2ZShmYWxzZSl9XG4gICAgICAgIC8+XG4gICAgICA8L1NDTVBBbmNob3I+XG4gICAgKVxuICB9LCBbXG4gICAgcG9wb3Zlck9wZW4sXG4gICAgcG9wb3ZlclBvcyxcbiAgICBtZW50aW9uUG9wb3ZlclpJbmRleCxcbiAgICBhbGxvd2VkVHlwZXMsXG4gICAgYWN0aXZlVHlwZSxcbiAgICBoYW5kbGVUeXBlQ2hhbmdlLFxuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBza2lsbHNDYXRhbG9nRW1wdHksXG4gICAgaGFzTW9yZSxcbiAgICBpc0xvYWRpbmdNb3JlLFxuICAgIGxvYWRNb3JlLFxuICAgIHNlYXJjaFZhbHVlLFxuICAgIHRvb2x0aXBaSW5kZXgsXG4gICAgaW5zZXJ0U2VsZWN0ZWRJdGVtLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIGlzS2V5Ym9hcmROYXZBY3RpdmUsXG4gIF0pXG5cbiAgcmV0dXJuIHsgcG9wb3Zlck9wZW4sIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgaGFuZGxlVHJpZ2dlciwgaGFuZGxlS2V5RG93biwgcG9wb3Zlck5vZGUsIGNsb3NlIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUlFQSxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFFZCxTQUNFQyxxQkFBcUIsRUFDckJDLDRCQUE0QixFQUM1QkMsVUFBVSxRQUNMLDJDQUEyQztBQUNsRCxTQUFTQyxzQkFBc0IsUUFBUSwwQkFBMEI7QUFDakUsU0FBU0MsZ0JBQWdCLFFBQVEsMkJBQTJCO0FBQzVELFNBQVNDLElBQUksUUFBUSxRQUFRO0FBQzdCO0FBQ0EsU0FBNEJDLGVBQWUsUUFBUSxtQkFBbUI7QUFDdEUsU0FBU0Msc0JBQXNCLFFBQVEsMEJBQTBCO0FBQ2pFLFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxZQUFZO0FBRzdDLFNBQ0VDLGdCQUFnQixFQUNoQkMsMEJBQTBCLEVBQzFCQywwQkFBMEIsUUFDckIsaUNBQWlDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXhDLElBQU1DLHNCQUFzQixHQUFHLENBQUM7QUFDaEMsSUFBTUMsK0JBQStCLEdBQUcsQ0FBQztBQUN6QyxJQUFNQyxpQ0FBaUMsR0FBRyxHQUFHO0FBc0M3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUE0QjtFQUFBLElBQUFDLElBQUEsRUFBQUMsY0FB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
package/lib/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { StrictMode } from 'react';
3
3
  import { createRoot } from 'react-dom/client';
4
+ import { BrowserRouter } from 'react-router-dom';
4
5
  import App from './App';
5
6
  import './index.css';
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -25,6 +26,8 @@ window.addEventListener('unhandledrejection', function (e) {
25
26
  });
26
27
  var root = createRoot(document.getElementById('root'));
27
28
  root.render(/*#__PURE__*/_jsx(StrictMode, {
28
- children: /*#__PURE__*/_jsx(App, {})
29
+ children: /*#__PURE__*/_jsx(BrowserRouter, {
30
+ children: /*#__PURE__*/_jsx(App, {})
31
+ })
29
32
  }));
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJpY3RNb2RlIiwiY3JlYXRlUm9vdCIsIkFwcCIsImpzeCIsIl9qc3giLCJpc0NodW5rTG9hZEVycm9yIiwibXNnIiwiaW5jbHVkZXMiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsIl9yZWYiLCJfbWVzc2FnZSIsIl9lJGVycm9yIiwiU3RyaW5nIiwiZXJyb3IiLCJtZXNzYWdlIiwicHJldmVudERlZmF1bHQiLCJsb2NhdGlvbiIsInJlbG9hZCIsIl9lJHJlYXNvbiIsInJlYXNvbiIsInJvb3QiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwicmVuZGVyIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IFN0cmljdE1vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcbmltcG9ydCAnLi9pbmRleC5jc3MnXG5cbmNvbnN0IGlzQ2h1bmtMb2FkRXJyb3IgPSAobXNnOiBzdHJpbmcpID0+IG1zZy5pbmNsdWRlcygnQ2h1bmtMb2FkRXJyb3InKSB8fCBtc2cuaW5jbHVkZXMoJ0xvYWRpbmcgY2h1bmsnKVxuXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoZTogRXJyb3JFdmVudCkgPT4ge1xuICBjb25zdCBtc2cgPSBTdHJpbmcoKGUuZXJyb3IgYXMgYW55KT8ubWVzc2FnZSA/PyBlLm1lc3NhZ2UgPz8gJycpXG4gIGlmIChpc0NodW5rTG9hZEVycm9yKG1zZykpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgfVxufSlcblxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIChlOiBQcm9taXNlUmVqZWN0aW9uRXZlbnQpID0+IHtcbiAgY29uc3QgbXNnID0gU3RyaW5nKChlLnJlYXNvbiBhcyBhbnkpPy5tZXNzYWdlIHx8IGUucmVhc29uKVxuICBpZiAoaXNDaHVua0xvYWRFcnJvcihtc2cpKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gIH1cbn0pXG5cbmNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JykhKVxuXG5yb290LnJlbmRlcihcbiAgPFN0cmljdE1vZGU+XG4gICAgPEFwcCAvPlxuICA8L1N0cmljdE1vZGU+XG4pXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsVUFBVSxRQUFRLE9BQU87QUFDbEMsU0FBU0MsVUFBVSxRQUFRLGtCQUFrQjtBQUM3QyxPQUFPQyxHQUFHLE1BQU0sT0FBTztBQUN2QixPQUFPLGFBQWE7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFcEIsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsR0FBVztFQUFBLE9BQUtBLEdBQUcsQ0FBQ0MsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUlELEdBQUcsQ0FBQ0MsUUFBUSxDQUFDLGVBQWUsQ0FBQztBQUFBO0FBRXpHQyxNQUFNLENBQUNDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFDQyxDQUFhLEVBQUs7RUFBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsRUFBQUMsUUFBQTtFQUNsRCxJQUFNUCxHQUFHLEdBQUdRLE1BQU0sRUFBQUgsSUFBQSxJQUFBQyxRQUFBLElBQUFDLFFBQUEsR0FBRUgsQ0FBQyxDQUFDSyxLQUFLLGNBQUFGLFFBQUEsdUJBQVJBLFFBQUEsQ0FBa0JHLE9BQU8sY0FBQUosUUFBQSxjQUFBQSxRQUFBLEdBQUlGLENBQUMsQ0FBQ00sT0FBTyxjQUFBTCxJQUFBLGNBQUFBLElBQUEsR0FBSSxFQUFFLENBQUM7RUFDaEUsSUFBSU4sZ0JBQWdCLENBQUNDLEdBQUcsQ0FBQyxFQUFFO0lBQ3pCSSxDQUFDLENBQUNPLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCVCxNQUFNLENBQUNVLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7RUFDMUI7QUFDRixDQUFDLENBQUM7QUFFRlgsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxVQUFDQyxDQUF3QixFQUFLO0VBQUEsSUFBQVUsU0FBQTtFQUMxRSxJQUFNZCxHQUFHLEdBQUdRLE1BQU0sQ0FBQyxFQUFBTSxTQUFBLEdBQUNWLENBQUMsQ0FBQ1csTUFBTSxjQUFBRCxTQUFBLHVCQUFUQSxTQUFBLENBQW1CSixPQUFPLEtBQUlOLENBQUMsQ0FBQ1csTUFBTSxDQUFDO0VBQzFELElBQUloQixnQkFBZ0IsQ0FBQ0MsR0FBRyxDQUFDLEVBQUU7SUFDekJJLENBQUMsQ0FBQ08sY0FBYyxDQUFDLENBQUM7SUFDbEJULE1BQU0sQ0FBQ1UsUUFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQztFQUMxQjtBQUNGLENBQUMsQ0FBQztBQUVGLElBQU1HLElBQUksR0FBR3JCLFVBQVUsQ0FBQ3NCLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0FBRXpERixJQUFJLENBQUNHLE1BQU0sY0FDVHJCLElBQUEsQ0FBQ0osVUFBVTtFQUFBMEIsUUFBQSxlQUNUdEIsSUFBQSxDQUFDRixHQUFHLElBQUU7QUFBQyxDQUNHLENBQ2QsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJpY3RNb2RlIiwiY3JlYXRlUm9vdCIsIkJyb3dzZXJSb3V0ZXIiLCJBcHAiLCJqc3giLCJfanN4IiwiaXNDaHVua0xvYWRFcnJvciIsIm1zZyIsImluY2x1ZGVzIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJfcmVmIiwiX21lc3NhZ2UiLCJfZSRlcnJvciIsIlN0cmluZyIsImVycm9yIiwibWVzc2FnZSIsInByZXZlbnREZWZhdWx0IiwibG9jYXRpb24iLCJyZWxvYWQiLCJfZSRyZWFzb24iLCJyZWFzb24iLCJyb290IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInJlbmRlciIsImNoaWxkcmVuIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBTdHJpY3RNb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVSb290IH0gZnJvbSAncmVhY3QtZG9tL2NsaWVudCdcbmltcG9ydCB7IEJyb3dzZXJSb3V0ZXIgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuaW1wb3J0IEFwcCBmcm9tICcuL0FwcCdcbmltcG9ydCAnLi9pbmRleC5jc3MnXG5cbmNvbnN0IGlzQ2h1bmtMb2FkRXJyb3IgPSAobXNnOiBzdHJpbmcpID0+IG1zZy5pbmNsdWRlcygnQ2h1bmtMb2FkRXJyb3InKSB8fCBtc2cuaW5jbHVkZXMoJ0xvYWRpbmcgY2h1bmsnKVxuXG53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoZTogRXJyb3JFdmVudCkgPT4ge1xuICBjb25zdCBtc2cgPSBTdHJpbmcoKGUuZXJyb3IgYXMgYW55KT8ubWVzc2FnZSA/PyBlLm1lc3NhZ2UgPz8gJycpXG4gIGlmIChpc0NodW5rTG9hZEVycm9yKG1zZykpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgfVxufSlcblxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIChlOiBQcm9taXNlUmVqZWN0aW9uRXZlbnQpID0+IHtcbiAgY29uc3QgbXNnID0gU3RyaW5nKChlLnJlYXNvbiBhcyBhbnkpPy5tZXNzYWdlIHx8IGUucmVhc29uKVxuICBpZiAoaXNDaHVua0xvYWRFcnJvcihtc2cpKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gIH1cbn0pXG5cbmNvbnN0IHJvb3QgPSBjcmVhdGVSb290KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JykhKVxuXG5yb290LnJlbmRlcihcbiAgPFN0cmljdE1vZGU+XG4gICAgPEJyb3dzZXJSb3V0ZXI+XG4gICAgICA8QXBwIC8+XG4gICAgPC9Ccm93c2VyUm91dGVyPlxuICA8L1N0cmljdE1vZGU+XG4pXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EsVUFBVSxRQUFRLE9BQU87QUFDbEMsU0FBU0MsVUFBVSxRQUFRLGtCQUFrQjtBQUM3QyxTQUFTQyxhQUFhLFFBQVEsa0JBQWtCO0FBQ2hELE9BQU9DLEdBQUcsTUFBTSxPQUFPO0FBQ3ZCLE9BQU8sYUFBYTtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUVwQixJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFJQyxHQUFXO0VBQUEsT0FBS0EsR0FBRyxDQUFDQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSUQsR0FBRyxDQUFDQyxRQUFRLENBQUMsZUFBZSxDQUFDO0FBQUE7QUFFekdDLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFVBQUNDLENBQWEsRUFBSztFQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxFQUFBQyxRQUFBO0VBQ2xELElBQU1QLEdBQUcsR0FBR1EsTUFBTSxFQUFBSCxJQUFBLElBQUFDLFFBQUEsSUFBQUMsUUFBQSxHQUFFSCxDQUFDLENBQUNLLEtBQUssY0FBQUYsUUFBQSx1QkFBUkEsUUFBQSxDQUFrQkcsT0FBTyxjQUFBSixRQUFBLGNBQUFBLFFBQUEsR0FBSUYsQ0FBQyxDQUFDTSxPQUFPLGNBQUFMLElBQUEsY0FBQUEsSUFBQSxHQUFJLEVBQUUsQ0FBQztFQUNoRSxJQUFJTixnQkFBZ0IsQ0FBQ0MsR0FBRyxDQUFDLEVBQUU7SUFDekJJLENBQUMsQ0FBQ08sY0FBYyxDQUFDLENBQUM7SUFDbEJULE1BQU0sQ0FBQ1UsUUFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQztFQUMxQjtBQUNGLENBQUMsQ0FBQztBQUVGWCxNQUFNLENBQUNDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLFVBQUNDLENBQXdCLEVBQUs7RUFBQSxJQUFBVSxTQUFBO0VBQzFFLElBQU1kLEdBQUcsR0FBR1EsTUFBTSxDQUFDLEVBQUFNLFNBQUEsR0FBQ1YsQ0FBQyxDQUFDVyxNQUFNLGNBQUFELFNBQUEsdUJBQVRBLFNBQUEsQ0FBbUJKLE9BQU8sS0FBSU4sQ0FBQyxDQUFDVyxNQUFNLENBQUM7RUFDMUQsSUFBSWhCLGdCQUFnQixDQUFDQyxHQUFHLENBQUMsRUFBRTtJQUN6QkksQ0FBQyxDQUFDTyxjQUFjLENBQUMsQ0FBQztJQUNsQlQsTUFBTSxDQUFDVSxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO0VBQzFCO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsSUFBTUcsSUFBSSxHQUFHdEIsVUFBVSxDQUFDdUIsUUFBUSxDQUFDQyxjQUFjLENBQUMsTUFBTSxDQUFFLENBQUM7QUFFekRGLElBQUksQ0FBQ0csTUFBTSxjQUNUckIsSUFBQSxDQUFDTCxVQUFVO0VBQUEyQixRQUFBLGVBQ1R0QixJQUFBLENBQUNILGFBQWE7SUFBQXlCLFFBQUEsZUFDWnRCLElBQUEsQ0FBQ0YsR0FBRyxJQUFFO0VBQUMsQ0FDTTtBQUFDLENBQ04sQ0FDZCxDQUFDIiwiaWdub3JlTGlzdCI6W119