mumucc 0.4.2 → 0.4.3

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 (645) hide show
  1. package/AGENTS.md +297 -0
  2. package/bin/mumucc +3 -8
  3. package/bun.lock +44 -141
  4. package/defaults/mcp-servers.json +0 -6
  5. package/package.json +3 -3
  6. package/shims/bun-bundle.ts +0 -3
  7. package/shims/globals.d.ts +15 -0
  8. package/shims/globals.ts +1 -1
  9. package/src/QueryEngine.ts +1 -0
  10. package/src/assistant/gate.ts +4 -1
  11. package/src/assistant/index.ts +29 -1
  12. package/src/assistant/sessionDiscovery.ts +10 -1
  13. package/src/bootstrap/state.ts +6 -1
  14. package/src/buddy/CompanionSprite.tsx +1 -0
  15. package/src/buddy/observer.ts +6 -0
  16. package/src/buddy/useBuddyNotification.tsx +1 -0
  17. package/src/cli/handlers/util.tsx +1 -0
  18. package/src/cli/print.ts +4 -1
  19. package/src/cli/structuredIO.ts +6 -1
  20. package/src/commands/add-dir/add-dir.tsx +1 -0
  21. package/src/commands/branch/branch.ts +1 -0
  22. package/src/commands/bridge/bridge.tsx +2 -1
  23. package/src/commands/btw/btw.tsx +1 -0
  24. package/src/commands/buddy/index.ts +2 -1
  25. package/src/commands/chrome/chrome.tsx +1 -0
  26. package/src/commands/clear/caches.ts +1 -0
  27. package/src/commands/compact/compact.ts +1 -0
  28. package/src/commands/context/context-noninteractive.ts +1 -0
  29. package/src/commands/context/context.tsx +1 -0
  30. package/src/commands/copy/copy.tsx +2 -1
  31. package/src/commands/effort/effort.tsx +1 -0
  32. package/src/commands/extra-usage/extra-usage.tsx +1 -0
  33. package/src/commands/fast/fast.tsx +1 -0
  34. package/src/commands/fork/index.ts +2 -1
  35. package/src/commands/ide/ide.tsx +2 -1
  36. package/src/commands/insights.ts +1 -0
  37. package/src/commands/install-github-app/ApiKeyStep.tsx +1 -0
  38. package/src/commands/install-github-app/CheckExistingSecretStep.tsx +1 -0
  39. package/src/commands/install-github-app/ChooseRepoStep.tsx +1 -0
  40. package/src/commands/install-github-app/CreatingStep.tsx +1 -0
  41. package/src/commands/install-github-app/ErrorStep.tsx +1 -0
  42. package/src/commands/install-github-app/ExistingWorkflowStep.tsx +1 -0
  43. package/src/commands/install-github-app/InstallAppStep.tsx +1 -0
  44. package/src/commands/install-github-app/OAuthFlowStep.tsx +1 -0
  45. package/src/commands/install-github-app/SuccessStep.tsx +1 -0
  46. package/src/commands/install-github-app/WarningsStep.tsx +1 -0
  47. package/src/commands/install-github-app/install-github-app.tsx +2 -1
  48. package/src/commands/install.tsx +1 -0
  49. package/src/commands/login/CodexLogin.tsx +39 -12
  50. package/src/commands/login/CustomProviderLogin.tsx +45 -9
  51. package/src/commands/login/ThirdPartyLogin.tsx +24 -6
  52. package/src/commands/login/login.tsx +37 -10
  53. package/src/commands/login/profileDefaults.ts +25 -0
  54. package/src/commands/mcp/mcp.tsx +1 -0
  55. package/src/commands/mobile/mobile.tsx +1 -0
  56. package/src/commands/model/model.tsx +14 -3
  57. package/src/commands/peers/index.ts +2 -1
  58. package/src/commands/permissions/permissions.tsx +1 -0
  59. package/src/commands/plan/plan.tsx +1 -0
  60. package/src/commands/plugin/DiscoverPlugins.tsx +1 -0
  61. package/src/commands/plugin/ManageMarketplaces.tsx +1 -0
  62. package/src/commands/plugin/ManagePlugins.tsx +1 -0
  63. package/src/commands/plugin/PluginOptionsDialog.tsx +1 -0
  64. package/src/commands/plugin/PluginSettings.tsx +2 -1
  65. package/src/commands/plugin/UnifiedInstalledCell.tsx +1 -0
  66. package/src/commands/plugin/ValidatePlugin.tsx +1 -0
  67. package/src/commands/plugin/pluginDetailsHelpers.tsx +1 -0
  68. package/src/commands/rate-limit-options/rate-limit-options.tsx +1 -0
  69. package/src/commands/remote-setup/remote-setup.tsx +1 -0
  70. package/src/commands/resume/resume.tsx +1 -0
  71. package/src/commands/review/UltrareviewOverageDialog.tsx +1 -0
  72. package/src/commands/review/ultrareviewCommand.tsx +1 -0
  73. package/src/commands/session/session.tsx +1 -0
  74. package/src/commands/tag/tag.tsx +1 -0
  75. package/src/commands/terminalSetup/terminalSetup.tsx +1 -0
  76. package/src/commands/theme/theme.tsx +1 -0
  77. package/src/commands/thinkback/thinkback.tsx +2 -1
  78. package/src/commands/ultraplan.tsx +11 -1
  79. package/src/commands/upgrade/upgrade.tsx +1 -0
  80. package/src/commands/workflows/index.ts +2 -1
  81. package/src/components/AgentProgressLine.tsx +1 -0
  82. package/src/components/App.tsx +1 -0
  83. package/src/components/ApproveApiKey.tsx +1 -0
  84. package/src/components/AutoModeOptInDialog.tsx +1 -0
  85. package/src/components/AutoUpdater.tsx +1 -0
  86. package/src/components/AutoUpdaterWrapper.tsx +1 -0
  87. package/src/components/AwsAuthStatusBox.tsx +1 -0
  88. package/src/components/BaseTextInput.tsx +1 -0
  89. package/src/components/BashModeProgress.tsx +1 -0
  90. package/src/components/BridgeDialog.tsx +2 -1
  91. package/src/components/BypassPermissionsModeDialog.tsx +1 -0
  92. package/src/components/ChannelDowngradeDialog.tsx +1 -0
  93. package/src/components/ClaudeInChromeOnboarding.tsx +1 -0
  94. package/src/components/ClaudeMdExternalIncludesDialog.tsx +1 -0
  95. package/src/components/ClickableImageRef.tsx +1 -0
  96. package/src/components/CompactSummary.tsx +1 -0
  97. package/src/components/ConfigurableShortcutHint.tsx +1 -0
  98. package/src/components/ConsoleOAuthFlow.tsx +1 -0
  99. package/src/components/ContextSuggestions.tsx +1 -0
  100. package/src/components/ContextVisualization.tsx +2 -1
  101. package/src/components/CoordinatorAgentStatus.tsx +3 -4
  102. package/src/components/CostThresholdDialog.tsx +1 -0
  103. package/src/components/CtrlOToExpand.tsx +1 -0
  104. package/src/components/CustomSelect/SelectMulti.tsx +1 -0
  105. package/src/components/CustomSelect/select-input-option.tsx +1 -0
  106. package/src/components/CustomSelect/select-option.tsx +1 -0
  107. package/src/components/CustomSelect/select.tsx +2 -1
  108. package/src/components/CustomSelect/use-multi-select-state.ts +1 -0
  109. package/src/components/DesktopHandoff.tsx +1 -0
  110. package/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +1 -0
  111. package/src/components/DevBar.tsx +1 -0
  112. package/src/components/DevChannelsDialog.tsx +1 -0
  113. package/src/components/DiagnosticsDisplay.tsx +1 -0
  114. package/src/components/EffortCallout.tsx +1 -0
  115. package/src/components/ExitFlow.tsx +1 -0
  116. package/src/components/FallbackToolUseErrorMessage.tsx +1 -0
  117. package/src/components/FastIcon.tsx +1 -0
  118. package/src/components/Feedback.tsx +1 -0
  119. package/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -0
  120. package/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +1 -0
  121. package/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +1 -0
  122. package/src/components/FeedbackSurvey/useFrustrationDetection.ts +6 -1
  123. package/src/components/FeedbackSurvey/useMemorySurvey.tsx +1 -0
  124. package/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +2 -1
  125. package/src/components/FileEditToolDiff.tsx +1 -0
  126. package/src/components/FileEditToolUpdatedMessage.tsx +1 -0
  127. package/src/components/FileEditToolUseRejectedMessage.tsx +1 -0
  128. package/src/components/FilePathLink.tsx +1 -0
  129. package/src/components/FullscreenLayout.tsx +1 -0
  130. package/src/components/GlobalSearchDialog.tsx +2 -1
  131. package/src/components/HelpV2/Commands.tsx +1 -0
  132. package/src/components/HelpV2/HelpV2.tsx +1 -0
  133. package/src/components/HighlightedCode/Fallback.tsx +1 -0
  134. package/src/components/HighlightedCode.tsx +1 -0
  135. package/src/components/HistorySearchDialog.tsx +1 -0
  136. package/src/components/IdeAutoConnectDialog.tsx +1 -0
  137. package/src/components/IdeOnboardingDialog.tsx +1 -0
  138. package/src/components/IdeStatusIndicator.tsx +1 -0
  139. package/src/components/IdleReturnDialog.tsx +1 -0
  140. package/src/components/InvalidConfigDialog.tsx +1 -0
  141. package/src/components/InvalidSettingsDialog.tsx +1 -0
  142. package/src/components/KeybindingWarnings.tsx +1 -0
  143. package/src/components/LanguagePicker.tsx +1 -0
  144. package/src/components/LogSelector.tsx +2 -1
  145. package/src/components/LogoV2/ChannelsNotice.tsx +6 -5
  146. package/src/components/LogoV2/Clawd.tsx +1 -0
  147. package/src/components/LogoV2/CondensedLogo.tsx +1 -0
  148. package/src/components/LogoV2/Feed.tsx +1 -0
  149. package/src/components/LogoV2/FeedColumn.tsx +1 -0
  150. package/src/components/LogoV2/LogoV2.tsx +2 -1
  151. package/src/components/LogoV2/OverageCreditUpsell.tsx +1 -0
  152. package/src/components/LogoV2/WelcomeV2.tsx +1 -0
  153. package/src/components/LogoV2/feedConfigs.tsx +1 -0
  154. package/src/components/MCPServerApprovalDialog.tsx +1 -0
  155. package/src/components/MCPServerDesktopImportDialog.tsx +1 -0
  156. package/src/components/MCPServerMultiselectDialog.tsx +1 -0
  157. package/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +1 -0
  158. package/src/components/Markdown.tsx +1 -0
  159. package/src/components/MemoryUsageIndicator.tsx +1 -0
  160. package/src/components/Message.tsx +2 -1
  161. package/src/components/MessageModel.tsx +1 -0
  162. package/src/components/MessageResponse.tsx +1 -0
  163. package/src/components/MessageRow.tsx +1 -0
  164. package/src/components/MessageSelector.tsx +2 -1
  165. package/src/components/MessageTimestamp.tsx +1 -0
  166. package/src/components/Messages.tsx +1 -0
  167. package/src/components/ModelPicker.tsx +4 -3
  168. package/src/components/NativeAutoUpdater.tsx +1 -0
  169. package/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -0
  170. package/src/components/Onboarding.tsx +1 -0
  171. package/src/components/OutputStylePicker.tsx +1 -0
  172. package/src/components/PackageManagerAutoUpdater.tsx +1 -0
  173. package/src/components/PrBadge.tsx +1 -0
  174. package/src/components/PromptInput/HistorySearchInput.tsx +1 -0
  175. package/src/components/PromptInput/Notifications.tsx +1 -0
  176. package/src/components/PromptInput/PromptInput.tsx +10 -8
  177. package/src/components/PromptInput/PromptInputFooter.tsx +1 -0
  178. package/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -0
  179. package/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -0
  180. package/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -0
  181. package/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -0
  182. package/src/components/PromptInput/PromptInputStashNotice.tsx +1 -0
  183. package/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -0
  184. package/src/components/PromptInput/ShimmeredInput.tsx +1 -0
  185. package/src/components/PromptInput/VoiceIndicator.tsx +1 -0
  186. package/src/components/QuickOpenDialog.tsx +2 -1
  187. package/src/components/RemoteEnvironmentDialog.tsx +2 -1
  188. package/src/components/ResumeTask.tsx +1 -0
  189. package/src/components/SandboxViolationExpandedView.tsx +1 -0
  190. package/src/components/SearchBox.tsx +1 -0
  191. package/src/components/SessionBackgroundHint.tsx +1 -0
  192. package/src/components/SessionPreview.tsx +1 -0
  193. package/src/components/Settings/Config.tsx +1 -0
  194. package/src/components/Settings/Settings.tsx +1 -0
  195. package/src/components/Settings/Status.tsx +2 -1
  196. package/src/components/Settings/Usage.tsx +1 -0
  197. package/src/components/ShowInIDEPrompt.tsx +1 -0
  198. package/src/components/SkillImprovementSurvey.tsx +1 -0
  199. package/src/components/Spinner/FlashingChar.tsx +1 -0
  200. package/src/components/Spinner/GlimmerMessage.tsx +1 -0
  201. package/src/components/Spinner/ShimmerChar.tsx +1 -0
  202. package/src/components/Spinner/SpinnerAnimationRow.tsx +1 -0
  203. package/src/components/Spinner/SpinnerGlyph.tsx +1 -0
  204. package/src/components/Spinner/TeammateSpinnerTree.tsx +1 -0
  205. package/src/components/Spinner/utils.ts +1 -0
  206. package/src/components/Spinner.tsx +2 -1
  207. package/src/components/Stats.tsx +2 -1
  208. package/src/components/StatusNotices.tsx +1 -0
  209. package/src/components/StructuredDiff/Fallback.tsx +1 -0
  210. package/src/components/StructuredDiff.tsx +2 -1
  211. package/src/components/StructuredDiffList.tsx +1 -0
  212. package/src/components/TaskListV2.tsx +1 -0
  213. package/src/components/TeammateViewHeader.tsx +1 -0
  214. package/src/components/TeleportError.tsx +1 -0
  215. package/src/components/TeleportProgress.tsx +1 -0
  216. package/src/components/TeleportRepoMismatchDialog.tsx +1 -0
  217. package/src/components/TeleportResumeWrapper.tsx +1 -0
  218. package/src/components/TextInput.tsx +1 -0
  219. package/src/components/ThemePicker.tsx +1 -0
  220. package/src/components/ThinkingToggle.tsx +1 -0
  221. package/src/components/TokenWarning.tsx +1 -0
  222. package/src/components/ToolUseLoader.tsx +1 -0
  223. package/src/components/TrustDialog/TrustDialog.tsx +1 -0
  224. package/src/components/ValidationErrorsList.tsx +1 -0
  225. package/src/components/VimTextInput.tsx +1 -0
  226. package/src/components/VirtualMessageList.tsx +1 -0
  227. package/src/components/WorkflowMultiselectDialog.tsx +1 -0
  228. package/src/components/agents/AgentDetail.tsx +1 -0
  229. package/src/components/agents/AgentEditor.tsx +1 -0
  230. package/src/components/agents/AgentNavigationFooter.tsx +1 -0
  231. package/src/components/agents/AgentsList.tsx +2 -1
  232. package/src/components/agents/AgentsMenu.tsx +2 -1
  233. package/src/components/agents/ColorPicker.tsx +1 -0
  234. package/src/components/agents/ModelSelector.tsx +1 -0
  235. package/src/components/agents/ToolSelector.tsx +2 -1
  236. package/src/components/agents/generateAgent.ts +1 -0
  237. package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -0
  238. package/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -0
  239. package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +1 -0
  240. package/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +1 -0
  241. package/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -0
  242. package/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -0
  243. package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +1 -0
  244. package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -0
  245. package/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -0
  246. package/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -0
  247. package/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -0
  248. package/src/components/design-system/Byline.tsx +1 -0
  249. package/src/components/design-system/Dialog.tsx +1 -0
  250. package/src/components/design-system/Divider.tsx +1 -0
  251. package/src/components/design-system/FuzzyPicker.tsx +1 -0
  252. package/src/components/design-system/KeyboardShortcutHint.tsx +1 -0
  253. package/src/components/design-system/ListItem.tsx +1 -0
  254. package/src/components/design-system/LoadingState.tsx +1 -0
  255. package/src/components/design-system/Pane.tsx +1 -0
  256. package/src/components/design-system/ProgressBar.tsx +1 -0
  257. package/src/components/design-system/Ratchet.tsx +1 -0
  258. package/src/components/design-system/StatusIcon.tsx +1 -0
  259. package/src/components/design-system/Tabs.tsx +2 -1
  260. package/src/components/design-system/ThemeProvider.tsx +1 -0
  261. package/src/components/design-system/ThemedBox.tsx +1 -0
  262. package/src/components/design-system/ThemedText.tsx +1 -0
  263. package/src/components/diff/DiffDetailView.tsx +1 -0
  264. package/src/components/diff/DiffDialog.tsx +1 -0
  265. package/src/components/diff/DiffFileList.tsx +1 -0
  266. package/src/components/grove/Grove.tsx +2 -1
  267. package/src/components/hooks/HooksConfigMenu.tsx +2 -1
  268. package/src/components/hooks/PromptDialog.tsx +1 -0
  269. package/src/components/hooks/SelectEventMode.tsx +1 -0
  270. package/src/components/hooks/SelectHookMode.tsx +1 -0
  271. package/src/components/hooks/SelectMatcherMode.tsx +1 -0
  272. package/src/components/hooks/ViewHookMode.tsx +1 -0
  273. package/src/components/mcp/CapabilitiesSection.tsx +1 -0
  274. package/src/components/mcp/ElicitationDialog.tsx +1 -0
  275. package/src/components/mcp/MCPAgentServerMenu.tsx +1 -0
  276. package/src/components/mcp/MCPListPanel.tsx +2 -1
  277. package/src/components/mcp/MCPReconnect.tsx +1 -0
  278. package/src/components/mcp/MCPRemoteServerMenu.tsx +1 -0
  279. package/src/components/mcp/MCPSettings.tsx +2 -1
  280. package/src/components/mcp/MCPStdioServerMenu.tsx +1 -0
  281. package/src/components/mcp/MCPToolDetailView.tsx +1 -0
  282. package/src/components/mcp/MCPToolListView.tsx +1 -0
  283. package/src/components/mcp/McpParsingWarnings.tsx +1 -0
  284. package/src/components/memory/MemoryFileSelector.tsx +2 -1
  285. package/src/components/memory/MemoryUpdateNotification.tsx +1 -0
  286. package/src/components/messageActions.tsx +1 -0
  287. package/src/components/messages/AdvisorMessage.tsx +1 -0
  288. package/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -0
  289. package/src/components/messages/AssistantTextMessage.tsx +1 -0
  290. package/src/components/messages/AssistantThinkingMessage.tsx +1 -0
  291. package/src/components/messages/AssistantToolUseMessage.tsx +1 -0
  292. package/src/components/messages/AttachmentMessage.tsx +2 -1
  293. package/src/components/messages/CollapsedReadSearchContent.tsx +2 -1
  294. package/src/components/messages/GroupedToolUseContent.tsx +1 -0
  295. package/src/components/messages/HighlightedThinkingText.tsx +1 -0
  296. package/src/components/messages/HookProgressMessage.tsx +1 -0
  297. package/src/components/messages/PlanApprovalMessage.tsx +1 -0
  298. package/src/components/messages/RateLimitMessage.tsx +1 -0
  299. package/src/components/messages/ShutdownMessage.tsx +1 -0
  300. package/src/components/messages/SystemAPIErrorMessage.tsx +1 -0
  301. package/src/components/messages/SystemTextMessage.tsx +2 -1
  302. package/src/components/messages/TaskAssignmentMessage.tsx +1 -0
  303. package/src/components/messages/UserAgentNotificationMessage.tsx +1 -0
  304. package/src/components/messages/UserBashInputMessage.tsx +1 -0
  305. package/src/components/messages/UserBashOutputMessage.tsx +1 -0
  306. package/src/components/messages/UserChannelMessage.tsx +1 -0
  307. package/src/components/messages/UserCommandMessage.tsx +1 -0
  308. package/src/components/messages/UserImageMessage.tsx +1 -0
  309. package/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -0
  310. package/src/components/messages/UserMemoryInputMessage.tsx +1 -0
  311. package/src/components/messages/UserPlanMessage.tsx +1 -0
  312. package/src/components/messages/UserResourceUpdateMessage.tsx +1 -0
  313. package/src/components/messages/UserTeammateMessage.tsx +1 -0
  314. package/src/components/messages/UserTextMessage.tsx +1 -0
  315. package/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +1 -0
  316. package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -0
  317. package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -0
  318. package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -0
  319. package/src/components/messages/UserToolResultMessage/utils.tsx +1 -0
  320. package/src/components/messages/nullRenderingAttachments.ts +1 -0
  321. package/src/components/messages/teamMemCollapsed.tsx +1 -0
  322. package/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +2 -1
  323. package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -0
  324. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +2 -1
  325. package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +2 -1
  326. package/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -0
  327. package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -0
  328. package/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +1 -0
  329. package/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +2 -1
  330. package/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +1 -0
  331. package/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +1 -0
  332. package/src/components/permissions/FallbackPermissionRequest.tsx +1 -0
  333. package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -0
  334. package/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -0
  335. package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -0
  336. package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -0
  337. package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -0
  338. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -0
  339. package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +2 -1
  340. package/src/components/permissions/PermissionDecisionDebugInfo.tsx +2 -1
  341. package/src/components/permissions/PermissionDialog.tsx +1 -0
  342. package/src/components/permissions/PermissionExplanation.tsx +2 -1
  343. package/src/components/permissions/PermissionPrompt.tsx +2 -1
  344. package/src/components/permissions/PermissionRequest.tsx +1 -0
  345. package/src/components/permissions/PermissionRequestTitle.tsx +1 -0
  346. package/src/components/permissions/PermissionRuleExplanation.tsx +1 -0
  347. package/src/components/permissions/SandboxPermissionRequest.tsx +1 -0
  348. package/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -0
  349. package/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +1 -0
  350. package/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +1 -0
  351. package/src/components/permissions/WorkerBadge.tsx +1 -0
  352. package/src/components/permissions/WorkerPendingPermission.tsx +1 -0
  353. package/src/components/permissions/rules/AddPermissionRules.tsx +1 -0
  354. package/src/components/permissions/rules/AddWorkspaceDirectory.tsx +2 -1
  355. package/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -0
  356. package/src/components/permissions/rules/PermissionRuleInput.tsx +1 -0
  357. package/src/components/permissions/rules/PermissionRuleList.tsx +2 -1
  358. package/src/components/permissions/rules/RecentDenialsTab.tsx +1 -0
  359. package/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +1 -0
  360. package/src/components/permissions/rules/WorkspaceTab.tsx +1 -0
  361. package/src/components/sandbox/SandboxConfigTab.tsx +1 -0
  362. package/src/components/sandbox/SandboxDependenciesTab.tsx +1 -0
  363. package/src/components/sandbox/SandboxDoctorSection.tsx +1 -0
  364. package/src/components/sandbox/SandboxOverridesTab.tsx +1 -0
  365. package/src/components/sandbox/SandboxSettings.tsx +1 -0
  366. package/src/components/shell/ExpandShellOutputContext.tsx +1 -0
  367. package/src/components/shell/OutputLine.tsx +1 -0
  368. package/src/components/shell/ShellProgressMessage.tsx +1 -0
  369. package/src/components/shell/ShellTimeDisplay.tsx +1 -0
  370. package/src/components/skills/SkillsMenu.tsx +1 -0
  371. package/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -0
  372. package/src/components/tasks/BackgroundTask.tsx +1 -0
  373. package/src/components/tasks/BackgroundTaskStatus.tsx +2 -1
  374. package/src/components/tasks/BackgroundTasksDialog.tsx +2 -1
  375. package/src/components/tasks/DreamDetailDialog.tsx +1 -0
  376. package/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -0
  377. package/src/components/tasks/RemoteSessionDetailDialog.tsx +2 -1
  378. package/src/components/tasks/RemoteSessionProgress.tsx +1 -0
  379. package/src/components/tasks/ShellDetailDialog.tsx +2 -1
  380. package/src/components/tasks/ShellProgress.tsx +1 -0
  381. package/src/components/tasks/taskStatusUtils.tsx +1 -0
  382. package/src/components/teams/TeamStatus.tsx +1 -0
  383. package/src/components/teams/TeamsDialog.tsx +2 -1
  384. package/src/components/ui/OrderedList.tsx +1 -0
  385. package/src/components/ui/OrderedListItem.tsx +1 -0
  386. package/src/components/ui/TreeSelect.tsx +2 -1
  387. package/src/components/wizard/WizardDialogLayout.tsx +1 -0
  388. package/src/components/wizard/WizardProvider.tsx +2 -1
  389. package/src/components/wizard/useWizard.ts +1 -0
  390. package/src/constants/betas.ts +1 -0
  391. package/src/constants/prompts.ts +1 -0
  392. package/src/context/QueuedMessageContext.tsx +1 -0
  393. package/src/context/fpsMetrics.tsx +1 -0
  394. package/src/context/mailbox.tsx +1 -0
  395. package/src/context/modalContext.tsx +1 -0
  396. package/src/context/overlayContext.tsx +1 -0
  397. package/src/context/promptOverlayContext.tsx +1 -0
  398. package/src/context/stats.tsx +1 -0
  399. package/src/context/voice.tsx +1 -0
  400. package/src/cost-tracker.ts +1 -0
  401. package/src/dialogLaunchers.tsx +1 -0
  402. package/src/entrypoints/agentSdkTypes.ts +4 -17
  403. package/src/entrypoints/cli.tsx +1 -0
  404. package/src/entrypoints/sdk/controlTypes.ts +86 -10
  405. package/src/entrypoints/sdk/coreTypes.generated.ts +99 -2
  406. package/src/entrypoints/sdk/runtimeTypes.ts +53 -18
  407. package/src/entrypoints/sdk/settingsTypes.generated.ts +2 -1
  408. package/src/hooks/notifs/useAntOrgWarningNotification.ts +1 -1
  409. package/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +1 -0
  410. package/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -0
  411. package/src/hooks/notifs/useFastModeNotification.tsx +1 -0
  412. package/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -0
  413. package/src/hooks/notifs/useInstallMessages.tsx +1 -0
  414. package/src/hooks/notifs/useLspInitializationNotification.tsx +1 -0
  415. package/src/hooks/notifs/useMcpConnectivityStatus.tsx +1 -0
  416. package/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -0
  417. package/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -0
  418. package/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -0
  419. package/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -0
  420. package/src/hooks/useCanUseTool.tsx +2 -1
  421. package/src/hooks/useChromeExtensionNotification.tsx +1 -0
  422. package/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -0
  423. package/src/hooks/useCommandKeybindings.tsx +1 -0
  424. package/src/hooks/useDiffData.ts +1 -0
  425. package/src/hooks/useIDEIntegration.tsx +1 -0
  426. package/src/hooks/useLspPluginRecommendation.tsx +1 -0
  427. package/src/hooks/useOfficialMarketplaceNotification.tsx +1 -0
  428. package/src/hooks/usePluginRecommendationBase.tsx +1 -0
  429. package/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -0
  430. package/src/hooks/useRemoteSession.ts +1 -0
  431. package/src/hooks/useReplBridge.tsx +1 -0
  432. package/src/hooks/useSSHSession.ts +1 -0
  433. package/src/hooks/useTeleportResume.tsx +1 -0
  434. package/src/hooks/useTurnDiffs.ts +1 -0
  435. package/src/hooks/useTypeahead.tsx +1 -0
  436. package/src/hooks/useVoiceIntegration.tsx +1 -0
  437. package/src/ink/Ansi.tsx +1 -0
  438. package/src/ink/bidi.ts +1 -0
  439. package/src/ink/components/AlternateScreen.tsx +1 -0
  440. package/src/ink/components/Box.tsx +1 -0
  441. package/src/ink/components/Button.tsx +1 -0
  442. package/src/ink/components/ClockContext.tsx +1 -0
  443. package/src/ink/components/Link.tsx +1 -0
  444. package/src/ink/components/Newline.tsx +1 -0
  445. package/src/ink/components/NoSelect.tsx +1 -0
  446. package/src/ink/components/RawAnsi.tsx +1 -0
  447. package/src/ink/components/ScrollBox.tsx +1 -0
  448. package/src/ink/components/TerminalFocusContext.tsx +1 -0
  449. package/src/ink/components/Text.tsx +1 -0
  450. package/src/ink/ink.tsx +1 -0
  451. package/src/ink/reconciler.ts +1 -0
  452. package/src/ink/render-to-screen.ts +1 -0
  453. package/src/interactiveHelpers.tsx +4 -4
  454. package/src/keybindings/KeybindingContext.tsx +2 -1
  455. package/src/keybindings/KeybindingProviderSetup.tsx +1 -0
  456. package/src/keybindings/parser.ts +1 -0
  457. package/src/keybindings/template.ts +1 -0
  458. package/src/keybindings/validate.ts +1 -0
  459. package/src/main.tsx +5 -7
  460. package/src/memdir/findRelevantMemories.ts +1 -0
  461. package/src/native-ts/color-diff/index.ts +1 -0
  462. package/src/proactive/index.ts +26 -1
  463. package/src/proactive/useProactive.ts +13 -1
  464. package/src/query/stopHooks.ts +1 -0
  465. package/src/query.ts +1 -0
  466. package/src/remote/SessionsWebSocket.ts +1 -0
  467. package/src/screens/Doctor.tsx +2 -1
  468. package/src/screens/REPL.tsx +13 -6
  469. package/src/screens/ResumeConversation.tsx +1 -0
  470. package/src/services/AgentSummary/agentSummary.ts +1 -0
  471. package/src/services/PromptSuggestion/promptSuggestion.ts +1 -0
  472. package/src/services/api/claude.ts +33 -31
  473. package/src/services/api/client.ts +34 -31
  474. package/src/services/api/errors.ts +1 -0
  475. package/src/services/api/logging.ts +1 -0
  476. package/src/services/api/openaiShim.ts +35 -8
  477. package/src/services/api/withRetry.ts +1 -0
  478. package/src/services/autoDream/autoDream.ts +1 -0
  479. package/src/services/claudeAiLimits.ts +1 -0
  480. package/src/services/compact/autoCompact.ts +1 -0
  481. package/src/services/compact/cachedMicrocompact.ts +56 -4
  482. package/src/services/compact/compact.ts +1 -0
  483. package/src/services/compact/microCompact.ts +1 -0
  484. package/src/services/compact/postCompactCleanup.ts +1 -0
  485. package/src/services/compact/reactiveCompact.ts +16 -1
  486. package/src/services/compact/sessionMemoryCompact.ts +1 -0
  487. package/src/services/compact/snipCompact.ts +18 -1
  488. package/src/services/compact/snipProjection.ts +6 -1
  489. package/src/services/contextCollapse/index.ts +33 -1
  490. package/src/services/extractMemories/extractMemories.ts +1 -0
  491. package/src/services/mcp/MCPConnectionManager.tsx +1 -0
  492. package/src/services/mcp/channelAllowlist.ts +1 -1
  493. package/src/services/mcp/channelNotification.ts +90 -4
  494. package/src/services/mcp/channelPermissions.ts +1 -1
  495. package/src/services/mcp/client.ts +1 -0
  496. package/src/services/mcp/useManageMCPConnections.ts +5 -3
  497. package/src/services/notifier.ts +1 -0
  498. package/src/services/rateLimitMocking.ts +1 -0
  499. package/src/services/skillSearch/localSearch.ts +1 -1
  500. package/src/services/skillSearch/prefetch.ts +10 -1
  501. package/src/services/tips/tipRegistry.ts +1 -0
  502. package/src/services/toolUseSummary/toolUseSummaryGenerator.ts +1 -0
  503. package/src/services/tools/StreamingToolExecutor.ts +1 -0
  504. package/src/services/tools/toolOrchestration.ts +1 -0
  505. package/src/services/vcr.ts +1 -0
  506. package/src/services/voice.ts +1 -0
  507. package/src/setup.ts +1 -0
  508. package/src/skills/bundled/claudeInChrome.ts +1 -0
  509. package/src/skills/bundled/keybindings.ts +1 -0
  510. package/src/skills/bundled/skillify.ts +1 -0
  511. package/src/state/AppState.tsx +10 -7
  512. package/src/tasks/LocalMainSessionTask.ts +1 -0
  513. package/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -0
  514. package/src/tasks/LocalShellTask/killShellTasks.ts +1 -0
  515. package/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +1 -0
  516. package/src/tools/AgentTool/AgentTool.tsx +30 -3
  517. package/src/tools/AgentTool/UI.tsx +2 -1
  518. package/src/tools/AgentTool/agentToolUtils.ts +1 -0
  519. package/src/tools/AgentTool/builtInAgents.ts +1 -0
  520. package/src/tools/AgentTool/forkSubagent.ts +1 -0
  521. package/src/tools/AgentTool/loadAgentsDir.ts +9 -0
  522. package/src/tools/AgentTool/runAgent.ts +2 -0
  523. package/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +1 -0
  524. package/src/tools/BashTool/BashTool.tsx +1 -0
  525. package/src/tools/BashTool/BashToolResultMessage.tsx +1 -0
  526. package/src/tools/BashTool/UI.tsx +1 -0
  527. package/src/tools/BriefTool/UI.tsx +1 -0
  528. package/src/tools/FileEditTool/UI.tsx +1 -0
  529. package/src/tools/FileEditTool/utils.ts +1 -0
  530. package/src/tools/FileReadTool/FileReadTool.ts +1 -0
  531. package/src/tools/FileReadTool/imageProcessor.ts +1 -0
  532. package/src/tools/FileWriteTool/UI.tsx +2 -1
  533. package/src/tools/GrepTool/UI.tsx +1 -0
  534. package/src/tools/LSPTool/UI.tsx +1 -0
  535. package/src/tools/MCPTool/UI.tsx +1 -0
  536. package/src/tools/NotebookEditTool/NotebookEditTool.ts +1 -0
  537. package/src/tools/NotebookEditTool/UI.tsx +1 -0
  538. package/src/tools/PowerShellTool/PowerShellTool.tsx +1 -0
  539. package/src/tools/SendMessageTool/SendMessageTool.ts +1 -0
  540. package/src/tools/SkillTool/SkillTool.ts +1 -0
  541. package/src/tools/TaskOutputTool/TaskOutputTool.tsx +1 -0
  542. package/src/tools/TaskStopTool/UI.tsx +1 -0
  543. package/src/tools/ToolSearchTool/prompt.ts +1 -0
  544. package/src/tools/TungstenTool/TungstenLiveMonitor.ts +3 -0
  545. package/src/tools/WebBrowserTool/WebBrowserPanel.ts +3 -1
  546. package/src/tools/WebFetchTool/utils.ts +1 -0
  547. package/src/tools/WebSearchTool/WebSearchTool.ts +1 -0
  548. package/src/tools/WorkflowTool/createWorkflowCommand.ts +3 -1
  549. package/src/tools/testing/TestingPermissionTool.tsx +1 -0
  550. package/src/tools/utils.ts +1 -0
  551. package/src/types/commands-js.d.ts +13 -0
  552. package/src/types/diff.d.ts +1 -0
  553. package/src/types/hooks.ts +1 -0
  554. package/src/types/macro.d.ts +15 -0
  555. package/src/types/markdown.d.ts +4 -0
  556. package/src/types/message.ts +56 -107
  557. package/src/types/react-compiler-runtime.d.ts +4 -0
  558. package/src/types/utils.ts +3 -3
  559. package/src/utils/advisor.ts +1 -0
  560. package/src/utils/asciicast.ts +1 -0
  561. package/src/utils/attachments.ts +1 -0
  562. package/src/utils/attribution.ts +1 -0
  563. package/src/utils/autoRunIssue.tsx +1 -0
  564. package/src/utils/claudeInChrome/mcpServer.ts +1 -0
  565. package/src/utils/claudeInChrome/setup.ts +1 -0
  566. package/src/utils/claudemd.ts +1 -0
  567. package/src/utils/cleanup.ts +1 -0
  568. package/src/utils/cliHighlight.ts +1 -0
  569. package/src/utils/collapseReadSearch.ts +1 -0
  570. package/src/utils/computerUse/executor.ts +1 -0
  571. package/src/utils/computerUse/gates.ts +1 -0
  572. package/src/utils/computerUse/hostAdapter.ts +1 -0
  573. package/src/utils/computerUse/inputLoader.ts +1 -0
  574. package/src/utils/computerUse/mcpServer.ts +1 -0
  575. package/src/utils/computerUse/setup.ts +1 -0
  576. package/src/utils/computerUse/swiftLoader.ts +1 -0
  577. package/src/utils/computerUse/wrapper.tsx +2 -1
  578. package/src/utils/context.ts +1 -0
  579. package/src/utils/contextAnalysis.ts +1 -0
  580. package/src/utils/conversationRecovery.ts +1 -0
  581. package/src/utils/deepLink/protocolHandler.ts +1 -0
  582. package/src/utils/diff.ts +1 -0
  583. package/src/utils/effort.ts +1 -0
  584. package/src/utils/envUtils.ts +1 -0
  585. package/src/utils/execFileNoThrowPortable.ts +1 -0
  586. package/src/utils/fileHistory.ts +1 -0
  587. package/src/utils/filePersistence/filePersistence.ts +1 -0
  588. package/src/utils/filePersistence/outputsScanner.ts +1 -0
  589. package/src/utils/gitDiff.ts +1 -0
  590. package/src/utils/groupToolUses.ts +1 -0
  591. package/src/utils/hooks/hooksConfigManager.ts +1 -0
  592. package/src/utils/hooks/skillImprovement.ts +1 -0
  593. package/src/utils/hooks.ts +1 -0
  594. package/src/utils/imagePaste.ts +1 -0
  595. package/src/utils/log.ts +1 -0
  596. package/src/utils/logoV2Utils.ts +6 -6
  597. package/src/utils/messageQueueManager.ts +1 -0
  598. package/src/utils/messages.ts +122 -100
  599. package/src/utils/model/agent.ts +43 -2
  600. package/src/utils/model/configs.ts +1 -1
  601. package/src/utils/model/deprecation.ts +1 -0
  602. package/src/utils/model/fetchModels.ts +11 -1
  603. package/src/utils/model/model.ts +31 -0
  604. package/src/utils/model/modelCapabilities.ts +1 -0
  605. package/src/utils/model/modelOptions.ts +68 -14
  606. package/src/utils/model/modelStrings.ts +1 -0
  607. package/src/utils/model/platformProfiles.ts +524 -0
  608. package/src/utils/model/thirdPartyProviders.ts +158 -15
  609. package/src/utils/modelCost.ts +1 -0
  610. package/src/utils/notebook.ts +1 -0
  611. package/src/utils/permissions/classifierDecision.ts +1 -0
  612. package/src/utils/permissions/pathValidation.ts +1 -0
  613. package/src/utils/permissions/permissionExplainer.ts +1 -0
  614. package/src/utils/plugins/loadPluginHooks.ts +1 -0
  615. package/src/utils/plugins/lspPluginIntegration.ts +1 -0
  616. package/src/utils/plugins/pluginLoader.ts +1 -0
  617. package/src/utils/preflightChecks.tsx +2 -1
  618. package/src/utils/processUserInput/processSlashCommand.tsx +13 -3
  619. package/src/utils/queryHelpers.ts +1 -0
  620. package/src/utils/readFileInRange.ts +1 -0
  621. package/src/utils/sandbox/sandbox-adapter.ts +24 -22
  622. package/src/utils/sessionFileAccessHooks.ts +1 -0
  623. package/src/utils/sessionRestore.ts +1 -0
  624. package/src/utils/sessionStorage.ts +84 -46
  625. package/src/utils/settings/types.ts +72 -0
  626. package/src/utils/shell/prefix.ts +1 -0
  627. package/src/utils/sideQuery.ts +1 -0
  628. package/src/utils/sliceAnsi.ts +1 -0
  629. package/src/utils/staticRender.tsx +1 -0
  630. package/src/utils/stats.ts +1 -0
  631. package/src/utils/status.tsx +1 -0
  632. package/src/utils/swarm/It2SetupPrompt.tsx +2 -1
  633. package/src/utils/swarm/teammateModel.ts +1 -0
  634. package/src/utils/taskSummary.ts +6 -1
  635. package/src/utils/textHighlighting.ts +1 -0
  636. package/src/utils/thinking.ts +1 -0
  637. package/src/utils/toolResultStorage.ts +1 -0
  638. package/src/utils/transcriptSearch.ts +1 -0
  639. package/src/utils/worktree.ts +1 -0
  640. package/stubs/@anthropic-ai/mcpb/index.d.ts +23 -1
  641. package/stubs/@anthropic-ai/sandbox-runtime/index.d.ts +39 -1
  642. package/.gitignore.bak +0 -11
  643. package/bin/mumuclaw +0 -154
  644. package/bin/opencc +0 -50
  645. package/src/channels/heartbeat-channel.mjs +0 -280
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figures from 'figures';
2
3
  import React, { useCallback, useEffect, useRef, useState } from 'react';
