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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +6 -2
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
  4. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  5. package/lib/components/atoms/Chip/Chip.spec.js +32 -0
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  7. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  8. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  9. package/lib/components/atoms/MAIAInput/MAIAInput.js +45 -3
  10. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +283 -0
  11. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
  12. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  13. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  14. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  15. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
  16. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  17. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
  18. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  19. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +20 -5
  20. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  21. package/lib/components/molecules/ChatFooter/ChatFooter.js +13 -1
  22. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +105 -0
  23. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  24. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  25. package/lib/components/molecules/Sidebar/Sidebar.js +9 -3
  26. package/lib/components/molecules/Sidebar/Sidebar.spec.js +183 -0
  27. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +12 -7
  28. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
  29. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +66 -7
  30. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +293 -0
  31. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  32. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  33. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  34. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  35. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
  36. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
  37. package/lib/hooks/useCaretPosition.spec.js +58 -0
  38. package/lib/hooks/useDebounce.spec.js +42 -0
  39. package/lib/hooks/useEvent.js +15 -2
  40. package/lib/hooks/useEvent.spec.js +40 -0
  41. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  42. package/lib/hooks/useModal/useModal.spec.js +73 -0
  43. package/lib/hooks/useResize.spec.js +37 -0
  44. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  45. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  46. package/lib/hooks/useT.spec.js +20 -0
  47. package/lib/hooks/useToggle.spec.js +33 -0
  48. package/lib/services/maia/Access/updateAccess.spec.js +108 -0
  49. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
  50. package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
  51. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  52. package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
  53. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  54. package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
  55. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
  56. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  57. package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
  58. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  59. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  60. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  61. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  62. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  63. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  64. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  65. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  66. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  67. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  68. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  69. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  70. package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
  71. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  72. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
  73. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  74. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  75. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  76. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  77. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  78. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  79. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  80. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  81. package/lib/services/maia/client.spec.js +56 -0
  82. package/lib/services/utils/fetchCOR.spec.js +211 -0
  83. package/lib/services/utils/getCookie.spec.js +20 -0
  84. package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
  85. package/lib/store/faqsStore.types.js +1 -1
  86. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  87. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  88. package/lib/store/sessions/sessions.types.spec.js +16 -0
  89. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  90. package/lib/store/useChatsStore.js +3 -3
  91. package/lib/store/useChatsStore.spec.js +619 -0
  92. package/lib/store/useFaqsStore.spec.js +57 -0
  93. package/lib/test/buttonMock.js +22 -0
  94. package/lib/test/fetchPolyfill.js +160 -0
  95. package/lib/test/fileMock.js +2 -0
  96. package/lib/test/global-context.js +49 -0
  97. package/lib/test/iconMock.js +19 -0
  98. package/lib/test/mockFetch.js +49 -0
  99. package/lib/test/portalRoot.js +13 -0
  100. package/lib/test/styleMock.js +2 -0
  101. package/lib/test/test-utils.js +26 -0
  102. package/lib/test/tooltipMock.js +11 -0
  103. package/lib/types/Chat.js +1 -1
  104. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  105. package/lib/utils/agentDisplayName.spec.js +44 -0
  106. package/lib/utils/autoApproveStorage.spec.js +25 -0
  107. package/lib/utils/chatInputFiles.spec.js +39 -0
  108. package/lib/utils/contextMentionLabel.spec.js +13 -0
  109. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  110. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  111. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  112. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  113. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  114. package/lib/utils/formatUnreadCount.spec.js +12 -0
  115. package/lib/utils/getUnitFileSize.spec.js +18 -0
  116. package/lib/utils/hitlAnalytics.spec.js +100 -0
  117. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  118. package/lib/utils/mapBackendLang.spec.js +19 -0
  119. package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
  120. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  121. package/lib/utils/reasoningMappers.spec.js +103 -0
  122. package/lib/utils/retryCompletion.spec.js +99 -0
  123. package/lib/utils/skillContentSize.spec.js +13 -0
  124. package/lib/utils/slashCommandMarker.spec.js +43 -0
  125. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  126. package/lib/utils/sseStreamContent.spec.js +31 -0
  127. package/lib/utils/streamActivityMessages.spec.js +98 -0
  128. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  129. package/package.json +9 -6
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ### [2.35.3](https://github.com/ProjectCORTeam/maia-components/compare/v2.35.2...v2.35.3) (2026-09-10)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **dev:** keep unit specs out of webpack typecheck ([e09910f](https://github.com/ProjectCORTeam/maia-components/commit/e09910f98a43e3c396239edd4c5dff83dfee7201))
7
+ * **lint:** allow CJS require in Jest icon mock ([6ea6d2a](https://github.com/ProjectCORTeam/maia-components/commit/6ea6d2a4f4f7122f1a1ec4cc09be27c5664e6a75))
8
+ * **types:** treat session and FAQ next_offset as number ([f801c3b](https://github.com/ProjectCORTeam/maia-components/commit/f801c3b26871c6ee861a81635d738db77a2fc498))
9
+
1
10
  ### [2.35.2](https://github.com/ProjectCORTeam/maia-components/compare/v2.35.0...v2.35.2) (2026-09-10)
2
11
 
3
12
 
@@ -214,7 +214,11 @@ export var ApprovalBox = function ApprovalBox(_ref) {
214
214
  }),
215
215
  checked: corAccess[slug],
216
216
  onChange: function onChange(checked) {
217
- return setCorAccess(function (prev) {
217
+ eventAmplitude(EVENTS.connectorCor, {
218
+ option: checked ? 'on' : 'off',
219
+ slug: slug
220
+ });
221
+ setCorAccess(function (prev) {
218
222
  return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, slug, checked));
219
223
  });
220
224
  },
@@ -261,4 +265,4 @@ export var ApprovalBox = function ApprovalBox(_ref) {
261
265
  })]
262
266
  });
263
267
  };