3
4
  import type { CommandResultDisplay } from '../../commands.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import figures from 'figures';
3
4
  import React, { useCallback, useState } from 'react';
@@ -501,4 +502,4 @@ function _temp2(s_0) {
501
502
  function _temp(s) {
502
503
  return s.client.config.type !== "claudeai-proxy";
503
504
  }
504
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJCb3giLCJjb2xvciIsIkxpbmsiLCJUZXh0IiwidXNlVGhlbWUiLCJ1c2VLZXliaW5kaW5ncyIsIkNvbmZpZ1Njb3BlIiwiZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aCIsImlzRGVidWdNb2RlIiwicGx1cmFsIiwiQ29uZmlndXJhYmxlU2hvcnRjdXRIaW50IiwiQnlsaW5lIiwiRGlhbG9nIiwiS2V5Ym9hcmRTaG9ydGN1dEhpbnQiLCJNY3BQYXJzaW5nV2FybmluZ3MiLCJBZ2VudE1jcFNlcnZlckluZm8iLCJTZXJ2ZXJJbmZvIiwiUHJvcHMiLCJzZXJ2ZXJzIiwiYWdlbnRTZXJ2ZXJzIiwib25TZWxlY3RTZXJ2ZXIiLCJzZXJ2ZXIiLCJvblNlbGVjdEFnZW50U2VydmVyIiwiYWdlbnRTZXJ2ZXIiLCJvbkNvbXBsZXRlIiwicmVzdWx0Iiwib3B0aW9ucyIsImRpc3BsYXkiLCJkZWZhdWx0VGFiIiwiU2VsZWN0YWJsZUl0ZW0iLCJ0eXBlIiwiU0NPUEVfT1JERVIiLCJnZXRTY29wZUhlYWRpbmciLCJzY29wZSIsImxhYmVsIiwicGF0aCIsImdyb3VwU2VydmVyc0J5U2NvcGUiLCJzZXJ2ZXJMaXN0IiwiTWFwIiwiZ3JvdXBzIiwiaGFzIiwic2V0IiwiZ2V0IiwicHVzaCIsImdyb3VwU2VydmVycyIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwiTUNQTGlzdFBhbmVsIiwidDAiLCIkIiwiX2MiLCJ0MSIsInQyIiwidW5kZWZpbmVkIiwidGhlbWUiLCJzZWxlY3RlZEluZGV4Iiwic2V0U2VsZWN0ZWRJbmRleCIsInQzIiwicmVndWxhclNlcnZlcnMiLCJmaWx0ZXIiLCJfdGVtcCIsInNlcnZlcnNCeVNjb3BlIiwidDQiLCJfdGVtcDIiLCJfdGVtcDMiLCJjbGF1ZGVBaVNlcnZlcnMiLCJ0NSIsIl90ZW1wNCIsImR5bmFtaWNTZXJ2ZXJzIiwidDYiLCJTeW1ib2wiLCJmb3IiLCJkeW5hbWljSGVhZGluZyIsIml0ZW1zIiwic2NvcGVTZXJ2ZXJzIiwic2VydmVyXzAiLCJzZXJ2ZXJfMSIsInNlbGVjdGFibGVJdGVtcyIsInQ3IiwiaGFuZGxlQ2FuY2VsIiwidDgiLCJpdGVtIiwiaGFuZGxlU2VsZWN0IiwidDEwIiwidDkiLCJwcmV2IiwibGVuZ3RoIiwicHJldl8wIiwidDExIiwidDEyIiwiY29udGV4dCIsInQxMyIsInNlcnZlcl8yIiwiZmluZEluZGV4IiwiaXRlbV8wIiwiZ2V0U2VydmVySW5kZXgiLCJ0MTQiLCJhZ2VudFNlcnZlcl8wIiwiaXRlbV8xIiwiZ2V0QWdlbnRTZXJ2ZXJJbmRleCIsInQxNSIsImRlYnVnTW9kZSIsInQxNiIsInNvbWUiLCJfdGVtcDUiLCJoYXNGYWlsZWRDbGllbnRzIiwidDE3Iiwic2VydmVyXzMiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJzdGF0dXNJY29uIiwic3RhdHVzVGV4dCIsImNsaWVudCIsInJhZGlvT2ZmIiwidGljayIsInJlY29ubmVjdEF0dGVtcHQiLCJtYXhSZWNvbm5lY3RBdHRlbXB0cyIsInRyaWFuZ2xlVXBPdXRsaW5lIiwiY3Jvc3MiLCJwb2ludGVyIiwicmVuZGVyU2VydmVySXRlbSIsInQxOCIsImFnZW50U2VydmVyXzEiLCJpbmRleF8wIiwiaXNTZWxlY3RlZF8wIiwic3RhdHVzSWNvbl8wIiwibmVlZHNBdXRoIiwic3RhdHVzVGV4dF8wIiwicmVuZGVyQWdlbnRTZXJ2ZXJJdGVtIiwidG90YWxTZXJ2ZXJzIiwidDE5IiwidDIwIiwidDIxIiwidDIyIiwibWFwIiwic2NvcGVfMCIsInNjb3BlU2VydmVyc18wIiwiaGVhZGluZyIsInNlcnZlcl80IiwidDIzIiwic2VydmVyXzUiLCJ0MjQiLCJTZXQiLCJmbGF0TWFwIiwiX3RlbXA2IiwiYWdlbnROYW1lIiwic18zIiwicyIsInNvdXJjZUFnZW50cyIsImluY2x1ZGVzIiwiYWdlbnRTZXJ2ZXJfMiIsInQyNSIsInNlcnZlcl82IiwidDI2IiwidDI3IiwidDI4IiwidDI5IiwidDMwIiwidDMxIiwidDMyIiwic18yIiwic18xIiwiYV8wIiwiYl8wIiwic18wIiwiY29uZmlnIl0sInNvdXJjZXMiOlsiTUNQTGlzdFBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlndXJlcyBmcm9tICdmaWd1cmVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kUmVzdWx0RGlzcGxheSB9IGZyb20gJy4uLy4uL2NvbW1hbmRzLmpzJ1xuaW1wb3J0IHsgQm94LCBjb2xvciwgTGluaywgVGV4dCwgdXNlVGhlbWUgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2tleWJpbmRpbmdzL3VzZUtleWJpbmRpbmcuanMnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ1Njb3BlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWNwL3R5cGVzLmpzJ1xuaW1wb3J0IHsgZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21jcC91dGlscy5qcydcbmltcG9ydCB7IGlzRGVidWdNb2RlIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVidWcuanMnXG5pbXBvcnQgeyBwbHVyYWwgfSBmcm9tICcuLi8uLi91dGlscy9zdHJpbmdVdGlscy5qcydcbmltcG9ydCB7IENvbmZpZ3VyYWJsZVNob3J0Y3V0SGludCB9IGZyb20gJy4uL0NvbmZpZ3VyYWJsZVNob3J0Y3V0SGludC5qcydcbmltcG9ydCB7IEJ5bGluZSB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vQnlsaW5lLmpzJ1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0SGludCB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vS2V5Ym9hcmRTaG9ydGN1dEhpbnQuanMnXG5pbXBvcnQgeyBNY3BQYXJzaW5nV2FybmluZ3MgfSBmcm9tICcuL01jcFBhcnNpbmdXYXJuaW5ncy5qcydcbmltcG9ydCB0eXBlIHsgQWdlbnRNY3BTZXJ2ZXJJbmZvLCBTZXJ2ZXJJbmZvIH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgc2VydmVyczogU2VydmVySW5mb1tdXG4gIGFnZW50U2VydmVycz86IEFnZW50TWNwU2VydmVySW5mb1tdXG4gIG9uU2VsZWN0U2VydmVyOiAoc2VydmVyOiBTZXJ2ZXJJbmZvKSA9PiB2b2lkXG4gIG9uU2VsZWN0QWdlbnRTZXJ2ZXI/OiAoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbykgPT4gdm9pZFxuICBvbkNvbXBsZXRlOiAoXG4gICAgcmVzdWx0Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGRpc3BsYXk/OiBDb21tYW5kUmVzdWx0RGlzcGxheSB9LFxuICApID0+IHZvaWRcbiAgZGVmYXVsdFRhYj86IHN0cmluZ1xufVxuXG50eXBlIFNlbGVjdGFibGVJdGVtID1cbiAgfCB7IHR5cGU6ICdzZXJ2ZXInOyBzZXJ2ZXI6IFNlcnZlckluZm8gfVxuICB8IHsgdHlwZTogJ2FnZW50LXNlcnZlcic7IGFnZW50U2VydmVyOiBBZ2VudE1jcFNlcnZlckluZm8gfVxuXG4vLyBEZWZpbmUgc2NvcGUgb3JkZXIgZm9yIGRpc3BsYXkgKGNvbnN0YW50LCBvdXRzaWRlIGNvbXBvbmVudClcbi8vICdkeW5hbWljJyAoYnVpbHQtaW4pIGlzIHJlbmRlcmVkIHNlcGFyYXRlbHkgYXQgdGhlIGVuZFxuY29uc3QgU0NPUEVfT1JERVI6IENvbmZpZ1Njb3BlW10gPSBbJ3Byb2plY3QnLCAnbG9jYWwnLCAndXNlcicsICdlbnRlcnByaXNlJ11cblxuLy8gR2V0IHNjb3BlIGhlYWRpbmcgcGFydHMgKGxhYmVsIGlzIGJvbGQsIHBhdGggaXMgZ3JleSlcbmZ1bmN0aW9uIGdldFNjb3BlSGVhZGluZyhzY29wZTogQ29uZmlnU2NvcGUpOiB7IGxhYmVsOiBzdHJpbmc7IHBhdGg/OiBzdHJpbmcgfSB7XG4gIHN3aXRjaCAoc2NvcGUpIHtcbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnUHJvamVjdCBNQ1BzJywgcGF0aDogZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aChzY29wZSkgfVxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdVc2VyIE1DUHMnLCBwYXRoOiBkZXNjcmliZU1jcENvbmZpZ0ZpbGVQYXRoKHNjb3BlKSB9XG4gICAgY2FzZSAnbG9jYWwnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdMb2NhbCBNQ1BzJywgcGF0aDogZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aChzY29wZSkgfVxuICAgIGNhc2UgJ2VudGVycHJpc2UnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdFbnRlcnByaXNlIE1DUHMnIH1cbiAgICBjYXNlICdkeW5hbWljJzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnQnVpbHQtaW4gTUNQcycsIHBhdGg6ICdhbHdheXMgYXZhaWxhYmxlJyB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7IGxhYmVsOiBzY29wZSB9XG4gIH1cbn1cblxuLy8gR3JvdXAgc2VydmVycyBieSBzY29wZVxuZnVuY3Rpb24gZ3JvdXBTZXJ2ZXJzQnlTY29wZShcbiAgc2VydmVyTGlzdDogU2VydmVySW5mb1tdLFxuKTogTWFwPENvbmZpZ1Njb3BlLCBTZXJ2ZXJJbmZvW10+IHtcbiAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxDb25maWdTY29wZSwgU2VydmVySW5mb1tdPigpXG4gIGZvciAoY29uc3Qgc2VydmVyIG9mIHNlcnZlckxpc3QpIHtcbiAgICBjb25zdCBzY29wZSA9IHNlcnZlci5zY29wZVxuICAgIGlmICghZ3JvdXBzLmhhcyhzY29wZSkpIHtcbiAgICAgIGdyb3Vwcy5zZXQoc2NvcGUsIFtdKVxuICAgIH1cbiAgICBncm91cHMuZ2V0KHNjb3BlKSEucHVzaChzZXJ2ZXIpXG4gIH1cbiAgLy8gU29ydCBzZXJ2ZXJzIHdpdGhpbiBlYWNoIGdyb3VwIGFscGhhYmV0aWNhbGx5XG4gIGZvciAoY29uc3QgWywgZ3JvdXBTZXJ2ZXJzXSBvZiBncm91cHMpIHtcbiAgICBncm91cFNlcnZlcnMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgfVxuICByZXR1cm4gZ3JvdXBzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNQ1BMaXN0UGFuZWwoe1xuICBzZXJ2ZXJzLFxuICBhZ2VudFNlcnZlcnMgPSBbXSxcbiAgb25TZWxlY3RTZXJ2ZXIsXG4gIG9uU2VsZWN0QWdlbnRTZXJ2ZXIsXG4gIG9uQ29tcGxldGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IFt0aGVtZV0gPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKDApXG5cbiAgLy8gTm9uLWNsYXVkZWFpIHNlcnZlcnMgZ3JvdXBlZCBieSBzY29wZVxuICBjb25zdCBzZXJ2ZXJzQnlTY29wZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJlZ3VsYXJTZXJ2ZXJzID0gc2VydmVycy5maWx0ZXIoXG4gICAgICBzID0+IHMuY2xpZW50LmNvbmZpZy50eXBlICE9PSAnY2xhdWRlYWktcHJveHknLFxuICAgIClcbiAgICByZXR1cm4gZ3JvdXBTZXJ2ZXJzQnlTY29wZShyZWd1bGFyU2VydmVycylcbiAgfSwgW3NlcnZlcnNdKVxuXG4gIGNvbnN0IGNsYXVkZUFpU2VydmVycyA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHNlcnZlcnNcbiAgICAgICAgLmZpbHRlcihzID0+IHMuY2xpZW50LmNvbmZpZy50eXBlID09PSAnY2xhdWRlYWktcHJveHknKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSksXG4gICAgW3NlcnZlcnNdLFxuICApXG5cbiAgLy8gQnVpbHQtaW4gKGR5bmFtaWMpIHNlcnZlcnMgLSByZW5kZXJlZCBsYXN0XG4gIGNvbnN0IGR5bmFtaWNTZXJ2ZXJzID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKHNlcnZlcnNCeVNjb3BlLmdldCgnZHluYW1pYycpID8/IFtdKS5zb3J0KChhLCBiKSA9PlxuICAgICAgICBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpLFxuICAgICAgKSxcbiAgICBbc2VydmVyc0J5U2NvcGVdLFxuICApXG5cbiAgLy8gUHJlLWNvbXB1dGUgZHluYW1pYyBoZWFkaW5nIGZvciByZW5kZXJcbiAgY29uc3QgZHluYW1pY0hlYWRpbmcgPSBnZXRTY29wZUhlYWRpbmcoJ2R5bmFtaWMnKVxuXG4gIC8vIEJ1aWxkIGZsYXQgbGlzdCBvZiBzZWxlY3RhYmxlIGl0ZW1zIGluIGRpc3BsYXkgb3JkZXJcbiAgY29uc3Qgc2VsZWN0YWJsZUl0ZW1zID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaXRlbXM6IFNlbGVjdGFibGVJdGVtW10gPSBbXVxuICAgIGZvciAoY29uc3Qgc2NvcGUgb2YgU0NPUEVfT1JERVIpIHtcbiAgICAgIGNvbnN0IHNjb3BlU2VydmVycyA9IHNlcnZlcnNCeVNjb3BlLmdldChzY29wZSkgPz8gW11cbiAgICAgIGZvciAoY29uc3Qgc2VydmVyIG9mIHNjb3BlU2VydmVycykge1xuICAgICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ3NlcnZlcicsIHNlcnZlciB9KVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNlcnZlciBvZiBjbGF1ZGVBaVNlcnZlcnMpIHtcbiAgICAgIGl0ZW1zLnB1c2goeyB0eXBlOiAnc2VydmVyJywgc2VydmVyIH0pXG4gICAgfVxuICAgIGZvciAoY29uc3QgYWdlbnRTZXJ2ZXIgb2YgYWdlbnRTZXJ2ZXJzKSB7XG4gICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ2FnZW50LXNlcnZlcicsIGFnZW50U2VydmVyIH0pXG4gICAgfVxuICAgIC8vIER5bmFtaWMgKGJ1aWx0LWluKSBzZXJ2ZXJzIGNvbWUgbGFzdFxuICAgIGZvciAoY29uc3Qgc2VydmVyIG9mIGR5bmFtaWNTZXJ2ZXJzKSB7XG4gICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ3NlcnZlcicsIHNlcnZlciB9KVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXNcbiAgfSwgW3NlcnZlcnNCeVNjb3BlLCBjbGF1ZGVBaVNlcnZlcnMsIGFnZW50U2VydmVycywgZHluYW1pY1NlcnZlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpOiB2b2lkID0+IHtcbiAgICBvbkNvbXBsZXRlKCdNQ1AgZGlhbG9nIGRpc21pc3NlZCcsIHtcbiAgICAgIGRpc3BsYXk6ICdzeXN0ZW0nLFxuICAgIH0pXG4gIH0sIFtvbkNvbXBsZXRlXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VDYWxsYmFjaygoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgaXRlbSA9IHNlbGVjdGFibGVJdGVtc1tzZWxlY3RlZEluZGV4XVxuICAgIGlmICghaXRlbSkgcmV0dXJuXG4gICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgIG9uU2VsZWN0U2VydmVyKGl0ZW0uc2VydmVyKVxuICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnYWdlbnQtc2VydmVyJyAmJiBvblNlbGVjdEFnZW50U2VydmVyKSB7XG4gICAgICBvblNlbGVjdEFnZW50U2VydmVyKGl0ZW0uYWdlbnRTZXJ2ZXIpXG4gICAgfVxuICB9LCBbc2VsZWN0YWJsZUl0ZW1zLCBzZWxlY3RlZEluZGV4LCBvblNlbGVjdFNlcnZlciwgb25TZWxlY3RBZ2VudFNlcnZlcl0pXG5cbiAgLy8gVXNlIGNvbmZpZ3VyYWJsZSBrZXliaW5kaW5ncyBmb3IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uXG4gIHVzZUtleWJpbmRpbmdzKFxuICAgIHtcbiAgICAgICdjb25maXJtOnByZXZpb3VzJzogKCkgPT5cbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChwcmV2ID0+XG4gICAgICAgICAgcHJldiA9PT0gMCA/IHNlbGVjdGFibGVJdGVtcy5sZW5ndGggLSAxIDogcHJldiAtIDEsXG4gICAgICAgICksXG4gICAgICAnY29uZmlybTpuZXh0JzogKCkgPT5cbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChwcmV2ID0+XG4gICAgICAgICAgcHJldiA9PT0gc2VsZWN0YWJsZUl0ZW1zLmxlbmd0aCAtIDEgPyAwIDogcHJldiArIDEsXG4gICAgICAgICksXG4gICAgICAnY29uZmlybTp5ZXMnOiBoYW5kbGVTZWxlY3QsXG4gICAgICAnY29uZmlybTpubyc6IGhhbmRsZUNhbmNlbCxcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicgfSxcbiAgKVxuXG4gIC8vIEJ1aWxkIGluZGV4IGxvb2t1cCBmb3IgZWFjaCBzZXJ2ZXJcbiAgY29uc3QgZ2V0U2VydmVySW5kZXggPSAoc2VydmVyOiBTZXJ2ZXJJbmZvKTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gc2VsZWN0YWJsZUl0ZW1zLmZpbmRJbmRleChcbiAgICAgIGl0ZW0gPT4gaXRlbS50eXBlID09PSAnc2VydmVyJyAmJiBpdGVtLnNlcnZlciA9PT0gc2VydmVyLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGdldEFnZW50U2VydmVySW5kZXggPSAoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbyk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHNlbGVjdGFibGVJdGVtcy5maW5kSW5kZXgoXG4gICAgICBpdGVtID0+IGl0ZW0udHlwZSA9PT0gJ2FnZW50LXNlcnZlcicgJiYgaXRlbS5hZ2VudFNlcnZlciA9PT0gYWdlbnRTZXJ2ZXIsXG4gICAgKVxuICB9XG5cbiAgY29uc3QgZGVidWdNb2RlID0gaXNEZWJ1Z01vZGUoKVxuICBjb25zdCBoYXNGYWlsZWRDbGllbnRzID0gc2VydmVycy5zb21lKHMgPT4gcy5jbGllbnQudHlwZSA9PT0gJ2ZhaWxlZCcpXG5cbiAgaWYgKHNlcnZlcnMubGVuZ3RoID09PSAwICYmIGFnZW50U2VydmVycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgcmVuZGVyU2VydmVySXRlbSA9IChzZXJ2ZXI6IFNlcnZlckluZm8pOiBSZWFjdC5SZWFjdE5vZGUgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gZ2V0U2VydmVySW5kZXgoc2VydmVyKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ID09PSBpbmRleFxuICAgIGxldCBzdGF0dXNJY29uID0gJydcbiAgICBsZXQgc3RhdHVzVGV4dCA9ICcnXG5cbiAgICBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAnZGlzYWJsZWQnKSB7XG4gICAgICBzdGF0dXNJY29uID0gY29sb3IoJ2luYWN0aXZlJywgdGhlbWUpKGZpZ3VyZXMucmFkaW9PZmYpXG4gICAgICBzdGF0dXNUZXh0ID0gJ2Rpc2FibGVkJ1xuICAgIH0gZWxzZSBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAnY29ubmVjdGVkJykge1xuICAgICAgc3RhdHVzSWNvbiA9IGNvbG9yKCdzdWNjZXNzJywgdGhlbWUpKGZpZ3VyZXMudGljaylcbiAgICAgIHN0YXR1c1RleHQgPSAnY29ubmVjdGVkJ1xuICAgIH0gZWxzZSBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAncGVuZGluZycpIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignaW5hY3RpdmUnLCB0aGVtZSkoZmlndXJlcy5yYWRpb09mZilcbiAgICAgIGNvbnN0IHsgcmVjb25uZWN0QXR0ZW1wdCwgbWF4UmVjb25uZWN0QXR0ZW1wdHMgfSA9IHNlcnZlci5jbGllbnRcbiAgICAgIGlmIChyZWNvbm5lY3RBdHRlbXB0ICYmIG1heFJlY29ubmVjdEF0dGVtcHRzKSB7XG4gICAgICAgIHN0YXR1c1RleHQgPSBgcmVjb25uZWN0aW5nICgke3JlY29ubmVjdEF0dGVtcHR9LyR7bWF4UmVjb25uZWN0QXR0ZW1wdHN9KeKApmBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXR1c1RleHQgPSAnY29ubmVjdGluZ+KApidcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlcnZlci5jbGllbnQudHlwZSA9PT0gJ25lZWRzLWF1dGgnKSB7XG4gICAgICBzdGF0dXNJY29uID0gY29sb3IoJ3dhcm5pbmcnLCB0aGVtZSkoZmlndXJlcy50cmlhbmdsZVVwT3V0bGluZSlcbiAgICAgIHN0YXR1c1RleHQgPSAnbmVlZHMgYXV0aGVudGljYXRpb24nXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignZXJyb3InLCB0aGVtZSkoZmlndXJlcy5jcm9zcylcbiAgICAgIHN0YXR1c1RleHQgPSAnZmFpbGVkJ1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGtleT17YCR7c2VydmVyLm5hbWV9LSR7aW5kZXh9YH0+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7aXNTZWxlY3RlZCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PntzZXJ2ZXIubmFtZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+IMK3IHtzdGF0dXNJY29ufSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+e3N0YXR1c1RleHR9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQWdlbnRTZXJ2ZXJJdGVtID0gKFxuICAgIGFnZW50U2VydmVyOiBBZ2VudE1jcFNlcnZlckluZm8sXG4gICk6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBnZXRBZ2VudFNlcnZlckluZGV4KGFnZW50U2VydmVyKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ID09PSBpbmRleFxuICAgIGNvbnN0IHN0YXR1c0ljb24gPSBhZ2VudFNlcnZlci5uZWVkc0F1dGhcbiAgICAgID8gY29sb3IoJ3dhcm5pbmcnLCB0aGVtZSkoZmlndXJlcy50cmlhbmdsZVVwT3V0bGluZSlcbiAgICAgIDogY29sb3IoJ2luYWN0aXZlJywgdGhlbWUpKGZpZ3VyZXMucmFkaW9PZmYpXG4gICAgY29uc3Qgc3RhdHVzVGV4dCA9IGFnZW50U2VydmVyLm5lZWRzQXV0aCA/ICdtYXkgbmVlZCBhdXRoJyA6ICdhZ2VudC1vbmx5J1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3gga2V5PXtgYWdlbnQtJHthZ2VudFNlcnZlci5uYW1lfS0ke2luZGV4fWB9PlxuICAgICAgICA8VGV4dCBjb2xvcj17aXNTZWxlY3RlZCA/ICdzdWdnZXN0aW9uJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAge2lzU2VsZWN0ZWQgPyBgJHtmaWd1cmVzLnBvaW50ZXJ9IGAgOiAnICAnfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7YWdlbnRTZXJ2ZXIubmFtZX1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PiDCtyB7c3RhdHVzSWNvbn0gPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PntzdGF0dXNUZXh0fTwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHRvdGFsU2VydmVycyA9IHNlcnZlcnMubGVuZ3RoICsgYWdlbnRTZXJ2ZXJzLmxlbmd0aFxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICA8TWNwUGFyc2luZ1dhcm5pbmdzIC8+XG5cbiAgICAgIDxEaWFsb2dcbiAgICAgICAgdGl0bGU9XCJNYW5hZ2UgTUNQIHNlcnZlcnNcIlxuICAgICAgICBzdWJ0aXRsZT17YCR7dG90YWxTZXJ2ZXJzfSAke3BsdXJhbCh0b3RhbFNlcnZlcnMsICdzZXJ2ZXInKX1gfVxuICAgICAgICBvbkNhbmNlbD17aGFuZGxlQ2FuY2VsfVxuICAgICAgICBoaWRlSW5wdXRHdWlkZVxuICAgICAgPlxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICB7LyogUmVndWxhciBzZXJ2ZXJzIGdyb3VwZWQgYnkgc2NvcGUgKi99XG4gICAgICAgICAge1NDT1BFX09SREVSLm1hcChzY29wZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzY29wZVNlcnZlcnMgPSBzZXJ2ZXJzQnlTY29wZS5nZXQoc2NvcGUpXG4gICAgICAgICAgICBpZiAoIXNjb3BlU2VydmVycyB8fCBzY29wZVNlcnZlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgY29uc3QgaGVhZGluZyA9IGdldFNjb3BlSGVhZGluZyhzY29wZSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxCb3gga2V5PXtzY29wZX0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgICAgICAgICAgICA8VGV4dCBib2xkPntoZWFkaW5nLmxhYmVsfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgIHtoZWFkaW5nLnBhdGggJiYgPFRleHQgZGltQ29sb3I+ICh7aGVhZGluZy5wYXRofSk8L1RleHQ+fVxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIHtzY29wZVNlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cblxuICAgICAgICAgIHsvKiBDbGF1ZGUuYWkgc2VydmVycyBzZWN0aW9uICovfVxuICAgICAgICAgIHtjbGF1ZGVBaVNlcnZlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICA8VGV4dCBib2xkPmNsYXVkZS5haTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgIHtjbGF1ZGVBaVNlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHsvKiBBZ2VudCBzZXJ2ZXJzIHNlY3Rpb24gLSBncm91cGVkIGJ5IHNvdXJjZSBhZ2VudCAqL31cbiAgICAgICAgICB7YWdlbnRTZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgICAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgICAgICAgICAgPFRleHQgYm9sZD5BZ2VudCBNQ1BzPC9UZXh0PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgey8qIEdyb3VwIHNlcnZlcnMgYnkgc291cmNlIGFnZW50ICovfVxuICAgICAgICAgICAgICB7Wy4uLm5ldyBTZXQoYWdlbnRTZXJ2ZXJzLmZsYXRNYXAocyA9PiBzLnNvdXJjZUFnZW50cykpXS5tYXAoXG4gICAgICAgICAgICAgICAgYWdlbnROYW1lID0+IChcbiAgICAgICAgICAgICAgICAgIDxCb3gga2V5PXthZ2VudE5hbWV9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Ub3A9ezF9PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5Ae2FnZW50TmFtZX08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICB7YWdlbnRTZXJ2ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihzID0+IHMuc291cmNlQWdlbnRzLmluY2x1ZGVzKGFnZW50TmFtZSkpXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChhZ2VudFNlcnZlciA9PiByZW5kZXJBZ2VudFNlcnZlckl0ZW0oYWdlbnRTZXJ2ZXIpKX1cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgey8qIEJ1aWx0LWluIChkeW5hbWljKSBzZXJ2ZXJzIHNlY3Rpb24gLSBhbHdheXMgbGFzdCAqL31cbiAgICAgICAgICB7ZHluYW1pY1NlcnZlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICA8VGV4dCBib2xkPntkeW5hbWljSGVhZGluZy5sYWJlbH08L1RleHQ+XG4gICAgICAgICAgICAgICAge2R5bmFtaWNIZWFkaW5nLnBhdGggJiYgKFxuICAgICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+ICh7ZHluYW1pY0hlYWRpbmcucGF0aH0pPC9UZXh0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICB7ZHluYW1pY1NlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHsvKiBGb290ZXIgaW5mbyAqL31cbiAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIHtoYXNGYWlsZWRDbGllbnRzICYmIChcbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAge2RlYnVnTW9kZVxuICAgICAgICAgICAgICAgICAgPyAn4oC7IEVycm9yIGxvZ3Mgc2hvd24gaW5saW5lIHdpdGggLS1kZWJ1ZydcbiAgICAgICAgICAgICAgICAgIDogJ+KAuyBSdW4gY2xhdWRlIC0tZGVidWcgdG8gc2VlIGVycm9yIGxvZ3MnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgIDxMaW5rIHVybD1cImh0dHBzOi8vY29kZS5jbGF1ZGUuY29tL2RvY3MvZW4vbWNwXCI+XG4gICAgICAgICAgICAgICAgaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9tY3BcbiAgICAgICAgICAgICAgPC9MaW5rPnsnICd9XG4gICAgICAgICAgICAgIGZvciBoZWxwXG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9EaWFsb2c+XG5cbiAgICAgIHsvKiBDdXN0b20gZm9vdGVyIHdpdGggbmF2aWdhdGlvbiBoaW50ICovfVxuICAgICAgPEJveCBwYWRkaW5nWD17MX0+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yIGl0YWxpYz5cbiAgICAgICAgICA8QnlsaW5lPlxuICAgICAgICAgICAgPEtleWJvYXJkU2hvcnRjdXRIaW50IHNob3J0Y3V0PVwi4oaR4oaTXCIgYWN0aW9uPVwibmF2aWdhdGVcIiAvPlxuICAgICAgICAgICAgPEtleWJvYXJkU2hvcnRjdXRIaW50IHNob3J0Y3V0PVwiRW50ZXJcIiBhY3Rpb249XCJjb25maXJtXCIgLz5cbiAgICAgICAgICAgIDxDb25maWd1cmFibGVTaG9ydGN1dEhpbnRcbiAgICAgICAgICAgICAgYWN0aW9uPVwiY29uZmlybTpub1wiXG4gICAgICAgICAgICAgIGNvbnRleHQ9XCJDb25maXJtYXRpb25cIlxuICAgICAgICAgICAgICBmYWxsYmFjaz1cIkVzY1wiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiY2FuY2VsXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9CeWxpbmU+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsY0FBY0Msb0JBQW9CLFFBQVEsbUJBQW1CO0FBQzdELFNBQVNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDL0QsU0FBU0MsY0FBYyxRQUFRLG9DQUFvQztBQUNuRSxjQUFjQyxXQUFXLFFBQVEsNkJBQTZCO0FBQzlELFNBQVNDLHlCQUF5QixRQUFRLDZCQUE2QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVNDLE1BQU0sUUFBUSw0QkFBNEI7QUFDbkQsU0FBU0Msd0JBQXdCLFFBQVEsZ0NBQWdDO0FBQ3pFLFNBQVNDLE1BQU0sUUFBUSw0QkFBNEI7QUFDbkQsU0FBU0MsTUFBTSxRQUFRLDRCQUE0QjtBQUNuRCxTQUFTQyxvQkFBb0IsUUFBUSwwQ0FBMEM7QUFDL0UsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELGNBQWNDLGtCQUFrQixFQUFF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SixlQUFHLENBQUMsQ0FBUSxNQUFVLENBQVYsVUFBVSxHQUNyRCxDQUFDLG9CQUFvQixDQUFVLFFBQU8sQ0FBUCxPQUFPLENBQVEsTUFBUyxDQUFULFNBQVMsR0FDdkQsQ0FBQyx3QkFBd0IsQ0FDaEIsTUFBWSxDQUFaLFlBQVksQ0FDWCxPQUFjLENBQWQsY0FBYyxDQUNiLFFBQUssQ0FBTCxLQUFLLENBQ0YsV0FBUSxDQUFSLFFBQVEsR0FFeEIsRUFUQyxNQUFNLENBVVQsRUFYQyxJQUFJLENBWVAsRUFiQyxHQUFHLENBYUU7SUFBQTdHLENBQUEsT0FBQTZHLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUE3RyxDQUFBO0VBQUE7RUFBQSxJQUFBOEcsR0FBQTtFQUFBLElBQUE5RyxDQUFBLFNBQUE0RyxHQUFBO0lBeEdSRSxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQ3pCLENBQUE3QixHQUFxQixDQUVyQixDQUFBMkIsR0FxRlEsQ0FHUixDQUFBQyxHQWFLLENBQ1AsRUF6R0MsR0FBRyxDQXlHRTtJQUFBN0csQ0FBQSxPQUFBNEcsR0FBQTtJQUFBNUcsQ0FBQSxPQUFBOEcsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTlHLENBQUE7RUFBQTtFQUFBLE9BekdOOEcsR0F5R007QUFBQTtBQTdSSCxTQUFBZixPQUFBZ0IsR0FBQTtFQUFBLE9BK044Q2IsR0FBQyxDQUFBQyxZQUFhO0FBQUE7QUEvTjVELFNBQUE1QyxPQUFBeUQsR0FBQTtFQUFBLE9BMkdzQ2QsR0FBQyxDQUFBbkMsTUFBTyxDQUFBckYsSUFBSyxLQUFLLFFBQVE7QUFBQTtBQTNHaEUsU0FBQXdDLE9BQUErRixHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQThCQ3hILEdBQUMsQ0FBQUUsSUFBSyxDQUFBQyxhQUFjLENBQUNGLEdBQUMsQ0FBQUMsSUFBSyxDQUFDO0FBQUE7QUE5QjdCLFNBQUFtQixPQUFBckIsQ0FBQSxFQUFBQyxDQUFBO0VBQUEsT0FzQmlCRCxDQUFDLENBQUFFLElBQUssQ0FBQUMsYUFBYyxDQUFDRixDQUFDLENBQUFDLElBQUssQ0FBQztBQUFBO0FBdEI3QyxTQUFBa0IsT0FBQXFHLEdBQUE7RUFBQSxPQXFCY2pCLEdBQUMsQ0FBQW5DLE1BQU8sQ0FBQXFELE1BQU8sQ0FBQTFJLElBQUssS0FBSyxnQkFBZ0I7QUFBQTtBQXJCdkQsU0FBQWlDLE1BQUF1RixDQUFBO0VBQUEsT0FhSUEsQ0FBQyxDQUFBbkMsTUFBTyxDQUFBcUQsTUFBTyxDQUFBMUksSUFBSyxLQUFLLGdCQUFnQjtBQUFBIiwiaWdub3JlTGlzdCI6W119
505
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJCb3giLCJjb2xvciIsIkxpbmsiLCJUZXh0IiwidXNlVGhlbWUiLCJ1c2VLZXliaW5kaW5ncyIsIkNvbmZpZ1Njb3BlIiwiZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aCIsImlzRGVidWdNb2RlIiwicGx1cmFsIiwiQ29uZmlndXJhYmxlU2hvcnRjdXRIaW50IiwiQnlsaW5lIiwiRGlhbG9nIiwiS2V5Ym9hcmRTaG9ydGN1dEhpbnQiLCJNY3BQYXJzaW5nV2FybmluZ3MiLCJBZ2VudE1jcFNlcnZlckluZm8iLCJTZXJ2ZXJJbmZvIiwiUHJvcHMiLCJzZXJ2ZXJzIiwiYWdlbnRTZXJ2ZXJzIiwib25TZWxlY3RTZXJ2ZXIiLCJzZXJ2ZXIiLCJvblNlbGVjdEFnZW50U2VydmVyIiwiYWdlbnRTZXJ2ZXIiLCJvbkNvbXBsZXRlIiwicmVzdWx0Iiwib3B0aW9ucyIsImRpc3BsYXkiLCJkZWZhdWx0VGFiIiwiU2VsZWN0YWJsZUl0ZW0iLCJ0eXBlIiwiU0NPUEVfT1JERVIiLCJnZXRTY29wZUhlYWRpbmciLCJzY29wZSIsImxhYmVsIiwicGF0aCIsImdyb3VwU2VydmVyc0J5U2NvcGUiLCJzZXJ2ZXJMaXN0IiwiTWFwIiwiZ3JvdXBzIiwiaGFzIiwic2V0IiwiZ2V0IiwicHVzaCIsImdyb3VwU2VydmVycyIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJsb2NhbGVDb21wYXJlIiwiTUNQTGlzdFBhbmVsIiwidDAiLCIkIiwiX2MiLCJ0MSIsInQyIiwidW5kZWZpbmVkIiwidGhlbWUiLCJzZWxlY3RlZEluZGV4Iiwic2V0U2VsZWN0ZWRJbmRleCIsInQzIiwicmVndWxhclNlcnZlcnMiLCJmaWx0ZXIiLCJfdGVtcCIsInNlcnZlcnNCeVNjb3BlIiwidDQiLCJfdGVtcDIiLCJfdGVtcDMiLCJjbGF1ZGVBaVNlcnZlcnMiLCJ0NSIsIl90ZW1wNCIsImR5bmFtaWNTZXJ2ZXJzIiwidDYiLCJTeW1ib2wiLCJmb3IiLCJkeW5hbWljSGVhZGluZyIsIml0ZW1zIiwic2NvcGVTZXJ2ZXJzIiwic2VydmVyXzAiLCJzZXJ2ZXJfMSIsInNlbGVjdGFibGVJdGVtcyIsInQ3IiwiaGFuZGxlQ2FuY2VsIiwidDgiLCJpdGVtIiwiaGFuZGxlU2VsZWN0IiwidDEwIiwidDkiLCJwcmV2IiwibGVuZ3RoIiwicHJldl8wIiwidDExIiwidDEyIiwiY29udGV4dCIsInQxMyIsInNlcnZlcl8yIiwiZmluZEluZGV4IiwiaXRlbV8wIiwiZ2V0U2VydmVySW5kZXgiLCJ0MTQiLCJhZ2VudFNlcnZlcl8wIiwiaXRlbV8xIiwiZ2V0QWdlbnRTZXJ2ZXJJbmRleCIsInQxNSIsImRlYnVnTW9kZSIsInQxNiIsInNvbWUiLCJfdGVtcDUiLCJoYXNGYWlsZWRDbGllbnRzIiwidDE3Iiwic2VydmVyXzMiLCJpbmRleCIsImlzU2VsZWN0ZWQiLCJzdGF0dXNJY29uIiwic3RhdHVzVGV4dCIsImNsaWVudCIsInJhZGlvT2ZmIiwidGljayIsInJlY29ubmVjdEF0dGVtcHQiLCJtYXhSZWNvbm5lY3RBdHRlbXB0cyIsInRyaWFuZ2xlVXBPdXRsaW5lIiwiY3Jvc3MiLCJwb2ludGVyIiwicmVuZGVyU2VydmVySXRlbSIsInQxOCIsImFnZW50U2VydmVyXzEiLCJpbmRleF8wIiwiaXNTZWxlY3RlZF8wIiwic3RhdHVzSWNvbl8wIiwibmVlZHNBdXRoIiwic3RhdHVzVGV4dF8wIiwicmVuZGVyQWdlbnRTZXJ2ZXJJdGVtIiwidG90YWxTZXJ2ZXJzIiwidDE5IiwidDIwIiwidDIxIiwidDIyIiwibWFwIiwic2NvcGVfMCIsInNjb3BlU2VydmVyc18wIiwiaGVhZGluZyIsInNlcnZlcl80IiwidDIzIiwic2VydmVyXzUiLCJ0MjQiLCJTZXQiLCJmbGF0TWFwIiwiX3RlbXA2IiwiYWdlbnROYW1lIiwic18zIiwicyIsInNvdXJjZUFnZW50cyIsImluY2x1ZGVzIiwiYWdlbnRTZXJ2ZXJfMiIsInQyNSIsInNlcnZlcl82IiwidDI2IiwidDI3IiwidDI4IiwidDI5IiwidDMwIiwidDMxIiwidDMyIiwic18yIiwic18xIiwiYV8wIiwiYl8wIiwic18wIiwiY29uZmlnIl0sInNvdXJjZXMiOlsiTUNQTGlzdFBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlndXJlcyBmcm9tICdmaWd1cmVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kUmVzdWx0RGlzcGxheSB9IGZyb20gJy4uLy4uL2NvbW1hbmRzLmpzJ1xuaW1wb3J0IHsgQm94LCBjb2xvciwgTGluaywgVGV4dCwgdXNlVGhlbWUgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2tleWJpbmRpbmdzL3VzZUtleWJpbmRpbmcuanMnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ1Njb3BlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWNwL3R5cGVzLmpzJ1xuaW1wb3J0IHsgZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21jcC91dGlscy5qcydcbmltcG9ydCB7IGlzRGVidWdNb2RlIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVidWcuanMnXG5pbXBvcnQgeyBwbHVyYWwgfSBmcm9tICcuLi8uLi91dGlscy9zdHJpbmdVdGlscy5qcydcbmltcG9ydCB7IENvbmZpZ3VyYWJsZVNob3J0Y3V0SGludCB9IGZyb20gJy4uL0NvbmZpZ3VyYWJsZVNob3J0Y3V0SGludC5qcydcbmltcG9ydCB7IEJ5bGluZSB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vQnlsaW5lLmpzJ1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0SGludCB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vS2V5Ym9hcmRTaG9ydGN1dEhpbnQuanMnXG5pbXBvcnQgeyBNY3BQYXJzaW5nV2FybmluZ3MgfSBmcm9tICcuL01jcFBhcnNpbmdXYXJuaW5ncy5qcydcbmltcG9ydCB0eXBlIHsgQWdlbnRNY3BTZXJ2ZXJJbmZvLCBTZXJ2ZXJJbmZvIH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgc2VydmVyczogU2VydmVySW5mb1tdXG4gIGFnZW50U2VydmVycz86IEFnZW50TWNwU2VydmVySW5mb1tdXG4gIG9uU2VsZWN0U2VydmVyOiAoc2VydmVyOiBTZXJ2ZXJJbmZvKSA9PiB2b2lkXG4gIG9uU2VsZWN0QWdlbnRTZXJ2ZXI/OiAoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbykgPT4gdm9pZFxuICBvbkNvbXBsZXRlOiAoXG4gICAgcmVzdWx0Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGRpc3BsYXk/OiBDb21tYW5kUmVzdWx0RGlzcGxheSB9LFxuICApID0+IHZvaWRcbiAgZGVmYXVsdFRhYj86IHN0cmluZ1xufVxuXG50eXBlIFNlbGVjdGFibGVJdGVtID1cbiAgfCB7IHR5cGU6ICdzZXJ2ZXInOyBzZXJ2ZXI6IFNlcnZlckluZm8gfVxuICB8IHsgdHlwZTogJ2FnZW50LXNlcnZlcic7IGFnZW50U2VydmVyOiBBZ2VudE1jcFNlcnZlckluZm8gfVxuXG4vLyBEZWZpbmUgc2NvcGUgb3JkZXIgZm9yIGRpc3BsYXkgKGNvbnN0YW50LCBvdXRzaWRlIGNvbXBvbmVudClcbi8vICdkeW5hbWljJyAoYnVpbHQtaW4pIGlzIHJlbmRlcmVkIHNlcGFyYXRlbHkgYXQgdGhlIGVuZFxuY29uc3QgU0NPUEVfT1JERVI6IENvbmZpZ1Njb3BlW10gPSBbJ3Byb2plY3QnLCAnbG9jYWwnLCAndXNlcicsICdlbnRlcnByaXNlJ11cblxuLy8gR2V0IHNjb3BlIGhlYWRpbmcgcGFydHMgKGxhYmVsIGlzIGJvbGQsIHBhdGggaXMgZ3JleSlcbmZ1bmN0aW9uIGdldFNjb3BlSGVhZGluZyhzY29wZTogQ29uZmlnU2NvcGUpOiB7IGxhYmVsOiBzdHJpbmc7IHBhdGg/OiBzdHJpbmcgfSB7XG4gIHN3aXRjaCAoc2NvcGUpIHtcbiAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnUHJvamVjdCBNQ1BzJywgcGF0aDogZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aChzY29wZSkgfVxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdVc2VyIE1DUHMnLCBwYXRoOiBkZXNjcmliZU1jcENvbmZpZ0ZpbGVQYXRoKHNjb3BlKSB9XG4gICAgY2FzZSAnbG9jYWwnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdMb2NhbCBNQ1BzJywgcGF0aDogZGVzY3JpYmVNY3BDb25maWdGaWxlUGF0aChzY29wZSkgfVxuICAgIGNhc2UgJ2VudGVycHJpc2UnOlxuICAgICAgcmV0dXJuIHsgbGFiZWw6ICdFbnRlcnByaXNlIE1DUHMnIH1cbiAgICBjYXNlICdkeW5hbWljJzpcbiAgICAgIHJldHVybiB7IGxhYmVsOiAnQnVpbHQtaW4gTUNQcycsIHBhdGg6ICdhbHdheXMgYXZhaWxhYmxlJyB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7IGxhYmVsOiBzY29wZSB9XG4gIH1cbn1cblxuLy8gR3JvdXAgc2VydmVycyBieSBzY29wZVxuZnVuY3Rpb24gZ3JvdXBTZXJ2ZXJzQnlTY29wZShcbiAgc2VydmVyTGlzdDogU2VydmVySW5mb1tdLFxuKTogTWFwPENvbmZpZ1Njb3BlLCBTZXJ2ZXJJbmZvW10+IHtcbiAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxDb25maWdTY29wZSwgU2VydmVySW5mb1tdPigpXG4gIGZvciAoY29uc3Qgc2VydmVyIG9mIHNlcnZlckxpc3QpIHtcbiAgICBjb25zdCBzY29wZSA9IHNlcnZlci5zY29wZVxuICAgIGlmICghZ3JvdXBzLmhhcyhzY29wZSkpIHtcbiAgICAgIGdyb3Vwcy5zZXQoc2NvcGUsIFtdKVxuICAgIH1cbiAgICBncm91cHMuZ2V0KHNjb3BlKSEucHVzaChzZXJ2ZXIpXG4gIH1cbiAgLy8gU29ydCBzZXJ2ZXJzIHdpdGhpbiBlYWNoIGdyb3VwIGFscGhhYmV0aWNhbGx5XG4gIGZvciAoY29uc3QgWywgZ3JvdXBTZXJ2ZXJzXSBvZiBncm91cHMpIHtcbiAgICBncm91cFNlcnZlcnMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSlcbiAgfVxuICByZXR1cm4gZ3JvdXBzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNQ1BMaXN0UGFuZWwoe1xuICBzZXJ2ZXJzLFxuICBhZ2VudFNlcnZlcnMgPSBbXSxcbiAgb25TZWxlY3RTZXJ2ZXIsXG4gIG9uU2VsZWN0QWdlbnRTZXJ2ZXIsXG4gIG9uQ29tcGxldGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IFt0aGVtZV0gPSB1c2VUaGVtZSgpXG4gIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKDApXG5cbiAgLy8gTm9uLWNsYXVkZWFpIHNlcnZlcnMgZ3JvdXBlZCBieSBzY29wZVxuICBjb25zdCBzZXJ2ZXJzQnlTY29wZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJlZ3VsYXJTZXJ2ZXJzID0gc2VydmVycy5maWx0ZXIoXG4gICAgICBzID0+IHMuY2xpZW50LmNvbmZpZy50eXBlICE9PSAnY2xhdWRlYWktcHJveHknLFxuICAgIClcbiAgICByZXR1cm4gZ3JvdXBTZXJ2ZXJzQnlTY29wZShyZWd1bGFyU2VydmVycylcbiAgfSwgW3NlcnZlcnNdKVxuXG4gIGNvbnN0IGNsYXVkZUFpU2VydmVycyA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHNlcnZlcnNcbiAgICAgICAgLmZpbHRlcihzID0+IHMuY2xpZW50LmNvbmZpZy50eXBlID09PSAnY2xhdWRlYWktcHJveHknKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSksXG4gICAgW3NlcnZlcnNdLFxuICApXG5cbiAgLy8gQnVpbHQtaW4gKGR5bmFtaWMpIHNlcnZlcnMgLSByZW5kZXJlZCBsYXN0XG4gIGNvbnN0IGR5bmFtaWNTZXJ2ZXJzID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgKHNlcnZlcnNCeVNjb3BlLmdldCgnZHluYW1pYycpID8/IFtdKS5zb3J0KChhLCBiKSA9PlxuICAgICAgICBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpLFxuICAgICAgKSxcbiAgICBbc2VydmVyc0J5U2NvcGVdLFxuICApXG5cbiAgLy8gUHJlLWNvbXB1dGUgZHluYW1pYyBoZWFkaW5nIGZvciByZW5kZXJcbiAgY29uc3QgZHluYW1pY0hlYWRpbmcgPSBnZXRTY29wZUhlYWRpbmcoJ2R5bmFtaWMnKVxuXG4gIC8vIEJ1aWxkIGZsYXQgbGlzdCBvZiBzZWxlY3RhYmxlIGl0ZW1zIGluIGRpc3BsYXkgb3JkZXJcbiAgY29uc3Qgc2VsZWN0YWJsZUl0ZW1zID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaXRlbXM6IFNlbGVjdGFibGVJdGVtW10gPSBbXVxuICAgIGZvciAoY29uc3Qgc2NvcGUgb2YgU0NPUEVfT1JERVIpIHtcbiAgICAgIGNvbnN0IHNjb3BlU2VydmVycyA9IHNlcnZlcnNCeVNjb3BlLmdldChzY29wZSkgPz8gW11cbiAgICAgIGZvciAoY29uc3Qgc2VydmVyIG9mIHNjb3BlU2VydmVycykge1xuICAgICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ3NlcnZlcicsIHNlcnZlciB9KVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNlcnZlciBvZiBjbGF1ZGVBaVNlcnZlcnMpIHtcbiAgICAgIGl0ZW1zLnB1c2goeyB0eXBlOiAnc2VydmVyJywgc2VydmVyIH0pXG4gICAgfVxuICAgIGZvciAoY29uc3QgYWdlbnRTZXJ2ZXIgb2YgYWdlbnRTZXJ2ZXJzKSB7XG4gICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ2FnZW50LXNlcnZlcicsIGFnZW50U2VydmVyIH0pXG4gICAgfVxuICAgIC8vIER5bmFtaWMgKGJ1aWx0LWluKSBzZXJ2ZXJzIGNvbWUgbGFzdFxuICAgIGZvciAoY29uc3Qgc2VydmVyIG9mIGR5bmFtaWNTZXJ2ZXJzKSB7XG4gICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ3NlcnZlcicsIHNlcnZlciB9KVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXNcbiAgfSwgW3NlcnZlcnNCeVNjb3BlLCBjbGF1ZGVBaVNlcnZlcnMsIGFnZW50U2VydmVycywgZHluYW1pY1NlcnZlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpOiB2b2lkID0+IHtcbiAgICBvbkNvbXBsZXRlKCdNQ1AgZGlhbG9nIGRpc21pc3NlZCcsIHtcbiAgICAgIGRpc3BsYXk6ICdzeXN0ZW0nLFxuICAgIH0pXG4gIH0sIFtvbkNvbXBsZXRlXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VDYWxsYmFjaygoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgaXRlbSA9IHNlbGVjdGFibGVJdGVtc1tzZWxlY3RlZEluZGV4XVxuICAgIGlmICghaXRlbSkgcmV0dXJuXG4gICAgaWYgKGl0ZW0udHlwZSA9PT0gJ3NlcnZlcicpIHtcbiAgICAgIG9uU2VsZWN0U2VydmVyKGl0ZW0uc2VydmVyKVxuICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnYWdlbnQtc2VydmVyJyAmJiBvblNlbGVjdEFnZW50U2VydmVyKSB7XG4gICAgICBvblNlbGVjdEFnZW50U2VydmVyKGl0ZW0uYWdlbnRTZXJ2ZXIpXG4gICAgfVxuICB9LCBbc2VsZWN0YWJsZUl0ZW1zLCBzZWxlY3RlZEluZGV4LCBvblNlbGVjdFNlcnZlciwgb25TZWxlY3RBZ2VudFNlcnZlcl0pXG5cbiAgLy8gVXNlIGNvbmZpZ3VyYWJsZSBrZXliaW5kaW5ncyBmb3IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uXG4gIHVzZUtleWJpbmRpbmdzKFxuICAgIHtcbiAgICAgICdjb25maXJtOnByZXZpb3VzJzogKCkgPT5cbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChwcmV2ID0+XG4gICAgICAgICAgcHJldiA9PT0gMCA/IHNlbGVjdGFibGVJdGVtcy5sZW5ndGggLSAxIDogcHJldiAtIDEsXG4gICAgICAgICksXG4gICAgICAnY29uZmlybTpuZXh0JzogKCkgPT5cbiAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChwcmV2ID0+XG4gICAgICAgICAgcHJldiA9PT0gc2VsZWN0YWJsZUl0ZW1zLmxlbmd0aCAtIDEgPyAwIDogcHJldiArIDEsXG4gICAgICAgICksXG4gICAgICAnY29uZmlybTp5ZXMnOiBoYW5kbGVTZWxlY3QsXG4gICAgICAnY29uZmlybTpubyc6IGhhbmRsZUNhbmNlbCxcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicgfSxcbiAgKVxuXG4gIC8vIEJ1aWxkIGluZGV4IGxvb2t1cCBmb3IgZWFjaCBzZXJ2ZXJcbiAgY29uc3QgZ2V0U2VydmVySW5kZXggPSAoc2VydmVyOiBTZXJ2ZXJJbmZvKTogbnVtYmVyID0+IHtcbiAgICByZXR1cm4gc2VsZWN0YWJsZUl0ZW1zLmZpbmRJbmRleChcbiAgICAgIGl0ZW0gPT4gaXRlbS50eXBlID09PSAnc2VydmVyJyAmJiBpdGVtLnNlcnZlciA9PT0gc2VydmVyLFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGdldEFnZW50U2VydmVySW5kZXggPSAoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbyk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHNlbGVjdGFibGVJdGVtcy5maW5kSW5kZXgoXG4gICAgICBpdGVtID0+IGl0ZW0udHlwZSA9PT0gJ2FnZW50LXNlcnZlcicgJiYgaXRlbS5hZ2VudFNlcnZlciA9PT0gYWdlbnRTZXJ2ZXIsXG4gICAgKVxuICB9XG5cbiAgY29uc3QgZGVidWdNb2RlID0gaXNEZWJ1Z01vZGUoKVxuICBjb25zdCBoYXNGYWlsZWRDbGllbnRzID0gc2VydmVycy5zb21lKHMgPT4gcy5jbGllbnQudHlwZSA9PT0gJ2ZhaWxlZCcpXG5cbiAgaWYgKHNlcnZlcnMubGVuZ3RoID09PSAwICYmIGFnZW50U2VydmVycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgcmVuZGVyU2VydmVySXRlbSA9IChzZXJ2ZXI6IFNlcnZlckluZm8pOiBSZWFjdC5SZWFjdE5vZGUgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gZ2V0U2VydmVySW5kZXgoc2VydmVyKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ID09PSBpbmRleFxuICAgIGxldCBzdGF0dXNJY29uID0gJydcbiAgICBsZXQgc3RhdHVzVGV4dCA9ICcnXG5cbiAgICBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAnZGlzYWJsZWQnKSB7XG4gICAgICBzdGF0dXNJY29uID0gY29sb3IoJ2luYWN0aXZlJywgdGhlbWUpKGZpZ3VyZXMucmFkaW9PZmYpXG4gICAgICBzdGF0dXNUZXh0ID0gJ2Rpc2FibGVkJ1xuICAgIH0gZWxzZSBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAnY29ubmVjdGVkJykge1xuICAgICAgc3RhdHVzSWNvbiA9IGNvbG9yKCdzdWNjZXNzJywgdGhlbWUpKGZpZ3VyZXMudGljaylcbiAgICAgIHN0YXR1c1RleHQgPSAnY29ubmVjdGVkJ1xuICAgIH0gZWxzZSBpZiAoc2VydmVyLmNsaWVudC50eXBlID09PSAncGVuZGluZycpIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignaW5hY3RpdmUnLCB0aGVtZSkoZmlndXJlcy5yYWRpb09mZilcbiAgICAgIGNvbnN0IHsgcmVjb25uZWN0QXR0ZW1wdCwgbWF4UmVjb25uZWN0QXR0ZW1wdHMgfSA9IHNlcnZlci5jbGllbnRcbiAgICAgIGlmIChyZWNvbm5lY3RBdHRlbXB0ICYmIG1heFJlY29ubmVjdEF0dGVtcHRzKSB7XG4gICAgICAgIHN0YXR1c1RleHQgPSBgcmVjb25uZWN0aW5nICgke3JlY29ubmVjdEF0dGVtcHR9LyR7bWF4UmVjb25uZWN0QXR0ZW1wdHN9KeKApmBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXR1c1RleHQgPSAnY29ubmVjdGluZ+KApidcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlcnZlci5jbGllbnQudHlwZSA9PT0gJ25lZWRzLWF1dGgnKSB7XG4gICAgICBzdGF0dXNJY29uID0gY29sb3IoJ3dhcm5pbmcnLCB0aGVtZSkoZmlndXJlcy50cmlhbmdsZVVwT3V0bGluZSlcbiAgICAgIHN0YXR1c1RleHQgPSAnbmVlZHMgYXV0aGVudGljYXRpb24nXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1c0ljb24gPSBjb2xvcignZXJyb3InLCB0aGVtZSkoZmlndXJlcy5jcm9zcylcbiAgICAgIHN0YXR1c1RleHQgPSAnZmFpbGVkJ1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGtleT17YCR7c2VydmVyLm5hbWV9LSR7aW5kZXh9YH0+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7aXNTZWxlY3RlZCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9e2lzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PntzZXJ2ZXIubmFtZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+IMK3IHtzdGF0dXNJY29ufSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0+e3N0YXR1c1RleHR9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgcmVuZGVyQWdlbnRTZXJ2ZXJJdGVtID0gKFxuICAgIGFnZW50U2VydmVyOiBBZ2VudE1jcFNlcnZlckluZm8sXG4gICk6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBnZXRBZ2VudFNlcnZlckluZGV4KGFnZW50U2VydmVyKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ID09PSBpbmRleFxuICAgIGNvbnN0IHN0YXR1c0ljb24gPSBhZ2VudFNlcnZlci5uZWVkc0F1dGhcbiAgICAgID8gY29sb3IoJ3dhcm5pbmcnLCB0aGVtZSkoZmlndXJlcy50cmlhbmdsZVVwT3V0bGluZSlcbiAgICAgIDogY29sb3IoJ2luYWN0aXZlJywgdGhlbWUpKGZpZ3VyZXMucmFkaW9PZmYpXG4gICAgY29uc3Qgc3RhdHVzVGV4dCA9IGFnZW50U2VydmVyLm5lZWRzQXV0aCA/ICdtYXkgbmVlZCBhdXRoJyA6ICdhZ2VudC1vbmx5J1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3gga2V5PXtgYWdlbnQtJHthZ2VudFNlcnZlci5uYW1lfS0ke2luZGV4fWB9PlxuICAgICAgICA8VGV4dCBjb2xvcj17aXNTZWxlY3RlZCA/ICdzdWdnZXN0aW9uJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAge2lzU2VsZWN0ZWQgPyBgJHtmaWd1cmVzLnBvaW50ZXJ9IGAgOiAnICAnfVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICB7YWdlbnRTZXJ2ZXIubmFtZX1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PiDCtyB7c3RhdHVzSWNvbn0gPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PntzdGF0dXNUZXh0fTwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHRvdGFsU2VydmVycyA9IHNlcnZlcnMubGVuZ3RoICsgYWdlbnRTZXJ2ZXJzLmxlbmd0aFxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICA8TWNwUGFyc2luZ1dhcm5pbmdzIC8+XG5cbiAgICAgIDxEaWFsb2dcbiAgICAgICAgdGl0bGU9XCJNYW5hZ2UgTUNQIHNlcnZlcnNcIlxuICAgICAgICBzdWJ0aXRsZT17YCR7dG90YWxTZXJ2ZXJzfSAke3BsdXJhbCh0b3RhbFNlcnZlcnMsICdzZXJ2ZXInKX1gfVxuICAgICAgICBvbkNhbmNlbD17aGFuZGxlQ2FuY2VsfVxuICAgICAgICBoaWRlSW5wdXRHdWlkZVxuICAgICAgPlxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICB7LyogUmVndWxhciBzZXJ2ZXJzIGdyb3VwZWQgYnkgc2NvcGUgKi99XG4gICAgICAgICAge1NDT1BFX09SREVSLm1hcChzY29wZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzY29wZVNlcnZlcnMgPSBzZXJ2ZXJzQnlTY29wZS5nZXQoc2NvcGUpXG4gICAgICAgICAgICBpZiAoIXNjb3BlU2VydmVycyB8fCBzY29wZVNlcnZlcnMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgY29uc3QgaGVhZGluZyA9IGdldFNjb3BlSGVhZGluZyhzY29wZSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxCb3gga2V5PXtzY29wZX0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgICAgICAgICAgICA8VGV4dCBib2xkPntoZWFkaW5nLmxhYmVsfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgIHtoZWFkaW5nLnBhdGggJiYgPFRleHQgZGltQ29sb3I+ICh7aGVhZGluZy5wYXRofSk8L1RleHQ+fVxuICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIHtzY29wZVNlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KX1cblxuICAgICAgICAgIHsvKiBDbGF1ZGUuYWkgc2VydmVycyBzZWN0aW9uICovfVxuICAgICAgICAgIHtjbGF1ZGVBaVNlcnZlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICA8VGV4dCBib2xkPmNsYXVkZS5haTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgIHtjbGF1ZGVBaVNlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHsvKiBBZ2VudCBzZXJ2ZXJzIHNlY3Rpb24gLSBncm91cGVkIGJ5IHNvdXJjZSBhZ2VudCAqL31cbiAgICAgICAgICB7YWdlbnRTZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgICAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgICAgICAgICAgPFRleHQgYm9sZD5BZ2VudCBNQ1BzPC9UZXh0PlxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgey8qIEdyb3VwIHNlcnZlcnMgYnkgc291cmNlIGFnZW50ICovfVxuICAgICAgICAgICAgICB7Wy4uLm5ldyBTZXQoYWdlbnRTZXJ2ZXJzLmZsYXRNYXAocyA9PiBzLnNvdXJjZUFnZW50cykpXS5tYXAoXG4gICAgICAgICAgICAgICAgYWdlbnROYW1lID0+IChcbiAgICAgICAgICAgICAgICAgIDxCb3gga2V5PXthZ2VudE5hbWV9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Ub3A9ezF9PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5Ae2FnZW50TmFtZX08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICB7YWdlbnRTZXJ2ZXJzXG4gICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihzID0+IHMuc291cmNlQWdlbnRzLmluY2x1ZGVzKGFnZW50TmFtZSkpXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChhZ2VudFNlcnZlciA9PiByZW5kZXJBZ2VudFNlcnZlckl0ZW0oYWdlbnRTZXJ2ZXIpKX1cbiAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAgey8qIEJ1aWx0LWluIChkeW5hbWljKSBzZXJ2ZXJzIHNlY3Rpb24gLSBhbHdheXMgbGFzdCAqL31cbiAgICAgICAgICB7ZHluYW1pY1NlcnZlcnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgICAgICA8Qm94IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICA8VGV4dCBib2xkPntkeW5hbWljSGVhZGluZy5sYWJlbH08L1RleHQ+XG4gICAgICAgICAgICAgICAge2R5bmFtaWNIZWFkaW5nLnBhdGggJiYgKFxuICAgICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+ICh7ZHluYW1pY0hlYWRpbmcucGF0aH0pPC9UZXh0PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICB7ZHluYW1pY1NlcnZlcnMubWFwKHNlcnZlciA9PiByZW5kZXJTZXJ2ZXJJdGVtKHNlcnZlcikpfVxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHsvKiBGb290ZXIgaW5mbyAqL31cbiAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIHtoYXNGYWlsZWRDbGllbnRzICYmIChcbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAge2RlYnVnTW9kZVxuICAgICAgICAgICAgICAgICAgPyAn4oC7IEVycm9yIGxvZ3Mgc2hvd24gaW5saW5lIHdpdGggLS1kZWJ1ZydcbiAgICAgICAgICAgICAgICAgIDogJ+KAuyBSdW4gY2xhdWRlIC0tZGVidWcgdG8gc2VlIGVycm9yIGxvZ3MnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgIDxMaW5rIHVybD1cImh0dHBzOi8vY29kZS5jbGF1ZGUuY29tL2RvY3MvZW4vbWNwXCI+XG4gICAgICAgICAgICAgICAgaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9tY3BcbiAgICAgICAgICAgICAgPC9MaW5rPnsnICd9XG4gICAgICAgICAgICAgIGZvciBoZWxwXG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9EaWFsb2c+XG5cbiAgICAgIHsvKiBDdXN0b20gZm9vdGVyIHdpdGggbmF2aWdhdGlvbiBoaW50ICovfVxuICAgICAgPEJveCBwYWRkaW5nWD17MX0+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yIGl0YWxpYz5cbiAgICAgICAgICA8QnlsaW5lPlxuICAgICAgICAgICAgPEtleWJvYXJkU2hvcnRjdXRIaW50IHNob3J0Y3V0PVwi4oaR4oaTXCIgYWN0aW9uPVwibmF2aWdhdGVcIiAvPlxuICAgICAgICAgICAgPEtleWJvYXJkU2hvcnRjdXRIaW50IHNob3J0Y3V0PVwiRW50ZXJcIiBhY3Rpb249XCJjb25maXJtXCIgLz5cbiAgICAgICAgICAgIDxDb25maWd1cmFibGVTaG9ydGN1dEhpbnRcbiAgICAgICAgICAgICAgYWN0aW9uPVwiY29uZmlybTpub1wiXG4gICAgICAgICAgICAgIGNvbnRleHQ9XCJDb25maXJtYXRpb25cIlxuICAgICAgICAgICAgICBmYWxsYmFjaz1cIkVzY1wiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiY2FuY2VsXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9CeWxpbmU+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsY0FBY0Msb0JBQW9CLFFBQVEsbUJBQW1CO0FBQzdELFNBQVNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDL0QsU0FBU0MsY0FBYyxRQUFRLG9DQUFvQztBQUNuRSxjQUFjQyxXQUFXLFFBQVEsNkJBQTZCO0FBQzlELFNBQVNDLHlCQUF5QixRQUFRLDZCQUE2QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsc0JBQXNCO0FBQ2xELFNBQVNDLE1BQU0sUUFBUSw0QkFBNEI7QUFDbkQsU0FBU0Msd0JBQXdCLFFBQVEsZ0NBQWdDO0FBQ3pFLFNBQVNDLE1BQU0sUUFBUSw0QkFBNEI7QUFDbkQsU0FBU0MsTUFBTSxRQUFRLDRCQUE0QjtBQUNuRCxTQUFTQyxvQkFBb0IsUUFBUSwwQ0FBMEM7QUFDL0UsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELGNBQWNDLGtCQUFrQixFQUFF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SixlQUFHLENBQUMsQ0FBUSxNQUFVLENBQVYsVUFBVSxHQUNyRCxDQUFDLG9CQUFvQixDQUFVLFFBQU8sQ0FBUCxPQUFPLENBQVEsTUFBUyxDQUFULFNBQVMsR0FDdkQsQ0FBQyx3QkFBd0IsQ0FDaEIsTUFBWSxDQUFaLFlBQVksQ0FDWCxPQUFjLENBQWQsY0FBYyxDQUNiLFFBQUssQ0FBTCxLQUFLLENBQ0YsV0FBUSxDQUFSLFFBQVEsR0FFeEIsRUFUQyxNQUFNLENBVVQsRUFYQyxJQUFJLENBWVAsRUFiQyxHQUFHLENBYUU7SUFBQTdHLENBQUEsT0FBQTZHLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUE3RyxDQUFBO0VBQUE7RUFBQSxJQUFBOEcsR0FBQTtFQUFBLElBQUE5RyxDQUFBLFNBQUE0RyxHQUFBO0lBeEdSRSxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQ3pCLENBQUE3QixHQUFxQixDQUVyQixDQUFBMkIsR0FxRlEsQ0FHUixDQUFBQyxHQWFLLENBQ1AsRUF6R0MsR0FBRyxDQXlHRTtJQUFBN0csQ0FBQSxPQUFBNEcsR0FBQTtJQUFBNUcsQ0FBQSxPQUFBOEcsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTlHLENBQUE7RUFBQTtFQUFBLE9BekdOOEcsR0F5R007QUFBQTtBQTdSSCxTQUFBZixPQUFBZ0IsR0FBQTtFQUFBLE9BK044Q2IsR0FBQyxDQUFBQyxZQUFhO0FBQUE7QUEvTjVELFNBQUE1QyxPQUFBeUQsR0FBQTtFQUFBLE9BMkdzQ2QsR0FBQyxDQUFBbkMsTUFBTyxDQUFBckYsSUFBSyxLQUFLLFFBQVE7QUFBQTtBQTNHaEUsU0FBQXdDLE9BQUErRixHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQThCQ3hILEdBQUMsQ0FBQUUsSUFBSyxDQUFBQyxhQUFjLENBQUNGLEdBQUMsQ0FBQUMsSUFBSyxDQUFDO0FBQUE7QUE5QjdCLFNBQUFtQixPQUFBckIsQ0FBQSxFQUFBQyxDQUFBO0VBQUEsT0FzQmlCRCxDQUFDLENBQUFFLElBQUssQ0FBQUMsYUFBYyxDQUFDRixDQUFDLENBQUFDLElBQUssQ0FBQztBQUFBO0FBdEI3QyxTQUFBa0IsT0FBQXFHLEdBQUE7RUFBQSxPQXFCY2pCLEdBQUMsQ0FBQW5DLE1BQU8sQ0FBQXFELE1BQU8sQ0FBQTFJLElBQUssS0FBSyxnQkFBZ0I7QUFBQTtBQXJCdkQsU0FBQWlDLE1BQUF1RixDQUFBO0VBQUEsT0FhSUEsQ0FBQyxDQUFBbkMsTUFBTyxDQUFBcUQsTUFBTyxDQUFBMUksSUFBSyxLQUFLLGdCQUFnQjtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import figures from 'figures';
3
4
  import React, { useEffect, useState } from 'react';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figures from 'figures';
2
3
  import React, { useEffect, useRef, useState } from 'react';
3
4
  import { type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, logEvent } from 'src/services/analytics/index.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import React, { useEffect, useMemo } from 'react';
3
4
  import type { CommandResultDisplay } from '../../commands.js';
@@ -395,4 +396,4 @@ function _temp2(s_0) {
395
396
  function _temp(s) {
396
397
  return s.mcp;
397
398
  }
398
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJDb21tYW5kUmVzdWx0RGlzcGxheSIsIkNsYXVkZUF1dGhQcm92aWRlciIsIk1jcENsYXVkZUFJUHJveHlTZXJ2ZXJDb25maWciLCJNY3BIVFRQU2VydmVyQ29uZmlnIiwiTWNwU1NFU2VydmVyQ29uZmlnIiwiTWNwU3RkaW9TZXJ2ZXJDb25maWciLCJleHRyYWN0QWdlbnRNY3BTZXJ2ZXJzIiwiZmlsdGVyVG9vbHNCeVNlcnZlciIsInVzZUFwcFN0YXRlIiwiZ2V0U2Vzc2lvbkluZ3Jlc3NBdXRoVG9rZW4iLCJNQ1BBZ2VudFNlcnZlck1lbnUiLCJNQ1BMaXN0UGFuZWwiLCJNQ1BSZW1vdGVTZXJ2ZXJNZW51IiwiTUNQU3RkaW9TZXJ2ZXJNZW51IiwiTUNQVG9vbERldGFpbFZpZXciLCJNQ1BUb29sTGlzdFZpZXciLCJBZ2VudE1jcFNlcnZlckluZm8iLCJNQ1BWaWV3U3RhdGUiLCJTZXJ2ZXJJbmZvIiwiUHJvcHMiLCJvbkNvbXBsZXRlIiwicmVzdWx0Iiwib3B0aW9ucyIsImRpc3BsYXkiLCJNQ1BTZXR0aW5ncyIsInQwIiwiJCIsIl9jIiwibWNwIiwiX3RlbXAiLCJhZ2VudERlZmluaXRpb25zIiwiX3RlbXAyIiwibWNwQ2xpZW50cyIsImNsaWVudHMiLCJ0MSIsIlN5bWJvbCIsImZvciIsInR5cGUiLCJ2aWV3U3RhdGUiLCJzZXRWaWV3U3RhdGUiLCJ1c2VTdGF0ZSIsInQyIiwic2VydmVycyIsInNldFNlcnZlcnMiLCJ0MyIsImFsbEFnZW50cyIsImFnZW50TWNwU2VydmVycyIsInQ0IiwiZmlsdGVyIiwiX3RlbXAzIiwic29ydCIsIl90ZW1wNCIsImZpbHRlcmVkQ2xpZW50cyIsInQ1IiwidDYiLCJ0b29scyIsImNhbmNlbGxlZCIsInByZXBhcmVTZXJ2ZXJzIiwic2VydmVySW5mb3MiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY2xpZW50XzAiLCJzY29wZSIsImNsaWVudCIsImNvbmZpZyIsImlzU1NFIiwiaXNIVFRQIiwiaXNDbGF1ZGVBSVByb3h5IiwiaXNBdXRoZW50aWNhdGVkIiwidW5kZWZpbmVkIiwiYXV0aFByb3ZpZGVyIiwibmFtZSIsInRva2VucyIsImhhc1Nlc3Npb25BdXRoIiwiaGFzVG9vbHNBbmRDb25uZWN0ZWQiLCJsZW5ndGgiLCJCb29sZWFuIiwiYmFzZUluZm8iLCJ0cmFuc3BvcnQiLCJjb25zdCIsInQ3IiwidDgiLCJ0MTAiLCJ0OSIsInNlcnZlciIsImFnZW50U2VydmVyIiwidDExIiwiZGVmYXVsdFRhYiIsInNlcnZlclRvb2xzXzAiLCJ0MTIiLCJzZXJ2ZXJUb29scyIsIl8iLCJpbmRleCIsInRvb2xJbmRleCIsInRvb2wiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJzXzAiLCJzIl0sInNvdXJjZXMiOlsiTUNQU2V0dGluZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFJlc3VsdERpc3BsYXkgfSBmcm9tICcuLi8uLi9jb21tYW5kcy5qcydcbmltcG9ydCB7IENsYXVkZUF1dGhQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21jcC9hdXRoLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBNY3BDbGF1ZGVBSVByb3h5U2VydmVyQ29uZmlnLFxuICBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICBNY3BTU0VTZXJ2ZXJDb25maWcsXG4gIE1jcFN0ZGlvU2VydmVyQ29uZmlnLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tY3AvdHlwZXMuanMnXG5pbXBvcnQge1xuICBleHRyYWN0QWdlbnRNY3BTZXJ2ZXJzLFxuICBmaWx0ZXJUb29sc0J5U2VydmVyLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tY3AvdXRpbHMuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHsgZ2V0U2Vzc2lvbkluZ3Jlc3NBdXRoVG9rZW4gfSBmcm9tICcuLi8uLi91dGlscy9zZXNzaW9uSW5ncmVzc0F1dGguanMnXG5pbXBvcnQgeyBNQ1BBZ2VudFNlcnZlck1lbnUgfSBmcm9tICcuL01DUEFnZW50U2VydmVyTWVudS5qcydcbmltcG9ydCB7IE1DUExpc3RQYW5lbCB9IGZyb20gJy4vTUNQTGlzdFBhbmVsLmpzJ1xuaW1wb3J0IHsgTUNQUmVtb3RlU2VydmVyTWVudSB9IGZyb20gJy4vTUNQUmVtb3RlU2VydmVyTWVudS5qcydcbmltcG9ydCB7IE1DUFN0ZGlvU2VydmVyTWVudSB9IGZyb20gJy4vTUNQU3RkaW9TZXJ2ZXJNZW51LmpzJ1xuaW1wb3J0IHsgTUNQVG9vbERldGFpbFZpZXcgfSBmcm9tICcuL01DUFRvb2xEZXRhaWxWaWV3LmpzJ1xuaW1wb3J0IHsgTUNQVG9vbExpc3RWaWV3IH0gZnJvbSAnLi9NQ1BUb29sTGlzdFZpZXcuanMnXG5pbXBvcnQgdHlwZSB7IEFnZW50TWNwU2VydmVySW5mbywgTUNQVmlld1N0YXRlLCBTZXJ2ZXJJbmZvIH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25Db21wbGV0ZTogKFxuICAgIHJlc3VsdD86IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyBkaXNwbGF5PzogQ29tbWFuZFJlc3VsdERpc3BsYXkgfSxcbiAgKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNQ1BTZXR0aW5ncyh7IG9uQ29tcGxldGUgfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBtY3AgPSB1c2VBcHBTdGF0ZShzID0+IHMubWNwKVxuICBjb25zdCBhZ2VudERlZmluaXRpb25zID0gdXNlQXBwU3RhdGUocyA9PiBzLmFnZW50RGVmaW5pdGlvbnMpXG4gIGNvbnN0IG1jcENsaWVudHMgPSBtY3AuY2xpZW50c1xuICBjb25zdCBbdmlld1N0YXRlLCBzZXRWaWV3U3RhdGVdID0gUmVhY3QudXNlU3RhdGU8TUNQVmlld1N0YXRlPih7XG4gICAgdHlwZTogJ2xpc3QnLFxuICB9KVxuICBjb25zdCBbc2VydmVycywgc2V0U2VydmVyc10gPSBSZWFjdC51c2VTdGF0ZTxTZXJ2ZXJJbmZvW10+KFtdKVxuXG4gIC8vIEV4dHJhY3QgYWdlbnQtc3BlY2lmaWMgTUNQIHNlcnZlcnMgZnJvbSBhZ2VudCBkZWZpbml0aW9uc1xuICBjb25zdCBhZ2VudE1jcFNlcnZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+IGV4dHJhY3RBZ2VudE1jcFNlcnZlcnMoYWdlbnREZWZpbml0aW9ucy5hbGxBZ2VudHMpLFxuICAgIFthZ2VudERlZmluaXRpb25zLmFsbEFnZW50c10sXG4gIClcblxuICBjb25zdCBmaWx0ZXJlZENsaWVudHMgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBtY3BDbGllbnRzXG4gICAgICAgIC5maWx0ZXIoY2xpZW50ID0+IGNsaWVudC5uYW1lICE9PSAnaWRlJylcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpLFxuICAgIFttY3BDbGllbnRzXSxcbiAgKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVNlcnZlcnMoKSB7XG4gICAgICBjb25zdCBzZXJ2ZXJJbmZvcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBmaWx0ZXJlZENsaWVudHMubWFwKGFzeW5jIGNsaWVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgc2NvcGUgPSBjbGllbnQuY29uZmlnLnNjb3BlXG4gICAgICAgICAgY29uc3QgaXNTU0UgPSBjbGllbnQuY29uZmlnLnR5cGUgPT09ICdzc2UnXG4gICAgICAgICAgY29uc3QgaXNIVFRQID0gY2xpZW50LmNvbmZpZy50eXBlID09PSAnaHR0cCdcbiAgICAgICAgICBjb25zdCBpc0NsYXVkZUFJUHJveHkgPSBjbGllbnQuY29uZmlnLnR5cGUgPT09ICdjbGF1ZGVhaS1wcm94eSdcbiAgICAgICAgICBsZXQgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICBpZiAoaXNTU0UgfHwgaXNIVFRQKSB7XG4gICAgICAgICAgICBjb25zdCBhdXRoUHJvdmlkZXIgPSBuZXcgQ2xhdWRlQXV0aFByb3ZpZGVyKFxuICAgICAgICAgICAgICBjbGllbnQubmFtZSxcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZyBhcyBNY3BTU0VTZXJ2ZXJDb25maWcgfCBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgYXV0aFByb3ZpZGVyLnRva2VucygpXG4gICAgICAgICAgICAvLyBTZXJ2ZXIgaXMgYXV0aGVudGljYXRlZCBpZjpcbiAgICAgICAgICAgIC8vIDEuIEl0IGhhcyBPQXV0aCB0b2tlbnMsIE9SXG4gICAgICAgICAgICAvLyAyLiBJdCdzIGNvbm5lY3RlZCB2aWEgc2Vzc2lvbiBhdXRoIChoYXMgc2Vzc2lvbiB0b2tlbiBhbmQgaXMgY29ubmVjdGVkKSwgT1JcbiAgICAgICAgICAgIC8vIDMuIEl0J3MgY29ubmVjdGVkIGFuZCBoYXMgdG9vbHMgKG1lYW5pbmcgaXQncyB3b3JraW5nLCByZWdhcmRsZXNzIG9mIGF1dGggbWV0aG9kKVxuICAgICAgICAgICAgY29uc3QgaGFzU2Vzc2lvbkF1dGggPVxuICAgICAgICAgICAgICBnZXRTZXNzaW9uSW5ncmVzc0F1dGhUb2tlbigpICE9PSBudWxsICYmXG4gICAgICAgICAgICAgIGNsaWVudC50eXBlID09PSAnY29ubmVjdGVkJ1xuICAgICAgICAgICAgY29uc3QgaGFzVG9vbHNBbmRDb25uZWN0ZWQgPVxuICAgICAgICAgICAgICBjbGllbnQudHlwZSA9PT0gJ2Nvbm5lY3RlZCcgJiZcbiAgICAgICAgICAgICAgZmlsdGVyVG9vbHNCeVNlcnZlcihtY3AudG9vbHMsIGNsaWVudC5uYW1lKS5sZW5ndGggPiAwXG4gICAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQgPVxuICAgICAgICAgICAgICBCb29sZWFuKHRva2VucykgfHwgaGFzU2Vzc2lvbkF1dGggfHwgaGFzVG9vbHNBbmRDb25uZWN0ZWRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBiYXNlSW5mbyA9IHtcbiAgICAgICAgICAgIG5hbWU6IGNsaWVudC5uYW1lLFxuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzQ2xhdWRlQUlQcm94eSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ2NsYXVkZWFpLXByb3h5JyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgaXNBdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29uZmlnOiBjbGllbnQuY29uZmlnIGFzIE1jcENsYXVkZUFJUHJveHlTZXJ2ZXJDb25maWcsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpc1NTRSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ3NzZScgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGlzQXV0aGVudGljYXRlZCxcbiAgICAgICAgICAgICAgY29uZmlnOiBjbGllbnQuY29uZmlnIGFzIE1jcFNTRVNlcnZlckNvbmZpZyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGlzSFRUUCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ2h0dHAnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQsXG4gICAgICAgICAgICAgIGNvbmZpZzogY2xpZW50LmNvbmZpZyBhcyBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5iYXNlSW5mbyxcbiAgICAgICAgICAgICAgdHJhbnNwb3J0OiAnc3RkaW8nIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBjb25maWc6IGNsaWVudC5jb25maWcgYXMgTWNwU3RkaW9TZXJ2ZXJDb25maWcsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcblxuICAgICAgaWYgKGNhbmNlbGxlZCkgcmV0dXJuXG4gICAgICBzZXRTZXJ2ZXJzKHNlcnZlckluZm9zKVxuICAgIH1cblxuICAgIHZvaWQgcHJlcGFyZVNlcnZlcnMoKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICB9LCBbZmlsdGVyZWRDbGllbnRzLCBtY3AudG9vbHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlcnZlcnMubGVuZ3RoID09PSAwICYmIGZpbHRlcmVkQ2xpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBTdGlsbCBsb2FkaW5nXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgXCJubyBzZXJ2ZXJzXCIgbWVzc2FnZSBpZiBubyByZWd1bGFyIHNlcnZlcnMgQU5EIG5vIGFnZW50IHNlcnZlcnNcbiAgICBpZiAoc2VydmVycy5sZW5ndGggPT09IDAgJiYgYWdlbnRNY3BTZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgb25Db21wbGV0ZShcbiAgICAgICAgJ05vIE1DUCBzZXJ2ZXJzIGNvbmZpZ3VyZWQuIFBsZWFzZSBydW4gL2RvY3RvciBpZiB0aGlzIGlzIHVuZXhwZWN0ZWQuIE90aGVyd2lzZSwgcnVuIGBjbGF1ZGUgbWNwIC0taGVscGAgb3IgdmlzaXQgaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9tY3AgdG8gbGVhcm4gbW9yZS4nLFxuICAgICAgKVxuICAgIH1cbiAgfSwgW1xuICAgIHNlcnZlcnMubGVuZ3RoLFxuICAgIGZpbHRlcmVkQ2xpZW50cy5sZW5ndGgsXG4gICAgYWdlbnRNY3BTZXJ2ZXJzLmxlbmd0aCxcbiAgICBvbkNvbXBsZXRlLFxuICBdKVxuXG4gIHN3aXRjaCAodmlld1N0YXRlLnR5cGUpIHtcbiAgICBjYXNlICdsaXN0JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNQ1BMaXN0UGFuZWxcbiAgICAgICAgICBzZXJ2ZXJzPXtzZXJ2ZXJzfVxuICAgICAgICAgIGFnZW50U2VydmVycz17YWdlbnRNY3BTZXJ2ZXJzfVxuICAgICAgICAgIG9uU2VsZWN0U2VydmVyPXtzZXJ2ZXIgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdzZXJ2ZXItbWVudScsIHNlcnZlciB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBvblNlbGVjdEFnZW50U2VydmVyPXsoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbykgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdhZ2VudC1zZXJ2ZXItbWVudScsIGFnZW50U2VydmVyIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgICAgZGVmYXVsdFRhYj17dmlld1N0YXRlLmRlZmF1bHRUYWJ9XG4gICAgICAgIC8+XG4gICAgICApXG5cbiAgICBjYXNlICdzZXJ2ZXItbWVudSc6IHtcbiAgICAgIGNvbnN0IHNlcnZlclRvb2xzID0gZmlsdGVyVG9vbHNCeVNlcnZlcihtY3AudG9vbHMsIHZpZXdTdGF0ZS5zZXJ2ZXIubmFtZSlcblxuICAgICAgY29uc3QgZGVmYXVsdFRhYiA9XG4gICAgICAgIHZpZXdTdGF0ZS5zZXJ2ZXIudHJhbnNwb3J0ID09PSAnY2xhdWRlYWktcHJveHknXG4gICAgICAgICAgPyAnY2xhdWRlLmFpJ1xuICAgICAgICAgIDogJ0NsYXVkZSBDb2RlJ1xuXG4gICAgICBpZiAodmlld1N0YXRlLnNlcnZlci50cmFuc3BvcnQgPT09ICdzdGRpbycpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TUNQU3RkaW9TZXJ2ZXJNZW51XG4gICAgICAgICAgICBzZXJ2ZXI9e3ZpZXdTdGF0ZS5zZXJ2ZXJ9XG4gICAgICAgICAgICBzZXJ2ZXJUb29sc0NvdW50PXtzZXJ2ZXJUb29scy5sZW5ndGh9XG4gICAgICAgICAgICBvblZpZXdUb29scz17KCkgPT5cbiAgICAgICAgICAgICAgc2V0Vmlld1N0YXRlKHsgdHlwZTogJ3NlcnZlci10b29scycsIHNlcnZlcjogdmlld1N0YXRlLnNlcnZlciB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdsaXN0JywgZGVmYXVsdFRhYiB9KX1cbiAgICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TUNQUmVtb3RlU2VydmVyTWVudVxuICAgICAgICAgICAgc2VydmVyPXt2aWV3U3RhdGUuc2VydmVyfVxuICAgICAgICAgICAgc2VydmVyVG9vbHNDb3VudD17c2VydmVyVG9vbHMubGVuZ3RofVxuICAgICAgICAgICAgb25WaWV3VG9vbHM9eygpID0+XG4gICAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdzZXJ2ZXItdG9vbHMnLCBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnbGlzdCcsIGRlZmF1bHRUYWIgfSl9XG4gICAgICAgICAgICBvbkNvbXBsZXRlPXtvbkNvbXBsZXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlICdzZXJ2ZXItdG9vbHMnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1DUFRvb2xMaXN0Vmlld1xuICAgICAgICAgIHNlcnZlcj17dmlld1N0YXRlLnNlcnZlcn1cbiAgICAgICAgICBvblNlbGVjdFRvb2w9eyhfLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7XG4gICAgICAgICAgICAgIHR5cGU6ICdzZXJ2ZXItdG9vbC1kZXRhaWwnLFxuICAgICAgICAgICAgICBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIsXG4gICAgICAgICAgICAgIHRvb2xJbmRleDogaW5kZXgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLW1lbnUnLCBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIgfSlcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICApXG5cbiAgICBjYXNlICdzZXJ2ZXItdG9vbC1kZXRhaWwnOiB7XG4gICAgICBjb25zdCBzZXJ2ZXJUb29scyA9IGZpbHRlclRvb2xzQnlTZXJ2ZXIobWNwLnRvb2xzLCB2aWV3U3RhdGUuc2VydmVyLm5hbWUpXG4gICAgICBjb25zdCB0b29sID0gc2VydmVyVG9vbHNbdmlld1N0YXRlLnRvb2xJbmRleF1cbiAgICAgIGlmICghdG9vbCkge1xuICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLXRvb2xzJywgc2VydmVyOiB2aWV3U3RhdGUuc2VydmVyIH0pXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TUNQVG9vbERldGFpbFZpZXdcbiAgICAgICAgICB0b29sPXt0b29sfVxuICAgICAgICAgIHNlcnZlcj17dmlld1N0YXRlLnNlcnZlcn1cbiAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLXRvb2xzJywgc2VydmVyOiB2aWV3U3RhdGUuc2VydmVyIH0pXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNhc2UgJ2FnZW50LXNlcnZlci1tZW51JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNQ1BBZ2VudFNlcnZlck1lbnVcbiAgICAgICAgICBhZ2VudFNlcnZlcj17dmlld1N0YXRlLmFnZW50U2VydmVyfVxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnbGlzdCcsIGRlZmF1bHRUYWI6ICdBZ2VudHMnIH0pfVxuICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgIC8+XG4gICAgICApXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUNqRCxjQUFjQyxvQkFBb0IsUUFBUSxtQkFBbUI7QUFDN0QsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCO0FBQy9ELGNBQ0VDLDRCQUE0QixFQUM1QkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLG9CQUFvQixRQUNmLDZCQUE2QjtBQUNwQyxTQUNFQyxzQkFBc0IsRUFDdEJDLG1CQUFtQixRQUNkLDZCQUE2QjtBQUNwQyxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLDBCQUEwQixRQUFRLG1DQUFtQztBQUM5RSxTQUFTQyxrQkFBa0IsUUFBUSx5QkFBeUI7QUFDNUQsU0FBU0MsWUFBWSxRQUFRLG1CQUFtQjtBQUNoRCxTQUFTQyxtQkFBbUIsUUFBUSwwQkFBMEI7QUFDOUQsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUMxRCxTQUFTQyxlQUFlLFFB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
399
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJDb21tYW5kUmVzdWx0RGlzcGxheSIsIkNsYXVkZUF1dGhQcm92aWRlciIsIk1jcENsYXVkZUFJUHJveHlTZXJ2ZXJDb25maWciLCJNY3BIVFRQU2VydmVyQ29uZmlnIiwiTWNwU1NFU2VydmVyQ29uZmlnIiwiTWNwU3RkaW9TZXJ2ZXJDb25maWciLCJleHRyYWN0QWdlbnRNY3BTZXJ2ZXJzIiwiZmlsdGVyVG9vbHNCeVNlcnZlciIsInVzZUFwcFN0YXRlIiwiZ2V0U2Vzc2lvbkluZ3Jlc3NBdXRoVG9rZW4iLCJNQ1BBZ2VudFNlcnZlck1lbnUiLCJNQ1BMaXN0UGFuZWwiLCJNQ1BSZW1vdGVTZXJ2ZXJNZW51IiwiTUNQU3RkaW9TZXJ2ZXJNZW51IiwiTUNQVG9vbERldGFpbFZpZXciLCJNQ1BUb29sTGlzdFZpZXciLCJBZ2VudE1jcFNlcnZlckluZm8iLCJNQ1BWaWV3U3RhdGUiLCJTZXJ2ZXJJbmZvIiwiUHJvcHMiLCJvbkNvbXBsZXRlIiwicmVzdWx0Iiwib3B0aW9ucyIsImRpc3BsYXkiLCJNQ1BTZXR0aW5ncyIsInQwIiwiJCIsIl9jIiwibWNwIiwiX3RlbXAiLCJhZ2VudERlZmluaXRpb25zIiwiX3RlbXAyIiwibWNwQ2xpZW50cyIsImNsaWVudHMiLCJ0MSIsIlN5bWJvbCIsImZvciIsInR5cGUiLCJ2aWV3U3RhdGUiLCJzZXRWaWV3U3RhdGUiLCJ1c2VTdGF0ZSIsInQyIiwic2VydmVycyIsInNldFNlcnZlcnMiLCJ0MyIsImFsbEFnZW50cyIsImFnZW50TWNwU2VydmVycyIsInQ0IiwiZmlsdGVyIiwiX3RlbXAzIiwic29ydCIsIl90ZW1wNCIsImZpbHRlcmVkQ2xpZW50cyIsInQ1IiwidDYiLCJ0b29scyIsImNhbmNlbGxlZCIsInByZXBhcmVTZXJ2ZXJzIiwic2VydmVySW5mb3MiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY2xpZW50XzAiLCJzY29wZSIsImNsaWVudCIsImNvbmZpZyIsImlzU1NFIiwiaXNIVFRQIiwiaXNDbGF1ZGVBSVByb3h5IiwiaXNBdXRoZW50aWNhdGVkIiwidW5kZWZpbmVkIiwiYXV0aFByb3ZpZGVyIiwibmFtZSIsInRva2VucyIsImhhc1Nlc3Npb25BdXRoIiwiaGFzVG9vbHNBbmRDb25uZWN0ZWQiLCJsZW5ndGgiLCJCb29sZWFuIiwiYmFzZUluZm8iLCJ0cmFuc3BvcnQiLCJjb25zdCIsInQ3IiwidDgiLCJ0MTAiLCJ0OSIsInNlcnZlciIsImFnZW50U2VydmVyIiwidDExIiwiZGVmYXVsdFRhYiIsInNlcnZlclRvb2xzXzAiLCJ0MTIiLCJzZXJ2ZXJUb29scyIsIl8iLCJpbmRleCIsInRvb2xJbmRleCIsInRvb2wiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJzXzAiLCJzIl0sInNvdXJjZXMiOlsiTUNQU2V0dGluZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFJlc3VsdERpc3BsYXkgfSBmcm9tICcuLi8uLi9jb21tYW5kcy5qcydcbmltcG9ydCB7IENsYXVkZUF1dGhQcm92aWRlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21jcC9hdXRoLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBNY3BDbGF1ZGVBSVByb3h5U2VydmVyQ29uZmlnLFxuICBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICBNY3BTU0VTZXJ2ZXJDb25maWcsXG4gIE1jcFN0ZGlvU2VydmVyQ29uZmlnLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tY3AvdHlwZXMuanMnXG5pbXBvcnQge1xuICBleHRyYWN0QWdlbnRNY3BTZXJ2ZXJzLFxuICBmaWx0ZXJUb29sc0J5U2VydmVyLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tY3AvdXRpbHMuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHsgZ2V0U2Vzc2lvbkluZ3Jlc3NBdXRoVG9rZW4gfSBmcm9tICcuLi8uLi91dGlscy9zZXNzaW9uSW5ncmVzc0F1dGguanMnXG5pbXBvcnQgeyBNQ1BBZ2VudFNlcnZlck1lbnUgfSBmcm9tICcuL01DUEFnZW50U2VydmVyTWVudS5qcydcbmltcG9ydCB7IE1DUExpc3RQYW5lbCB9IGZyb20gJy4vTUNQTGlzdFBhbmVsLmpzJ1xuaW1wb3J0IHsgTUNQUmVtb3RlU2VydmVyTWVudSB9IGZyb20gJy4vTUNQUmVtb3RlU2VydmVyTWVudS5qcydcbmltcG9ydCB7IE1DUFN0ZGlvU2VydmVyTWVudSB9IGZyb20gJy4vTUNQU3RkaW9TZXJ2ZXJNZW51LmpzJ1xuaW1wb3J0IHsgTUNQVG9vbERldGFpbFZpZXcgfSBmcm9tICcuL01DUFRvb2xEZXRhaWxWaWV3LmpzJ1xuaW1wb3J0IHsgTUNQVG9vbExpc3RWaWV3IH0gZnJvbSAnLi9NQ1BUb29sTGlzdFZpZXcuanMnXG5pbXBvcnQgdHlwZSB7IEFnZW50TWNwU2VydmVySW5mbywgTUNQVmlld1N0YXRlLCBTZXJ2ZXJJbmZvIH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25Db21wbGV0ZTogKFxuICAgIHJlc3VsdD86IHN0cmluZyxcbiAgICBvcHRpb25zPzogeyBkaXNwbGF5PzogQ29tbWFuZFJlc3VsdERpc3BsYXkgfSxcbiAgKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNQ1BTZXR0aW5ncyh7IG9uQ29tcGxldGUgfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBtY3AgPSB1c2VBcHBTdGF0ZShzID0+IHMubWNwKVxuICBjb25zdCBhZ2VudERlZmluaXRpb25zID0gdXNlQXBwU3RhdGUocyA9PiBzLmFnZW50RGVmaW5pdGlvbnMpXG4gIGNvbnN0IG1jcENsaWVudHMgPSBtY3AuY2xpZW50c1xuICBjb25zdCBbdmlld1N0YXRlLCBzZXRWaWV3U3RhdGVdID0gUmVhY3QudXNlU3RhdGU8TUNQVmlld1N0YXRlPih7XG4gICAgdHlwZTogJ2xpc3QnLFxuICB9KVxuICBjb25zdCBbc2VydmVycywgc2V0U2VydmVyc10gPSBSZWFjdC51c2VTdGF0ZTxTZXJ2ZXJJbmZvW10+KFtdKVxuXG4gIC8vIEV4dHJhY3QgYWdlbnQtc3BlY2lmaWMgTUNQIHNlcnZlcnMgZnJvbSBhZ2VudCBkZWZpbml0aW9uc1xuICBjb25zdCBhZ2VudE1jcFNlcnZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+IGV4dHJhY3RBZ2VudE1jcFNlcnZlcnMoYWdlbnREZWZpbml0aW9ucy5hbGxBZ2VudHMpLFxuICAgIFthZ2VudERlZmluaXRpb25zLmFsbEFnZW50c10sXG4gIClcblxuICBjb25zdCBmaWx0ZXJlZENsaWVudHMgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBtY3BDbGllbnRzXG4gICAgICAgIC5maWx0ZXIoY2xpZW50ID0+IGNsaWVudC5uYW1lICE9PSAnaWRlJylcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpLFxuICAgIFttY3BDbGllbnRzXSxcbiAgKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVNlcnZlcnMoKSB7XG4gICAgICBjb25zdCBzZXJ2ZXJJbmZvcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBmaWx0ZXJlZENsaWVudHMubWFwKGFzeW5jIGNsaWVudCA9PiB7XG4gICAgICAgICAgY29uc3Qgc2NvcGUgPSBjbGllbnQuY29uZmlnLnNjb3BlXG4gICAgICAgICAgY29uc3QgaXNTU0UgPSBjbGllbnQuY29uZmlnLnR5cGUgPT09ICdzc2UnXG4gICAgICAgICAgY29uc3QgaXNIVFRQID0gY2xpZW50LmNvbmZpZy50eXBlID09PSAnaHR0cCdcbiAgICAgICAgICBjb25zdCBpc0NsYXVkZUFJUHJveHkgPSBjbGllbnQuY29uZmlnLnR5cGUgPT09ICdjbGF1ZGVhaS1wcm94eSdcbiAgICAgICAgICBsZXQgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICBpZiAoaXNTU0UgfHwgaXNIVFRQKSB7XG4gICAgICAgICAgICBjb25zdCBhdXRoUHJvdmlkZXIgPSBuZXcgQ2xhdWRlQXV0aFByb3ZpZGVyKFxuICAgICAgICAgICAgICBjbGllbnQubmFtZSxcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZyBhcyBNY3BTU0VTZXJ2ZXJDb25maWcgfCBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgdG9rZW5zID0gYXdhaXQgYXV0aFByb3ZpZGVyLnRva2VucygpXG4gICAgICAgICAgICAvLyBTZXJ2ZXIgaXMgYXV0aGVudGljYXRlZCBpZjpcbiAgICAgICAgICAgIC8vIDEuIEl0IGhhcyBPQXV0aCB0b2tlbnMsIE9SXG4gICAgICAgICAgICAvLyAyLiBJdCdzIGNvbm5lY3RlZCB2aWEgc2Vzc2lvbiBhdXRoIChoYXMgc2Vzc2lvbiB0b2tlbiBhbmQgaXMgY29ubmVjdGVkKSwgT1JcbiAgICAgICAgICAgIC8vIDMuIEl0J3MgY29ubmVjdGVkIGFuZCBoYXMgdG9vbHMgKG1lYW5pbmcgaXQncyB3b3JraW5nLCByZWdhcmRsZXNzIG9mIGF1dGggbWV0aG9kKVxuICAgICAgICAgICAgY29uc3QgaGFzU2Vzc2lvbkF1dGggPVxuICAgICAgICAgICAgICBnZXRTZXNzaW9uSW5ncmVzc0F1dGhUb2tlbigpICE9PSBudWxsICYmXG4gICAgICAgICAgICAgIGNsaWVudC50eXBlID09PSAnY29ubmVjdGVkJ1xuICAgICAgICAgICAgY29uc3QgaGFzVG9vbHNBbmRDb25uZWN0ZWQgPVxuICAgICAgICAgICAgICBjbGllbnQudHlwZSA9PT0gJ2Nvbm5lY3RlZCcgJiZcbiAgICAgICAgICAgICAgZmlsdGVyVG9vbHNCeVNlcnZlcihtY3AudG9vbHMsIGNsaWVudC5uYW1lKS5sZW5ndGggPiAwXG4gICAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQgPVxuICAgICAgICAgICAgICBCb29sZWFuKHRva2VucykgfHwgaGFzU2Vzc2lvbkF1dGggfHwgaGFzVG9vbHNBbmRDb25uZWN0ZWRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBiYXNlSW5mbyA9IHtcbiAgICAgICAgICAgIG5hbWU6IGNsaWVudC5uYW1lLFxuICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzQ2xhdWRlQUlQcm94eSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ2NsYXVkZWFpLXByb3h5JyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgaXNBdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29uZmlnOiBjbGllbnQuY29uZmlnIGFzIE1jcENsYXVkZUFJUHJveHlTZXJ2ZXJDb25maWcsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpc1NTRSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ3NzZScgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGlzQXV0aGVudGljYXRlZCxcbiAgICAgICAgICAgICAgY29uZmlnOiBjbGllbnQuY29uZmlnIGFzIE1jcFNTRVNlcnZlckNvbmZpZyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGlzSFRUUCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYmFzZUluZm8sXG4gICAgICAgICAgICAgIHRyYW5zcG9ydDogJ2h0dHAnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQsXG4gICAgICAgICAgICAgIGNvbmZpZzogY2xpZW50LmNvbmZpZyBhcyBNY3BIVFRQU2VydmVyQ29uZmlnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5iYXNlSW5mbyxcbiAgICAgICAgICAgICAgdHJhbnNwb3J0OiAnc3RkaW8nIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBjb25maWc6IGNsaWVudC5jb25maWcgYXMgTWNwU3RkaW9TZXJ2ZXJDb25maWcsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcblxuICAgICAgaWYgKGNhbmNlbGxlZCkgcmV0dXJuXG4gICAgICBzZXRTZXJ2ZXJzKHNlcnZlckluZm9zKVxuICAgIH1cblxuICAgIHZvaWQgcHJlcGFyZVNlcnZlcnMoKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICB9LCBbZmlsdGVyZWRDbGllbnRzLCBtY3AudG9vbHNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlcnZlcnMubGVuZ3RoID09PSAwICYmIGZpbHRlcmVkQ2xpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBTdGlsbCBsb2FkaW5nXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgXCJubyBzZXJ2ZXJzXCIgbWVzc2FnZSBpZiBubyByZWd1bGFyIHNlcnZlcnMgQU5EIG5vIGFnZW50IHNlcnZlcnNcbiAgICBpZiAoc2VydmVycy5sZW5ndGggPT09IDAgJiYgYWdlbnRNY3BTZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgb25Db21wbGV0ZShcbiAgICAgICAgJ05vIE1DUCBzZXJ2ZXJzIGNvbmZpZ3VyZWQuIFBsZWFzZSBydW4gL2RvY3RvciBpZiB0aGlzIGlzIHVuZXhwZWN0ZWQuIE90aGVyd2lzZSwgcnVuIGBjbGF1ZGUgbWNwIC0taGVscGAgb3IgdmlzaXQgaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9tY3AgdG8gbGVhcm4gbW9yZS4nLFxuICAgICAgKVxuICAgIH1cbiAgfSwgW1xuICAgIHNlcnZlcnMubGVuZ3RoLFxuICAgIGZpbHRlcmVkQ2xpZW50cy5sZW5ndGgsXG4gICAgYWdlbnRNY3BTZXJ2ZXJzLmxlbmd0aCxcbiAgICBvbkNvbXBsZXRlLFxuICBdKVxuXG4gIHN3aXRjaCAodmlld1N0YXRlLnR5cGUpIHtcbiAgICBjYXNlICdsaXN0JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNQ1BMaXN0UGFuZWxcbiAgICAgICAgICBzZXJ2ZXJzPXtzZXJ2ZXJzfVxuICAgICAgICAgIGFnZW50U2VydmVycz17YWdlbnRNY3BTZXJ2ZXJzfVxuICAgICAgICAgIG9uU2VsZWN0U2VydmVyPXtzZXJ2ZXIgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdzZXJ2ZXItbWVudScsIHNlcnZlciB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBvblNlbGVjdEFnZW50U2VydmVyPXsoYWdlbnRTZXJ2ZXI6IEFnZW50TWNwU2VydmVySW5mbykgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdhZ2VudC1zZXJ2ZXItbWVudScsIGFnZW50U2VydmVyIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgICAgZGVmYXVsdFRhYj17dmlld1N0YXRlLmRlZmF1bHRUYWJ9XG4gICAgICAgIC8+XG4gICAgICApXG5cbiAgICBjYXNlICdzZXJ2ZXItbWVudSc6IHtcbiAgICAgIGNvbnN0IHNlcnZlclRvb2xzID0gZmlsdGVyVG9vbHNCeVNlcnZlcihtY3AudG9vbHMsIHZpZXdTdGF0ZS5zZXJ2ZXIubmFtZSlcblxuICAgICAgY29uc3QgZGVmYXVsdFRhYiA9XG4gICAgICAgIHZpZXdTdGF0ZS5zZXJ2ZXIudHJhbnNwb3J0ID09PSAnY2xhdWRlYWktcHJveHknXG4gICAgICAgICAgPyAnY2xhdWRlLmFpJ1xuICAgICAgICAgIDogJ0NsYXVkZSBDb2RlJ1xuXG4gICAgICBpZiAodmlld1N0YXRlLnNlcnZlci50cmFuc3BvcnQgPT09ICdzdGRpbycpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TUNQU3RkaW9TZXJ2ZXJNZW51XG4gICAgICAgICAgICBzZXJ2ZXI9e3ZpZXdTdGF0ZS5zZXJ2ZXJ9XG4gICAgICAgICAgICBzZXJ2ZXJUb29sc0NvdW50PXtzZXJ2ZXJUb29scy5sZW5ndGh9XG4gICAgICAgICAgICBvblZpZXdUb29scz17KCkgPT5cbiAgICAgICAgICAgICAgc2V0Vmlld1N0YXRlKHsgdHlwZTogJ3NlcnZlci10b29scycsIHNlcnZlcjogdmlld1N0YXRlLnNlcnZlciB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdsaXN0JywgZGVmYXVsdFRhYiB9KX1cbiAgICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TUNQUmVtb3RlU2VydmVyTWVudVxuICAgICAgICAgICAgc2VydmVyPXt2aWV3U3RhdGUuc2VydmVyfVxuICAgICAgICAgICAgc2VydmVyVG9vbHNDb3VudD17c2VydmVyVG9vbHMubGVuZ3RofVxuICAgICAgICAgICAgb25WaWV3VG9vbHM9eygpID0+XG4gICAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7IHR5cGU6ICdzZXJ2ZXItdG9vbHMnLCBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnbGlzdCcsIGRlZmF1bHRUYWIgfSl9XG4gICAgICAgICAgICBvbkNvbXBsZXRlPXtvbkNvbXBsZXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlICdzZXJ2ZXItdG9vbHMnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1DUFRvb2xMaXN0Vmlld1xuICAgICAgICAgIHNlcnZlcj17dmlld1N0YXRlLnNlcnZlcn1cbiAgICAgICAgICBvblNlbGVjdFRvb2w9eyhfLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHNldFZpZXdTdGF0ZSh7XG4gICAgICAgICAgICAgIHR5cGU6ICdzZXJ2ZXItdG9vbC1kZXRhaWwnLFxuICAgICAgICAgICAgICBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIsXG4gICAgICAgICAgICAgIHRvb2xJbmRleDogaW5kZXgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLW1lbnUnLCBzZXJ2ZXI6IHZpZXdTdGF0ZS5zZXJ2ZXIgfSlcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICApXG5cbiAgICBjYXNlICdzZXJ2ZXItdG9vbC1kZXRhaWwnOiB7XG4gICAgICBjb25zdCBzZXJ2ZXJUb29scyA9IGZpbHRlclRvb2xzQnlTZXJ2ZXIobWNwLnRvb2xzLCB2aWV3U3RhdGUuc2VydmVyLm5hbWUpXG4gICAgICBjb25zdCB0b29sID0gc2VydmVyVG9vbHNbdmlld1N0YXRlLnRvb2xJbmRleF1cbiAgICAgIGlmICghdG9vbCkge1xuICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLXRvb2xzJywgc2VydmVyOiB2aWV3U3RhdGUuc2VydmVyIH0pXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TUNQVG9vbERldGFpbFZpZXdcbiAgICAgICAgICB0b29sPXt0b29sfVxuICAgICAgICAgIHNlcnZlcj17dmlld1N0YXRlLnNlcnZlcn1cbiAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnc2VydmVyLXRvb2xzJywgc2VydmVyOiB2aWV3U3RhdGUuc2VydmVyIH0pXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNhc2UgJ2FnZW50LXNlcnZlci1tZW51JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNQ1BBZ2VudFNlcnZlck1lbnVcbiAgICAgICAgICBhZ2VudFNlcnZlcj17dmlld1N0YXRlLmFnZW50U2VydmVyfVxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRWaWV3U3RhdGUoeyB0eXBlOiAnbGlzdCcsIGRlZmF1bHRUYWI6ICdBZ2VudHMnIH0pfVxuICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgIC8+XG4gICAgICApXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUNqRCxjQUFjQyxvQkFBb0IsUUFBUSxtQkFBbUI7QUFDN0QsU0FBU0Msa0JBQWtCLFFBQVEsNEJBQTRCO0FBQy9ELGNBQ0VDLDRCQUE0QixFQUM1QkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLG9CQUFvQixRQUNmLDZCQUE2QjtBQUNwQyxTQUNFQyxzQkFBc0IsRUFDdEJDLG1CQUFtQixRQUNkLDZCQUE2QjtBQUNwQyxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLDBCQUEwQixRQUFRLG1DQUFtQztBQUM5RSxTQUFTQyxrQkFBa0IsUUFBUSx5QkFBeUI7QUFDNUQsU0FBU0MsWUFBWSxRQUFRLG1CQUFtQjtBQUNoRCxTQUFTQyxtQkFBbUIsUUFBUSwwQkFBMEI7QUFDOUQsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUMxRCxTQUFTQyxlQUFlLFFB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
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figures from 'figures';
2
3
  import React, { useState } from 'react';
3
4
  import type { CommandResultDisplay } from '../../commands.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import React from 'react';
3
4
  import { Box, Text } from '../../ink.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import React from 'react';
3
4
  import { Text } from '../../ink.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import React, { useMemo } from 'react';
3
4
  import { getMcpConfigsByScope } from 'src/services/mcp/config.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import { feature } from 'bun:bundle';
3
4
  import chalk from 'chalk';
@@ -435,4 +436,4 @@ function _temp2(f_2) {
435
436
  function _temp(f_1) {
436
437
  return f_1.type !== "AutoMem" && f_1.type !== "TeamMem";
437
438
  }
438
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZWF0dXJlIiwiY2hhbGsiLCJta2RpciIsImpvaW4iLCJSZWFjdCIsInVzZSIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0T3JpZ2luYWxDd2QiLCJ1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZyIsImdldEF1dG9NZW1QYXRoIiwiaXNBdXRvTWVtb3J5RW5hYmxlZCIsImxvZ0V2ZW50IiwiaXNBdXRvRHJlYW1FbmFibGVkIiwicmVhZExhc3RDb25zb2xpZGF0ZWRBdCIsInVzZUFwcFN0YXRlIiwiZ2V0QWdlbnRNZW1vcnlEaXIiLCJvcGVuUGF0aCIsImdldE1lbW9yeUZpbGVzIiwiTWVtb3J5RmlsZUluZm8iLCJnZXRDbGF1ZGVDb25maWdIb21lRGlyIiwiZ2V0RGlzcGxheVBhdGgiLCJmb3JtYXRSZWxhdGl2ZVRpbWVBZ28iLCJwcm9qZWN0SXNJbkdpdFJlcG8iLCJ1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSIsIlNlbGVjdCIsIkxpc3RJdGVtIiwidGVhbU1lbVBhdGhzIiwicmVxdWlyZSIsIkV4dGVuZGVkTWVtb3J5RmlsZUluZm8iLCJpc05lc3RlZCIsImV4aXN0cyIsImxhc3RTZWxlY3RlZFBhdGgiLCJPUEVOX0ZPTERFUl9QUkVGSVgiLCJQcm9wcyIsIm9uU2VsZWN0IiwicGF0aCIsIm9uQ2FuY2VsIiwiTWVtb3J5RmlsZVNlbGVjdG9yIiwidDAiLCIkIiwiX2MiLCJleGlzdGluZ01lbW9yeUZpbGVzIiwidXNlck1lbW9yeVBhdGgiLCJwcm9qZWN0TWVtb3J5UGF0aCIsImhhc1VzZXJNZW1vcnkiLCJzb21lIiwiZiIsImhhc1Byb2plY3RNZW1vcnkiLCJmXzAiLCJhbGxNZW1vcnlGaWxlcyIsImZpbHRlciIsIl90ZW1wIiwibWFwIiwiX3RlbXAyIiwidHlwZSIsImNvbnN0IiwiY29udGVudCIsImRlcHRocyIsIk1hcCIsIm1lbW9yeU9wdGlvbnMiLCJmaWxlIiwiZGlzcGxheVBhdGgiLCJleGlzdHNMYWJlbCIsImRlcHRoIiwicGFyZW50IiwiZ2V0Iiwic2V0IiwiaW5kZW50IiwicmVwZWF0IiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsImlzR2l0IiwidmFsdWUiLCJmb2xkZXJPcHRpb25zIiwiYWdlbnREZWZpbml0aW9ucyIsIl90ZW1wMyIsInQxIiwiU3ltYm9sIiwiZm9yIiwicHVzaCIsImlzVGVhbU1lbW9yeUVuYWJsZWQiLCJ0MiIsImdldFRlYW1NZW1QYXRoIiwiYWdlbnQiLCJhY3RpdmVBZ2VudHMiLCJtZW1vcnkiLCJhZ2VudERpciIsImFnZW50VHlwZSIsImJvbGQiLCJfdGVtcDQiLCJpbml0aWFsUGF0aCIsImF1dG9NZW1vcnlPbiIsInNldEF1dG9NZW1vcnlPbiIsImF1dG9EcmVhbU9uIiwic2V0QXV0b0RyZWFtT24iLCJzaG93RHJlYW1Sb3ciLCJpc0RyZWFtUnVubmluZyIsIl90ZW1wNiIsImxhc3REcmVhbUF0Iiwic2V0TGFzdERyZWFtQXQiLCJ0aGVuIiwidDMiLCJ0NCIsIkRhdGUiLCJkcmVhbVN0YXR1cyIsImZvY3VzZWRUb2dnbGUiLCJzZXRGb2N1c2VkVG9nZ2xlIiwidG9nZ2xlRm9jdXNlZCIsImxhc3RUb2dnbGVJbmRleCIsInQ1IiwiaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSIsIm5ld1ZhbHVlIiwiYXV0b01lbW9yeUVuYWJsZWQiLCJlbmFibGVkIiwidDYiLCJoYW5kbGVUb2dnbGVBdXRvRHJlYW0iLCJuZXdWYWx1ZV8wIiwiYXV0b0RyZWFtRW5hYmxlZCIsInQ3IiwiY29udGV4dCIsInQ4IiwidDkiLCJpc0FjdGl2ZSIsInQxMCIsInByZXYiLCJ0MTEiLCJ0MTIiLCJfdGVtcDciLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJ1bmRlZmluZWQiLCJ0MTkiLCJ0MjAiLCJzdGFydHNXaXRoIiwiZm9sZGVyUGF0aCIsInNsaWNlIiwibGVuZ3RoIiwicmVjdXJzaXZlIiwiY2F0Y2giLCJfdGVtcDgiLCJ0MjEiLCJ0MjIiLCJ0MjMiLCJwcmV2XzAiLCJzXzAiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzIiwidGFza3MiLCJfdGVtcDUiLCJ0Iiwic3RhdHVzIiwib3B0IiwiZl8yIiwiZl8xIl0sInNvdXJjZXMiOlsiTWVtb3J5RmlsZVNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZWF0dXJlIH0gZnJvbSAnYnVuOmJ1bmRsZSdcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCB7IG1rZGlyIH0gZnJvbSAnZnMvcHJvbWlzZXMnXG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBnZXRPcmlnaW5hbEN3ZCB9IGZyb20gJy4uLy4uL2Jvb3RzdHJhcC9zdGF0ZS5qcydcbmltcG9ydCB7IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncy5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgZ2V0QXV0b01lbVBhdGgsIGlzQXV0b01lbW9yeUVuYWJsZWQgfSBmcm9tICcuLi8uLi9tZW1kaXIvcGF0aHMuanMnXG5pbXBvcnQgeyBsb2dFdmVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IGlzQXV0b0RyZWFtRW5hYmxlZCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dG9EcmVhbS9jb25maWcuanMnXG5pbXBvcnQgeyByZWFkTGFzdENvbnNvbGlkYXRlZEF0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0b0RyZWFtL2NvbnNvbGlkYXRpb25Mb2NrLmpzJ1xuaW1wb3J0IHsgdXNlQXBwU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7IGdldEFnZW50TWVtb3J5RGlyIH0gZnJvbSAnLi4vLi4vdG9vbHMvQWdlbnRUb29sL2FnZW50TWVtb3J5LmpzJ1xuaW1wb3J0IHsgb3BlblBhdGggfSBmcm9tICcuLi8uLi91dGlscy9icm93c2VyLmpzJ1xuaW1wb3J0IHsgZ2V0TWVtb3J5RmlsZXMsIHR5cGUgTWVtb3J5RmlsZUluZm8gfSBmcm9tICcuLi8uLi91dGlscy9jbGF1ZGVtZC5qcydcbmltcG9ydCB7IGdldENsYXVkZUNvbmZpZ0hvbWVEaXIgfSBmcm9tICcuLi8uLi91dGlscy9lbnZVdGlscy5qcydcbmltcG9ydCB7IGdldERpc3BsYXlQYXRoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcydcbmltcG9ydCB7IGZvcm1hdFJlbGF0aXZlVGltZUFnbyB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1hdC5qcydcbmltcG9ydCB7IHByb2plY3RJc0luR2l0UmVwbyB9IGZyb20gJy4uLy4uL3V0aWxzL21lbW9yeS92ZXJzaW9ucy5qcydcbmltcG9ydCB7IHVwZGF0ZVNldHRpbmdzRm9yU291cmNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0dGluZ3Mvc2V0dGluZ3MuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi9DdXN0b21TZWxlY3QvaW5kZXguanMnXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vTGlzdEl0ZW0uanMnXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IHRlYW1NZW1QYXRocyA9IGZlYXR1cmUoJ1RFQU1NRU0nKVxuICA/IChyZXF1aXJlKCcuLi8uLi9tZW1kaXIvdGVhbU1lbVBhdGhzLmpzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbWVtZGlyL3RlYW1NZW1QYXRocy5qcycpKVxuICA6IG51bGxcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRNZW1vcnlGaWxlSW5mbyBleHRlbmRzIE1lbW9yeUZpbGVJbmZvIHtcbiAgaXNOZXN0ZWQ/OiBib29sZWFuXG4gIGV4aXN0czogYm9vbGVhblxufVxuXG4vLyBSZW1lbWJlciBsYXN0IHNlbGVjdGVkIHBhdGhcbmxldCBsYXN0U2VsZWN0ZWRQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuY29uc3QgT1BFTl9GT0xERVJfUFJFRklYID0gJ19fb3Blbl9mb2xkZXJfXydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25TZWxlY3Q6IChwYXRoOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1lbW9yeUZpbGVTZWxlY3Rvcih7XG4gIG9uU2VsZWN0LFxuICBvbkNhbmNlbCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgZXhpc3RpbmdNZW1vcnlGaWxlcyA9IHVzZShnZXRNZW1vcnlGaWxlcygpKVxuXG4gIC8vIENyZWF0ZSBlbnRyaWVzIGZvciBVc2VyIGFuZCBQcm9qZWN0IENMQVVERS5tZCBldmVuIGlmIHRoZXkgZG9uJ3QgZXhpc3RcbiAgY29uc3QgdXNlck1lbW9yeVBhdGggPSBqb2luKGdldENsYXVkZUNvbmZpZ0hvbWVEaXIoKSwgJ0NMQVVERS5tZCcpXG4gIGNvbnN0IHByb2plY3RNZW1vcnlQYXRoID0gam9pbihnZXRPcmlnaW5hbEN3ZCgpLCAnQ0xBVURFLm1kJylcblxuICAvLyBDaGVjayBpZiB0aGVzZSBhcmUgYWxyZWFkeSBpbiB0aGUgZXhpc3RpbmcgZmlsZXNcbiAgY29uc3QgaGFzVXNlck1lbW9yeSA9IGV4aXN0aW5nTWVtb3J5RmlsZXMuc29tZShmID0+IGYucGF0aCA9PT0gdXNlck1lbW9yeVBhdGgpXG4gIGNvbnN0IGhhc1Byb2plY3RNZW1vcnkgPSBleGlzdGluZ01lbW9yeUZpbGVzLnNvbWUoXG4gICAgZiA9PiBmLnBhdGggPT09IHByb2plY3RNZW1vcnlQYXRoLFxuICApXG5cbiAgLy8gRmlsdGVyIG91dCBBdXRvTWVtL1RlYW1NZW0gZW50cnlwb2ludHM6IHRoZXNlIGFyZSBNRU1PUlkubWQgZmlsZXMsIGFuZFxuICAvLyAvbWVtb3J5IGFscmVhZHkgc3VyZmFjZXMgXCJPcGVuIGF1dG8tbWVtb3J5IGZvbGRlclwiIC8gXCJPcGVuIHRlYW0gbWVtb3J5XG4gIC8vIGZvbGRlclwiIG9wdGlvbnMgYmVsb3cuIExpc3RpbmcgdGhlIGVudHJ5cG9pbnQgZmlsZSBzZXBhcmF0ZWx5IGlzIHJlZHVuZGFudC5cbiAgY29uc3QgYWxsTWVtb3J5RmlsZXM6IEV4dGVuZGVkTWVtb3J5RmlsZUluZm9bXSA9IFtcbiAgICAuLi5leGlzdGluZ01lbW9yeUZpbGVzXG4gICAgICAuZmlsdGVyKGYgPT4gZi50eXBlICE9PSAnQXV0b01lbScgJiYgZi50eXBlICE9PSAnVGVhbU1lbScpXG4gICAgICAubWFwKGYgPT4gKHsgLi4uZiwgZXhpc3RzOiB0cnVlIH0pKSxcbiAgICAvLyBBZGQgVXNlciBtZW1vcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIC4uLihoYXNVc2VyTWVtb3J5XG4gICAgICA/IFtdXG4gICAgICA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiB1c2VyTWVtb3J5UGF0aCxcbiAgICAgICAgICAgIHR5cGU6ICdVc2VyJyBhcyBjb25zdCxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgZXhpc3RzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICAvLyBBZGQgUHJvamVjdCBtZW1vcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIC4uLihoYXNQcm9qZWN0TWVtb3J5XG4gICAgICA/IFtdXG4gICAgICA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBwcm9qZWN0TWVtb3J5UGF0aCxcbiAgICAgICAgICAgIHR5cGU6ICdQcm9qZWN0JyBhcyBjb25zdCxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgZXhpc3RzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgXVxuXG4gIGNvbnN0IGRlcHRocyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KClcblxuICAvLyBDcmVhdGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdCBjb21wb25lbnRcbiAgY29uc3QgbWVtb3J5T3B0aW9ucyA9IGFsbE1lbW9yeUZpbGVzLm1hcChmaWxlID0+IHtcbiAgICBjb25zdCBkaXNwbGF5UGF0aCA9IGdldERpc3BsYXlQYXRoKGZpbGUucGF0aClcbiAgICBjb25zdCBleGlzdHNMYWJlbCA9IGZpbGUuZXhpc3RzID8gJycgOiAnIChuZXcpJ1xuXG4gICAgLy8gQ2FsY3VsYXRlIGRlcHRoIGJhc2VkIG9uIHBhcmVudFxuICAgIGNvbnN0IGRlcHRoID0gZmlsZS5wYXJlbnQgPyAoZGVwdGhzLmdldChmaWxlLnBhcmVudCkgPz8gMCkgKyAxIDogMFxuICAgIGRlcHRocy5zZXQoZmlsZS5wYXRoLCBkZXB0aClcbiAgICBjb25zdCBpbmRlbnQgPSBkZXB0aCA+IDAgPyAnICAnLnJlcGVhdChkZXB0aCAtIDEpIDogJydcblxuICAgIC8vIEZvcm1hdCBsYWJlbCBiYXNlZCBvbiB0eXBlXG4gICAgbGV0IGxhYmVsOiBzdHJpbmdcbiAgICBpZiAoXG4gICAgICBmaWxlLnR5cGUgPT09ICdVc2VyJyAmJlxuICAgICAgIWZpbGUuaXNOZXN0ZWQgJiZcbiAgICAgIGZpbGUucGF0aCA9PT0gdXNlck1lbW9yeVBhdGhcbiAgICApIHtcbiAgICAgIGxhYmVsID0gYFVzZXIgbWVtb3J5YFxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBmaWxlLnR5cGUgPT09ICdQcm9qZWN0JyAmJlxuICAgICAgIWZpbGUuaXNOZXN0ZWQgJiZcbiAgICAgIGZpbGUucGF0aCA9PT0gcHJvamVjdE1lbW9yeVBhdGhcbiAgICApIHtcbiAgICAgIGxhYmVsID0gYFByb2plY3QgbWVtb3J5YFxuICAgIH0gZWxzZSBpZiAoZGVwdGggPiAwKSB7XG4gICAgICAvLyBGb3IgY2hpbGQgbm9kZXMgKGltcG9ydGVkIGZpbGVzKSwgc2hvdyBpbmRlbnRlZCB3aXRoIExcbiAgICAgIGxhYmVsID0gYCR7aW5kZW50fUwgJHtkaXNwbGF5UGF0aH0ke2V4aXN0c0xhYmVsfWBcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG90aGVyIG1lbW9yeSBmaWxlcywganVzdCBzaG93IHRoZSBwYXRoXG4gICAgICBsYWJlbCA9IGAke2Rpc3BsYXlQYXRofWBcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgZGVzY3JpcHRpb24gYmFzZWQgb24gdHlwZSAtIGtlZXAgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9ucyBmb3IgYnVpbHQtaW4gdHlwZXNcbiAgICBsZXQgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIGNvbnN0IGlzR2l0ID0gcHJvamVjdElzSW5HaXRSZXBvKGdldE9yaWdpbmFsQ3dkKCkpXG5cbiAgICBpZiAoZmlsZS50eXBlID09PSAnVXNlcicgJiYgIWZpbGUuaXNOZXN0ZWQpIHtcbiAgICAgIGRlc2NyaXB0aW9uID0gJ1NhdmVkIGluIH4vLmNsYXVkZS9DTEFVREUubWQnXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGZpbGUudHlwZSA9PT0gJ1Byb2plY3QnICYmXG4gICAgICAhZmlsZS5pc05lc3RlZCAmJlxuICAgICAgZmlsZS5wYXRoID09PSBwcm9qZWN0TWVtb3J5UGF0aFxuICAgICkge1xuICAgICAgZGVzY3JpcHRpb24gPSBgJHtpc0dpdCA/ICdDaGVja2VkIGluIGF0JyA6ICdTYXZlZCBpbid9IC4vQ0xBVURFLm1kYFxuICAgIH0gZWxzZSBpZiAoZmlsZS5wYXJlbnQpIHtcbiAgICAgIC8vIEZvciBpbXBvcnRlZCBmaWxlcyAod2l0aCBALWltcG9ydClcbiAgICAgIGRlc2NyaXB0aW9uID0gJ0AtaW1wb3J0ZWQnXG4gICAgfSBlbHNlIGlmIChmaWxlLmlzTmVzdGVkKSB7XG4gICAgICAvLyBGb3IgbmVzdGVkIGZpbGVzIChkeW5hbWljYWxseSBsb2FkZWQpXG4gICAgICBkZXNjcmlwdGlvbiA9ICdkeW5hbWljYWxseSBsb2FkZWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc2NyaXB0aW9uID0gJydcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWwsXG4gICAgICB2YWx1ZTogZmlsZS5wYXRoLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgfVxuICB9KVxuXG4gIC8vIEFkZCBcIk9wZW4gZm9sZGVyXCIgb3B0aW9ucyBmb3IgYXV0by1tZW1vcnkgYW5kIGFnZW50IG1lbW9yeSBkaXJlY3Rvcmllc1xuICBjb25zdCBmb2xkZXJPcHRpb25zOiBBcnJheTx7XG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIHZhbHVlOiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIH0+ID0gW11cblxuICBjb25zdCBhZ2VudERlZmluaXRpb25zID0gdXNlQXBwU3RhdGUocyA9PiBzLmFnZW50RGVmaW5pdGlvbnMpXG4gIGlmIChpc0F1dG9NZW1vcnlFbmFibGVkKCkpIHtcbiAgICAvLyBBbHdheXMgc2hvdyBhdXRvLW1lbW9yeSBmb2xkZXIgb3B0aW9uXG4gICAgZm9sZGVyT3B0aW9ucy5wdXNoKHtcbiAgICAgIGxhYmVsOiAnT3BlbiBhdXRvLW1lbW9yeSBmb2xkZXInLFxuICAgICAgdmFsdWU6IGAke09QRU5fRk9MREVSX1BSRUZJWH0ke2dldEF1dG9NZW1QYXRoKCl9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB9KVxuXG4gICAgLy8gVGVhbSBtZW1vcnkgZGlyZWN0bHkgYmVsb3cgYXV0by1tZW1vcnkgKHRlYW0gZGlyIGlzIGEgc3ViZGlyIG9mIGF1dG8gZGlyKVxuICAgIGlmIChmZWF0dXJlKCdURUFNTUVNJykgJiYgdGVhbU1lbVBhdGhzIS5pc1RlYW1NZW1vcnlFbmFibGVkKCkpIHtcbiAgICAgIGZvbGRlck9wdGlvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiAnT3BlbiB0ZWFtIG1lbW9yeSBmb2xkZXInLFxuICAgICAgICB2YWx1ZTogYCR7T1BFTl9GT0xERVJfUFJFRklYfSR7dGVhbU1lbVBhdGhzIS5nZXRUZWFtTWVtUGF0aCgpfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gQWRkIGFnZW50IG1lbW9yeSBmb2xkZXJzIGZvciBhZ2VudHMgdGhhdCBoYXZlIG1lbW9yeSBjb25maWd1cmVkXG4gICAgZm9yIChjb25zdCBhZ2VudCBvZiBhZ2VudERlZmluaXRpb25zLmFjdGl2ZUFnZW50cykge1xuICAgICAgaWYgKGFnZW50Lm1lbW9yeSkge1xuICAgICAgICBjb25zdCBhZ2VudERpciA9IGdldEFnZW50TWVtb3J5RGlyKGFnZW50LmFnZW50VHlwZSwgYWdlbnQubWVtb3J5KVxuICAgICAgICBmb2xkZXJPcHRpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBgT3BlbiAke2NoYWxrLmJvbGQoYWdlbnQuYWdlbnRUeXBlKX0gYWdlbnQgbWVtb3J5YCxcbiAgICAgICAgICB2YWx1ZTogYCR7T1BFTl9GT0xERVJfUFJFRklYfSR7YWdlbnREaXJ9YCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7YWdlbnQubWVtb3J5fSBzY29wZWAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWVtb3J5T3B0aW9ucy5wdXNoKC4uLmZvbGRlck9wdGlvbnMpXG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIGxhc3Qgc2VsZWN0ZWQgcGF0aCBpZiBpdCdzIHN0aWxsIGluIHRoZSBvcHRpb25zLCBvdGhlcndpc2UgdXNlIGZpcnN0IG9wdGlvblxuICBjb25zdCBpbml0aWFsUGF0aCA9XG4gICAgbGFzdFNlbGVjdGVkUGF0aCAmJlxuICAgIG1lbW9yeU9wdGlvbnMuc29tZShvcHQgPT4gb3B0LnZhbHVlID09PSBsYXN0U2VsZWN0ZWRQYXRoKVxuICAgICAgPyBsYXN0U2VsZWN0ZWRQYXRoXG4gICAgICA6IG1lbW9yeU9wdGlvbnNbMF0/LnZhbHVlIHx8ICcnXG5cbiAgLy8gVG9nZ2xlIHN0YXRlIChsb2NhbCBjb3B5IG9mIHNldHRpbmdzIHNvIHRoZSBVSSB1cGRhdGVzIGltbWVkaWF0ZWx5KVxuICBjb25zdCBbYXV0b01lbW9yeU9uLCBzZXRBdXRvTWVtb3J5T25dID0gdXNlU3RhdGUoaXNBdXRvTWVtb3J5RW5hYmxlZClcbiAgY29uc3QgW2F1dG9EcmVhbU9uLCBzZXRBdXRvRHJlYW1Pbl0gPSB1c2VTdGF0ZShpc0F1dG9EcmVhbUVuYWJsZWQpXG5cbiAgLy8gRHJlYW0gcm93IGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuIGF1dG8tbWVtb3J5IGlzIG9uIChkcmVhbSBjb25zb2xpZGF0ZXNcbiAgLy8gdGhhdCBkaXIpLiBTbmFwc2hvdCBhdCBtb3VudCBzbyB0aGUgcm93IGRvZXNuJ3QgdmFuaXNoIG1pZC1uYXZpZ2F0aW9uXG4gIC8vIGlmIHRoZSB1c2VyIHRvZ2dsZXMgYXV0by1tZW1vcnkgb2ZmLlxuICBjb25zdCBbc2hvd0RyZWFtUm93XSA9IHVzZVN0YXRlKGlzQXV0b01lbW9yeUVuYWJsZWQpXG5cbiAgLy8gRHJlYW0gc3RhdHVzOiBwcmVmZXIgbGl2ZSB0YXNrIHN0YXRlICh0aGlzIHNlc3Npb24gZmlyZWQgaXQpLCBmYWxsIGJhY2tcbiAgLy8gdG8gdGhlIGNyb3NzLXByb2Nlc3MgbG9jayBtdGltZS5cbiAgY29uc3QgaXNEcmVhbVJ1bm5pbmcgPSB1c2VBcHBTdGF0ZShzID0+XG4gICAgT2JqZWN0LnZhbHVlcyhzLnRhc2tzKS5zb21lKFxuICAgICAgdCA9PiB0LnR5cGUgPT09ICdkcmVhbScgJiYgdC5zdGF0dXMgPT09ICdydW5uaW5nJyxcbiAgICApLFxuICApXG4gIGNvbnN0IFtsYXN0RHJlYW1BdCwgc2V0TGFzdERyZWFtQXRdID0gdXNlU3RhdGU8bnVtYmVyIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dEcmVhbVJvdykgcmV0dXJuXG4gICAgdm9pZCByZWFkTGFzdENvbnNvbGlkYXRlZEF0KCkudGhlbihzZXRMYXN0RHJlYW1BdClcbiAgfSwgW3Nob3dEcmVhbVJvdywgaXNEcmVhbVJ1bm5pbmddKVxuXG4gIGNvbnN0IGRyZWFtU3RhdHVzID0gaXNEcmVhbVJ1bm5pbmdcbiAgICA/ICdydW5uaW5nJ1xuICAgIDogbGFzdERyZWFtQXQgPT09IG51bGxcbiAgICAgID8gJycgLy8gc3RhdCBpbiBmbGlnaHRcbiAgICAgIDogbGFzdERyZWFtQXQgPT09IDBcbiAgICAgICAgPyAnbmV2ZXInXG4gICAgICAgIDogYGxhc3QgcmFuICR7Zm9ybWF0UmVsYXRpdmVUaW1lQWdvKG5ldyBEYXRlKGxhc3REcmVhbUF0KSl9YFxuXG4gIC8vIG51bGwgPSBTZWxlY3QgaGFzIGZvY3VzLCAwID0gYXV0by1tZW1vcnksIDEgPSBhdXRvLWRyZWFtIChpZiBzaG93RHJlYW1Sb3cpXG4gIGNvbnN0IFtmb2N1c2VkVG9nZ2xlLCBzZXRGb2N1c2VkVG9nZ2xlXSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHRvZ2dsZUZvY3VzZWQgPSBmb2N1c2VkVG9nZ2xlICE9PSBudWxsXG4gIGNvbnN0IGxhc3RUb2dnbGVJbmRleCA9IHNob3dEcmVhbVJvdyA/IDEgOiAwXG5cbiAgZnVuY3Rpb24gaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9ICFhdXRvTWVtb3J5T25cbiAgICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSgndXNlclNldHRpbmdzJywgeyBhdXRvTWVtb3J5RW5hYmxlZDogbmV3VmFsdWUgfSlcbiAgICBzZXRBdXRvTWVtb3J5T24obmV3VmFsdWUpXG4gICAgbG9nRXZlbnQoJ3Rlbmd1X2F1dG9fbWVtb3J5X3RvZ2dsZWQnLCB7IGVuYWJsZWQ6IG5ld1ZhbHVlIH0pXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVUb2dnbGVBdXRvRHJlYW0oKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSAhYXV0b0RyZWFtT25cbiAgICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSgndXNlclNldHRpbmdzJywgeyBhdXRvRHJlYW1FbmFibGVkOiBuZXdWYWx1ZSB9KVxuICAgIHNldEF1dG9EcmVhbU9uKG5ld1ZhbHVlKVxuICAgIGxvZ0V2ZW50KCd0ZW5ndV9hdXRvX2RyZWFtX3RvZ2dsZWQnLCB7IGVuYWJsZWQ6IG5ld1ZhbHVlIH0pXG4gIH1cblxuICB1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MoKVxuXG4gIHVzZUtleWJpbmRpbmcoJ2NvbmZpcm06bm8nLCBvbkNhbmNlbCwgeyBjb250ZXh0OiAnQ29uZmlybWF0aW9uJyB9KVxuXG4gIHVzZUtleWJpbmRpbmcoXG4gICAgJ2NvbmZpcm06eWVzJyxcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFRvZ2dsZSA9PT0gMCkgaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSgpXG4gICAgICBlbHNlIGlmIChmb2N1c2VkVG9nZ2xlID09PSAxKSBoYW5kbGVUb2dnbGVBdXRvRHJlYW0oKVxuICAgIH0sXG4gICAgeyBjb250ZXh0OiAnQ29uZmlybWF0aW9uJywgaXNBY3RpdmU6IHRvZ2dsZUZvY3VzZWQgfSxcbiAgKVxuICB1c2VLZXliaW5kaW5nKFxuICAgICdzZWxlY3Q6bmV4dCcsXG4gICAgKCkgPT4ge1xuICAgICAgc2V0Rm9jdXNlZFRvZ2dsZShwcmV2ID0+XG4gICAgICAgIHByZXYgIT09IG51bGwgJiYgcHJldiA8IGxhc3RUb2dnbGVJbmRleCA/IHByZXYgKyAxIDogbnVsbCxcbiAgICAgIClcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ1NlbGVjdCcsIGlzQWN0aXZlOiB0b2dnbGVGb2N1c2VkIH0sXG4gIClcbiAgdXNlS2V5YmluZGluZyhcbiAgICAnc2VsZWN0OnByZXZpb3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBzZXRGb2N1c2VkVG9nZ2xlKHByZXYgPT4gKHByZXYgIT09IG51bGwgJiYgcHJldiA+IDAgPyBwcmV2IC0gMSA6IHByZXYpKVxuICAgIH0sXG4gICAgeyBjb250ZXh0OiAnU2VsZWN0JywgaXNBY3RpdmU6IHRvZ2dsZUZvY3VzZWQgfSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgd2lkdGg9XCIxMDAlXCI+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICA8TGlzdEl0ZW0gaXNGb2N1c2VkPXtmb2N1c2VkVG9nZ2xlID09PSAwfT5cbiAgICAgICAgICA8VGV4dD5BdXRvLW1lbW9yeToge2F1dG9NZW1vcnlPbiA/ICdvbicgOiAnb2ZmJ308L1RleHQ+XG4gICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgIHtzaG93RHJlYW1Sb3cgJiYgKFxuICAgICAgICAgIDxMaXN0SXRlbSBpc0ZvY3VzZWQ9e2ZvY3VzZWRUb2dnbGUgPT09IDF9IHN0eWxlZD17ZmFsc2V9PlxuICAgICAgICAgICAgPFRleHQgY29sb3I9e2ZvY3VzZWRUb2dnbGUgPT09IDEgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAgICBBdXRvLWRyZWFtOiB7YXV0b0RyZWFtT24gPyAnb24nIDogJ29mZid9XG4gICAgICAgICAgICAgIHtkcmVhbVN0YXR1cyAmJiA8VGV4dCBkaW1Db2xvcj4gwrcge2RyZWFtU3RhdHVzfTwvVGV4dD59XG4gICAgICAgICAgICAgIHshaXNEcmVhbVJ1bm5pbmcgJiYgYXV0b0RyZWFtT24gJiYgKFxuICAgICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPiDCtyAvZHJlYW0gdG8gcnVuPC9UZXh0PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgICl9XG4gICAgICA8L0JveD5cblxuICAgICAgPFNlbGVjdFxuICAgICAgICBkZWZhdWx0Rm9jdXNWYWx1ZT17aW5pdGlhbFBhdGh9XG4gICAgICAgIG9wdGlvbnM9e21lbW9yeU9wdGlvbnN9XG4gICAgICAgIGlzRGlzYWJsZWQ9e3RvZ2dsZUZvY3VzZWR9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoT1BFTl9GT0xERVJfUFJFRklYKSkge1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyUGF0aCA9IHZhbHVlLnNsaWNlKE9QRU5fRk9MREVSX1BSRUZJWC5sZW5ndGgpXG4gICAgICAgICAgICAvLyBFbnN1cmUgZm9sZGVyIGV4aXN0cyBiZWZvcmUgb3BlbmluZyAoaWRlbXBvdGVudDsgc3dhbGxvd1xuICAgICAgICAgICAgLy8gcGVybWlzc2lvbiBlcnJvcnMgdG8gbWF0Y2ggcHJldmlvdXMgYmVoYXZpb3IpXG4gICAgICAgICAgICB2b2lkIG1rZGlyKGZvbGRlclBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gb3BlblBhdGgoZm9sZGVyUGF0aCkpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgbGFzdFNlbGVjdGVkUGF0aCA9IHZhbHVlIC8vIFJlbWVtYmVyIHRoZSBzZWxlY3Rpb25cbiAgICAgICAgICBvblNlbGVjdCh2YWx1ZSlcbiAgICAgICAgfX1cbiAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgICAgICBvblVwRnJvbUZpcnN0SXRlbT17KCkgPT4gc2V0Rm9jdXNlZFRvZ2dsZShsYXN0VG9nZ2xlSW5kZXgpfVxuICAgICAgLz5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsT0FBTyxRQUFRLFlBQVk7QUFDcEMsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsS0FBSyxRQUFRLGFB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QXBFLENBQUEsT0FBQTBHLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUExRyxDQUFBO0VBQUE7RUFBQSxJQUFBMkcsR0FBQTtFQUFBLElBQUEzRyxDQUFBLFNBQUFnRyxHQUFBLElBQUFoRyxDQUFBLFNBQUEwRyxHQUFBO0lBckNKQyxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQU8sS0FBTSxDQUFOLE1BQU0sQ0FDdEMsQ0FBQVgsR0FlSyxDQUVMLENBQUFVLEdBbUJDLENBQ0gsRUF0Q0MsR0FBRyxDQXNDRTtJQUFBMUcsQ0FBQSxPQUFBZ0csR0FBQTtJQUFBaEcsQ0FBQSxPQUFBMEcsR0FBQTtJQUFBMUcsQ0FBQSxPQUFBMkcsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTNHLENBQUE7RUFBQTtFQUFBLE9BdENOMkcsR0FzQ007QUFBQTtBQWxSSCxTQUFBSCxPQUFBO0FBQUEsU0FBQWhCLE9BQUFvQixNQUFBO0VBQUEsT0FzT3lCdkIsTUFBSSxLQUFLLElBQWdCLElBQVJBLE1BQUksR0FBRyxDQUFtQixHQUFmQSxNQUFJLEdBQUcsQ0FBUSxHQUEzQ3VCLE1BQTJDO0FBQUE7QUF0T3BFLFNBQUFsRCxPQUFBbUQsR0FBQTtFQUFBLE9BeUtIQyxNQUFNLENBQUFDLE1BQU8sQ0FBQ0MsR0FBQyxDQUFBQyxLQUFNLENBQUMsQ0FBQTNHLElBQUssQ0FDekI0RyxNQUNGLENBQUM7QUFBQTtBQTNLRSxTQUFBQSxPQUFBQyxDQUFBO0VBQUEsT0EwS0lBLENBQUMsQ0FBQXBHLElBQUssS0FBSyxPQUFpQyxJQUF0Qm9HLENBQUMsQ0FBQUMsTUFBTyxLQUFLLFNBQVM7QUFBQTtBQTFLaEQsU0FBQWxFLE9BQUFtRSxHQUFBO0VBQUEsT0F5SnVCQSxHQUFHLENBQUFwRixLQUFNLEtBQUt6QyxnQkFBZ0I7QUFBQTtBQXpKckQsU0FBQTRDLE9BQUE0RSxDQUFBO0VBQUEsT0FxSHFDQSxDQUFDLENBQUE3RSxnQkFBaUI7QUFBQTtBQXJIdkQsU0FBQXJCLE9BQUF3RyxHQUFBO0VBQUEsT0FzQlU7SUFBQSxHQUFLL0csR0FBQztJQUFBaEIsTUFBQSxFQUFVO0VBQUssQ0FBQztBQUFBO0FBdEJoQyxTQUFBcUIsTUFBQTJHLEdBQUE7RUFBQSxPQXFCWWhILEdBQUMsQ0FBQVEsSUFBSyxLQUFLLFNBQWlDLElBQXBCUixHQUFDLENBQUFRLElBQUssS0FBSyxTQUFTO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
439
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZWF0dXJlIiwiY2hhbGsiLCJta2RpciIsImpvaW4iLCJSZWFjdCIsInVzZSIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiZ2V0T3JpZ2luYWxDd2QiLCJ1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZyIsImdldEF1dG9NZW1QYXRoIiwiaXNBdXRvTWVtb3J5RW5hYmxlZCIsImxvZ0V2ZW50IiwiaXNBdXRvRHJlYW1FbmFibGVkIiwicmVhZExhc3RDb25zb2xpZGF0ZWRBdCIsInVzZUFwcFN0YXRlIiwiZ2V0QWdlbnRNZW1vcnlEaXIiLCJvcGVuUGF0aCIsImdldE1lbW9yeUZpbGVzIiwiTWVtb3J5RmlsZUluZm8iLCJnZXRDbGF1ZGVDb25maWdIb21lRGlyIiwiZ2V0RGlzcGxheVBhdGgiLCJmb3JtYXRSZWxhdGl2ZVRpbWVBZ28iLCJwcm9qZWN0SXNJbkdpdFJlcG8iLCJ1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSIsIlNlbGVjdCIsIkxpc3RJdGVtIiwidGVhbU1lbVBhdGhzIiwicmVxdWlyZSIsIkV4dGVuZGVkTWVtb3J5RmlsZUluZm8iLCJpc05lc3RlZCIsImV4aXN0cyIsImxhc3RTZWxlY3RlZFBhdGgiLCJPUEVOX0ZPTERFUl9QUkVGSVgiLCJQcm9wcyIsIm9uU2VsZWN0IiwicGF0aCIsIm9uQ2FuY2VsIiwiTWVtb3J5RmlsZVNlbGVjdG9yIiwidDAiLCIkIiwiX2MiLCJleGlzdGluZ01lbW9yeUZpbGVzIiwidXNlck1lbW9yeVBhdGgiLCJwcm9qZWN0TWVtb3J5UGF0aCIsImhhc1VzZXJNZW1vcnkiLCJzb21lIiwiZiIsImhhc1Byb2plY3RNZW1vcnkiLCJmXzAiLCJhbGxNZW1vcnlGaWxlcyIsImZpbHRlciIsIl90ZW1wIiwibWFwIiwiX3RlbXAyIiwidHlwZSIsImNvbnN0IiwiY29udGVudCIsImRlcHRocyIsIk1hcCIsIm1lbW9yeU9wdGlvbnMiLCJmaWxlIiwiZGlzcGxheVBhdGgiLCJleGlzdHNMYWJlbCIsImRlcHRoIiwicGFyZW50IiwiZ2V0Iiwic2V0IiwiaW5kZW50IiwicmVwZWF0IiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsImlzR2l0IiwidmFsdWUiLCJmb2xkZXJPcHRpb25zIiwiYWdlbnREZWZpbml0aW9ucyIsIl90ZW1wMyIsInQxIiwiU3ltYm9sIiwiZm9yIiwicHVzaCIsImlzVGVhbU1lbW9yeUVuYWJsZWQiLCJ0MiIsImdldFRlYW1NZW1QYXRoIiwiYWdlbnQiLCJhY3RpdmVBZ2VudHMiLCJtZW1vcnkiLCJhZ2VudERpciIsImFnZW50VHlwZSIsImJvbGQiLCJfdGVtcDQiLCJpbml0aWFsUGF0aCIsImF1dG9NZW1vcnlPbiIsInNldEF1dG9NZW1vcnlPbiIsImF1dG9EcmVhbU9uIiwic2V0QXV0b0RyZWFtT24iLCJzaG93RHJlYW1Sb3ciLCJpc0RyZWFtUnVubmluZyIsIl90ZW1wNiIsImxhc3REcmVhbUF0Iiwic2V0TGFzdERyZWFtQXQiLCJ0aGVuIiwidDMiLCJ0NCIsIkRhdGUiLCJkcmVhbVN0YXR1cyIsImZvY3VzZWRUb2dnbGUiLCJzZXRGb2N1c2VkVG9nZ2xlIiwidG9nZ2xlRm9jdXNlZCIsImxhc3RUb2dnbGVJbmRleCIsInQ1IiwiaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSIsIm5ld1ZhbHVlIiwiYXV0b01lbW9yeUVuYWJsZWQiLCJlbmFibGVkIiwidDYiLCJoYW5kbGVUb2dnbGVBdXRvRHJlYW0iLCJuZXdWYWx1ZV8wIiwiYXV0b0RyZWFtRW5hYmxlZCIsInQ3IiwiY29udGV4dCIsInQ4IiwidDkiLCJpc0FjdGl2ZSIsInQxMCIsInByZXYiLCJ0MTEiLCJ0MTIiLCJfdGVtcDciLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJ1bmRlZmluZWQiLCJ0MTkiLCJ0MjAiLCJzdGFydHNXaXRoIiwiZm9sZGVyUGF0aCIsInNsaWNlIiwibGVuZ3RoIiwicmVjdXJzaXZlIiwiY2F0Y2giLCJfdGVtcDgiLCJ0MjEiLCJ0MjIiLCJ0MjMiLCJwcmV2XzAiLCJzXzAiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzIiwidGFza3MiLCJfdGVtcDUiLCJ0Iiwic3RhdHVzIiwib3B0IiwiZl8yIiwiZl8xIl0sInNvdXJjZXMiOlsiTWVtb3J5RmlsZVNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZWF0dXJlIH0gZnJvbSAnYnVuOmJ1bmRsZSdcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCB7IG1rZGlyIH0gZnJvbSAnZnMvcHJvbWlzZXMnXG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBnZXRPcmlnaW5hbEN3ZCB9IGZyb20gJy4uLy4uL2Jvb3RzdHJhcC9zdGF0ZS5qcydcbmltcG9ydCB7IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncy5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgZ2V0QXV0b01lbVBhdGgsIGlzQXV0b01lbW9yeUVuYWJsZWQgfSBmcm9tICcuLi8uLi9tZW1kaXIvcGF0aHMuanMnXG5pbXBvcnQgeyBsb2dFdmVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IGlzQXV0b0RyZWFtRW5hYmxlZCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dG9EcmVhbS9jb25maWcuanMnXG5pbXBvcnQgeyByZWFkTGFzdENvbnNvbGlkYXRlZEF0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0b0RyZWFtL2NvbnNvbGlkYXRpb25Mb2NrLmpzJ1xuaW1wb3J0IHsgdXNlQXBwU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7IGdldEFnZW50TWVtb3J5RGlyIH0gZnJvbSAnLi4vLi4vdG9vbHMvQWdlbnRUb29sL2FnZW50TWVtb3J5LmpzJ1xuaW1wb3J0IHsgb3BlblBhdGggfSBmcm9tICcuLi8uLi91dGlscy9icm93c2VyLmpzJ1xuaW1wb3J0IHsgZ2V0TWVtb3J5RmlsZXMsIHR5cGUgTWVtb3J5RmlsZUluZm8gfSBmcm9tICcuLi8uLi91dGlscy9jbGF1ZGVtZC5qcydcbmltcG9ydCB7IGdldENsYXVkZUNvbmZpZ0hvbWVEaXIgfSBmcm9tICcuLi8uLi91dGlscy9lbnZVdGlscy5qcydcbmltcG9ydCB7IGdldERpc3BsYXlQYXRoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcydcbmltcG9ydCB7IGZvcm1hdFJlbGF0aXZlVGltZUFnbyB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1hdC5qcydcbmltcG9ydCB7IHByb2plY3RJc0luR2l0UmVwbyB9IGZyb20gJy4uLy4uL3V0aWxzL21lbW9yeS92ZXJzaW9ucy5qcydcbmltcG9ydCB7IHVwZGF0ZVNldHRpbmdzRm9yU291cmNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0dGluZ3Mvc2V0dGluZ3MuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi9DdXN0b21TZWxlY3QvaW5kZXguanMnXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vTGlzdEl0ZW0uanMnXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IHRlYW1NZW1QYXRocyA9IGZlYXR1cmUoJ1RFQU1NRU0nKVxuICA/IChyZXF1aXJlKCcuLi8uLi9tZW1kaXIvdGVhbU1lbVBhdGhzLmpzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbWVtZGlyL3RlYW1NZW1QYXRocy5qcycpKVxuICA6IG51bGxcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRNZW1vcnlGaWxlSW5mbyBleHRlbmRzIE1lbW9yeUZpbGVJbmZvIHtcbiAgaXNOZXN0ZWQ/OiBib29sZWFuXG4gIGV4aXN0czogYm9vbGVhblxufVxuXG4vLyBSZW1lbWJlciBsYXN0IHNlbGVjdGVkIHBhdGhcbmxldCBsYXN0U2VsZWN0ZWRQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuY29uc3QgT1BFTl9GT0xERVJfUFJFRklYID0gJ19fb3Blbl9mb2xkZXJfXydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25TZWxlY3Q6IChwYXRoOiBzdHJpbmcpID0+IHZvaWRcbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1lbW9yeUZpbGVTZWxlY3Rvcih7XG4gIG9uU2VsZWN0LFxuICBvbkNhbmNlbCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgZXhpc3RpbmdNZW1vcnlGaWxlcyA9IHVzZShnZXRNZW1vcnlGaWxlcygpKVxuXG4gIC8vIENyZWF0ZSBlbnRyaWVzIGZvciBVc2VyIGFuZCBQcm9qZWN0IENMQVVERS5tZCBldmVuIGlmIHRoZXkgZG9uJ3QgZXhpc3RcbiAgY29uc3QgdXNlck1lbW9yeVBhdGggPSBqb2luKGdldENsYXVkZUNvbmZpZ0hvbWVEaXIoKSwgJ0NMQVVERS5tZCcpXG4gIGNvbnN0IHByb2plY3RNZW1vcnlQYXRoID0gam9pbihnZXRPcmlnaW5hbEN3ZCgpLCAnQ0xBVURFLm1kJylcblxuICAvLyBDaGVjayBpZiB0aGVzZSBhcmUgYWxyZWFkeSBpbiB0aGUgZXhpc3RpbmcgZmlsZXNcbiAgY29uc3QgaGFzVXNlck1lbW9yeSA9IGV4aXN0aW5nTWVtb3J5RmlsZXMuc29tZShmID0+IGYucGF0aCA9PT0gdXNlck1lbW9yeVBhdGgpXG4gIGNvbnN0IGhhc1Byb2plY3RNZW1vcnkgPSBleGlzdGluZ01lbW9yeUZpbGVzLnNvbWUoXG4gICAgZiA9PiBmLnBhdGggPT09IHByb2plY3RNZW1vcnlQYXRoLFxuICApXG5cbiAgLy8gRmlsdGVyIG91dCBBdXRvTWVtL1RlYW1NZW0gZW50cnlwb2ludHM6IHRoZXNlIGFyZSBNRU1PUlkubWQgZmlsZXMsIGFuZFxuICAvLyAvbWVtb3J5IGFscmVhZHkgc3VyZmFjZXMgXCJPcGVuIGF1dG8tbWVtb3J5IGZvbGRlclwiIC8gXCJPcGVuIHRlYW0gbWVtb3J5XG4gIC8vIGZvbGRlclwiIG9wdGlvbnMgYmVsb3cuIExpc3RpbmcgdGhlIGVudHJ5cG9pbnQgZmlsZSBzZXBhcmF0ZWx5IGlzIHJlZHVuZGFudC5cbiAgY29uc3QgYWxsTWVtb3J5RmlsZXM6IEV4dGVuZGVkTWVtb3J5RmlsZUluZm9bXSA9IFtcbiAgICAuLi5leGlzdGluZ01lbW9yeUZpbGVzXG4gICAgICAuZmlsdGVyKGYgPT4gZi50eXBlICE9PSAnQXV0b01lbScgJiYgZi50eXBlICE9PSAnVGVhbU1lbScpXG4gICAgICAubWFwKGYgPT4gKHsgLi4uZiwgZXhpc3RzOiB0cnVlIH0pKSxcbiAgICAvLyBBZGQgVXNlciBtZW1vcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIC4uLihoYXNVc2VyTWVtb3J5XG4gICAgICA/IFtdXG4gICAgICA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiB1c2VyTWVtb3J5UGF0aCxcbiAgICAgICAgICAgIHR5cGU6ICdVc2VyJyBhcyBjb25zdCxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgZXhpc3RzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICAvLyBBZGQgUHJvamVjdCBtZW1vcnkgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgIC4uLihoYXNQcm9qZWN0TWVtb3J5XG4gICAgICA/IFtdXG4gICAgICA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBwcm9qZWN0TWVtb3J5UGF0aCxcbiAgICAgICAgICAgIHR5cGU6ICdQcm9qZWN0JyBhcyBjb25zdCxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgZXhpc3RzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgXVxuXG4gIGNvbnN0IGRlcHRocyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KClcblxuICAvLyBDcmVhdGUgb3B0aW9ucyBmb3IgdGhlIHNlbGVjdCBjb21wb25lbnRcbiAgY29uc3QgbWVtb3J5T3B0aW9ucyA9IGFsbE1lbW9yeUZpbGVzLm1hcChmaWxlID0+IHtcbiAgICBjb25zdCBkaXNwbGF5UGF0aCA9IGdldERpc3BsYXlQYXRoKGZpbGUucGF0aClcbiAgICBjb25zdCBleGlzdHNMYWJlbCA9IGZpbGUuZXhpc3RzID8gJycgOiAnIChuZXcpJ1xuXG4gICAgLy8gQ2FsY3VsYXRlIGRlcHRoIGJhc2VkIG9uIHBhcmVudFxuICAgIGNvbnN0IGRlcHRoID0gZmlsZS5wYXJlbnQgPyAoZGVwdGhzLmdldChmaWxlLnBhcmVudCkgPz8gMCkgKyAxIDogMFxuICAgIGRlcHRocy5zZXQoZmlsZS5wYXRoLCBkZXB0aClcbiAgICBjb25zdCBpbmRlbnQgPSBkZXB0aCA+IDAgPyAnICAnLnJlcGVhdChkZXB0aCAtIDEpIDogJydcblxuICAgIC8vIEZvcm1hdCBsYWJlbCBiYXNlZCBvbiB0eXBlXG4gICAgbGV0IGxhYmVsOiBzdHJpbmdcbiAgICBpZiAoXG4gICAgICBmaWxlLnR5cGUgPT09ICdVc2VyJyAmJlxuICAgICAgIWZpbGUuaXNOZXN0ZWQgJiZcbiAgICAgIGZpbGUucGF0aCA9PT0gdXNlck1lbW9yeVBhdGhcbiAgICApIHtcbiAgICAgIGxhYmVsID0gYFVzZXIgbWVtb3J5YFxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBmaWxlLnR5cGUgPT09ICdQcm9qZWN0JyAmJlxuICAgICAgIWZpbGUuaXNOZXN0ZWQgJiZcbiAgICAgIGZpbGUucGF0aCA9PT0gcHJvamVjdE1lbW9yeVBhdGhcbiAgICApIHtcbiAgICAgIGxhYmVsID0gYFByb2plY3QgbWVtb3J5YFxuICAgIH0gZWxzZSBpZiAoZGVwdGggPiAwKSB7XG4gICAgICAvLyBGb3IgY2hpbGQgbm9kZXMgKGltcG9ydGVkIGZpbGVzKSwgc2hvdyBpbmRlbnRlZCB3aXRoIExcbiAgICAgIGxhYmVsID0gYCR7aW5kZW50fUwgJHtkaXNwbGF5UGF0aH0ke2V4aXN0c0xhYmVsfWBcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG90aGVyIG1lbW9yeSBmaWxlcywganVzdCBzaG93IHRoZSBwYXRoXG4gICAgICBsYWJlbCA9IGAke2Rpc3BsYXlQYXRofWBcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgZGVzY3JpcHRpb24gYmFzZWQgb24gdHlwZSAtIGtlZXAgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9ucyBmb3IgYnVpbHQtaW4gdHlwZXNcbiAgICBsZXQgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIGNvbnN0IGlzR2l0ID0gcHJvamVjdElzSW5HaXRSZXBvKGdldE9yaWdpbmFsQ3dkKCkpXG5cbiAgICBpZiAoZmlsZS50eXBlID09PSAnVXNlcicgJiYgIWZpbGUuaXNOZXN0ZWQpIHtcbiAgICAgIGRlc2NyaXB0aW9uID0gJ1NhdmVkIGluIH4vLmNsYXVkZS9DTEFVREUubWQnXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGZpbGUudHlwZSA9PT0gJ1Byb2plY3QnICYmXG4gICAgICAhZmlsZS5pc05lc3RlZCAmJlxuICAgICAgZmlsZS5wYXRoID09PSBwcm9qZWN0TWVtb3J5UGF0aFxuICAgICkge1xuICAgICAgZGVzY3JpcHRpb24gPSBgJHtpc0dpdCA/ICdDaGVja2VkIGluIGF0JyA6ICdTYXZlZCBpbid9IC4vQ0xBVURFLm1kYFxuICAgIH0gZWxzZSBpZiAoZmlsZS5wYXJlbnQpIHtcbiAgICAgIC8vIEZvciBpbXBvcnRlZCBmaWxlcyAod2l0aCBALWltcG9ydClcbiAgICAgIGRlc2NyaXB0aW9uID0gJ0AtaW1wb3J0ZWQnXG4gICAgfSBlbHNlIGlmIChmaWxlLmlzTmVzdGVkKSB7XG4gICAgICAvLyBGb3IgbmVzdGVkIGZpbGVzIChkeW5hbWljYWxseSBsb2FkZWQpXG4gICAgICBkZXNjcmlwdGlvbiA9ICdkeW5hbWljYWxseSBsb2FkZWQnXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlc2NyaXB0aW9uID0gJydcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWwsXG4gICAgICB2YWx1ZTogZmlsZS5wYXRoLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgfVxuICB9KVxuXG4gIC8vIEFkZCBcIk9wZW4gZm9sZGVyXCIgb3B0aW9ucyBmb3IgYXV0by1tZW1vcnkgYW5kIGFnZW50IG1lbW9yeSBkaXJlY3Rvcmllc1xuICBjb25zdCBmb2xkZXJPcHRpb25zOiBBcnJheTx7XG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIHZhbHVlOiBzdHJpbmdcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIH0+ID0gW11cblxuICBjb25zdCBhZ2VudERlZmluaXRpb25zID0gdXNlQXBwU3RhdGUocyA9PiBzLmFnZW50RGVmaW5pdGlvbnMpXG4gIGlmIChpc0F1dG9NZW1vcnlFbmFibGVkKCkpIHtcbiAgICAvLyBBbHdheXMgc2hvdyBhdXRvLW1lbW9yeSBmb2xkZXIgb3B0aW9uXG4gICAgZm9sZGVyT3B0aW9ucy5wdXNoKHtcbiAgICAgIGxhYmVsOiAnT3BlbiBhdXRvLW1lbW9yeSBmb2xkZXInLFxuICAgICAgdmFsdWU6IGAke09QRU5fRk9MREVSX1BSRUZJWH0ke2dldEF1dG9NZW1QYXRoKCl9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB9KVxuXG4gICAgLy8gVGVhbSBtZW1vcnkgZGlyZWN0bHkgYmVsb3cgYXV0by1tZW1vcnkgKHRlYW0gZGlyIGlzIGEgc3ViZGlyIG9mIGF1dG8gZGlyKVxuICAgIGlmIChmZWF0dXJlKCdURUFNTUVNJykgJiYgdGVhbU1lbVBhdGhzIS5pc1RlYW1NZW1vcnlFbmFibGVkKCkpIHtcbiAgICAgIGZvbGRlck9wdGlvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiAnT3BlbiB0ZWFtIG1lbW9yeSBmb2xkZXInLFxuICAgICAgICB2YWx1ZTogYCR7T1BFTl9GT0xERVJfUFJFRklYfSR7dGVhbU1lbVBhdGhzIS5nZXRUZWFtTWVtUGF0aCgpfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gQWRkIGFnZW50IG1lbW9yeSBmb2xkZXJzIGZvciBhZ2VudHMgdGhhdCBoYXZlIG1lbW9yeSBjb25maWd1cmVkXG4gICAgZm9yIChjb25zdCBhZ2VudCBvZiBhZ2VudERlZmluaXRpb25zLmFjdGl2ZUFnZW50cykge1xuICAgICAgaWYgKGFnZW50Lm1lbW9yeSkge1xuICAgICAgICBjb25zdCBhZ2VudERpciA9IGdldEFnZW50TWVtb3J5RGlyKGFnZW50LmFnZW50VHlwZSwgYWdlbnQubWVtb3J5KVxuICAgICAgICBmb2xkZXJPcHRpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBgT3BlbiAke2NoYWxrLmJvbGQoYWdlbnQuYWdlbnRUeXBlKX0gYWdlbnQgbWVtb3J5YCxcbiAgICAgICAgICB2YWx1ZTogYCR7T1BFTl9GT0xERVJfUFJFRklYfSR7YWdlbnREaXJ9YCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7YWdlbnQubWVtb3J5fSBzY29wZWAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbWVtb3J5T3B0aW9ucy5wdXNoKC4uLmZvbGRlck9wdGlvbnMpXG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIGxhc3Qgc2VsZWN0ZWQgcGF0aCBpZiBpdCdzIHN0aWxsIGluIHRoZSBvcHRpb25zLCBvdGhlcndpc2UgdXNlIGZpcnN0IG9wdGlvblxuICBjb25zdCBpbml0aWFsUGF0aCA9XG4gICAgbGFzdFNlbGVjdGVkUGF0aCAmJlxuICAgIG1lbW9yeU9wdGlvbnMuc29tZShvcHQgPT4gb3B0LnZhbHVlID09PSBsYXN0U2VsZWN0ZWRQYXRoKVxuICAgICAgPyBsYXN0U2VsZWN0ZWRQYXRoXG4gICAgICA6IG1lbW9yeU9wdGlvbnNbMF0/LnZhbHVlIHx8ICcnXG5cbiAgLy8gVG9nZ2xlIHN0YXRlIChsb2NhbCBjb3B5IG9mIHNldHRpbmdzIHNvIHRoZSBVSSB1cGRhdGVzIGltbWVkaWF0ZWx5KVxuICBjb25zdCBbYXV0b01lbW9yeU9uLCBzZXRBdXRvTWVtb3J5T25dID0gdXNlU3RhdGUoaXNBdXRvTWVtb3J5RW5hYmxlZClcbiAgY29uc3QgW2F1dG9EcmVhbU9uLCBzZXRBdXRvRHJlYW1Pbl0gPSB1c2VTdGF0ZShpc0F1dG9EcmVhbUVuYWJsZWQpXG5cbiAgLy8gRHJlYW0gcm93IGlzIG9ubHkgbWVhbmluZ2Z1bCB3aGVuIGF1dG8tbWVtb3J5IGlzIG9uIChkcmVhbSBjb25zb2xpZGF0ZXNcbiAgLy8gdGhhdCBkaXIpLiBTbmFwc2hvdCBhdCBtb3VudCBzbyB0aGUgcm93IGRvZXNuJ3QgdmFuaXNoIG1pZC1uYXZpZ2F0aW9uXG4gIC8vIGlmIHRoZSB1c2VyIHRvZ2dsZXMgYXV0by1tZW1vcnkgb2ZmLlxuICBjb25zdCBbc2hvd0RyZWFtUm93XSA9IHVzZVN0YXRlKGlzQXV0b01lbW9yeUVuYWJsZWQpXG5cbiAgLy8gRHJlYW0gc3RhdHVzOiBwcmVmZXIgbGl2ZSB0YXNrIHN0YXRlICh0aGlzIHNlc3Npb24gZmlyZWQgaXQpLCBmYWxsIGJhY2tcbiAgLy8gdG8gdGhlIGNyb3NzLXByb2Nlc3MgbG9jayBtdGltZS5cbiAgY29uc3QgaXNEcmVhbVJ1bm5pbmcgPSB1c2VBcHBTdGF0ZShzID0+XG4gICAgT2JqZWN0LnZhbHVlcyhzLnRhc2tzKS5zb21lKFxuICAgICAgdCA9PiB0LnR5cGUgPT09ICdkcmVhbScgJiYgdC5zdGF0dXMgPT09ICdydW5uaW5nJyxcbiAgICApLFxuICApXG4gIGNvbnN0IFtsYXN0RHJlYW1BdCwgc2V0TGFzdERyZWFtQXRdID0gdXNlU3RhdGU8bnVtYmVyIHwgbnVsbD4obnVsbClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNob3dEcmVhbVJvdykgcmV0dXJuXG4gICAgdm9pZCByZWFkTGFzdENvbnNvbGlkYXRlZEF0KCkudGhlbihzZXRMYXN0RHJlYW1BdClcbiAgfSwgW3Nob3dEcmVhbVJvdywgaXNEcmVhbVJ1bm5pbmddKVxuXG4gIGNvbnN0IGRyZWFtU3RhdHVzID0gaXNEcmVhbVJ1bm5pbmdcbiAgICA/ICdydW5uaW5nJ1xuICAgIDogbGFzdERyZWFtQXQgPT09IG51bGxcbiAgICAgID8gJycgLy8gc3RhdCBpbiBmbGlnaHRcbiAgICAgIDogbGFzdERyZWFtQXQgPT09IDBcbiAgICAgICAgPyAnbmV2ZXInXG4gICAgICAgIDogYGxhc3QgcmFuICR7Zm9ybWF0UmVsYXRpdmVUaW1lQWdvKG5ldyBEYXRlKGxhc3REcmVhbUF0KSl9YFxuXG4gIC8vIG51bGwgPSBTZWxlY3QgaGFzIGZvY3VzLCAwID0gYXV0by1tZW1vcnksIDEgPSBhdXRvLWRyZWFtIChpZiBzaG93RHJlYW1Sb3cpXG4gIGNvbnN0IFtmb2N1c2VkVG9nZ2xlLCBzZXRGb2N1c2VkVG9nZ2xlXSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHRvZ2dsZUZvY3VzZWQgPSBmb2N1c2VkVG9nZ2xlICE9PSBudWxsXG4gIGNvbnN0IGxhc3RUb2dnbGVJbmRleCA9IHNob3dEcmVhbVJvdyA/IDEgOiAwXG5cbiAgZnVuY3Rpb24gaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9ICFhdXRvTWVtb3J5T25cbiAgICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSgndXNlclNldHRpbmdzJywgeyBhdXRvTWVtb3J5RW5hYmxlZDogbmV3VmFsdWUgfSlcbiAgICBzZXRBdXRvTWVtb3J5T24obmV3VmFsdWUpXG4gICAgbG9nRXZlbnQoJ3Rlbmd1X2F1dG9fbWVtb3J5X3RvZ2dsZWQnLCB7IGVuYWJsZWQ6IG5ld1ZhbHVlIH0pXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVUb2dnbGVBdXRvRHJlYW0oKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSAhYXV0b0RyZWFtT25cbiAgICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSgndXNlclNldHRpbmdzJywgeyBhdXRvRHJlYW1FbmFibGVkOiBuZXdWYWx1ZSB9KVxuICAgIHNldEF1dG9EcmVhbU9uKG5ld1ZhbHVlKVxuICAgIGxvZ0V2ZW50KCd0ZW5ndV9hdXRvX2RyZWFtX3RvZ2dsZWQnLCB7IGVuYWJsZWQ6IG5ld1ZhbHVlIH0pXG4gIH1cblxuICB1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MoKVxuXG4gIHVzZUtleWJpbmRpbmcoJ2NvbmZpcm06bm8nLCBvbkNhbmNlbCwgeyBjb250ZXh0OiAnQ29uZmlybWF0aW9uJyB9KVxuXG4gIHVzZUtleWJpbmRpbmcoXG4gICAgJ2NvbmZpcm06eWVzJyxcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFRvZ2dsZSA9PT0gMCkgaGFuZGxlVG9nZ2xlQXV0b01lbW9yeSgpXG4gICAgICBlbHNlIGlmIChmb2N1c2VkVG9nZ2xlID09PSAxKSBoYW5kbGVUb2dnbGVBdXRvRHJlYW0oKVxuICAgIH0sXG4gICAgeyBjb250ZXh0OiAnQ29uZmlybWF0aW9uJywgaXNBY3RpdmU6IHRvZ2dsZUZvY3VzZWQgfSxcbiAgKVxuICB1c2VLZXliaW5kaW5nKFxuICAgICdzZWxlY3Q6bmV4dCcsXG4gICAgKCkgPT4ge1xuICAgICAgc2V0Rm9jdXNlZFRvZ2dsZShwcmV2ID0+XG4gICAgICAgIHByZXYgIT09IG51bGwgJiYgcHJldiA8IGxhc3RUb2dnbGVJbmRleCA/IHByZXYgKyAxIDogbnVsbCxcbiAgICAgIClcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ1NlbGVjdCcsIGlzQWN0aXZlOiB0b2dnbGVGb2N1c2VkIH0sXG4gIClcbiAgdXNlS2V5YmluZGluZyhcbiAgICAnc2VsZWN0OnByZXZpb3VzJyxcbiAgICAoKSA9PiB7XG4gICAgICBzZXRGb2N1c2VkVG9nZ2xlKHByZXYgPT4gKHByZXYgIT09IG51bGwgJiYgcHJldiA+IDAgPyBwcmV2IC0gMSA6IHByZXYpKVxuICAgIH0sXG4gICAgeyBjb250ZXh0OiAnU2VsZWN0JywgaXNBY3RpdmU6IHRvZ2dsZUZvY3VzZWQgfSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgd2lkdGg9XCIxMDAlXCI+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICA8TGlzdEl0ZW0gaXNGb2N1c2VkPXtmb2N1c2VkVG9nZ2xlID09PSAwfT5cbiAgICAgICAgICA8VGV4dD5BdXRvLW1lbW9yeToge2F1dG9NZW1vcnlPbiA/ICdvbicgOiAnb2ZmJ308L1RleHQ+XG4gICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgIHtzaG93RHJlYW1Sb3cgJiYgKFxuICAgICAgICAgIDxMaXN0SXRlbSBpc0ZvY3VzZWQ9e2ZvY3VzZWRUb2dnbGUgPT09IDF9IHN0eWxlZD17ZmFsc2V9PlxuICAgICAgICAgICAgPFRleHQgY29sb3I9e2ZvY3VzZWRUb2dnbGUgPT09IDEgPyAnc3VnZ2VzdGlvbicgOiB1bmRlZmluZWR9PlxuICAgICAgICAgICAgICBBdXRvLWRyZWFtOiB7YXV0b0RyZWFtT24gPyAnb24nIDogJ29mZid9XG4gICAgICAgICAgICAgIHtkcmVhbVN0YXR1cyAmJiA8VGV4dCBkaW1Db2xvcj4gwrcge2RyZWFtU3RhdHVzfTwvVGV4dD59XG4gICAgICAgICAgICAgIHshaXNEcmVhbVJ1bm5pbmcgJiYgYXV0b0RyZWFtT24gJiYgKFxuICAgICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPiDCtyAvZHJlYW0gdG8gcnVuPC9UZXh0PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvTGlzdEl0ZW0+XG4gICAgICAgICl9XG4gICAgICA8L0JveD5cblxuICAgICAgPFNlbGVjdFxuICAgICAgICBkZWZhdWx0Rm9jdXNWYWx1ZT17aW5pdGlhbFBhdGh9XG4gICAgICAgIG9wdGlvbnM9e21lbW9yeU9wdGlvbnN9XG4gICAgICAgIGlzRGlzYWJsZWQ9e3RvZ2dsZUZvY3VzZWR9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoT1BFTl9GT0xERVJfUFJFRklYKSkge1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyUGF0aCA9IHZhbHVlLnNsaWNlKE9QRU5fRk9MREVSX1BSRUZJWC5sZW5ndGgpXG4gICAgICAgICAgICAvLyBFbnN1cmUgZm9sZGVyIGV4aXN0cyBiZWZvcmUgb3BlbmluZyAoaWRlbXBvdGVudDsgc3dhbGxvd1xuICAgICAgICAgICAgLy8gcGVybWlzc2lvbiBlcnJvcnMgdG8gbWF0Y2ggcHJldmlvdXMgYmVoYXZpb3IpXG4gICAgICAgICAgICB2b2lkIG1rZGlyKGZvbGRlclBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gb3BlblBhdGgoZm9sZGVyUGF0aCkpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgbGFzdFNlbGVjdGVkUGF0aCA9IHZhbHVlIC8vIFJlbWVtYmVyIHRoZSBzZWxlY3Rpb25cbiAgICAgICAgICBvblNlbGVjdCh2YWx1ZSlcbiAgICAgICAgfX1cbiAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgICAgICBvblVwRnJvbUZpcnN0SXRlbT17KCkgPT4gc2V0Rm9jdXNlZFRvZ2dsZShsYXN0VG9nZ2xlSW5kZXgpfVxuICAgICAgLz5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsT0FBTyxRQUFRLFlBQVk7QUFDcEMsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsS0FBSyxRQUFRLGFB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QXBFLENBQUEsT0FBQTBHLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUExRyxDQUFBO0VBQUE7RUFBQSxJQUFBMkcsR0FBQTtFQUFBLElBQUEzRyxDQUFBLFNBQUFnRyxHQUFBLElBQUFoRyxDQUFBLFNBQUEwRyxHQUFBO0lBckNKQyxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQU8sS0FBTSxDQUFOLE1BQU0sQ0FDdEMsQ0FBQVgsR0FlSyxDQUVMLENBQUFVLEdBbUJDLENBQ0gsRUF0Q0MsR0FBRyxDQXNDRTtJQUFBMUcsQ0FBQSxPQUFBZ0csR0FBQTtJQUFBaEcsQ0FBQSxPQUFBMEcsR0FBQTtJQUFBMUcsQ0FBQSxPQUFBMkcsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQTNHLENBQUE7RUFBQTtFQUFBLE9BdENOMkcsR0FzQ007QUFBQTtBQWxSSCxTQUFBSCxPQUFBO0FBQUEsU0FBQWhCLE9BQUFvQixNQUFBO0VBQUEsT0FzT3lCdkIsTUFBSSxLQUFLLElBQWdCLElBQVJBLE1BQUksR0FBRyxDQUFtQixHQUFmQSxNQUFJLEdBQUcsQ0FBUSxHQUEzQ3VCLE1BQTJDO0FBQUE7QUF0T3BFLFNBQUFsRCxPQUFBbUQsR0FBQTtFQUFBLE9BeUtIQyxNQUFNLENBQUFDLE1BQU8sQ0FBQ0MsR0FBQyxDQUFBQyxLQUFNLENBQUMsQ0FBQTNHLElBQUssQ0FDekI0RyxNQUNGLENBQUM7QUFBQTtBQTNLRSxTQUFBQSxPQUFBQyxDQUFBO0VBQUEsT0EwS0lBLENBQUMsQ0FBQXBHLElBQUssS0FBSyxPQUFpQyxJQUF0Qm9HLENBQUMsQ0FBQUMsTUFBTyxLQUFLLFNBQVM7QUFBQTtBQTFLaEQsU0FBQWxFLE9BQUFtRSxHQUFBO0VBQUEsT0F5SnVCQSxHQUFHLENBQUFwRixLQUFNLEtBQUt6QyxnQkFBZ0I7QUFBQTtBQXpKckQsU0FBQTRDLE9BQUE0RSxDQUFBO0VBQUEsT0FxSHFDQSxDQUFDLENBQUE3RSxnQkFBaUI7QUFBQTtBQXJIdkQsU0FBQXJCLE9BQUF3RyxHQUFBO0VBQUEsT0FzQlU7SUFBQSxHQUFLL0csR0FBQztJQUFBaEIsTUFBQSxFQUFVO0VBQUssQ0FBQztBQUFBO0FBdEJoQyxTQUFBcUIsTUFBQTJHLEdBQUE7RUFBQSxPQXFCWWhILEdBQUMsQ0FBQVEsSUFBSyxLQUFLLFNBQWlDLElBQXBCUixHQUFDLENBQUFRLElBQUssS0FBSyxTQUFTO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import { homedir } from 'os';
3
4
  import { relative } from 'path';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import figures from 'figures';
3
4
  import type { RefObject } from 'react';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import figures from 'figures';
3
4
  import React from 'react';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import React from 'react';
3
4
  import { Box, Text } from '../../ink.js';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs';
3
4
  import React, { useContext } from 'react';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { c as _c } from "react/compiler-runtime";
2
3
  import type { ThinkingBlock, ThinkingBlockParam } from '@anthropic-ai/sdk/resources/index.mjs';
3
4
  import React from 'react';