264
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJDb25uZWN0b3JzIiwiU0NBQkNvbm5lY3RvcnNUaXRsZSIsIlNDQUJDb25uZWN0b3JzU3VidGl0bGUiLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MiLCJzbHVnIiwidGl0bGVLZXkiLCJkZXNjcmlwdGlvbktleSIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJhY3Rpb25zIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY29yQWNjZXNzIiwic2V0Q29yQWNjZXNzIiwiaXNDcmVhdGVBZ2VudEJhdGNoIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsImV2ZW50QW1wbGl0dWRlIiwibGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmIiwidXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiIsImF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZiIsImhpdGxCYXRjaEtleSIsIm1hcCIsImEiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJzb3J0Iiwiam9pbiIsInByZXYiLCJoaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwibGVuZ3RoIiwiaW1wcmVzc2lvbktleSIsImN1cnJlbnQiLCJhaUNoYXRIaXRsIiwidHJhY2tIaXRsRGVjaXNpb24iLCJkZWNpc2lvbiIsInJlc29sdXRpb25Tb3VyY2UiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhaUNoYXRIaXRsT3B0aW9uIiwiX29iamVjdFNwcmVhZCIsInJlc29sdXRpb25fc291cmNlIiwiaXNBY2NlcHQiLCJoYW5kbGVBcHByb3ZlIiwibWV0YWRhdGEiLCJ0b29sX2dyb3VwX3NsdWdzIiwiaGFuZGxlUmVqZWN0IiwiY2hpbGRyZW4iLCIkZXhwYW5kZWQiLCJzcGVjaWFsQ29weSIsImxhYmVsIiwiZGlzcGxheV9uYW1lIiwibnMiLCJfcmVmMiIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImRpc2FibGVkIiwiJHZhcmlhbnQiLCJvbkNsaWNrIiwiJGRpc2FibGVkIiwiJHN0YXR1cyIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJwbGFjZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BbGVydCdcbmltcG9ydCB7IENoZWNrQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2tDaXJjbGUnXG5pbXBvcnQgeyBDcm9zc0NpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzQ2lyY2xlJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgUGVuZGluZ0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQge1xuICBTQ0FwcHJvdmFsQm94LFxuICBTQ0FCSGVhZGVyLFxuICBTQ0FCVGl0bGUsXG4gIFNDQUJEZXNjcmlwdGlvbixcbiAgU0NBQkFjdGlvbnNMaXN0LFxuICBTQ0FCQWN0aW9uSXRlbSxcbiAgU0NBQkFjdGlvbk5hbWUsXG4gIFNDQUJBY3Rpb25EZXNjcmlwdGlvbixcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbiAgU0NBQlN0YXR1c1dhcm5pbmdJY29uLFxuICBTQ0FCQ29ubmVjdG9ycyxcbiAgU0NBQkNvbm5lY3RvcnNUaXRsZSxcbiAgU0NBQkNvbm5lY3RvcnNTdWJ0aXRsZSxcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHtcbiAgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0LFxuICBDb3JBY2Nlc3MsXG4gIENvclRvb2xHcm91cFNsdWcsXG4gIERFRkFVTFRfQ09SX0FDQ0VTUyxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHtcbiAgYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZCxcbiAgZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSxcbiAgaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCxcbiAgbm9ybWFsaXplSGl0bFRvb2xOYW1lLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuXG5jb25zdCBDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmZ1bmN0aW9uIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sodG9vbE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3Qgd2l0aFNwYWNlcyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKVxuICBpZiAoIXdpdGhTcGFjZXMpIHJldHVybiAnVW5rbm93bidcbiAgcmV0dXJuIHdpdGhTcGFjZXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3aXRoU3BhY2VzLnNsaWNlKDEpXG59XG5cbmZ1bmN0aW9uIGdldEFjdGlvbkxhYmVsKHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLCB0b29sTmFtZT86IHN0cmluZywgZGlzcGxheU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBhcHByb3ZhbEJveC5hY3Rpb25zLiR7bm9ybWFsaXplZFRvb2xOYW1lfWBcbiAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdCh0cmFuc2xhdGlvbktleSlcblxuICBpZiAodHJhbnNsYXRlZExhYmVsICE9PSB0cmFuc2xhdGlvbktleSkgcmV0dXJuIHRyYW5zbGF0ZWRMYWJlbFxuICBpZiAoZGlzcGxheU5hbWU/LnRyaW0oKSkgcmV0dXJuIGRpc3BsYXlOYW1lXG4gIHJldHVybiBmb3JtYXRUb29sTmFtZUZhbGxiYWNrKG5vcm1hbGl6ZWRUb29sTmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0RGVsaXZlcmFibGVNb2RlKHRvb2xBcmdzOiBQZW5kaW5nQWN0aW9uWyd0b29sX2FyZ3MnXSk6IHN0cmluZyB7XG4gIGlmICghdG9vbEFyZ3MgfHwgQXJyYXkuaXNBcnJheSh0b29sQXJncykpIHJldHVybiAnJ1xuICByZXR1cm4gU3RyaW5nKHRvb2xBcmdzLmRlbGl2ZXJhYmxlVHlwZSB8fCB0b29sQXJncy5kZWxpdmVyYWJsZV90eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGdldFNwZWNpYWxBY3Rpb25Db3B5KFxuICB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgYWN0aW9uOiBQZW5kaW5nQWN0aW9uXG4pOiB7IHRpdGxlPzogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9IHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGFjdGlvbi50b29sX25hbWUpXG4gIGNvbnN0IGRlbGl2ZXJhYmxlTW9kZSA9IGdldERlbGl2ZXJhYmxlTW9kZShhY3Rpb24udG9vbF9hcmdzKVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICdjcmVhdGVfcmV3b3JrJykge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsudGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICd1cGRhdGVfZGVsaXZlcmFibGUnICYmIFsnY2hpbGRyZW4nLCAnY2hlY2tib3gnXS5pbmNsdWRlcyhkZWxpdmVyYWJsZU1vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4udGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4uZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge31cbn1cblxuZXhwb3J0IHR5cGUgQXBwcm92YWxNZXRhZGF0YSA9IHtcbiAgdG9vbF9ncm91cF9zbHVnczogc3RyaW5nW11cbn1cblxuaW50ZXJmYWNlIEFwcHJvdmFsQm94UHJvcHMge1xuICBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgb25BcHByb3ZlOiAodGhyZWFkSWRzOiBzdHJpbmdbXSwgbWV0YWRhdGE/OiBBcHByb3ZhbE1ldGFkYXRhKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJLCBTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IFtsb2NhbFN0YXR1cywgc2V0TG9jYWxTdGF0dXNdID0gdXNlU3RhdGU8J3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCc+KHN0YXR1cylcbiAgY29uc3QgW2NvckFjY2Vzcywgc2V0Q29yQWNjZXNzXSA9IHVzZVN0YXRlPENvckFjY2Vzcz4oREVGQVVMVF9DT1JfQUNDRVNTKVxuICBjb25zdCBpc0NyZWF0ZUFnZW50QmF0Y2ggPSB1c2VNZW1vKCgpID0+IGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9ucyksIFthY3Rpb25zXSlcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGl0bEJhdGNoS2V5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaGl0bEluc3RhbmNlSWQgPz9cbiAgICAgIGFjdGlvbnNcbiAgICAgICAgLm1hcChhID0+IGAke2EudGhyZWFkX2lkfToke2EudG9vbF9jYWxsX2lkfWApXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJ3wnKSxcbiAgICBbaGl0bEluc3RhbmNlSWQsIGFjdGlvbnNdXG4gIClcblxuICAvLyBTaW5jcm9uaXphciBsb2NhbFN0YXR1cyBjb24gZWwgcHJvcCBzdGF0dXMgY3VhbmRvIGNhbWJpYSBkZXNkZSBlbCBwYWRyZSAoc29sbyBwb3IgdmFsdWUsIGV2aXRhIGJ1Y2xlcylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbFN0YXR1cyhwcmV2ID0+IChwcmV2ICE9PSBzdGF0dXMgPyBzdGF0dXMgOiBwcmV2KSlcbiAgfSwgW3N0YXR1c10pXG5cbiAgY29uc3QgaGl0bEFuYWx5dGljc0FnZW50VHlwZSA9IGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUoYWdlbnQpXG5cbiAgLy8gQ0ExOiBjYXJkIGRlIGNvbmZpcm1hY2nDs24gSElUTCB2aXNpYmxlIChzb2xvIHBlbmRpZW50ZSwgbm8gaGlzdMOzcmljbyB5YSByZXN1ZWx0bylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGltcHJlc3Npb25LZXkgPSBoaXRsQmF0Y2hLZXlcbiAgICBpZiAobGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPT09IGltcHJlc3Npb25LZXkpIHJldHVyblxuICAgIGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ID0gaW1wcmVzc2lvbktleVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRIaXRsLCBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpKVxuICB9LCBbZXZlbnRBbXBsaXR1ZGUsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGhpdGxCYXRjaEtleSwgbG9jYWxTdGF0dXMsIGFjdGlvbnMubGVuZ3RoXSlcblxuICBjb25zdCB0cmFja0hpdGxEZWNpc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChkZWNpc2lvbjogJ2FjY2VwdCcgfCAnZGVueScsIHJlc29sdXRpb25Tb3VyY2U6ICd1c2VyJyB8ICdhdXRvJyA9ICd1c2VyJykgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGxPcHRpb24sIHtcbiAgICAgICAgLi4uYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSxcbiAgICAgICAgZGVjaXNpb24sXG4gICAgICAgIHJlc29sdXRpb25fc291cmNlOiByZXNvbHV0aW9uU291cmNlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthY3Rpb25zLCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYuY3VycmVudCA9IG51bGxcbiAgICBzZXRDb3JBY2Nlc3MoREVGQVVMVF9DT1JfQUNDRVNTKVxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIGNvbnN0IG1ldGFkYXRhID0gaXNDcmVhdGVBZ2VudEJhdGNoID8geyB0b29sX2dyb3VwX3NsdWdzOiBidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QoY29yQWNjZXNzKSB9IDogdW5kZWZpbmVkXG4gICAgb25BcHByb3ZlKFxuICAgICAgYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCksXG4gICAgICBtZXRhZGF0YVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgICAge3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxTQ0FCQWN0aW9uRGVzY3JpcHRpb24+e3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9ufTwvU0NBQkFjdGlvbkRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7aXNDcmVhdGVBZ2VudEJhdGNoICYmIGxvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkNvbm5lY3RvcnM+XG4gICAgICAgICAgPFNDQUJDb25uZWN0b3JzVGl0bGU+XG4gICAgICAgICAgICB7dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNUaXRsZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgIDwvU0NBQkNvbm5lY3RvcnNUaXRsZT5cbiAgICAgICAgICA8U0NBQkNvbm5lY3RvcnNTdWJ0aXRsZT5cbiAgICAgICAgICAgIHt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgPC9TQ0FCQ29ubmVjdG9yc1N1YnRpdGxlPlxuICAgICAgICAgIHtDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWAsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29yQWNjZXNzW3NsdWddfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17Y2hlY2tlZCA9PiBzZXRDb3JBY2Nlc3MocHJldiA9PiAoeyAuLi5wcmV2LCBbc2x1Z106IGNoZWNrZWQgfSkpfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9TQ0FCQ29ubmVjdG9ycz5cbiAgICAgICl9XG5cbiAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ3BlbmRpbmcnICYmICFpc1Byb2plY3REZWxldGVkICYmIChcbiAgICAgICAgPFNDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwicmVqZWN0XCIgb25DbGljaz17aGFuZGxlUmVqZWN0fSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guZGVueScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgICA8U0NBQkJ1dHRvbiAkdmFyaWFudD1cImFwcHJvdmVcIiBvbkNsaWNrPXtoYW5kbGVBcHByb3ZlfSAkZGlzYWJsZWQ9e2lzTG9hZGluZ30+XG4gICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guYXBwcm92ZScpfVxuICAgICAgICAgIDwvU0NBQkJ1dHRvbj5cbiAgICAgICAgPC9TQ0FCQnV0dG9uc0NvbnRhaW5lcj5cbiAgICAgICl9XG4gICAgICB7bG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyAmJiAoXG4gICAgICAgIDxTQ0FCU3RhdHVzQmFkZ2UgJHN0YXR1cz17bG9jYWxTdGF0dXN9PlxuICAgICAgICAgIHtsb2NhbFN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDaGVja0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiIzAwODQwMFwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuYXBwcm92ZWQnKX1cbiAgICAgICAgICAgICAge21hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgJiYgKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt3YXJuaW5nTWVzc2FnZSB8fCB0KCdhcHByb3ZhbEJveC5tYW51YWxBcHByb3ZhbFdhcm5pbmcnKX0gcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxTQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgICAgIDxBbGVydCBjb2xvcj1cIiNFQUExMUFcIiB3aWR0aD1cIjEzcHhcIiBoZWlnaHQ9XCIxM3B4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU0NBQlN0YXR1c1dhcm5pbmdJY29uPlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8Q3Jvc3NDaXJjbGUgd2lkdGg9ezIyfSBoZWlnaHQ9ezIyfSBjb2xvcj1cIiNDNzA1MDVcIiAvPlxuICAgICAgICAgICAgICB7dCgnYXBwcm92YWxCb3guc3RhdHVzLmRlbmllZCcpfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TQ0FCU3RhdHVzQmFkZ2U+XG4gICAgICApfVxuICAgIDwvU0NBcHByb3ZhbEJveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFFOUMsU0FDRUMsYUFBYSxFQUNiQyxVQUFVLEVBQ1ZDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxlQUFlLEVBQ2ZDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxxQkFBcUIsRUFDckJDLG9CQUFvQixFQUNwQkMsVUFBVSxFQUNWQyxlQUFlLEVBQ2ZDLHFCQUFxQixFQUNyQkMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLHNCQUFzQixRQUNqQixzQkFBc0I7QUFDN0IsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUM1RCxTQUNFQywyQkFBMkIsRUFHM0JDLGtCQUFrQixRQUNiLHlDQUF5QztBQUNoRCxTQUNFQyx5QkFBeUIsRUFDekJDLHlCQUF5QixFQUN6QkMsNEJBQTRCLEVBQzVCQyxxQkFBcUIsUUFDaEIsOEJBQThCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFFckMsSUFBTUMsMkJBQW1HLEdBQUcsQ0FDMUc7RUFBRUMsSUFBSSxFQUFFLFVBQVU7RUFBRUMsUUFBUSxFQUFFLG1CQUFtQjtFQUFFQyxjQUFjLEVBQUU7QUFBMEIsQ0FBQyxFQUM5RjtFQUFFRixJQUFJLEVBQUUsV0FBVztFQUFFQyxRQUFRLEVBQUUsb0JBQW9CO0VBQUVDLGNBQWMsRUFBRTtBQUEyQixDQUFDLEVBQ2pHO0VBQUVGLElBQUksRUFBRSxRQUFRO0VBQUVDLFFBQVEsRUFBRSxpQkFBaUI7RUFBRUMsY0FBYyxFQUFFO0FBQXdCLENBQUMsQ0FDekY7QUFFRCxTQUFTQyxzQkFBc0JBLENBQUNDLFFBQWlCLEVBQVU7RUFDekQsSUFBTUMsVUFBVSxHQUFHYixxQkFBcUIsQ0FBQ1ksUUFBUSxJQUFJLFNBQVMsQ0FBQztFQUMvRCxJQUFNRSxVQUFVLEdBQUdELFVBQVUsQ0FBQ0UsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDdkQsSUFBSSxDQUFDRixVQUFVLEVBQUUsT0FBTyxTQUFTO0VBQ2pDLE9BQU9BLFVBQVUsQ0FBQ0csTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQyxHQUFHSixVQUFVLENBQUNLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakU7QUFFQSxTQUFTQyxjQUFjQSxDQUFDQyxDQUEwQixFQUFFVCxRQUFpQixFQUFFVSxXQUFvQixFQUFVO0VBQ25HLElBQU1DLGtCQUFrQixHQUFHdkIscUJBQXFCLENBQUNZLFFBQVEsSUFBSSxTQUFTLENBQUM7RUFDdkUsSUFBTVksY0FBYywwQkFBQUMsTUFBQSxDQUEwQkYsa0JBQWtCLENBQUU7RUFDbEUsSUFBTUcsZUFBZSxHQUFHTCxDQUFDLENBQUNHLGNBQWMsQ0FBQztFQUV6QyxJQUFJRSxlQUFlLEtBQUtGLGNBQWMsRUFBRSxPQUFPRSxlQUFlO0VBQzlELElBQUlKLFdBQVcsYUFBWEEsV0FBVyxlQUFYQSxXQUFXLENBQUVOLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBT00sV0FBVztFQUMzQyxPQUFPWCxzQkFBc0IsQ0FBQ1ksa0JBQWtCLENBQUM7QUFDbkQ7QUFFQSxTQUFTSSxrQkFBa0JBLENBQUNDLFFBQW9DLEVBQVU7RUFDeEUsSUFBSSxDQUFDQSxRQUFRLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUU7RUFDbkQsT0FBT0csTUFBTSxDQUFDSCxRQUFRLENBQUNJLGVBQWUsSUFBSUosUUFBUSxDQUFDSyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7QUFDMUY7QUFFQSxTQUFTQyxvQkFBb0JBLENBQzNCZCxDQUEwQixFQUMxQmUsTUFBcUIsRUFDcUI7RUFDMUMsSUFBTWIsa0JBQWtCLEdBQUd2QixxQkFBcUIsQ0FBQ29DLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDO0VBQ2xFLElBQU1DLGVBQWUsR0FBR1gsa0JBQWtCLENBQUNTLE1BQU0sQ0FBQ0csU0FBUyxDQUFDO0VBRTVELElBQUloQixrQkFBa0IsS0FBSyxlQUFlLEVBQUU7SUFDMUMsT0FBTztNQUNMaUIsS0FBSyxFQUFFbkIsQ0FBQyxDQUFDLHdDQUF3QyxDQUFDO01BQ2xEb0IsV0FBVyxFQUFFcEIsQ0FBQyxDQUFDLDhDQUE4QztJQUMvRCxDQUFDO0VBQ0g7RUFFQSxJQUFJRSxrQkFBa0IsS0FBSyxvQkFBb0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQ21CLFFBQVEsQ0FBQ0osZUFBZSxDQUFDLEVBQUU7SUFDckcsT0FBTztNQUNMRSxLQUFLLEVBQUVuQixDQUFDLENBQUMscURBQXFELENBQUM7TUFDL0RvQixXQUFXLEVBQUVwQixDQUFDLENBQUMsMkRBQTJEO0lBQzVFLENBQUM7RUFDSDtFQUVBLE9BQU8sQ0FBQyxDQUFDO0FBQ1g7QUFzQkEsT0FBTyxJQUFNc0IsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUFDLElBQUEsRUFXQTtFQUFBLElBVnRCQyxPQUFPLEdBQUFELElBQUEsQ0FBUEMsT0FBTztJQUNQQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztJQUNUQyxRQUFRLEdBQUFILElBQUEsQ0FBUkcsUUFBUTtJQUFBQyxXQUFBLEdBQUFKLElBQUEsQ0FDUkssTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBRyxTQUFTLEdBQUFBLFdBQUE7SUFBQUUsY0FBQSxHQUFBTixJQUFBLENBQ2xCTyxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEtBQUssR0FBQUEsY0FBQTtJQUFBRSxxQkFBQSxHQUFBUixJQUFBLENBQ2pCUyxnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLEtBQUssR0FBQUEscUJBQUE7SUFBQUUsZUFBQSxHQUFBVixJQUFBLENBQ3hCVyxVQUFVO0lBQVZBLFVBQVUsR0FBQUQsZUFBQSxjQUFHLEtBQUssR0FBQUEsZUFBQTtJQUNsQkUsY0FBYyxHQUFBWixJQUFBLENBQWRZLGNBQWM7SUFDZEMsY0FBYyxHQUFBYixJQUFBLENBQWRhLGNBQWM7SUFBQUMscUJBQUEsR0FBQWQsSUFBQSxDQUNkZSxzQkFBc0I7SUFBdEJBLHNCQUFzQixHQUFBRCxxQkFBQSxjQUFHLEtBQUssR0FBQUEscUJBQUE7RUFFOUIsSUFBQUUsZUFBQSxHQUFjdEYsY0FBYyxDQUFDLENBQUNnQixRQUFRLENBQUN1RSxNQUFNLEVBQUV2RSxRQUFRLENBQUN3RSxRQUFRLENBQUMsQ0FBQztJQUExRHpDLENBQUMsR0FBQXVDLGVBQUEsQ0FBRHZDLENBQUM7RUFDVCxJQUFBMEMsU0FBQSxHQUFzQ2xHLFFBQVEsQ0FBc0NvRixNQUFNLENBQUM7SUFBQWUsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBcEZHLFdBQVcsR0FBQUYsVUFBQTtJQUFFRyxjQUFjLEdBQUFILFVBQUE7RUFDbEMsSUFBQUksVUFBQSxHQUFrQ3ZHLFFBQVEsQ0FBWStCLGtCQUFrQixDQUFDO0lBQUF5RSxVQUFBLEdBQUFKLGNBQUEsQ0FBQUcsVUFBQTtJQUFsRUUsU0FBUyxHQUFBRCxVQUFBO0lBQUVFLFlBQVksR0FBQUYsVUFBQTtFQUM5QixJQUFNRyxrQkFBa0IsR0FBR3ZHLE9BQU8sQ0FBQztJQUFBLE9BQU04Qiw0QkFBNEIsQ0FBQzhDLE9BQU8sQ0FBQztFQUFBLEdBQUUsQ0FBQ0EsT0FBTyxDQUFDLENBQUM7RUFDMUYsSUFBQTRCLGlCQUFBLEdBQWtCbEYsZ0JBQWdCLENBQUMsQ0FBQztJQUE1Qm1GLEtBQUssR0FBQUQsaUJBQUEsQ0FBTEMsS0FBSztFQUNiLElBQU1DLGNBQWMsR0FBR2xGLFFBQVEsQ0FBQyxDQUFDO0VBQ2pDLElBQU1tRix3QkFBd0IsR0FBRzdHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDO0VBQzVELElBQU04Ryw0QkFBNEIsR0FBRzlHLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDbEQsSUFBTStHLDJCQUEyQixHQUFHL0csTUFBTSxDQUFnQixJQUFJLENBQUM7RUFFL0QsSUFBTWdILFlBQVksR0FBRzlHLE9BQU8sQ0FDMUI7SUFBQSxPQUNFdUYsY0FBYyxhQUFkQSxjQUFjLGNBQWRBLGNBQWMsR0FDZFgsT0FBTyxDQUNKbUMsR0FBRyxDQUFDLFVBQUFDLENBQUM7TUFBQSxVQUFBeEQsTUFBQSxDQUFPd0QsQ0FBQyxDQUFDQyxTQUFTLE9BQUF6RCxNQUFBLENBQUl3RCxDQUFDLENBQUNFLFlBQVk7SUFBQSxDQUFFLENBQUMsQ0FDNUNDLElBQUksQ0FBQyxDQUFDLENBQ05DLElBQUksQ0FBQyxHQUFHLENBQUM7RUFBQSxHQUNkLENBQUM3QixjQUFjLEVBQUVYLE9BQU8sQ0FDMUIsQ0FBQzs7RUFFRDtFQUNBL0UsU0FBUyxDQUFDLFlBQU07SUFDZHFHLGNBQWMsQ0FBQyxVQUFBbUIsSUFBSTtNQUFBLE9BQUtBLElBQUksS0FBS3JDLE1BQU0sR0FBR0EsTUFBTSxHQUFHcUMsSUFBSTtJQUFBLENBQUMsQ0FBQztFQUMzRCxDQUFDLEVBQUUsQ0FBQ3JDLE1BQU0sQ0FBQyxDQUFDO0VBRVosSUFBTXNDLHNCQUFzQixHQUFHekYseUJBQXlCLENBQUM0RSxLQUFLLENBQUM7O0VBRS9EO0VBQ0E1RyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUlvRyxXQUFXLEtBQUssU0FBUyxJQUFJLENBQUNyQixPQUFPLENBQUMyQyxNQUFNLEVBQUU7SUFDbEQsSUFBTUMsYUFBYSxHQUFHVixZQUFZO0lBQ2xDLElBQUlILHdCQUF3QixDQUFDYyxPQUFPLEtBQUtELGFBQWEsRUFBRTtJQUN4RGIsd0JBQXdCLENBQUNjLE9BQU8sR0FBR0QsYUFBYTtJQUNoRGQsY0FBYyxDQUFDbkYsTUFBTSxDQUFDbUcsVUFBVSxFQUFFOUYseUJBQXlCLENBQUMwRixzQkFBc0IsRUFBRTFDLE9BQU8sQ0FBQyxDQUFDO0VBQy9GLENBQUMsRUFBRSxDQUFDOEIsY0FBYyxFQUFFWSxzQkFBc0IsRUFBRVIsWUFBWSxFQUFFYixXQUFXLEVBQUVyQixPQUFPLENBQUMyQyxNQUFNLENBQUMsQ0FBQztFQUV2RixJQUFNSSxpQkFBaUIsR0FBRzVILFdBQVcsQ0FDbkMsVUFBQzZILFFBQTJCLEVBQWlEO0lBQUEsSUFBL0NDLGdCQUFpQyxHQUFBQyxTQUFBLENBQUFQLE1BQUEsUUFBQU8sU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxNQUFNO0lBQ3RFcEIsY0FBYyxDQUFDbkYsTUFBTSxDQUFDeUcsZ0JBQWdCLEVBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNqQ3JHLHlCQUF5QixDQUFDMEYsc0JBQXNCLEVBQUUxQyxPQUFPLENBQUM7TUFDN0RnRCxRQUFRLEVBQVJBLFFBQVE7TUFDUk0saUJBQWlCLEVBQUVMO0lBQWdCLEVBQ3BDLENBQUM7RUFDSixDQUFDLEVBQ0QsQ0FBQ2pELE9BQU8sRUFBRTBDLHNCQUFzQixFQUFFWixjQUFjLENBQ2xELENBQUM7RUFFRDdHLFNBQVMsQ0FBQyxZQUFNO0lBQ2QrRyw0QkFBNEIsQ0FBQ2EsT0FBTyxHQUFHLEtBQUs7SUFDNUNaLDJCQUEyQixDQUFDWSxPQUFPLEdBQUcsSUFBSTtJQUMxQ25CLFlBQVksQ0FBQzNFLGtCQUFrQixDQUFDO0VBQ2xDLENBQUMsRUFBRSxDQUFDbUYsWUFBWSxDQUFDLENBQUM7O0VBRWxCO0FBQ0Y7QUFDQTtBQUNBO0VBQ0VqSCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUltRixNQUFNLEtBQUssU0FBUyxJQUFJLENBQUNKLE9BQU8sQ0FBQzJDLE1BQU0sRUFBRTtJQUM3QyxJQUFJWix3QkFBd0IsQ0FBQ2MsT0FBTyxLQUFLWCxZQUFZLEVBQUU7SUFDdkQsSUFBSUYsNEJBQTRCLENBQUNhLE9BQU8sRUFBRTtJQUMxQyxJQUFJWiwyQkFBMkIsQ0FBQ1ksT0FBTyxLQUFLWCxZQUFZLEVBQUU7SUFDMURELDJCQUEyQixDQUFDWSxPQUFPLEdBQUdYLFlBQVk7SUFDbEQsSUFBTXFCLFFBQVEsR0FBR25ELE1BQU0sS0FBSyxVQUFVO0lBQ3RDLElBQUltRCxRQUFRLElBQUlyRyw0QkFBNEIsQ0FBQzhDLE9BQU8sQ0FBQyxFQUFFO0lBQ3ZEK0MsaUJBQWlCLENBQUNRLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUN6RCxDQUFDLEVBQUUsQ0FBQ3ZELE9BQU8sRUFBRWtDLFlBQVksRUFBRTlCLE1BQU0sRUFBRTJDLGlCQUFpQixDQUFDLENBQUM7RUFFdEQsSUFBTVMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBLEVBQVM7SUFDMUIsSUFBSWxELFNBQVMsSUFBSWUsV0FBVyxLQUFLLFNBQVMsRUFBRTtJQUM1Q1csNEJBQTRCLENBQUNhLE9BQU8sR0FBRyxJQUFJO0lBQzNDLElBQUksQ0FBQzNGLDRCQUE0QixDQUFDOEMsT0FBTyxDQUFDLEVBQUU7TUFDMUMrQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ3JDO0lBQ0F6QixjQUFjLENBQUMsVUFBVSxDQUFDO0lBQzFCLElBQU1tQyxRQUFRLEdBQUc5QixrQkFBa0IsR0FBRztNQUFFK0IsZ0JBQWdCLEVBQUU1RywyQkFBMkIsQ0FBQzJFLFNBQVM7SUFBRSxDQUFDLEdBQUcwQixTQUFTO0lBQzlHbEQsU0FBUyxDQUNQRCxPQUFPLENBQUNtQyxHQUFHLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlBLENBQUMsQ0FBQ0MsU0FBUztJQUFBLEVBQUMsRUFDN0JvQixRQUNGLENBQUM7RUFDSCxDQUFDO0VBRUQsSUFBTUUsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUEsRUFBUztJQUN6QixJQUFJckQsU0FBUyxJQUFJZSxXQUFXLEtBQUssU0FBUyxFQUFFO0lBQzVDVyw0QkFBNEIsQ0FBQ2EsT0FBTyxHQUFHLElBQUk7SUFDM0NFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDakN6QixjQUFjLENBQUMsVUFBVSxDQUFDO0lBQzFCcEIsUUFBUSxDQUFDRixPQUFPLENBQUNtQyxHQUFHLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlBLENBQUMsQ0FBQ0MsU0FBUztJQUFBLEVBQUMsQ0FBQztFQUN6QyxDQUFDO0VBRUQsb0JBQ0U5RSxLQUFBLENBQUM3QixhQUFhO0lBQUFrSSxRQUFBLGdCQUNadkcsSUFBQSxDQUFDMUIsVUFBVTtNQUFBaUksUUFBQSxlQUNUdkcsSUFBQSxDQUFDekIsU0FBUztRQUFBZ0ksUUFBQSxFQUFFcEYsQ0FBQyxDQUFDLG1CQUFtQjtNQUFDLENBQVk7SUFBQyxDQUNyQyxDQUFDLGVBRWJuQixJQUFBLENBQUN4QixlQUFlO01BQUErSCxRQUFBLEVBQUVwRixDQUFDLENBQUMseUJBQXlCO0lBQUMsQ0FBa0IsQ0FBQyxlQUVqRW5CLElBQUEsQ0FBQ3ZCLGVBQWU7TUFBQytILFNBQVMsRUFBRW5ELFVBQVc7TUFBQWtELFFBQUEsRUFDcEM1RCxPQUFPLENBQUNtQyxHQUFHLENBQUMsVUFBQTVDLE1BQU0sRUFBSTtRQUNyQixJQUFNdUUsV0FBVyxHQUFHeEUsb0JBQW9CLENBQUNkLENBQUMsRUFBRWUsTUFBTSxDQUFDO1FBQ25ELElBQU13RSxLQUFLLEdBQUdELFdBQVcsQ0FBQ25FLEtBQUssSUFBSXBCLGNBQWMsQ0FBQ0MsQ0FBQyxFQUFFZSxNQUFNLENBQUNDLFNBQVMsRUFBR0QsTUFBTSxDQUFTeUUsWUFBWSxDQUFDO1FBQ3BHLG9CQUNFekcsS0FBQSxDQUFDeEIsY0FBYztVQUFBNkgsUUFBQSxnQkFDYnZHLElBQUEsQ0FBQ3JCLGNBQWM7WUFBQTRILFFBQUEsRUFBRUc7VUFBSyxDQUFpQixDQUFDLEVBQ3ZDRCxXQUFXLENBQUNsRSxXQUFXLGdCQUN0QnZDLElBQUEsQ0FBQ3BCLHFCQUFxQjtZQUFBMkgsUUFBQSxFQUFFRSxXQUFXLENBQUNsRTtVQUFXLENBQXdCLENBQUMsR0FDdEUsSUFBSTtRQUFBLEdBSldMLE1BQU0sQ0FBQzhDLFNBS1osQ0FBQztNQUVyQixDQUFDO0lBQUMsQ0FDYSxDQUFDLEVBRWpCVixrQkFBa0IsSUFBSU4sV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDYixnQkFBZ0IsaUJBQ25FakQsS0FBQSxDQUFDakIsY0FBYztNQUFBc0gsUUFBQSxnQkFDYnZHLElBQUEsQ0FBQ2QsbUJBQW1CO1FBQUFxSCxRQUFBLEVBQ2pCcEYsQ0FBQyxDQUFDLDBDQUEwQyxFQUFFO1VBQUV5RixFQUFFLEVBQUV4SCxRQUFRLENBQUN3RTtRQUFTLENBQUM7TUFBQyxDQUN0RCxDQUFDLGVBQ3RCNUQsSUFBQSxDQUFDYixzQkFBc0I7UUFBQW9ILFFBQUEsRUFDcEJwRixDQUFDLENBQUMsNkNBQTZDLEVBQUU7VUFBRXlGLEVBQUUsRUFBRXhILFFBQVEsQ0FBQ3dFO1FBQVMsQ0FBQztNQUFDLENBQ3RELENBQUMsRUFDeEJ2RCwyQkFBMkIsQ0FBQ3lFLEdBQUcsQ0FBQyxVQUFBK0IsS0FBQTtRQUFBLElBQUd2RyxJQUFJLEdBQUF1RyxLQUFBLENBQUp2RyxJQUFJO1VBQUVDLFFBQVEsR0FBQXNHLEtBQUEsQ0FBUnRHLFFBQVE7VUFBRUMsY0FBYyxHQUFBcUcsS0FBQSxDQUFkckcsY0FBYztRQUFBLG9CQUNoRVIsSUFBQSxDQUFDUixtQkFBbUI7VUFFbEI4QyxLQUFLLEVBQUVuQixDQUFDLHlCQUFBSSxNQUFBLENBQXlCaEIsUUFBUSxHQUFJO1lBQUVxRyxFQUFFLEVBQUV4SCxRQUFRLENBQUN3RTtVQUFTLENBQUMsQ0FBRTtVQUN4RXJCLFdBQVcsRUFBRXBCLENBQUMseUJBQUFJLE1BQUEsQ0FBeUJmLGNBQWMsR0FBSTtZQUFFb0csRUFBRSxFQUFFeEgsUUFBUSxDQUFDd0U7VUFBUyxDQUFDLENBQUU7VUFDcEZrRCxPQUFPLEVBQUUxQyxTQUFTLENBQUM5RCxJQUFJLENBQUU7VUFDekJ5RyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBRUQsT0FBTztZQUFBLE9BQUl6QyxZQUFZLENBQUMsVUFBQWUsSUFBSTtjQUFBLE9BQUFZLGFBQUEsQ0FBQUEsYUFBQSxLQUFVWixJQUFJLE9BQUE0QixlQUFBLEtBQUcxRyxJQUFJLEVBQUd3RyxPQUFPO1lBQUEsQ0FBRyxDQUFDO1VBQUEsQ0FBQztVQUMxRUcsUUFBUSxFQUFFaEU7UUFBVSxHQUxmM0MsSUFNTixDQUFDO01BQUEsQ0FDSCxDQUFDO0lBQUEsQ0FDWSxDQUNqQixFQUVBMEQsV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDYixnQkFBZ0IsaUJBQzdDakQsS0FBQSxDQUFDckIsb0JBQW9CO01BQUEwSCxRQUFBLGdCQUNuQnZHLElBQUEsQ0FBQ2xCLFVBQVU7UUFBQ29JLFFBQVEsRUFBQyxRQUFRO1FBQUNDLE9BQU8sRUFBRWIsWUFBYTtRQUFDYyxTQUFTLEVBQUVuRSxTQUFVO1FBQUFzRCxRQUFBLEVBQ3ZFcEYsQ0FBQyxDQUFDLGtCQUFrQjtNQUFDLENBQ1osQ0FBQyxlQUNibkIsSUFBQSxDQUFDbEIsVUFBVTtRQUFDb0ksUUFBUSxFQUFDLFNBQVM7UUFBQ0MsT0FBTyxFQUFFaEIsYUFBYztRQUFDaUIsU0FBUyxFQUFFbkUsU0FBVTtRQUFBc0QsUUFBQSxFQUN6RXBGLENBQUMsQ0FBQyxxQkFBcUI7TUFBQyxDQUNmLENBQUM7SUFBQSxDQUNPLENBQ3ZCLEVBQ0E2QyxXQUFXLEtBQUssU0FBUyxpQkFDeEJoRSxJQUFBLENBQUNqQixlQUFlO01BQUNzSSxPQUFPLEVBQUVyRCxXQUFZO01BQUF1QyxRQUFBLEVBQ25DdkMsV0FBVyxLQUFLLFVBQVUsZ0JBQ3pCOUQsS0FBQSxDQUFBRSxTQUFBO1FBQUFtRyxRQUFBLGdCQUNFdkcsSUFBQSxDQUFDL0IsV0FBVztVQUFDcUosS0FBSyxFQUFFLEVBQUc7VUFBQ0MsTUFBTSxFQUFFLEVBQUc7VUFBQ0MsS0FBSyxFQUFDO1FBQVMsQ0FBRSxDQUFDLEVBQ3JEckcsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQ2hDc0Msc0JBQXNCLGlCQUNyQnpELElBQUEsQ0FBQzdCLE9BQU87VUFBQ21FLEtBQUssRUFBRWlCLGNBQWMsSUFBSXBDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBRTtVQUFDc0csU0FBUyxFQUFDLE9BQU87VUFBQWxCLFFBQUEsZUFDekZ2RyxJQUFBLENBQUNoQixxQkFBcUI7WUFBQXVILFFBQUEsZUFDcEJ2RyxJQUFBLENBQUNoQyxLQUFLO2NBQUN3SixLQUFLLEVBQUMsU0FBUztjQUFDRixLQUFLLEVBQUMsTUFBTTtjQUFDQyxNQUFNLEVBQUM7WUFBTSxDQUFFO1VBQUMsQ0FDL0I7UUFBQyxDQUNqQixDQUNWO01BQUEsQ0FDRCxDQUFDLGdCQUVIckgsS0FBQSxDQUFBRSxTQUFBO1FBQUFtRyxRQUFBLGdCQUNFdkcsSUFBQSxDQUFDOUIsV0FBVztVQUFDb0osS0FBSyxFQUFFLEVBQUc7VUFBQ0MsTUFBTSxFQUFFLEVBQUc7VUFBQ0MsS0FBSyxFQUFDO1FBQVMsQ0FBRSxDQUFDLEVBQ3JEckcsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO01BQUEsQ0FDL0I7SUFDSCxDQUNjLENBQ2xCO0VBQUEsQ0FDWSxDQUFDO0FBRXBCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsIkFsZXJ0IiwiQ2hlY2tDaXJjbGUiLCJDcm9zc0NpcmNsZSIsIlRvb2x0aXAiLCJ1c2VUcmFuc2xhdGlvbiIsIlNDQXBwcm92YWxCb3giLCJTQ0FCSGVhZGVyIiwiU0NBQlRpdGxlIiwiU0NBQkRlc2NyaXB0aW9uIiwiU0NBQkFjdGlvbnNMaXN0IiwiU0NBQkFjdGlvbkl0ZW0iLCJTQ0FCQWN0aW9uTmFtZSIsIlNDQUJBY3Rpb25EZXNjcmlwdGlvbiIsIlNDQUJCdXR0b25zQ29udGFpbmVyIiwiU0NBQkJ1dHRvbiIsIlNDQUJTdGF0dXNCYWRnZSIsIlNDQUJTdGF0dXNXYXJuaW5nSWNvbiIsIlNDQUJDb25uZWN0b3JzIiwiU0NBQkNvbm5lY3RvcnNUaXRsZSIsIlNDQUJDb25uZWN0b3JzU3VidGl0bGUiLCJTRUNUSU9OUyIsInVzZUdsb2JhbENvbnRleHQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkIiwiZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSIsImhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQiLCJub3JtYWxpemVIaXRsVG9vbE5hbWUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MiLCJzbHVnIiwidGl0bGVLZXkiLCJkZXNjcmlwdGlvbktleSIsImZvcm1hdFRvb2xOYW1lRmFsbGJhY2siLCJ0b29sTmFtZSIsIm5vcm1hbGl6ZWQiLCJ3aXRoU3BhY2VzIiwicmVwbGFjZSIsInRyaW0iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiZ2V0QWN0aW9uTGFiZWwiLCJ0IiwiZGlzcGxheU5hbWUiLCJub3JtYWxpemVkVG9vbE5hbWUiLCJ0cmFuc2xhdGlvbktleSIsImNvbmNhdCIsInRyYW5zbGF0ZWRMYWJlbCIsImdldERlbGl2ZXJhYmxlTW9kZSIsInRvb2xBcmdzIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiZGVsaXZlcmFibGVUeXBlIiwiZGVsaXZlcmFibGVfdHlwZSIsInRvTG93ZXJDYXNlIiwiZ2V0U3BlY2lhbEFjdGlvbkNvcHkiLCJhY3Rpb24iLCJ0b29sX25hbWUiLCJkZWxpdmVyYWJsZU1vZGUiLCJ0b29sX2FyZ3MiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiaW5jbHVkZXMiLCJBcHByb3ZhbEJveCIsIl9yZWYiLCJhY3Rpb25zIiwib25BcHByb3ZlIiwib25SZWplY3QiLCJfcmVmJHN0YXR1cyIsInN0YXR1cyIsIl9yZWYkaXNMb2FkaW5nIiwiaXNMb2FkaW5nIiwiX3JlZiRpc1Byb2plY3REZWxldGVkIiwiaXNQcm9qZWN0RGVsZXRlZCIsIl9yZWYkaXNFeHBhbmRlZCIsImlzRXhwYW5kZWQiLCJoaXRsSW5zdGFuY2VJZCIsIndhcm5pbmdNZXNzYWdlIiwiX3JlZiRtYW51YWxBcHByb3ZhbERlIiwibWFudWFsQXBwcm92YWxEZXRlY3RlZCIsIl91c2VUcmFuc2xhdGlvbiIsImNoYXRBSSIsImFibUFnZW50IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibG9jYWxTdGF0dXMiLCJzZXRMb2NhbFN0YXR1cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY29yQWNjZXNzIiwic2V0Q29yQWNjZXNzIiwiaXNDcmVhdGVBZ2VudEJhdGNoIiwiX3VzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsImV2ZW50QW1wbGl0dWRlIiwibGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmIiwidXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiIsImF1dG9SZXNvbHV0aW9uVHJhY2tlZEtleVJlZiIsImhpdGxCYXRjaEtleSIsIm1hcCIsImEiLCJ0aHJlYWRfaWQiLCJ0b29sX2NhbGxfaWQiLCJzb3J0Iiwiam9pbiIsInByZXYiLCJoaXRsQW5hbHl0aWNzQWdlbnRUeXBlIiwibGVuZ3RoIiwiaW1wcmVzc2lvbktleSIsImN1cnJlbnQiLCJhaUNoYXRIaXRsIiwidHJhY2tIaXRsRGVjaXNpb24iLCJkZWNpc2lvbiIsInJlc29sdXRpb25Tb3VyY2UiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhaUNoYXRIaXRsT3B0aW9uIiwiX29iamVjdFNwcmVhZCIsInJlc29sdXRpb25fc291cmNlIiwiaXNBY2NlcHQiLCJoYW5kbGVBcHByb3ZlIiwibWV0YWRhdGEiLCJ0b29sX2dyb3VwX3NsdWdzIiwiaGFuZGxlUmVqZWN0IiwiY2hpbGRyZW4iLCIkZXhwYW5kZWQiLCJzcGVjaWFsQ29weSIsImxhYmVsIiwiZGlzcGxheV9uYW1lIiwibnMiLCJfcmVmMiIsImNoZWNrZWQiLCJvbkNoYW5nZSIsImNvbm5lY3RvckNvciIsIm9wdGlvbiIsIl9kZWZpbmVQcm9wZXJ0eSIsImRpc2FibGVkIiwiJHZhcmlhbnQiLCJvbkNsaWNrIiwiJGRpc2FibGVkIiwiJHN0YXR1cyIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJwbGFjZW1lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BbGVydCdcbmltcG9ydCB7IENoZWNrQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hlY2tDaXJjbGUnXG5pbXBvcnQgeyBDcm9zc0NpcmNsZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Nyb3NzQ2lyY2xlJ1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJ0Bwcm9qZWN0Y29yL3Rvb2x0aXB2Mi9saWIvY29tcG9uZW50cy9Ub29sdGlwJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgUGVuZGluZ0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQge1xuICBTQ0FwcHJvdmFsQm94LFxuICBTQ0FCSGVhZGVyLFxuICBTQ0FCVGl0bGUsXG4gIFNDQUJEZXNjcmlwdGlvbixcbiAgU0NBQkFjdGlvbnNMaXN0LFxuICBTQ0FCQWN0aW9uSXRlbSxcbiAgU0NBQkFjdGlvbk5hbWUsXG4gIFNDQUJBY3Rpb25EZXNjcmlwdGlvbixcbiAgU0NBQkJ1dHRvbnNDb250YWluZXIsXG4gIFNDQUJCdXR0b24sXG4gIFNDQUJTdGF0dXNCYWRnZSxcbiAgU0NBQlN0YXR1c1dhcm5pbmdJY29uLFxuICBTQ0FCQ29ubmVjdG9ycyxcbiAgU0NBQkNvbm5lY3RvcnNUaXRsZSxcbiAgU0NBQkNvbm5lY3RvcnNTdWJ0aXRsZSxcbn0gZnJvbSAnLi9BcHByb3ZhbEJveC5zdHlsZXMnXG5pbXBvcnQgeyBTRUNUSU9OUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHtcbiAgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0LFxuICBDb3JBY2Nlc3MsXG4gIENvclRvb2xHcm91cFNsdWcsXG4gIERFRkFVTFRfQ09SX0FDQ0VTUyxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHtcbiAgYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZCxcbiAgZ2V0SGl0bEFuYWx5dGljc0FnZW50VHlwZSxcbiAgaGl0bEJhdGNoSW5jbHVkZXNDcmVhdGVBZ2VudCxcbiAgbm9ybWFsaXplSGl0bFRvb2xOYW1lLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9oaXRsQW5hbHl0aWNzJ1xuXG5jb25zdCBDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmZ1bmN0aW9uIGZvcm1hdFRvb2xOYW1lRmFsbGJhY2sodG9vbE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKHRvb2xOYW1lIHx8ICd1bmtub3duJylcbiAgY29uc3Qgd2l0aFNwYWNlcyA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvXy9nLCAnICcpLnRyaW0oKVxuICBpZiAoIXdpdGhTcGFjZXMpIHJldHVybiAnVW5rbm93bidcbiAgcmV0dXJuIHdpdGhTcGFjZXMuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3aXRoU3BhY2VzLnNsaWNlKDEpXG59XG5cbmZ1bmN0aW9uIGdldEFjdGlvbkxhYmVsKHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLCB0b29sTmFtZT86IHN0cmluZywgZGlzcGxheU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkVG9vbE5hbWUgPSBub3JtYWxpemVIaXRsVG9vbE5hbWUodG9vbE5hbWUgfHwgJ3Vua25vd24nKVxuICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBhcHByb3ZhbEJveC5hY3Rpb25zLiR7bm9ybWFsaXplZFRvb2xOYW1lfWBcbiAgY29uc3QgdHJhbnNsYXRlZExhYmVsID0gdCh0cmFuc2xhdGlvbktleSlcblxuICBpZiAodHJhbnNsYXRlZExhYmVsICE9PSB0cmFuc2xhdGlvbktleSkgcmV0dXJuIHRyYW5zbGF0ZWRMYWJlbFxuICBpZiAoZGlzcGxheU5hbWU/LnRyaW0oKSkgcmV0dXJuIGRpc3BsYXlOYW1lXG4gIHJldHVybiBmb3JtYXRUb29sTmFtZUZhbGxiYWNrKG5vcm1hbGl6ZWRUb29sTmFtZSlcbn1cblxuZnVuY3Rpb24gZ2V0RGVsaXZlcmFibGVNb2RlKHRvb2xBcmdzOiBQZW5kaW5nQWN0aW9uWyd0b29sX2FyZ3MnXSk6IHN0cmluZyB7XG4gIGlmICghdG9vbEFyZ3MgfHwgQXJyYXkuaXNBcnJheSh0b29sQXJncykpIHJldHVybiAnJ1xuICByZXR1cm4gU3RyaW5nKHRvb2xBcmdzLmRlbGl2ZXJhYmxlVHlwZSB8fCB0b29sQXJncy5kZWxpdmVyYWJsZV90eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGdldFNwZWNpYWxBY3Rpb25Db3B5KFxuICB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgYWN0aW9uOiBQZW5kaW5nQWN0aW9uXG4pOiB7IHRpdGxlPzogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9IHtcbiAgY29uc3Qgbm9ybWFsaXplZFRvb2xOYW1lID0gbm9ybWFsaXplSGl0bFRvb2xOYW1lKGFjdGlvbi50b29sX25hbWUpXG4gIGNvbnN0IGRlbGl2ZXJhYmxlTW9kZSA9IGdldERlbGl2ZXJhYmxlTW9kZShhY3Rpb24udG9vbF9hcmdzKVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICdjcmVhdGVfcmV3b3JrJykge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdCgnYXBwcm92YWxCb3guc3BlY2lhbC5jcmVhdGVSZXdvcmsudGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLmNyZWF0ZVJld29yay5kZXNjcmlwdGlvbicpLFxuICAgIH1cbiAgfVxuXG4gIGlmIChub3JtYWxpemVkVG9vbE5hbWUgPT09ICd1cGRhdGVfZGVsaXZlcmFibGUnICYmIFsnY2hpbGRyZW4nLCAnY2hlY2tib3gnXS5pbmNsdWRlcyhkZWxpdmVyYWJsZU1vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4udGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0KCdhcHByb3ZhbEJveC5zcGVjaWFsLnVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4uZGVzY3JpcHRpb24nKSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge31cbn1cblxuZXhwb3J0IHR5cGUgQXBwcm92YWxNZXRhZGF0YSA9IHtcbiAgdG9vbF9ncm91cF9zbHVnczogc3RyaW5nW11cbn1cblxuaW50ZXJmYWNlIEFwcHJvdmFsQm94UHJvcHMge1xuICBhY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgb25BcHByb3ZlOiAodGhyZWFkSWRzOiBzdHJpbmdbXSwgbWV0YWRhdGE/OiBBcHByb3ZhbE1ldGFkYXRhKSA9PiB2b2lkXG4gIG9uUmVqZWN0OiAodGhyZWFkSWRzOiBzdHJpbmdbXSkgPT4gdm9pZFxuICBzdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0L3Byb3llY3RvIGVzdMOhIGVsaW1pbmFkbywgc2Ugb2N1bHRhbiBsb3MgYm90b25lcyBkZSBhcHJvYmFyL3JlY2hhemFyICovXG4gIGlzUHJvamVjdERlbGV0ZWQ/OiBib29sZWFuXG4gIC8qKiBTaSBlbCBjaGF0IGVzdMOhIGV4cGFuZGlkbyAodHJ1ZSkgbyBjb2xhcHNhZG8gKGZhbHNlKS4gQWZlY3RhIGVsIGFuY2hvIGRlbCBjb250ZW5lZG9yLiAqL1xuICBpc0V4cGFuZGVkPzogYm9vbGVhblxuICAvKiogSWQgZXN0YWJsZSBwb3IgbG90ZSBISVRMIChwLiBlai4gb3JpZ2luYWxfdGhyZWFkX2lkKSBwYXJhIGVsIGV2ZW50byBkZSBpbXByZXNpw7NuICovXG4gIGhpdGxJbnN0YW5jZUlkPzogc3RyaW5nXG4gIHdhcm5pbmdNZXNzYWdlPzogc3RyaW5nXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBBcHByb3ZhbEJveCA9ICh7XG4gIGFjdGlvbnMsXG4gIG9uQXBwcm92ZSxcbiAgb25SZWplY3QsXG4gIHN0YXR1cyA9ICdwZW5kaW5nJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGlzUHJvamVjdERlbGV0ZWQgPSBmYWxzZSxcbiAgaXNFeHBhbmRlZCA9IGZhbHNlLFxuICBoaXRsSW5zdGFuY2VJZCxcbiAgd2FybmluZ01lc3NhZ2UsXG4gIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQgPSBmYWxzZSxcbn06IEFwcHJvdmFsQm94UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbihbU0VDVElPTlMuY2hhdEFJLCBTRUNUSU9OUy5hYm1BZ2VudF0pXG4gIGNvbnN0IFtsb2NhbFN0YXR1cywgc2V0TG9jYWxTdGF0dXNdID0gdXNlU3RhdGU8J3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCc+KHN0YXR1cylcbiAgY29uc3QgW2NvckFjY2Vzcywgc2V0Q29yQWNjZXNzXSA9IHVzZVN0YXRlPENvckFjY2Vzcz4oREVGQVVMVF9DT1JfQUNDRVNTKVxuICBjb25zdCBpc0NyZWF0ZUFnZW50QmF0Y2ggPSB1c2VNZW1vKCgpID0+IGhpdGxCYXRjaEluY2x1ZGVzQ3JlYXRlQWdlbnQoYWN0aW9ucyksIFthY3Rpb25zXSlcbiAgY29uc3QgeyBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCBsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZiA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmID0gdXNlUmVmPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGl0bEJhdGNoS2V5ID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaGl0bEluc3RhbmNlSWQgPz9cbiAgICAgIGFjdGlvbnNcbiAgICAgICAgLm1hcChhID0+IGAke2EudGhyZWFkX2lkfToke2EudG9vbF9jYWxsX2lkfWApXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJ3wnKSxcbiAgICBbaGl0bEluc3RhbmNlSWQsIGFjdGlvbnNdXG4gIClcblxuICAvLyBTaW5jcm9uaXphciBsb2NhbFN0YXR1cyBjb24gZWwgcHJvcCBzdGF0dXMgY3VhbmRvIGNhbWJpYSBkZXNkZSBlbCBwYWRyZSAoc29sbyBwb3IgdmFsdWUsIGV2aXRhIGJ1Y2xlcylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMb2NhbFN0YXR1cyhwcmV2ID0+IChwcmV2ICE9PSBzdGF0dXMgPyBzdGF0dXMgOiBwcmV2KSlcbiAgfSwgW3N0YXR1c10pXG5cbiAgY29uc3QgaGl0bEFuYWx5dGljc0FnZW50VHlwZSA9IGdldEhpdGxBbmFseXRpY3NBZ2VudFR5cGUoYWdlbnQpXG5cbiAgLy8gQ0ExOiBjYXJkIGRlIGNvbmZpcm1hY2nDs24gSElUTCB2aXNpYmxlIChzb2xvIHBlbmRpZW50ZSwgbm8gaGlzdMOzcmljbyB5YSByZXN1ZWx0bylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobG9jYWxTdGF0dXMgIT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGltcHJlc3Npb25LZXkgPSBoaXRsQmF0Y2hLZXlcbiAgICBpZiAobGFzdEhpdGxJbXByZXNzaW9uS2V5UmVmLmN1cnJlbnQgPT09IGltcHJlc3Npb25LZXkpIHJldHVyblxuICAgIGxhc3RIaXRsSW1wcmVzc2lvbktleVJlZi5jdXJyZW50ID0gaW1wcmVzc2lvbktleVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRIaXRsLCBidWlsZEhpdGxBbmFseXRpY3NQYXlsb2FkKGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGFjdGlvbnMpKVxuICB9LCBbZXZlbnRBbXBsaXR1ZGUsIGhpdGxBbmFseXRpY3NBZ2VudFR5cGUsIGhpdGxCYXRjaEtleSwgbG9jYWxTdGF0dXMsIGFjdGlvbnMubGVuZ3RoXSlcblxuICBjb25zdCB0cmFja0hpdGxEZWNpc2lvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChkZWNpc2lvbjogJ2FjY2VwdCcgfCAnZGVueScsIHJlc29sdXRpb25Tb3VyY2U6ICd1c2VyJyB8ICdhdXRvJyA9ICd1c2VyJykgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdEhpdGxPcHRpb24sIHtcbiAgICAgICAgLi4uYnVpbGRIaXRsQW5hbHl0aWNzUGF5bG9hZChoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBhY3Rpb25zKSxcbiAgICAgICAgZGVjaXNpb24sXG4gICAgICAgIHJlc29sdXRpb25fc291cmNlOiByZXNvbHV0aW9uU291cmNlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFthY3Rpb25zLCBoaXRsQW5hbHl0aWNzQWdlbnRUeXBlLCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICBhdXRvUmVzb2x1dGlvblRyYWNrZWRLZXlSZWYuY3VycmVudCA9IG51bGxcbiAgICBzZXRDb3JBY2Nlc3MoREVGQVVMVF9DT1JfQUNDRVNTKVxuICB9LCBbaGl0bEJhdGNoS2V5XSlcblxuICAvKipcbiAgICogUmVzb2x1Y2nDs24gc2luIGNsaWMgKHAuIGVqLiBiYWNrZW5kIGVqZWN1dGEgbGEgaGVycmFtaWVudGEgc29sYSk6IGh1Ym8gaW1wcmVzacOzbiBISVRMXG4gICAqIHBhcmEgZXN0ZSBsb3RlIHkgZWwgcGFkcmUgcGFzw7MgYSBhcHByb3ZlZC9yZWplY3RlZCBzaW4gcXVlIGVsIHVzdWFyaW8gcHVsc2FyYSBhcHJvYmFyL2RlbmVnYXIuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nJyB8fCAhYWN0aW9ucy5sZW5ndGgpIHJldHVyblxuICAgIGlmIChsYXN0SGl0bEltcHJlc3Npb25LZXlSZWYuY3VycmVudCAhPT0gaGl0bEJhdGNoS2V5KSByZXR1cm5cbiAgICBpZiAodXNlckluaXRpYXRlZEhpdGxEZWNpc2lvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICBpZiAoYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPT09IGhpdGxCYXRjaEtleSkgcmV0dXJuXG4gICAgYXV0b1Jlc29sdXRpb25UcmFja2VkS2V5UmVmLmN1cnJlbnQgPSBoaXRsQmF0Y2hLZXlcbiAgICBjb25zdCBpc0FjY2VwdCA9IHN0YXR1cyA9PT0gJ2FwcHJvdmVkJ1xuICAgIGlmIChpc0FjY2VwdCAmJiBoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSByZXR1cm5cbiAgICB0cmFja0hpdGxEZWNpc2lvbihpc0FjY2VwdCA/ICdhY2NlcHQnIDogJ2RlbnknLCAnYXV0bycpXG4gIH0sIFthY3Rpb25zLCBoaXRsQmF0Y2hLZXksIHN0YXR1cywgdHJhY2tIaXRsRGVjaXNpb25dKVxuXG4gIGNvbnN0IGhhbmRsZUFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZyB8fCBsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnKSByZXR1cm5cbiAgICB1c2VySW5pdGlhdGVkSGl0bERlY2lzaW9uUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKCFoaXRsQmF0Y2hJbmNsdWRlc0NyZWF0ZUFnZW50KGFjdGlvbnMpKSB7XG4gICAgICB0cmFja0hpdGxEZWNpc2lvbignYWNjZXB0JywgJ3VzZXInKVxuICAgIH1cbiAgICBzZXRMb2NhbFN0YXR1cygnYXBwcm92ZWQnKVxuICAgIGNvbnN0IG1ldGFkYXRhID0gaXNDcmVhdGVBZ2VudEJhdGNoID8geyB0b29sX2dyb3VwX3NsdWdzOiBidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QoY29yQWNjZXNzKSB9IDogdW5kZWZpbmVkXG4gICAgb25BcHByb3ZlKFxuICAgICAgYWN0aW9ucy5tYXAoYSA9PiBhLnRocmVhZF9pZCksXG4gICAgICBtZXRhZGF0YVxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlamVjdCA9ICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nIHx8IGxvY2FsU3RhdHVzICE9PSAncGVuZGluZycpIHJldHVyblxuICAgIHVzZXJJbml0aWF0ZWRIaXRsRGVjaXNpb25SZWYuY3VycmVudCA9IHRydWVcbiAgICB0cmFja0hpdGxEZWNpc2lvbignZGVueScsICd1c2VyJylcbiAgICBzZXRMb2NhbFN0YXR1cygncmVqZWN0ZWQnKVxuICAgIG9uUmVqZWN0KGFjdGlvbnMubWFwKGEgPT4gYS50aHJlYWRfaWQpKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8U0NBcHByb3ZhbEJveD5cbiAgICAgIDxTQ0FCSGVhZGVyPlxuICAgICAgICA8U0NBQlRpdGxlPnt0KCdhcHByb3ZhbEJveC50aXRsZScpfTwvU0NBQlRpdGxlPlxuICAgICAgPC9TQ0FCSGVhZGVyPlxuXG4gICAgICA8U0NBQkRlc2NyaXB0aW9uPnt0KCdhcHByb3ZhbEJveC5kZXNjcmlwdGlvbicpfTwvU0NBQkRlc2NyaXB0aW9uPlxuXG4gICAgICA8U0NBQkFjdGlvbnNMaXN0ICRleHBhbmRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgIHthY3Rpb25zLm1hcChhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNwZWNpYWxDb3B5ID0gZ2V0U3BlY2lhbEFjdGlvbkNvcHkodCwgYWN0aW9uKVxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gc3BlY2lhbENvcHkudGl0bGUgfHwgZ2V0QWN0aW9uTGFiZWwodCwgYWN0aW9uLnRvb2xfbmFtZSwgKGFjdGlvbiBhcyBhbnkpLmRpc3BsYXlfbmFtZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNDQUJBY3Rpb25JdGVtIGtleT17YWN0aW9uLnRocmVhZF9pZH0+XG4gICAgICAgICAgICAgIDxTQ0FCQWN0aW9uTmFtZT57bGFiZWx9PC9TQ0FCQWN0aW9uTmFtZT5cbiAgICAgICAgICAgICAge3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9uID8gKFxuICAgICAgICAgICAgICAgIDxTQ0FCQWN0aW9uRGVzY3JpcHRpb24+e3NwZWNpYWxDb3B5LmRlc2NyaXB0aW9ufTwvU0NBQkFjdGlvbkRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU0NBQkFjdGlvbkl0ZW0+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvU0NBQkFjdGlvbnNMaXN0PlxuXG4gICAgICB7aXNDcmVhdGVBZ2VudEJhdGNoICYmIGxvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkNvbm5lY3RvcnM+XG4gICAgICAgICAgPFNDQUJDb25uZWN0b3JzVGl0bGU+XG4gICAgICAgICAgICB7dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNUaXRsZScsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgIDwvU0NBQkNvbm5lY3RvcnNUaXRsZT5cbiAgICAgICAgICA8U0NBQkNvbm5lY3RvcnNTdWJ0aXRsZT5cbiAgICAgICAgICAgIHt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1N1YnRpdGxlJywgeyBuczogU0VDVElPTlMuYWJtQWdlbnQgfSl9XG4gICAgICAgICAgPC9TQ0FCQ29ubmVjdG9yc1N1YnRpdGxlPlxuICAgICAgICAgIHtDUkVBVEVfQUdFTlRfQ09OTkVDVE9SX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWAsIHsgbnM6IFNFQ1RJT05TLmFibUFnZW50IH0pfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gLCB7IG5zOiBTRUNUSU9OUy5hYm1BZ2VudCB9KX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29yQWNjZXNzW3NsdWddfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17Y2hlY2tlZCA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmNvbm5lY3RvckNvciwgeyBvcHRpb246IGNoZWNrZWQgPyAnb24nIDogJ29mZicsIHNsdWcgfSlcbiAgICAgICAgICAgICAgICBzZXRDb3JBY2Nlc3MocHJldiA9PiAoeyAuLi5wcmV2LCBbc2x1Z106IGNoZWNrZWQgfSkpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NDQUJDb25uZWN0b3JzPlxuICAgICAgKX1cblxuICAgICAge2xvY2FsU3RhdHVzID09PSAncGVuZGluZycgJiYgIWlzUHJvamVjdERlbGV0ZWQgJiYgKFxuICAgICAgICA8U0NBQkJ1dHRvbnNDb250YWluZXI+XG4gICAgICAgICAgPFNDQUJCdXR0b24gJHZhcmlhbnQ9XCJyZWplY3RcIiBvbkNsaWNrPXtoYW5kbGVSZWplY3R9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5kZW55Jyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICAgIDxTQ0FCQnV0dG9uICR2YXJpYW50PVwiYXBwcm92ZVwiIG9uQ2xpY2s9e2hhbmRsZUFwcHJvdmV9ICRkaXNhYmxlZD17aXNMb2FkaW5nfT5cbiAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5hcHByb3ZlJyl9XG4gICAgICAgICAgPC9TQ0FCQnV0dG9uPlxuICAgICAgICA8L1NDQUJCdXR0b25zQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIHtsb2NhbFN0YXR1cyAhPT0gJ3BlbmRpbmcnICYmIChcbiAgICAgICAgPFNDQUJTdGF0dXNCYWRnZSAkc3RhdHVzPXtsb2NhbFN0YXR1c30+XG4gICAgICAgICAge2xvY2FsU3RhdHVzID09PSAnYXBwcm92ZWQnID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPENoZWNrQ2lyY2xlIHdpZHRoPXsyMn0gaGVpZ2h0PXsyMn0gY29sb3I9XCIjMDA4NDAwXCIgLz5cbiAgICAgICAgICAgICAge3QoJ2FwcHJvdmFsQm94LnN0YXR1cy5hcHByb3ZlZCcpfVxuICAgICAgICAgICAgICB7bWFudWFsQXBwcm92YWxEZXRlY3RlZCAmJiAoXG4gICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3dhcm5pbmdNZXNzYWdlIHx8IHQoJ2FwcHJvdmFsQm94Lm1hbnVhbEFwcHJvdmFsV2FybmluZycpfSBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPFNDQUJTdGF0dXNXYXJuaW5nSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IGNvbG9yPVwiI0VBQTExQVwiIHdpZHRoPVwiMTNweFwiIGhlaWdodD1cIjEzcHhcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TQ0FCU3RhdHVzV2FybmluZ0ljb24+XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxDcm9zc0NpcmNsZSB3aWR0aD17MjJ9IGhlaWdodD17MjJ9IGNvbG9yPVwiI0M3MDUwNVwiIC8+XG4gICAgICAgICAgICAgIHt0KCdhcHByb3ZhbEJveC5zdGF0dXMuZGVuaWVkJyl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQUJTdGF0dXNCYWRnZT5cbiAgICAgICl9XG4gICAgPC9TQ0FwcHJvdmFsQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDekUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxXQUFXLFFBQVEsOENBQThDO0FBQzFFLFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUU5QyxTQUNFQyxhQUFhLEVBQ2JDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxVQUFVLEVBQ1ZDLGVBQWUsRUFDZkMscUJBQXFCLEVBQ3JCQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsc0JBQXNCLFFBQ2pCLHNCQUFzQjtBQUM3QixTQUFTQyxRQUFRLFFBQVEsMkJBQTJCO0FBQ3BELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSx5QkFBeUI7QUFDMUQsU0FBU0MsbUJBQW1CLFFBQVEsd0JBQXdCO0FBQzVELFNBQ0VDLDJCQUEyQixFQUczQkMsa0JBQWtCLFFBQ2IseUNBQXlDO0FBQ2hELFNBQ0VDLHlCQUF5QixFQUN6QkMseUJBQXlCLEVBQ3pCQyw0QkFBNEIsRUFDNUJDLHFCQUFxQixRQUNoQiw4QkFBOEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUVyQyxJQUFNQywyQkFBbUcsR0FBRyxDQUMxRztFQUFFQyxJQUFJLEVBQUUsVUFBVTtFQUFFQyxRQUFRLEVBQUUsbUJBQW1CO0VBQUVDLGNBQWMsRUFBRTtBQUEwQixDQUFDLEVBQzlGO0VBQUVGLElBQUksRUFBRSxXQUFXO0VBQUVDLFFBQVEsRUFBRSxvQkFBb0I7RUFBRUMsY0FBYyxFQUFFO0FBQTJCLENBQUMsRUFDakc7RUFBRUYsSUFBSSxFQUFFLFFBQVE7RUFBRUMsUUFBUSxFQUFFLGlCQUFpQjtFQUFFQyxjQUFjLEVBQUU7QUFBd0IsQ0FBQyxDQUN6RjtBQUVELFNBQVNDLHNCQUFzQkEsQ0FBQ0MsUUFBaUIsRUFBVTtFQUN6RCxJQUFNQyxVQUFVLEdBQUdiLHFCQUFxQixDQUFDWSxRQUFRLElBQUksU0FBUyxDQUFDO0VBQy9ELElBQU1FLFVBQVUsR0FBR0QsVUFBVSxDQUFDRSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUN2RCxJQUFJLENBQUNGLFVBQVUsRUFBRSxPQUFPLFNBQVM7RUFDakMsT0FBT0EsVUFBVSxDQUFDRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDLEdBQUdKLFVBQVUsQ0FBQ0ssS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRTtBQUVBLFNBQVNDLGNBQWNBLENBQUNDLENBQTBCLEVBQUVULFFBQWlCLEVBQUVVLFdBQW9CLEVBQVU7RUFDbkcsSUFBTUMsa0JBQWtCLEdBQUd2QixxQkFBcUIsQ0FBQ1ksUUFBUSxJQUFJLFNBQVMsQ0FBQztFQUN2RSxJQUFNWSxjQUFjLDBCQUFBQyxNQUFBLENBQTBCRixrQkFBa0IsQ0FBRTtFQUNsRSxJQUFNRyxlQUFlLEdBQUdMLENBQUMsQ0FBQ0csY0FBYyxDQUFDO0VBRXpDLElBQUlFLGVBQWUsS0FBS0YsY0FBYyxFQUFFLE9BQU9FLGVBQWU7RUFDOUQsSUFBSUosV0FBVyxhQUFYQSxXQUFXLGVBQVhBLFdBQVcsQ0FBRU4sSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPTSxXQUFXO0VBQzNDLE9BQU9YLHNCQUFzQixDQUFDWSxrQkFBa0IsQ0FBQztBQUNuRDtBQUVBLFNBQVNJLGtCQUFrQkEsQ0FBQ0MsUUFBb0MsRUFBVTtFQUN4RSxJQUFJLENBQUNBLFFBQVEsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNGLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRTtFQUNuRCxPQUFPRyxNQUFNLENBQUNILFFBQVEsQ0FBQ0ksZUFBZSxJQUFJSixRQUFRLENBQUNLLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztBQUMxRjtBQUVBLFNBQVNDLG9CQUFvQkEsQ0FDM0JkLENBQTBCLEVBQzFCZSxNQUFxQixFQUNxQjtFQUMxQyxJQUFNYixrQkFBa0IsR0FBR3ZCLHFCQUFxQixDQUFDb0MsTUFBTSxDQUFDQyxTQUFTLENBQUM7RUFDbEUsSUFBTUMsZUFBZSxHQUFHWCxrQkFBa0IsQ0FBQ1MsTUFBTSxDQUFDRyxTQUFTLENBQUM7RUFFNUQsSUFBSWhCLGtCQUFrQixLQUFLLGVBQWUsRUFBRTtJQUMxQyxPQUFPO01BQ0xpQixLQUFLLEVBQUVuQixDQUFDLENBQUMsd0NBQXdDLENBQUM7TUFDbERvQixXQUFXLEVBQUVwQixDQUFDLENBQUMsOENBQThDO0lBQy9ELENBQUM7RUFDSDtFQUVBLElBQUlFLGtCQUFrQixLQUFLLG9CQUFvQixJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDbUIsUUFBUSxDQUFDSixlQUFlLENBQUMsRUFBRTtJQUNyRyxPQUFPO01BQ0xFLEtBQUssRUFBRW5CLENBQUMsQ0FBQyxxREFBcUQsQ0FBQztNQUMvRG9CLFdBQVcsRUFBRXBCLENBQUMsQ0FBQywyREFBMkQ7SUFDNUUsQ0FBQztFQUNIO0VBRUEsT0FBTyxDQUFDLENBQUM7QUFDWDtBQXNCQSxPQUFPLElBQU1zQixXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQSxFQVdBO0VBQUEsSUFWdEJDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO0lBQ1BDLFNBQVMsR0FBQUYsSUFBQSxDQUFURSxTQUFTO0lBQ1RDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO0lBQUFDLFdBQUEsR0FBQUosSUFBQSxDQUNSSyxNQUFNO0lBQU5BLE1BQU0sR0FBQUQsV0FBQSxjQUFHLFNBQVMsR0FBQUEsV0FBQTtJQUFBRSxjQUFBLEdBQUFOLElBQUEsQ0FDbEJPLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0lBQUFFLHFCQUFBLEdBQUFSLElBQUEsQ0FDakJTLGdCQUFnQjtJQUFoQkEsZ0JBQWdCLEdBQUFELHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtJQUFBRSxlQUFBLEdBQUFWLElBQUEsQ0FDeEJXLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQ2xCRSxjQUFjLEdBQUFaLElBQUEsQ0FBZFksY0FBYztJQUNkQyxjQUFjLEdBQUFiLElBQUEsQ0FBZGEsY0FBYztJQUFBQyxxQkFBQSxHQUFBZCxJQUFBLENBQ2RlLHNCQUFzQjtJQUF0QkEsc0JBQXNCLEdBQUFELHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtFQUU5QixJQUFBRSxlQUFBLEdBQWN0RixjQUFjLENBQUMsQ0FBQ2dCLFFBQVEsQ0FBQ3VFLE1BQU0sRUFBRXZFLFFBQVEsQ0FBQ3dFLFFBQVEsQ0FBQyxDQUFDO0lBQTFEekMsQ0FBQyxHQUFBdUMsZUFBQSxDQUFEdkMsQ0FBQztFQUNULElBQUEwQyxTQUFBLEdBQXNDbEcsUUFBUSxDQUFzQ29GLE1BQU0sQ0FBQztJQUFBZSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFwRkcsV0FBVyxHQUFBRixVQUFBO0lBQUVHLGNBQWMsR0FBQUgsVUFBQTtFQUNsQyxJQUFBSSxVQUFBLEdBQWtDdkcsUUFBUSxDQUFZK0Isa0JBQWtCLENBQUM7SUFBQXlFLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQWxFRSxTQUFTLEdBQUFELFVBQUE7SUFBRUUsWUFBWSxHQUFBRixVQUFBO0VBQzlCLElBQU1HLGtCQUFrQixHQUFHdkcsT0FBTyxDQUFDO0lBQUEsT0FBTThCLDRCQUE0QixDQUFDOEMsT0FBTyxDQUFDO0VBQUEsR0FBRSxDQUFDQSxPQUFPLENBQUMsQ0FBQztFQUMxRixJQUFBNEIsaUJBQUEsR0FBa0JsRixnQkFBZ0IsQ0FBQyxDQUFDO0lBQTVCbUYsS0FBSyxHQUFBRCxpQkFBQSxDQUFMQyxLQUFLO0VBQ2IsSUFBTUMsY0FBYyxHQUFHbEYsUUFBUSxDQUFDLENBQUM7RUFDakMsSUFBTW1GLHdCQUF3QixHQUFHN0csTUFBTSxDQUFnQixJQUFJLENBQUM7RUFDNUQsSUFBTThHLDRCQUE0QixHQUFHOUcsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNsRCxJQUFNK0csMkJBQTJCLEdBQUcvRyxNQUFNLENBQWdCLElBQUksQ0FBQztFQUUvRCxJQUFNZ0gsWUFBWSxHQUFHOUcsT0FBTyxDQUMxQjtJQUFBLE9BQ0V1RixjQUFjLGFBQWRBLGNBQWMsY0FBZEEsY0FBYyxHQUNkWCxPQUFPLENBQ0ptQyxHQUFHLENBQUMsVUFBQUMsQ0FBQztNQUFBLFVBQUF4RCxNQUFBLENBQU93RCxDQUFDLENBQUNDLFNBQVMsT0FBQXpELE1BQUEsQ0FBSXdELENBQUMsQ0FBQ0UsWUFBWTtJQUFBLENBQUUsQ0FBQyxDQUM1Q0MsSUFBSSxDQUFDLENBQUMsQ0FDTkMsSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUFBLEdBQ2QsQ0FBQzdCLGNBQWMsRUFBRVgsT0FBTyxDQUMxQixDQUFDOztFQUVEO0VBQ0EvRSxTQUFTLENBQUMsWUFBTTtJQUNkcUcsY0FBYyxDQUFDLFVBQUFtQixJQUFJO01BQUEsT0FBS0EsSUFBSSxLQUFLckMsTUFBTSxHQUFHQSxNQUFNLEdBQUdxQyxJQUFJO0lBQUEsQ0FBQyxDQUFDO0VBQzNELENBQUMsRUFBRSxDQUFDckMsTUFBTSxDQUFDLENBQUM7RUFFWixJQUFNc0Msc0JBQXNCLEdBQUd6Rix5QkFBeUIsQ0FBQzRFLEtBQUssQ0FBQzs7RUFFL0Q7RUFDQTVHLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSW9HLFdBQVcsS0FBSyxTQUFTLElBQUksQ0FBQ3JCLE9BQU8sQ0FBQzJDLE1BQU0sRUFBRTtJQUNsRCxJQUFNQyxhQUFhLEdBQUdWLFlBQVk7SUFDbEMsSUFBSUgsd0JBQXdCLENBQUNjLE9BQU8sS0FBS0QsYUFBYSxFQUFFO0lBQ3hEYix3QkFBd0IsQ0FBQ2MsT0FBTyxHQUFHRCxhQUFhO0lBQ2hEZCxjQUFjLENBQUNuRixNQUFNLENBQUNtRyxVQUFVLEVBQUU5Rix5QkFBeUIsQ0FBQzBGLHNCQUFzQixFQUFFMUMsT0FBTyxDQUFDLENBQUM7RUFDL0YsQ0FBQyxFQUFFLENBQUM4QixjQUFjLEVBQUVZLHNCQUFzQixFQUFFUixZQUFZLEVBQUViLFdBQVcsRUFBRXJCLE9BQU8sQ0FBQzJDLE1BQU0sQ0FBQyxDQUFDO0VBRXZGLElBQU1JLGlCQUFpQixHQUFHNUgsV0FBVyxDQUNuQyxVQUFDNkgsUUFBMkIsRUFBaUQ7SUFBQSxJQUEvQ0MsZ0JBQWlDLEdBQUFDLFNBQUEsQ0FBQVAsTUFBQSxRQUFBTyxTQUFBLFFBQUFDLFNBQUEsR0FBQUQsU0FBQSxNQUFHLE1BQU07SUFDdEVwQixjQUFjLENBQUNuRixNQUFNLENBQUN5RyxnQkFBZ0IsRUFBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ2pDckcseUJBQXlCLENBQUMwRixzQkFBc0IsRUFBRTFDLE9BQU8sQ0FBQztNQUM3RGdELFFBQVEsRUFBUkEsUUFBUTtNQUNSTSxpQkFBaUIsRUFBRUw7SUFBZ0IsRUFDcEMsQ0FBQztFQUNKLENBQUMsRUFDRCxDQUFDakQsT0FBTyxFQUFFMEMsc0JBQXNCLEVBQUVaLGNBQWMsQ0FDbEQsQ0FBQztFQUVEN0csU0FBUyxDQUFDLFlBQU07SUFDZCtHLDRCQUE0QixDQUFDYSxPQUFPLEdBQUcsS0FBSztJQUM1Q1osMkJBQTJCLENBQUNZLE9BQU8sR0FBRyxJQUFJO0lBQzFDbkIsWUFBWSxDQUFDM0Usa0JBQWtCLENBQUM7RUFDbEMsQ0FBQyxFQUFFLENBQUNtRixZQUFZLENBQUMsQ0FBQzs7RUFFbEI7QUFDRjtBQUNBO0FBQ0E7RUFDRWpILFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSW1GLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQ0osT0FBTyxDQUFDMkMsTUFBTSxFQUFFO0lBQzdDLElBQUlaLHdCQUF3QixDQUFDYyxPQUFPLEtBQUtYLFlBQVksRUFBRTtJQUN2RCxJQUFJRiw0QkFBNEIsQ0FBQ2EsT0FBTyxFQUFFO0lBQzFDLElBQUlaLDJCQUEyQixDQUFDWSxPQUFPLEtBQUtYLFlBQVksRUFBRTtJQUMxREQsMkJBQTJCLENBQUNZLE9BQU8sR0FBR1gsWUFBWTtJQUNsRCxJQUFNcUIsUUFBUSxHQUFHbkQsTUFBTSxLQUFLLFVBQVU7SUFDdEMsSUFBSW1ELFFBQVEsSUFBSXJHLDRCQUE0QixDQUFDOEMsT0FBTyxDQUFDLEVBQUU7SUFDdkQrQyxpQkFBaUIsQ0FBQ1EsUUFBUSxHQUFHLFFBQVEsR0FBRyxNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQ3pELENBQUMsRUFBRSxDQUFDdkQsT0FBTyxFQUFFa0MsWUFBWSxFQUFFOUIsTUFBTSxFQUFFMkMsaUJBQWlCLENBQUMsQ0FBQztFQUV0RCxJQUFNUyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUEsRUFBUztJQUMxQixJQUFJbEQsU0FBUyxJQUFJZSxXQUFXLEtBQUssU0FBUyxFQUFFO0lBQzVDVyw0QkFBNEIsQ0FBQ2EsT0FBTyxHQUFHLElBQUk7SUFDM0MsSUFBSSxDQUFDM0YsNEJBQTRCLENBQUM4QyxPQUFPLENBQUMsRUFBRTtNQUMxQytDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDckM7SUFDQXpCLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFDMUIsSUFBTW1DLFFBQVEsR0FBRzlCLGtCQUFrQixHQUFHO01BQUUrQixnQkFBZ0IsRUFBRTVHLDJCQUEyQixDQUFDMkUsU0FBUztJQUFFLENBQUMsR0FBRzBCLFNBQVM7SUFDOUdsRCxTQUFTLENBQ1BELE9BQU8sQ0FBQ21DLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDQyxTQUFTO0lBQUEsRUFBQyxFQUM3Qm9CLFFBQ0YsQ0FBQztFQUNILENBQUM7RUFFRCxJQUFNRSxZQUFZLEdBQUcsU0FBZkEsWUFBWUEsQ0FBQSxFQUFTO0lBQ3pCLElBQUlyRCxTQUFTLElBQUllLFdBQVcsS0FBSyxTQUFTLEVBQUU7SUFDNUNXLDRCQUE0QixDQUFDYSxPQUFPLEdBQUcsSUFBSTtJQUMzQ0UsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNqQ3pCLGNBQWMsQ0FBQyxVQUFVLENBQUM7SUFDMUJwQixRQUFRLENBQUNGLE9BQU8sQ0FBQ21DLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSUEsQ0FBQyxDQUFDQyxTQUFTO0lBQUEsRUFBQyxDQUFDO0VBQ3pDLENBQUM7RUFFRCxvQkFDRTlFLEtBQUEsQ0FBQzdCLGFBQWE7SUFBQWtJLFFBQUEsZ0JBQ1p2RyxJQUFBLENBQUMxQixVQUFVO01BQUFpSSxRQUFBLGVBQ1R2RyxJQUFBLENBQUN6QixTQUFTO1FBQUFnSSxRQUFBLEVBQUVwRixDQUFDLENBQUMsbUJBQW1CO01BQUMsQ0FBWTtJQUFDLENBQ3JDLENBQUMsZUFFYm5CLElBQUEsQ0FBQ3hCLGVBQWU7TUFBQStILFFBQUEsRUFBRXBGLENBQUMsQ0FBQyx5QkFBeUI7SUFBQyxDQUFrQixDQUFDLGVBRWpFbkIsSUFBQSxDQUFDdkIsZUFBZTtNQUFDK0gsU0FBUyxFQUFFbkQsVUFBVztNQUFBa0QsUUFBQSxFQUNwQzVELE9BQU8sQ0FBQ21DLEdBQUcsQ0FBQyxVQUFBNUMsTUFBTSxFQUFJO1FBQ3JCLElBQU11RSxXQUFXLEdBQUd4RSxvQkFBb0IsQ0FBQ2QsQ0FBQyxFQUFFZSxNQUFNLENBQUM7UUFDbkQsSUFBTXdFLEtBQUssR0FBR0QsV0FBVyxDQUFDbkUsS0FBSyxJQUFJcEIsY0FBYyxDQUFDQyxDQUFDLEVBQUVlLE1BQU0sQ0FBQ0MsU0FBUyxFQUFHRCxNQUFNLENBQVN5RSxZQUFZLENBQUM7UUFDcEcsb0JBQ0V6RyxLQUFBLENBQUN4QixjQUFjO1VBQUE2SCxRQUFBLGdCQUNidkcsSUFBQSxDQUFDckIsY0FBYztZQUFBNEgsUUFBQSxFQUFFRztVQUFLLENBQWlCLENBQUMsRUFDdkNELFdBQVcsQ0FBQ2xFLFdBQVcsZ0JBQ3RCdkMsSUFBQSxDQUFDcEIscUJBQXFCO1lBQUEySCxRQUFBLEVBQUVFLFdBQVcsQ0FBQ2xFO1VBQVcsQ0FBd0IsQ0FBQyxHQUN0RSxJQUFJO1FBQUEsR0FKV0wsTUFBTSxDQUFDOEMsU0FLWixDQUFDO01BRXJCLENBQUM7SUFBQyxDQUNhLENBQUMsRUFFakJWLGtCQUFrQixJQUFJTixXQUFXLEtBQUssU0FBUyxJQUFJLENBQUNiLGdCQUFnQixpQkFDbkVqRCxLQUFBLENBQUNqQixjQUFjO01BQUFzSCxRQUFBLGdCQUNidkcsSUFBQSxDQUFDZCxtQkFBbUI7UUFBQXFILFFBQUEsRUFDakJwRixDQUFDLENBQUMsMENBQTBDLEVBQUU7VUFBRXlGLEVBQUUsRUFBRXhILFFBQVEsQ0FBQ3dFO1FBQVMsQ0FBQztNQUFDLENBQ3RELENBQUMsZUFDdEI1RCxJQUFBLENBQUNiLHNCQUFzQjtRQUFBb0gsUUFBQSxFQUNwQnBGLENBQUMsQ0FBQyw2Q0FBNkMsRUFBRTtVQUFFeUYsRUFBRSxFQUFFeEgsUUFBUSxDQUFDd0U7UUFBUyxDQUFDO01BQUMsQ0FDdEQsQ0FBQyxFQUN4QnZELDJCQUEyQixDQUFDeUUsR0FBRyxDQUFDLFVBQUErQixLQUFBO1FBQUEsSUFBR3ZHLElBQUksR0FBQXVHLEtBQUEsQ0FBSnZHLElBQUk7VUFBRUMsUUFBUSxHQUFBc0csS0FBQSxDQUFSdEcsUUFBUTtVQUFFQyxjQUFjLEdBQUFxRyxLQUFBLENBQWRyRyxjQUFjO1FBQUEsb0JBQ2hFUixJQUFBLENBQUNSLG1CQUFtQjtVQUVsQjhDLEtBQUssRUFBRW5CLENBQUMseUJBQUFJLE1BQUEsQ0FBeUJoQixRQUFRLEdBQUk7WUFBRXFHLEVBQUUsRUFBRXhILFFBQVEsQ0FBQ3dFO1VBQVMsQ0FBQyxDQUFFO1VBQ3hFckIsV0FBVyxFQUFFcEIsQ0FBQyx5QkFBQUksTUFBQSxDQUF5QmYsY0FBYyxHQUFJO1lBQUVvRyxFQUFFLEVBQUV4SCxRQUFRLENBQUN3RTtVQUFTLENBQUMsQ0FBRTtVQUNwRmtELE9BQU8sRUFBRTFDLFNBQVMsQ0FBQzlELElBQUksQ0FBRTtVQUN6QnlHLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFFRCxPQUFPLEVBQUk7WUFDbkJyQyxjQUFjLENBQUNuRixNQUFNLENBQUMwSCxZQUFZLEVBQUU7Y0FBRUMsTUFBTSxFQUFFSCxPQUFPLEdBQUcsSUFBSSxHQUFHLEtBQUs7Y0FBRXhHLElBQUksRUFBSkE7WUFBSyxDQUFDLENBQUM7WUFDN0UrRCxZQUFZLENBQUMsVUFBQWUsSUFBSTtjQUFBLE9BQUFZLGFBQUEsQ0FBQUEsYUFBQSxLQUFVWixJQUFJLE9BQUE4QixlQUFBLEtBQUc1RyxJQUFJLEVBQUd3RyxPQUFPO1lBQUEsQ0FBRyxDQUFDO1VBQ3RELENBQUU7VUFDRkssUUFBUSxFQUFFbEU7UUFBVSxHQVJmM0MsSUFTTixDQUFDO01BQUEsQ0FDSCxDQUFDO0lBQUEsQ0FDWSxDQUNqQixFQUVBMEQsV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDYixnQkFBZ0IsaUJBQzdDakQsS0FBQSxDQUFDckIsb0JBQW9CO01BQUEwSCxRQUFBLGdCQUNuQnZHLElBQUEsQ0FBQ2xCLFVBQVU7UUFBQ3NJLFFBQVEsRUFBQyxRQUFRO1FBQUNDLE9BQU8sRUFBRWYsWUFBYTtRQUFDZ0IsU0FBUyxFQUFFckUsU0FBVTtRQUFBc0QsUUFBQSxFQUN2RXBGLENBQUMsQ0FBQyxrQkFBa0I7TUFBQyxDQUNaLENBQUMsZUFDYm5CLElBQUEsQ0FBQ2xCLFVBQVU7UUFBQ3NJLFFBQVEsRUFBQyxTQUFTO1FBQUNDLE9BQU8sRUFBRWxCLGFBQWM7UUFBQ21CLFNBQVMsRUFBRXJFLFNBQVU7UUFBQXNELFFBQUEsRUFDekVwRixDQUFDLENBQUMscUJBQXFCO01BQUMsQ0FDZixDQUFDO0lBQUEsQ0FDTyxDQUN2QixFQUNBNkMsV0FBVyxLQUFLLFNBQVMsaUJBQ3hCaEUsSUFBQSxDQUFDakIsZUFBZTtNQUFDd0ksT0FBTyxFQUFFdkQsV0FBWTtNQUFBdUMsUUFBQSxFQUNuQ3ZDLFdBQVcsS0FBSyxVQUFVLGdCQUN6QjlELEtBQUEsQ0FBQUUsU0FBQTtRQUFBbUcsUUFBQSxnQkFDRXZHLElBQUEsQ0FBQy9CLFdBQVc7VUFBQ3VKLEtBQUssRUFBRSxFQUFHO1VBQUNDLE1BQU0sRUFBRSxFQUFHO1VBQUNDLEtBQUssRUFBQztRQUFTLENBQUUsQ0FBQyxFQUNyRHZHLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxFQUNoQ3NDLHNCQUFzQixpQkFDckJ6RCxJQUFBLENBQUM3QixPQUFPO1VBQUNtRSxLQUFLLEVBQUVpQixjQUFjLElBQUlwQyxDQUFDLENBQUMsbUNBQW1DLENBQUU7VUFBQ3dHLFNBQVMsRUFBQyxPQUFPO1VBQUFwQixRQUFBLGVBQ3pGdkcsSUFBQSxDQUFDaEIscUJBQXFCO1lBQUF1SCxRQUFBLGVBQ3BCdkcsSUFBQSxDQUFDaEMsS0FBSztjQUFDMEosS0FBSyxFQUFDLFNBQVM7Y0FBQ0YsS0FBSyxFQUFDLE1BQU07Y0FBQ0MsTUFBTSxFQUFDO1lBQU0sQ0FBRTtVQUFDLENBQy9CO1FBQUMsQ0FDakIsQ0FDVjtNQUFBLENBQ0QsQ0FBQyxnQkFFSHZILEtBQUEsQ0FBQUUsU0FBQTtRQUFBbUcsUUFBQSxnQkFDRXZHLElBQUEsQ0FBQzlCLFdBQVc7VUFBQ3NKLEtBQUssRUFBRSxFQUFHO1VBQUNDLE1BQU0sRUFBRSxFQUFHO1VBQUNDLEtBQUssRUFBQztRQUFTLENBQUUsQ0FBQyxFQUNyRHZHLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztNQUFBLENBQy9CO0lBQ0gsQ0FDYyxDQUNsQjtFQUFBLENBQ1ksQ0FBQztBQUVwQixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,135 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ 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; }
4
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
5
+ import { ApprovalBox } from './ApprovalBox';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ var triggerEvent = jest.fn();
8
+ jest.mock('../../../context/global-context', function () {
9
+ return {
10
+ useGlobalContext: function useGlobalContext() {
11
+ return {
12
+ agent: {
13
+ type: 'custom',
14
+ name: 'Legal',
15
+ entity: 'custom'
16
+ }
17
+ };
18
+ }
19
+ };
20
+ });
21
+ jest.mock('../../../hooks/useEvent', function () {
22
+ return {
23
+ EVENTS: {
24
+ aiChatHitl: 'AI_CHAT_HITL',
25
+ aiChatHitlOption: 'AI_CHAT_HITL_OPTION',
26
+ connectorCor: 'AI_CHAT_ABM_CONNECTOR_COR'
27
+ },
28
+ useEvent: function useEvent() {
29
+ return triggerEvent;
30
+ }
31
+ };
32
+ });
33
+ var action = function action() {
34
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
35
+ return _objectSpread({
36
+ tool_name: 'edit_task',
37
+ tool_call_id: 'c1',
38
+ tool_args: {},
39
+ thread_id: 't1'
40
+ }, overrides);
41
+ };
42
+ describe('ApprovalBox', function () {
43
+ var onApprove = jest.fn();
44
+ var onReject = jest.fn();
45
+ beforeEach(function () {
46
+ onApprove.mockClear();
47
+ onReject.mockClear();
48
+ triggerEvent.mockClear();
49
+ });
50
+ it('approves the pending actions', function () {
51
+ var props = {
52
+ actions: [action()],
53
+ onApprove: onApprove,
54
+ onReject: onReject
55
+ };
56
+ var _renderWithProviders = renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, _objectSpread({}, props))),
57
+ rerender = _renderWithProviders.rerender;
58
+ fireEvent.click(screen.getByRole('button', {
59
+ name: 'approvalBox.approve'
60
+ }));
61
+ expect(onApprove).toHaveBeenCalledWith(['t1'], undefined);
62
+ rerender(/*#__PURE__*/_jsx(ApprovalBox, _objectSpread(_objectSpread({}, props), {}, {
63
+ status: "approved"
64
+ })));
65
+ expect(screen.getByText('approvalBox.status.approved')).toBeInTheDocument();
66
+ });
67
+ it('rejects the pending actions', function () {
68
+ var props = {
69
+ actions: [action()],
70
+ onApprove: onApprove,
71
+ onReject: onReject
72
+ };
73
+ var _renderWithProviders2 = renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, _objectSpread({}, props))),
74
+ rerender = _renderWithProviders2.rerender;
75
+ fireEvent.click(screen.getByRole('button', {
76
+ name: 'approvalBox.deny'
77
+ }));
78
+ expect(onReject).toHaveBeenCalledWith(['t1']);
79
+ rerender(/*#__PURE__*/_jsx(ApprovalBox, _objectSpread(_objectSpread({}, props), {}, {
80
+ status: "rejected"
81
+ })));
82
+ expect(screen.getByText('approvalBox.status.denied')).toBeInTheDocument();
83
+ });
84
+ it('hides the buttons when the project is deleted', function () {
85
+ renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, {
86
+ actions: [action()],
87
+ onApprove: onApprove,
88
+ onReject: onReject,
89
+ isProjectDeleted: true
90
+ }));
91
+ expect(screen.queryByRole('button', {
92
+ name: 'approvalBox.approve'
93
+ })).not.toBeInTheDocument();
94
+ });
95
+ it('does not approve again while loading', function () {
96
+ renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, {
97
+ actions: [action()],
98
+ onApprove: onApprove,
99
+ onReject: onReject,
100
+ isLoading: true
101
+ }));
102
+ fireEvent.click(screen.getByRole('button', {
103
+ name: 'approvalBox.approve'
104
+ }));
105
+ expect(onApprove).not.toHaveBeenCalled();
106
+ });
107
+ it('does not show COR toggles for a regular tool batch', function () {
108
+ renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, {
109
+ actions: [action()],
110
+ onApprove: onApprove,
111
+ onReject: onReject
112
+ }));
113
+ expect(screen.queryByText('accessibilitySection.corPermissionsTitle')).not.toBeInTheDocument();
114
+ });
115
+ it('sends selected COR slugs when approving create_agent', function () {
116
+ renderWithProviders(/*#__PURE__*/_jsx(ApprovalBox, {
117
+ actions: [action({
118
+ tool_name: 'create_agent'
119
+ })],
120
+ onApprove: onApprove,
121
+ onReject: onReject
122
+ }));
123
+ expect(screen.getByText('accessibilitySection.corPermissionsTitle')).toBeInTheDocument();
124
+ fireEvent.click(screen.getByRole('switch', {
125
+ name: 'accessibilitySection.clientAccessTitle'
126
+ }));
127
+ fireEvent.click(screen.getByRole('button', {
128
+ name: 'approvalBox.approve'
129
+ }));
130
+ expect(onApprove).toHaveBeenCalledWith(['t1'], {
131
+ tool_group_slugs: ['proyectos', 'tareas']
132
+ });
133
+ });
134
+ });
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiQXBwcm92YWxCb3giLCJqc3giLCJfanN4IiwidHJpZ2dlckV2ZW50IiwiamVzdCIsImZuIiwibW9jayIsInVzZUdsb2JhbENvbnRleHQiLCJhZ2VudCIsInR5cGUiLCJuYW1lIiwiZW50aXR5IiwiRVZFTlRTIiwiYWlDaGF0SGl0bCIsImFpQ2hhdEhpdGxPcHRpb24iLCJjb25uZWN0b3JDb3IiLCJ1c2VFdmVudCIsImFjdGlvbiIsIm92ZXJyaWRlcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vYmplY3RTcHJlYWQiLCJ0b29sX25hbWUiLCJ0b29sX2NhbGxfaWQiLCJ0b29sX2FyZ3MiLCJ0aHJlYWRfaWQiLCJkZXNjcmliZSIsIm9uQXBwcm92ZSIsIm9uUmVqZWN0IiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsIml0IiwicHJvcHMiLCJhY3Rpb25zIiwiX3JlbmRlcldpdGhQcm92aWRlcnMiLCJyZXJlbmRlciIsImNsaWNrIiwiZ2V0QnlSb2xlIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJzdGF0dXMiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJXaXRoUHJvdmlkZXJzMiIsImlzUHJvamVjdERlbGV0ZWQiLCJxdWVyeUJ5Um9sZSIsIm5vdCIsImlzTG9hZGluZyIsInRvSGF2ZUJlZW5DYWxsZWQiLCJxdWVyeUJ5VGV4dCIsInRvb2xfZ3JvdXBfc2x1Z3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveC5zcGVjLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJlRXZlbnQsIHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB0eXBlIHsgUGVuZGluZ0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyBBcHByb3ZhbEJveCB9IGZyb20gJy4vQXBwcm92YWxCb3gnXG5cbmNvbnN0IHRyaWdnZXJFdmVudCA9IGplc3QuZm4oKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnLCAoKSA9PiAoe1xuICB1c2VHbG9iYWxDb250ZXh0OiAoKSA9PiAoeyBhZ2VudDogeyB0eXBlOiAnY3VzdG9tJywgbmFtZTogJ0xlZ2FsJywgZW50aXR5OiAnY3VzdG9tJyB9IH0pLFxufSkpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICBFVkVOVFM6IHtcbiAgICBhaUNoYXRIaXRsOiAnQUlfQ0hBVF9ISVRMJyxcbiAgICBhaUNoYXRIaXRsT3B0aW9uOiAnQUlfQ0hBVF9ISVRMX09QVElPTicsXG4gICAgY29ubmVjdG9yQ29yOiAnQUlfQ0hBVF9BQk1fQ09OTkVDVE9SX0NPUicsXG4gIH0sXG4gIHVzZUV2ZW50OiAoKSA9PiB0cmlnZ2VyRXZlbnQsXG59KSlcblxuY29uc3QgYWN0aW9uID0gKG92ZXJyaWRlczogUGFydGlhbDxQZW5kaW5nQWN0aW9uPiA9IHt9KTogUGVuZGluZ0FjdGlvbiA9PiAoe1xuICB0b29sX25hbWU6ICdlZGl0X3Rhc2snLFxuICB0b29sX2NhbGxfaWQ6ICdjMScsXG4gIHRvb2xfYXJnczoge30sXG4gIHRocmVhZF9pZDogJ3QxJyxcbiAgLi4ub3ZlcnJpZGVzLFxufSlcblxuZGVzY3JpYmUoJ0FwcHJvdmFsQm94JywgKCkgPT4ge1xuICBjb25zdCBvbkFwcHJvdmUgPSBqZXN0LmZuKClcbiAgY29uc3Qgb25SZWplY3QgPSBqZXN0LmZuKClcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkFwcHJvdmUubW9ja0NsZWFyKClcbiAgICBvblJlamVjdC5tb2NrQ2xlYXIoKVxuICAgIHRyaWdnZXJFdmVudC5tb2NrQ2xlYXIoKVxuICB9KVxuXG4gIGl0KCdhcHByb3ZlcyB0aGUgcGVuZGluZyBhY3Rpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0geyBhY3Rpb25zOiBbYWN0aW9uKCldLCBvbkFwcHJvdmUsIG9uUmVqZWN0IH1cbiAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXJXaXRoUHJvdmlkZXJzKDxBcHByb3ZhbEJveCB7Li4ucHJvcHN9IC8+KVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ2FwcHJvdmFsQm94LmFwcHJvdmUnIH0pKVxuICAgIGV4cGVjdChvbkFwcHJvdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFsndDEnXSwgdW5kZWZpbmVkKVxuXG4gICAgcmVyZW5kZXIoPEFwcHJvdmFsQm94IHsuLi5wcm9wc30gc3RhdHVzPVwiYXBwcm92ZWRcIiAvPilcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnYXBwcm92YWxCb3guc3RhdHVzLmFwcHJvdmVkJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcblxuICBpdCgncmVqZWN0cyB0aGUgcGVuZGluZyBhY3Rpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0geyBhY3Rpb25zOiBbYWN0aW9uKCldLCBvbkFwcHJvdmUsIG9uUmVqZWN0IH1cbiAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXJXaXRoUHJvdmlkZXJzKDxBcHByb3ZhbEJveCB7Li4ucHJvcHN9IC8+KVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVJvbGUoJ2J1dHRvbicsIHsgbmFtZTogJ2FwcHJvdmFsQm94LmRlbnknIH0pKVxuICAgIGV4cGVjdChvblJlamVjdCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoWyd0MSddKVxuXG4gICAgcmVyZW5kZXIoPEFwcHJvdmFsQm94IHsuLi5wcm9wc30gc3RhdHVzPVwicmVqZWN0ZWRcIiAvPilcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnYXBwcm92YWxCb3guc3RhdHVzLmRlbmllZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ2hpZGVzIHRoZSBidXR0b25zIHdoZW4gdGhlIHByb2plY3QgaXMgZGVsZXRlZCcsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxBcHByb3ZhbEJveCBhY3Rpb25zPXtbYWN0aW9uKCldfSBvbkFwcHJvdmU9e29uQXBwcm92ZX0gb25SZWplY3Q9e29uUmVqZWN0fSBpc1Byb2plY3REZWxldGVkIC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnYXBwcm92YWxCb3guYXBwcm92ZScgfSkpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IGFwcHJvdmUgYWdhaW4gd2hpbGUgbG9hZGluZycsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxBcHByb3ZhbEJveCBhY3Rpb25zPXtbYWN0aW9uKCldfSBvbkFwcHJvdmU9e29uQXBwcm92ZX0gb25SZWplY3Q9e29uUmVqZWN0fSBpc0xvYWRpbmcgLz4pXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnYXBwcm92YWxCb3guYXBwcm92ZScgfSkpXG5cbiAgICBleHBlY3Qob25BcHByb3ZlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IHNob3cgQ09SIHRvZ2dsZXMgZm9yIGEgcmVndWxhciB0b29sIGJhdGNoJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPEFwcHJvdmFsQm94IGFjdGlvbnM9e1thY3Rpb24oKV19IG9uQXBwcm92ZT17b25BcHByb3ZlfSBvblJlamVjdD17b25SZWplY3R9IC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNUaXRsZScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxuXG4gIGl0KCdzZW5kcyBzZWxlY3RlZCBDT1Igc2x1Z3Mgd2hlbiBhcHByb3ZpbmcgY3JlYXRlX2FnZW50JywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8QXBwcm92YWxCb3ggYWN0aW9ucz17W2FjdGlvbih7IHRvb2xfbmFtZTogJ2NyZWF0ZV9hZ2VudCcgfSldfSBvbkFwcHJvdmU9e29uQXBwcm92ZX0gb25SZWplY3Q9e29uUmVqZWN0fSAvPlxuICAgIClcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnc3dpdGNoJywgeyBuYW1lOiAnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY2xpZW50QWNjZXNzVGl0bGUnIH0pKVxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdhcHByb3ZhbEJveC5hcHByb3ZlJyB9KSlcblxuICAgIGV4cGVjdChvbkFwcHJvdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFsndDEnXSwgeyB0b29sX2dyb3VwX3NsdWdzOiBbJ3Byb3llY3RvcycsICd0YXJlYXMnXSB9KVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUVqRixTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUUzQyxJQUFNQyxZQUFZLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7QUFFOUJELElBQUksQ0FBQ0UsSUFBSSxDQUFDLGlDQUFpQyxFQUFFO0VBQUEsT0FBTztJQUNsREMsZ0JBQWdCLEVBQUUsU0FBbEJB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LENBQUUsQ0FBQyxDQUFDO0lBRTdHbkQsU0FBUyxDQUFDd0MsS0FBSyxDQUFDdEMsTUFBTSxDQUFDdUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFNUIsSUFBSSxFQUFFO0lBQXNCLENBQUMsQ0FBQyxDQUFDO0lBRTVFNkIsTUFBTSxDQUFDWCxTQUFTLENBQUMsQ0FBQ21CLEdBQUcsQ0FBQ0UsZ0JBQWdCLENBQUMsQ0FBQztFQUMxQyxDQUFDLENBQUM7RUFFRmpCLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxZQUFNO0lBQzdEbEMsbUJBQW1CLGNBQUNJLElBQUEsQ0FBQ0YsV0FBVztNQUFDa0MsT0FBTyxFQUFFLENBQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFFO01BQUNXLFNBQVMsRUFBRUEsU0FBVTtNQUFDQyxRQUFRLEVBQUVBO0lBQVMsQ0FBRSxDQUFDLENBQUM7SUFFbkdVLE1BQU0sQ0FBQ3hDLE1BQU0sQ0FBQ21ELFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLENBQUNILEdBQUcsQ0FBQ0osaUJBQWlCLENBQUMsQ0FBQztFQUNoRyxDQUFDLENBQUM7RUFFRlgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLFlBQU07SUFDL0RsQyxtQkFBbUIsY0FDakJJLElBQUEsQ0FBQ0YsV0FBVztNQUFDa0MsT0FBTyxFQUFFLENBQUNqQixNQUFNLENBQUM7UUFBRU0sU0FBUyxFQUFFO01BQWUsQ0FBQyxDQUFDLENBQUU7TUFBQ0ssU0FBUyxFQUFFQSxTQUFVO01BQUNDLFFBQVEsRUFBRUE7SUFBUyxDQUFFLENBQzVHLENBQUM7SUFFRFUsTUFBTSxDQUFDeEMsTUFBTSxDQUFDMkMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUN4RjlDLFNBQVMsQ0FBQ3dDLEtBQUssQ0FBQ3RDLE1BQU0sQ0FBQ3VDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7TUFBRTVCLElBQUksRUFBRTtJQUF5QyxDQUFDLENBQUMsQ0FBQztJQUMvRmIsU0FBUyxDQUFDd0MsS0FBSyxDQUFDdEMsTUFBTSxDQUFDdUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFNUIsSUFBSSxFQUFFO0lBQXNCLENBQUMsQ0FBQyxDQUFDO0lBRTVFNkIsTUFBTSxDQUFDWCxTQUFTLENBQUMsQ0FBQ1ksb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtNQUFFVyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRO0lBQUUsQ0FBQyxDQUFDO0VBQy9GLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,27 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { Checkbox } from './Checkbox';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ describe('Checkbox', function () {
5
+ it('starts unchecked and notifies the new value', function () {
6
+ var onChange = jest.fn();
7
+ renderWithProviders(/*#__PURE__*/_jsx(Checkbox, {
8
+ id: "opt-1",
9
+ label: "Aceptar",
10
+ onChange: onChange
11
+ }));
12
+ fireEvent.click(screen.getByText('Aceptar'));
13
+ expect(onChange).toHaveBeenCalledWith('opt-1', true);
14
+ });
15
+ it('does not change when disabled', function () {
16
+ var onChange = jest.fn();
17
+ renderWithProviders(/*#__PURE__*/_jsx(Checkbox, {
18
+ id: "opt-1",
19
+ label: "Aceptar",
20
+ disabled: true,
21
+ onChange: onChange
22
+ }));
23
+ fireEvent.click(screen.getByText('Aceptar'));
24
+ expect(onChange).not.toHaveBeenCalled();
25
+ });
26
+ });
27
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiQ2hlY2tib3giLCJqc3giLCJfanN4IiwiZGVzY3JpYmUiLCJpdCIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiaWQiLCJsYWJlbCIsImNsaWNrIiwiZ2V0QnlUZXh0IiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJkaXNhYmxlZCIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9DaGVja2JveC9DaGVja2JveC5zcGVjLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJlRXZlbnQsIHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSAnLi9DaGVja2JveCdcblxuZGVzY3JpYmUoJ0NoZWNrYm94JywgKCkgPT4ge1xuICBpdCgnc3RhcnRzIHVuY2hlY2tlZCBhbmQgbm90aWZpZXMgdGhlIG5ldyB2YWx1ZScsICgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPENoZWNrYm94IGlkPVwib3B0LTFcIiBsYWJlbD1cIkFjZXB0YXJcIiBvbkNoYW5nZT17b25DaGFuZ2V9IC8+KVxuXG4gICAgZmlyZUV2ZW50LmNsaWNrKHNjcmVlbi5nZXRCeVRleHQoJ0FjZXB0YXInKSlcblxuICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ29wdC0xJywgdHJ1ZSlcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgY2hhbmdlIHdoZW4gZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSBqZXN0LmZuKClcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxDaGVja2JveCBpZD1cIm9wdC0xXCIgbGFiZWw9XCJBY2VwdGFyXCIgZGlzYWJsZWQgb25DaGFuZ2U9e29uQ2hhbmdlfSAvPilcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlUZXh0KCdBY2VwdGFyJykpXG5cbiAgICBleHBlY3Qob25DaGFuZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDakYsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFckNDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsWUFBTTtFQUN6QkMsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLFlBQU07SUFDdEQsSUFBTUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCVCxtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixRQUFRO01BQUNRLEVBQUUsRUFBQyxPQUFPO01BQUNDLEtBQUssRUFBQyxTQUFTO01BQUNKLFFBQVEsRUFBRUE7SUFBUyxDQUFFLENBQUMsQ0FBQztJQUVoRlIsU0FBUyxDQUFDYSxLQUFLLENBQUNYLE1BQU0sQ0FBQ1ksU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVDQyxNQUFNLENBQUNQLFFBQVEsQ0FBQyxDQUFDUSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0VBQ3RELENBQUMsQ0FBQztFQUVGVCxFQUFFLENBQUMsK0JBQStCLEVBQUUsWUFBTTtJQUN4QyxJQUFNQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDMUJULG1CQUFtQixjQUFDSSxJQUFBLENBQUNGLFFBQVE7TUFBQ1EsRUFBRSxFQUFDLE9BQU87TUFBQ0MsS0FBSyxFQUFDLFNBQVM7TUFBQ0ssUUFBUTtNQUFDVCxRQUFRLEVBQUVBO0lBQVMsQ0FBRSxDQUFDLENBQUM7SUFFekZSLFNBQVMsQ0FBQ2EsS0FBSyxDQUFDWCxNQUFNLENBQUNZLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU1Q0MsTUFBTSxDQUFDUCxRQUFRLENBQUMsQ0FBQ1UsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQ3pDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,32 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { Chip } from './Chip';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ describe('Chip', function () {
5
+ it('renders the items', function () {
6
+ renderWithProviders(/*#__PURE__*/_jsx(Chip, {
7
+ items: ['Proyecto A', 'Cliente B']
8
+ }));
9
+ expect(screen.getByText('Proyecto A')).toBeInTheDocument();
10
+ expect(screen.getByText('Cliente B')).toBeInTheDocument();
11
+ });
12
+ it('calls onRemove from the remove button', function () {
13
+ var onRemove = jest.fn();
14
+ renderWithProviders(/*#__PURE__*/_jsx(Chip, {
15
+ items: ['Proyecto A'],
16
+ onRemove: onRemove,
17
+ removeLabel: "Quitar contexto"
18
+ }));
19
+ fireEvent.click(screen.getByRole('button', {
20
+ name: 'Quitar contexto'
21
+ }));
22
+ expect(onRemove).toHaveBeenCalledTimes(1);
23
+ });
24
+ it('truncates long labels', function () {
25
+ var longName = 'Proyecto con un nombre excesivamente largo para el chip';
26
+ renderWithProviders(/*#__PURE__*/_jsx(Chip, {
27
+ items: [longName]
28
+ }));
29
+ expect(screen.getByText("".concat(longName.slice(0, 40), "\u2026"))).toBeInTheDocument();
30
+ });
31
+ });
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiQ2hpcCIsImpzeCIsIl9qc3giLCJkZXNjcmliZSIsIml0IiwiaXRlbXMiLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIm9uUmVtb3ZlIiwiamVzdCIsImZuIiwicmVtb3ZlTGFiZWwiLCJjbGljayIsImdldEJ5Um9sZSIsIm5hbWUiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJsb25nTmFtZSIsImNvbmNhdCIsInNsaWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ2hpcC9DaGlwLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgQ2hpcCB9IGZyb20gJy4vQ2hpcCdcblxuZGVzY3JpYmUoJ0NoaXAnLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHRoZSBpdGVtcycsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxDaGlwIGl0ZW1zPXtbJ1Byb3llY3RvIEEnLCAnQ2xpZW50ZSBCJ119IC8+KVxuXG4gICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ1Byb3llY3RvIEEnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDbGllbnRlIEInKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxuXG4gIGl0KCdjYWxscyBvblJlbW92ZSBmcm9tIHRoZSByZW1vdmUgYnV0dG9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uUmVtb3ZlID0gamVzdC5mbigpXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8Q2hpcCBpdGVtcz17WydQcm95ZWN0byBBJ119IG9uUmVtb3ZlPXtvblJlbW92ZX0gcmVtb3ZlTGFiZWw9XCJRdWl0YXIgY29udGV4dG9cIiAvPilcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdRdWl0YXIgY29udGV4dG8nIH0pKVxuXG4gICAgZXhwZWN0KG9uUmVtb3ZlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSlcbiAgfSlcblxuICBpdCgndHJ1bmNhdGVzIGxvbmcgbGFiZWxzJywgKCkgPT4ge1xuICAgIGNvbnN0IGxvbmdOYW1lID0gJ1Byb3llY3RvIGNvbiB1biBub21icmUgZXhjZXNpdmFtZW50ZSBsYXJnbyBwYXJhIGVsIGNoaXAnXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8Q2hpcCBpdGVtcz17W2xvbmdOYW1lXX0gLz4pXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dChgJHtsb25nTmFtZS5zbGljZSgwLCA0MCl94oCmYCkpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDakYsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFN0JDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBTTtFQUNyQkMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLFlBQU07SUFDNUJOLG1CQUFtQixjQUFDSSxJQUFBLENBQUNGLElBQUk7TUFBQ0ssS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVc7SUFBRSxDQUFFLENBQUMsQ0FBQztJQUVqRUMsTUFBTSxDQUFDUCxNQUFNLENBQUNRLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFERixNQUFNLENBQUNQLE1BQU0sQ0FBQ1EsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7RUFDM0QsQ0FBQyxDQUFDO0VBRUZKLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxZQUFNO0lBQ2hELElBQU1LLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUMxQmIsbUJBQW1CLGNBQUNJLElBQUEsQ0FBQ0YsSUFBSTtNQUFDSyxLQUFLLEVBQUUsQ0FBQyxZQUFZLENBQUU7TUFBQ0ksUUFBUSxFQUFFQSxRQUFTO01BQUNHLFdBQVcsRUFBQztJQUFpQixDQUFFLENBQUMsQ0FBQztJQUV0R2YsU0FBUyxDQUFDZ0IsS0FBSyxDQUFDZCxNQUFNLENBQUNlLFNBQVMsQ0FBQyxRQUFRLEVBQUU7TUFBRUMsSUFBSSxFQUFFO0lBQWtCLENBQUMsQ0FBQyxDQUFDO0lBRXhFVCxNQUFNLENBQUNHLFFBQVEsQ0FBQyxDQUFDTyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7RUFDM0MsQ0FBQyxDQUFDO0VBRUZaLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFNO0lBQ2hDLElBQU1hLFFBQVEsR0FBRyx5REFBeUQ7SUFDMUVuQixtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixJQUFJO01BQUNLLEtBQUssRUFBRSxDQUFDWSxRQUFRO0lBQUUsQ0FBRSxDQUFDLENBQUM7SUFFaERYLE1BQU0sQ0FBQ1AsTUFBTSxDQUFDUSxTQUFTLElBQUFXLE1BQUEsQ0FBSUQsUUFBUSxDQUFDRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFHLENBQUMsQ0FBQyxDQUFDWCxpQkFBaUIsQ0FBQyxDQUFDO0VBQzNFLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,29 @@
1
+ import { CONTEXT_MENTION_CHIP_CLASS } from '../../../types/contextMention';
2
+ import { renderWithProviders, screen } from '../../../test/test-utils';
3
+ import { ContextMentionChip } from './ContextMentionChip';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ describe('ContextMentionChip', function () {
6
+ it('renders the normalized label and mention metadata', function () {
7
+ renderWithProviders(/*#__PURE__*/_jsx(ContextMentionChip, {
8
+ type: "user",
9
+ label: "@lucia"
10
+ }));
11
+ var chip = screen.getByText(function (_, element) {
12
+ return (element === null || element === void 0 ? void 0 : element.getAttribute('data-mention-chip')) === 'true';
13
+ });
14
+ expect(chip).toHaveClass(CONTEXT_MENTION_CHIP_CLASS);
15
+ expect(chip).toHaveTextContent('lucia');
16
+ expect(chip).toHaveAttribute('data-mention-type', 'user');
17
+ expect(chip).toHaveAttribute('data-mention-surface', 'editor');
18
+ expect(chip).toHaveAttribute('contenteditable', 'false');
19
+ });
20
+ it('marks chat surface when it is not inline', function () {
21
+ renderWithProviders(/*#__PURE__*/_jsx(ContextMentionChip, {
22
+ type: "task",
23
+ label: "Tarea 1",
24
+ inline: false
25
+ }));
26
+ expect(screen.getByText('Tarea 1').closest('[data-mention-chip="true"]')).toHaveAttribute('data-mention-surface', 'chat');
27
+ });
28
+ });
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyIsInJlbmRlcldpdGhQcm92aWRlcnMiLCJzY3JlZW4iLCJDb250ZXh0TWVudGlvbkNoaXAiLCJqc3giLCJfanN4IiwiZGVzY3JpYmUiLCJpdCIsInR5cGUiLCJsYWJlbCIsImNoaXAiLCJnZXRCeVRleHQiLCJfIiwiZWxlbWVudCIsImdldEF0dHJpYnV0ZSIsImV4cGVjdCIsInRvSGF2ZUNsYXNzIiwidG9IYXZlVGV4dENvbnRlbnQiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJpbmxpbmUiLCJjbG9zZXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25DaGlwL0NvbnRleHRNZW50aW9uQ2hpcC5zcGVjLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT05URVhUX01FTlRJT05fQ0hJUF9DTEFTUyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25DaGlwIH0gZnJvbSAnLi9Db250ZXh0TWVudGlvbkNoaXAnXG5cbmRlc2NyaWJlKCdDb250ZXh0TWVudGlvbkNoaXAnLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHRoZSBub3JtYWxpemVkIGxhYmVsIGFuZCBtZW50aW9uIG1ldGFkYXRhJywgKCkgPT4ge1xuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPENvbnRleHRNZW50aW9uQ2hpcCB0eXBlPVwidXNlclwiIGxhYmVsPVwiQGx1Y2lhXCIgLz4pXG5cbiAgICBjb25zdCBjaGlwID0gc2NyZWVuLmdldEJ5VGV4dCgoXywgZWxlbWVudCkgPT4gZWxlbWVudD8uZ2V0QXR0cmlidXRlKCdkYXRhLW1lbnRpb24tY2hpcCcpID09PSAndHJ1ZScpXG4gICAgZXhwZWN0KGNoaXApLnRvSGF2ZUNsYXNzKENPTlRFWFRfTUVOVElPTl9DSElQX0NMQVNTKVxuICAgIGV4cGVjdChjaGlwKS50b0hhdmVUZXh0Q29udGVudCgnbHVjaWEnKVxuICAgIGV4cGVjdChjaGlwKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi10eXBlJywgJ3VzZXInKVxuICAgIGV4cGVjdChjaGlwKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudGlvbi1zdXJmYWNlJywgJ2VkaXRvcicpXG4gICAgZXhwZWN0KGNoaXApLnRvSGF2ZUF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgJ2ZhbHNlJylcbiAgfSlcblxuICBpdCgnbWFya3MgY2hhdCBzdXJmYWNlIHdoZW4gaXQgaXMgbm90IGlubGluZScsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKDxDb250ZXh0TWVudGlvbkNoaXAgdHlwZT1cInRhc2tcIiBsYWJlbD1cIlRhcmVhIDFcIiBpbmxpbmU9e2ZhbHNlfSAvPilcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdUYXJlYSAxJykuY2xvc2VzdCgnW2RhdGEtbWVudGlvbi1jaGlwPVwidHJ1ZVwiXScpKS50b0hhdmVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1tZW50aW9uLXN1cmZhY2UnLFxuICAgICAgJ2NoYXQnXG4gICAgKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsMEJBQTBCLFFBQVEsK0JBQStCO0FBQzFFLFNBQVNDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ3RFLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQTtBQUV6REMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFlBQU07RUFDbkNDLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxZQUFNO0lBQzVETixtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixrQkFBa0I7TUFBQ0ssSUFBSSxFQUFDLE1BQU07TUFBQ0MsS0FBSyxFQUFDO0lBQVEsQ0FBRSxDQUFDLENBQUM7SUFFdEUsSUFBTUMsSUFBSSxHQUFHUixNQUFNLENBQUNTLFNBQVMsQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLE9BQU87TUFBQSxPQUFLLENBQUFBLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsTUFBSyxNQUFNO0lBQUEsRUFBQztJQUNwR0MsTUFBTSxDQUFDTCxJQUFJLENBQUMsQ0FBQ00sV0FBVyxDQUFDaEIsMEJBQTBCLENBQUM7SUFDcERlLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDLENBQUNPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztJQUN2Q0YsTUFBTSxDQUFDTCxJQUFJLENBQUMsQ0FBQ1EsZUFBZSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUN6REgsTUFBTSxDQUFDTCxJQUFJLENBQUMsQ0FBQ1EsZUFBZSxDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQztJQUM5REgsTUFBTSxDQUFDTCxJQUFJLENBQUMsQ0FBQ1EsZUFBZSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztFQUMxRCxDQUFDLENBQUM7RUFFRlgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLFlBQU07SUFDbkROLG1CQUFtQixjQUFDSSxJQUFBLENBQUNGLGtCQUFrQjtNQUFDSyxJQUFJLEVBQUMsTUFBTTtNQUFDQyxLQUFLLEVBQUMsU0FBUztNQUFDVSxNQUFNLEVBQUU7SUFBTSxDQUFFLENBQUMsQ0FBQztJQUV0RkosTUFBTSxDQUFDYixNQUFNLENBQUNTLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQ1MsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQ0YsZUFBZSxDQUN2RixzQkFBc0IsRUFDdEIsTUFDRixDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,31 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { Fade } from './Fade';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ describe('Fade', function () {
5
+ it('renders children when visible', function () {
6
+ renderWithProviders(/*#__PURE__*/_jsx(Fade, {
7
+ children: /*#__PURE__*/_jsx("p", {
8
+ children: "contenido"
9
+ })
10
+ }));
11
+ expect(screen.getByText('contenido')).toBeInTheDocument();
12
+ });
13
+ it('unmounts children after the exit animation when hidden', function () {
14
+ var _renderWithProviders = renderWithProviders(/*#__PURE__*/_jsx(Fade, {
15
+ show: true,
16
+ children: /*#__PURE__*/_jsx("p", {
17
+ children: "contenido"
18
+ })
19
+ })),
20
+ rerender = _renderWithProviders.rerender;
21
+ rerender(/*#__PURE__*/_jsx(Fade, {
22
+ show: false,
23
+ children: /*#__PURE__*/_jsx("p", {
24
+ children: "contenido"
25
+ })
26
+ }));
27
+ fireEvent.animationEnd(screen.getByText('contenido').parentElement);
28
+ expect(screen.queryByText('contenido')).not.toBeInTheDocument();
29
+ });
30
+ });
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiRmFkZSIsImpzeCIsIl9qc3giLCJkZXNjcmliZSIsIml0IiwiY2hpbGRyZW4iLCJleHBlY3QiLCJnZXRCeVRleHQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJXaXRoUHJvdmlkZXJzIiwic2hvdyIsInJlcmVuZGVyIiwiYW5pbWF0aW9uRW5kIiwicGFyZW50RWxlbWVudCIsInF1ZXJ5QnlUZXh0Iiwibm90Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvRmFkZS9GYWRlLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4vRmFkZSdcblxuZGVzY3JpYmUoJ0ZhZGUnLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIGNoaWxkcmVuIHdoZW4gdmlzaWJsZScsICgpID0+IHtcbiAgICByZW5kZXJXaXRoUHJvdmlkZXJzKFxuICAgICAgPEZhZGU+XG4gICAgICAgIDxwPmNvbnRlbmlkbzwvcD5cbiAgICAgIDwvRmFkZT5cbiAgICApXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnY29udGVuaWRvJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcblxuICBpdCgndW5tb3VudHMgY2hpbGRyZW4gYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uIHdoZW4gaGlkZGVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVyZW5kZXIgfSA9IHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8RmFkZSBzaG93PlxuICAgICAgICA8cD5jb250ZW5pZG88L3A+XG4gICAgICA8L0ZhZGU+XG4gICAgKVxuXG4gICAgcmVyZW5kZXIoXG4gICAgICA8RmFkZSBzaG93PXtmYWxzZX0+XG4gICAgICAgIDxwPmNvbnRlbmlkbzwvcD5cbiAgICAgIDwvRmFkZT5cbiAgICApXG5cbiAgICBmaXJlRXZlbnQuYW5pbWF0aW9uRW5kKHNjcmVlbi5nZXRCeVRleHQoJ2NvbnRlbmlkbycpLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpXG5cbiAgICBleHBlY3Qoc2NyZWVuLnF1ZXJ5QnlUZXh0KCdjb250ZW5pZG8nKSkubm90LnRvQmVJblRoZURvY3VtZW50KClcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsbUJBQW1CLEVBQUVDLE1BQU0sUUFBUSwwQkFBMEI7QUFDakYsU0FBU0MsSUFBSSxRQUFRLFFBQVE7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFN0JDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBTTtFQUNyQkMsRUFBRSxDQUFDLCtCQUErQixFQUFFLFlBQU07SUFDeENOLG1CQUFtQixjQUNqQkksSUFBQSxDQUFDRixJQUFJO01BQUFLLFFBQUEsZUFDSEgsSUFBQTtRQUFBRyxRQUFBLEVBQUc7TUFBUyxDQUFHO0lBQUMsQ0FDWixDQUNSLENBQUM7SUFFREMsTUFBTSxDQUFDUCxNQUFNLENBQUNRLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0VBQzNELENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMsd0RBQXdELEVBQUUsWUFBTTtJQUNqRSxJQUFBSyxvQkFBQSxHQUFxQlgsbUJBQW1CLGNBQ3RDSSxJQUFBLENBQUNGLElBQUk7UUFBQ1UsSUFBSTtRQUFBTCxRQUFBLGVBQ1JILElBQUE7VUFBQUcsUUFBQSxFQUFHO1FBQVMsQ0FBRztNQUFDLENBQ1osQ0FDUixDQUFDO01BSk9NLFFBQVEsR0FBQUYsb0JBQUEsQ0FBUkUsUUFBUTtJQU1oQkEsUUFBUSxjQUNOVCxJQUFBLENBQUNGLElBQUk7TUFBQ1UsSUFBSSxFQUFFLEtBQU07TUFBQUwsUUFBQSxlQUNoQkgsSUFBQTtRQUFBRyxRQUFBLEVBQUc7TUFBUyxDQUFHO0lBQUMsQ0FDWixDQUNSLENBQUM7SUFFRFIsU0FBUyxDQUFDZSxZQUFZLENBQUNiLE1BQU0sQ0FBQ1EsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDTSxhQUE0QixDQUFDO0lBRWxGUCxNQUFNLENBQUNQLE1BQU0sQ0FBQ2UsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUNDLEdBQUcsQ0FBQ1AsaUJBQWlCLENBQUMsQ0FBQztFQUNqRSxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,42 @@
1
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
2
+ import { MAIAButton } from './MAIAButton';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ var triggerEvent = jest.fn();
5
+ jest.mock('../../../hooks/useEvent', function () {
6
+ return {
7
+ useEvent: function useEvent() {
8
+ return triggerEvent;
9
+ }
10
+ };
11
+ });
12
+ describe('MAIAButton', function () {
13
+ beforeEach(function () {
14
+ triggerEvent.mockClear();
15
+ });
16
+ it('renders the label and calls onClick', function () {
17
+ var onClick = jest.fn();
18
+ renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
19
+ onClick: onClick,
20
+ children: "Abrir MAIA"
21
+ }));
22
+ fireEvent.click(screen.getByRole('button', {
23
+ name: /Abrir MAIA/
24
+ }));
25
+ expect(onClick).toHaveBeenCalledTimes(1);
26
+ expect(triggerEvent).not.toHaveBeenCalled();
27
+ });
28
+ it('tracks the event key before clicking', function () {
29
+ var onClick = jest.fn();
30
+ renderWithProviders(/*#__PURE__*/_jsx(MAIAButton, {
31
+ eventKey: "AI_CHAT_OPEN",
32
+ onClick: onClick,
33
+ children: "Abrir"
34
+ }));
35
+ fireEvent.click(screen.getByRole('button', {
36
+ name: /Abrir/
37
+ }));
38
+ expect(triggerEvent).toHaveBeenCalledWith('AI_CHAT_OPEN');
39
+ expect(onClick).toHaveBeenCalled();
40
+ });
41
+ });
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiTUFJQUJ1dHRvbiIsImpzeCIsIl9qc3giLCJ0cmlnZ2VyRXZlbnQiLCJqZXN0IiwiZm4iLCJtb2NrIiwidXNlRXZlbnQiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJpdCIsIm9uQ2xpY2siLCJjaGlsZHJlbiIsImNsaWNrIiwiZ2V0QnlSb2xlIiwibmFtZSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJldmVudEtleSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUJ1dHRvbi9NQUlBQnV0dG9uLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyV2l0aFByb3ZpZGVycywgc2NyZWVuIH0gZnJvbSAnLi4vLi4vLi4vdGVzdC90ZXN0LXV0aWxzJ1xuaW1wb3J0IHsgTUFJQUJ1dHRvbiB9IGZyb20gJy4vTUFJQUJ1dHRvbidcblxuY29uc3QgdHJpZ2dlckV2ZW50ID0gamVzdC5mbigpXG5cbmplc3QubW9jaygnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnLCAoKSA9PiAoe1xuICB1c2VFdmVudDogKCkgPT4gdHJpZ2dlckV2ZW50LFxufSkpXG5cbmRlc2NyaWJlKCdNQUlBQnV0dG9uJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0cmlnZ2VyRXZlbnQubW9ja0NsZWFyKClcbiAgfSlcblxuICBpdCgncmVuZGVycyB0aGUgbGFiZWwgYW5kIGNhbGxzIG9uQ2xpY2snLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPE1BSUFCdXR0b24gb25DbGljaz17b25DbGlja30+QWJyaXIgTUFJQTwvTUFJQUJ1dHRvbj4pXG5cbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAvQWJyaXIgTUFJQS8gfSkpXG5cbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gICAgZXhwZWN0KHRyaWdnZXJFdmVudCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKVxuICB9KVxuXG4gIGl0KCd0cmFja3MgdGhlIGV2ZW50IGtleSBiZWZvcmUgY2xpY2tpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKVxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoXG4gICAgICA8TUFJQUJ1dHRvbiBldmVudEtleT1cIkFJX0NIQVRfT1BFTlwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICBBYnJpclxuICAgICAgPC9NQUlBQnV0dG9uPlxuICAgIClcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6IC9BYnJpci8gfSkpXG5cbiAgICBleHBlY3QodHJpZ2dlckV2ZW50KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnQUlfQ0hBVF9PUEVOJylcbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZCgpXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLEVBQUVDLG1CQUFtQixFQUFFQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pGLFNBQVNDLFVBQVUsUUFBUSxjQUFjO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXpDLElBQU1DLFlBQVksR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztBQUU5QkQsSUFBSSxDQUFDRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7RUFBQSxPQUFPO0lBQzFDQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFKLFlBQVk7SUFBQTtFQUM5QixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhLLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBTTtFQUMzQkMsVUFBVSxDQUFDLFlBQU07SUFDZk4sWUFBWSxDQUFDTyxTQUFTLENBQUMsQ0FBQztFQUMxQixDQUFDLENBQUM7RUFFRkMsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07SUFDOUMsSUFBTUMsT0FBTyxHQUFHUixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCUCxtQkFBbUIsY0FBQ0ksSUFBQSxDQUFDRixVQUFVO01BQUNZLE9BQU8sRUFBRUEsT0FBUTtNQUFBQyxRQUFBLEVBQUM7SUFBVSxDQUFZLENBQUMsQ0FBQztJQUUxRWhCLFNBQVMsQ0FBQ2lCLEtBQUssQ0FBQ2YsTUFBTSxDQUFDZ0IsU0FBUyxDQUFDLFFBQVEsRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBYSxDQUFDLENBQUMsQ0FBQztJQUVuRUMsTUFBTSxDQUFDTCxPQUFPLENBQUMsQ0FBQ00scUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hDRCxNQUFNLENBQUNkLFlBQVksQ0FBQyxDQUFDZ0IsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQzdDLENBQUMsQ0FBQztFQUVGVCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtJQUMvQyxJQUFNQyxPQUFPLEdBQUdSLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekJQLG1CQUFtQixjQUNqQkksSUFBQSxDQUFDRixVQUFVO01BQUNxQixRQUFRLEVBQUMsY0FBYztNQUFDVCxPQUFPLEVBQUVBLE9BQVE7TUFBQUMsUUFBQSxFQUFDO0lBRXRELENBQVksQ0FDZCxDQUFDO0lBRURoQixTQUFTLENBQUNpQixLQUFLLENBQUNmLE1BQU0sQ0FBQ2dCLFNBQVMsQ0FBQyxRQUFRLEVBQUU7TUFBRUMsSUFBSSxFQUFFO0lBQVEsQ0FBQyxDQUFDLENBQUM7SUFFOURDLE1BQU0sQ0FBQ2QsWUFBWSxDQUFDLENBQUNtQixvQkFBb0IsQ0FBQyxjQUFjLENBQUM7SUFDekRMLE1BQU0sQ0FBQ0wsT0FBTyxDQUFDLENBQUNRLGdCQUFnQixDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119