ummaya 0.2.13 → 0.2.15

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 (566) hide show
  1. package/npm-shrinkwrap.json +2 -2
  2. package/package.json +7 -4
  3. package/pyproject.toml +2 -2
  4. package/tui/package.json +1 -1
  5. package/tui/src/buddy/CompanionSprite.tsx +1 -2
  6. package/tui/src/buddy/useBuddyNotification.tsx +1 -2
  7. package/tui/src/cli/controlAuth.ts +20 -0
  8. package/tui/src/cli/handlers/auth.ts +7 -7
  9. package/tui/src/cli/handlers/mcp.tsx +0 -1
  10. package/tui/src/cli/handlers/util.tsx +2 -3
  11. package/tui/src/cli/print.ts +7 -4
  12. package/tui/src/commands/add-dir/add-dir.tsx +1 -2
  13. package/tui/src/commands/agents/agents.tsx +1 -2
  14. package/tui/src/commands/bridge/bridge.tsx +1 -2
  15. package/tui/src/commands/btw/btw.tsx +1 -2
  16. package/tui/src/commands/config/config.tsx +1 -2
  17. package/tui/src/commands/context/context.tsx +1 -2
  18. package/tui/src/commands/copy/copy.tsx +1 -2
  19. package/tui/src/commands/desktop/desktop.tsx +1 -2
  20. package/tui/src/commands/diff/diff.tsx +1 -2
  21. package/tui/src/commands/doctor/doctor.tsx +1 -2
  22. package/tui/src/commands/effort/effort.tsx +1 -2
  23. package/tui/src/commands/exit/exit.tsx +1 -2
  24. package/tui/src/commands/export/export.tsx +1 -2
  25. package/tui/src/commands/extra-usage/extra-usage.tsx +1 -2
  26. package/tui/src/commands/fast/fast.tsx +0 -1
  27. package/tui/src/commands/feedback/feedback.tsx +1 -2
  28. package/tui/src/commands/help/help.tsx +1 -2
  29. package/tui/src/commands/hooks/hooks.tsx +1 -2
  30. package/tui/src/commands/ide/ide.tsx +0 -1
  31. package/tui/src/commands/install-github-app/OAuthFlowStep.tsx +1 -2
  32. package/tui/src/commands/install-github-app/install-github-app.tsx +4 -4
  33. package/tui/src/commands/install.tsx +0 -1
  34. package/tui/src/commands/login/login.tsx +1 -2
  35. package/tui/src/commands/logout/logout.tsx +0 -1
  36. package/tui/src/commands/mcp/mcp.tsx +1 -2
  37. package/tui/src/commands/memory/memory.tsx +0 -1
  38. package/tui/src/commands/mobile/mobile.tsx +0 -1
  39. package/tui/src/commands/model/model.tsx +0 -1
  40. package/tui/src/commands/output-style/output-style.tsx +1 -2
  41. package/tui/src/commands/passes/passes.tsx +1 -2
  42. package/tui/src/commands/permissions/permissions.tsx +1 -2
  43. package/tui/src/commands/plan/plan.tsx +1 -2
  44. package/tui/src/commands/plugin/AddMarketplace.tsx +1 -2
  45. package/tui/src/commands/plugin/BrowseMarketplace.tsx +1 -2
  46. package/tui/src/commands/plugin/DiscoverPlugins.tsx +0 -1
  47. package/tui/src/commands/plugin/ManageMarketplaces.tsx +0 -1
  48. package/tui/src/commands/plugin/ManagePlugins.tsx +1 -2
  49. package/tui/src/commands/plugin/PluginErrors.tsx +1 -2
  50. package/tui/src/commands/plugin/PluginOptionsDialog.tsx +1 -2
  51. package/tui/src/commands/plugin/PluginOptionsFlow.tsx +1 -2
  52. package/tui/src/commands/plugin/PluginSettings.tsx +1 -2
  53. package/tui/src/commands/plugin/PluginTrustWarning.tsx +0 -1
  54. package/tui/src/commands/plugin/UnifiedInstalledCell.tsx +1 -2
  55. package/tui/src/commands/plugin/ValidatePlugin.tsx +1 -2
  56. package/tui/src/commands/plugin/index.tsx +0 -1
  57. package/tui/src/commands/plugin/plugin.tsx +1 -2
  58. package/tui/src/commands/plugin/pluginDetailsHelpers.tsx +1 -2
  59. package/tui/src/commands/privacy-settings/privacy-settings.tsx +0 -1
  60. package/tui/src/commands/rate-limit-options/rate-limit-options.tsx +1 -2
  61. package/tui/src/commands/remote-env/remote-env.tsx +1 -2
  62. package/tui/src/commands/remote-setup/remote-setup.tsx +0 -1
  63. package/tui/src/commands/resume/resume.tsx +1 -2
  64. package/tui/src/commands/review/UltrareviewOverageDialog.tsx +1 -2
  65. package/tui/src/commands/review/ultrareviewCommand.tsx +0 -1
  66. package/tui/src/commands/sandbox-toggle/sandbox-toggle.tsx +1 -2
  67. package/tui/src/commands/session/session.tsx +0 -1
  68. package/tui/src/commands/skills/skills.tsx +1 -2
  69. package/tui/src/commands/stats/stats.tsx +1 -2
  70. package/tui/src/commands/status/status.tsx +1 -2
  71. package/tui/src/commands/statusline.tsx +0 -1
  72. package/tui/src/commands/tag/tag.tsx +1 -2
  73. package/tui/src/commands/tasks/tasks.tsx +1 -2
  74. package/tui/src/commands/terminalSetup/terminalSetup.tsx +1 -2
  75. package/tui/src/commands/theme/theme.tsx +1 -2
  76. package/tui/src/commands/thinkback/thinkback.tsx +0 -1
  77. package/tui/src/commands/ultraplan.tsx +0 -1
  78. package/tui/src/commands/usage/usage.tsx +1 -2
  79. package/tui/src/commands/voice/voice.ts +2 -2
  80. package/tui/src/components/AgentProgressLine.tsx +1 -2
  81. package/tui/src/components/App.tsx +1 -2
  82. package/tui/src/components/ApproveApiKey.tsx +1 -2
  83. package/tui/src/components/AutoModeOptInDialog.tsx +0 -1
  84. package/tui/src/components/AutoUpdater.tsx +1 -2
  85. package/tui/src/components/AutoUpdaterWrapper.tsx +1 -2
  86. package/tui/src/components/AwsAuthStatusBox.tsx +1 -2
  87. package/tui/src/components/BaseTextInput.tsx +0 -1
  88. package/tui/src/components/BashModeProgress.tsx +1 -2
  89. package/tui/src/components/BridgeDialog.tsx +1 -2
  90. package/tui/src/components/BypassPermissionsModeDialog.tsx +0 -1
  91. package/tui/src/components/ChannelDowngradeDialog.tsx +1 -2
  92. package/tui/src/components/ClaudeCodeHint/PluginHintMenu.tsx +1 -2
  93. package/tui/src/components/ClaudeMdExternalIncludesDialog.tsx +0 -1
  94. package/tui/src/components/ClickableImageRef.tsx +1 -2
  95. package/tui/src/components/CompactSummary.tsx +1 -2
  96. package/tui/src/components/ConfigurableShortcutHint.tsx +1 -2
  97. package/tui/src/components/ContextSuggestions.tsx +1 -2
  98. package/tui/src/components/ContextVisualization.tsx +1 -2
  99. package/tui/src/components/CoordinatorAgentStatus.tsx +1 -2
  100. package/tui/src/components/CostThresholdDialog.tsx +0 -1
  101. package/tui/src/components/CtrlOToExpand.tsx +1 -2
  102. package/tui/src/components/CustomSelect/SelectMulti.tsx +1 -2
  103. package/tui/src/components/CustomSelect/select-input-option.tsx +1 -2
  104. package/tui/src/components/CustomSelect/select-option.tsx +1 -2
  105. package/tui/src/components/CustomSelect/select.tsx +1 -2
  106. package/tui/src/components/DesktopHandoff.tsx +0 -1
  107. package/tui/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +0 -1
  108. package/tui/src/components/DevBar.tsx +1 -2
  109. package/tui/src/components/DevChannelsDialog.tsx +1 -2
  110. package/tui/src/components/DiagnosticsDisplay.tsx +1 -2
  111. package/tui/src/components/EffortCallout.tsx +1 -2
  112. package/tui/src/components/ExitFlow.tsx +1 -2
  113. package/tui/src/components/ExportDialog.tsx +1 -2
  114. package/tui/src/components/FallbackToolUseErrorMessage.tsx +0 -1
  115. package/tui/src/components/FallbackToolUseRejectedMessage.tsx +1 -2
  116. package/tui/src/components/FastIcon.tsx +1 -2
  117. package/tui/src/components/Feedback.tsx +0 -1
  118. package/tui/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -2
  119. package/tui/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +0 -1
  120. package/tui/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +0 -1
  121. package/tui/src/components/FeedbackSurvey/useFeedbackSurvey.tsx +0 -1
  122. package/tui/src/components/FeedbackSurvey/useMemorySurvey.tsx +0 -1
  123. package/tui/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +0 -1
  124. package/tui/src/components/FeedbackSurvey/useSurveyState.tsx +1 -2
  125. package/tui/src/components/FileEditToolDiff.tsx +1 -2
  126. package/tui/src/components/FileEditToolUpdatedMessage.tsx +1 -2
  127. package/tui/src/components/FileEditToolUseRejectedMessage.tsx +1 -2
  128. package/tui/src/components/FilePathLink.tsx +1 -2
  129. package/tui/src/components/FullscreenLayout.tsx +1 -2
  130. package/tui/src/components/GlobalSearchDialog.tsx +1 -2
  131. package/tui/src/components/HelpV2/Commands.tsx +1 -2
  132. package/tui/src/components/HelpV2/General.tsx +0 -1
  133. package/tui/src/components/HelpV2/HelpV2.tsx +0 -1
  134. package/tui/src/components/HighlightedCode/Fallback.tsx +1 -2
  135. package/tui/src/components/HighlightedCode.tsx +1 -2
  136. package/tui/src/components/HistorySearchDialog.tsx +1 -2
  137. package/tui/src/components/IdeAutoConnectDialog.tsx +1 -2
  138. package/tui/src/components/IdeOnboardingDialog.tsx +0 -1
  139. package/tui/src/components/IdeStatusIndicator.tsx +1 -2
  140. package/tui/src/components/IdleReturnDialog.tsx +1 -2
  141. package/tui/src/components/InterruptedByUser.tsx +0 -1
  142. package/tui/src/components/InvalidConfigDialog.tsx +1 -2
  143. package/tui/src/components/InvalidSettingsDialog.tsx +1 -2
  144. package/tui/src/components/KeybindingWarnings.tsx +1 -2
  145. package/tui/src/components/LanguagePicker.tsx +1 -2
  146. package/tui/src/components/LogSelector.tsx +0 -1
  147. package/tui/src/components/LogoV2/AnimatedAsterisk.tsx +1 -2
  148. package/tui/src/components/LogoV2/AnimatedClawd.tsx +1 -2
  149. package/tui/src/components/LogoV2/ChannelsNotice.tsx +0 -1
  150. package/tui/src/components/LogoV2/Clawd.tsx +1 -2
  151. package/tui/src/components/LogoV2/CondensedLogo.tsx +0 -1
  152. package/tui/src/components/LogoV2/EmergencyTip.tsx +0 -1
  153. package/tui/src/components/LogoV2/Feed.tsx +1 -2
  154. package/tui/src/components/LogoV2/FeedColumn.tsx +1 -2
  155. package/tui/src/components/LogoV2/GuestPassesUpsell.tsx +0 -1
  156. package/tui/src/components/LogoV2/LogoV2.tsx +0 -1
  157. package/tui/src/components/LogoV2/Opus1mMergeNotice.tsx +1 -2
  158. package/tui/src/components/LogoV2/OverageCreditUpsell.tsx +1 -2
  159. package/tui/src/components/LogoV2/VoiceModeNotice.tsx +1 -2
  160. package/tui/src/components/LogoV2/feedConfigs.tsx +0 -1
  161. package/tui/src/components/LspRecommendation/LspRecommendationMenu.tsx +1 -2
  162. package/tui/src/components/MCPServerApprovalDialog.tsx +1 -2
  163. package/tui/src/components/MCPServerDesktopImportDialog.tsx +0 -1
  164. package/tui/src/components/MCPServerDialogCopy.tsx +0 -1
  165. package/tui/src/components/MCPServerMultiselectDialog.tsx +1 -2
  166. package/tui/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +0 -1
  167. package/tui/src/components/Markdown.tsx +1 -2
  168. package/tui/src/components/MarkdownTable.tsx +1 -2
  169. package/tui/src/components/MemoryUsageIndicator.tsx +1 -2
  170. package/tui/src/components/Message.tsx +1 -2
  171. package/tui/src/components/MessageModel.tsx +1 -2
  172. package/tui/src/components/MessageResponse.tsx +1 -2
  173. package/tui/src/components/MessageRow.tsx +1 -2
  174. package/tui/src/components/MessageSelector.tsx +1 -2
  175. package/tui/src/components/MessageTimestamp.tsx +1 -2
  176. package/tui/src/components/Messages.tsx +0 -1
  177. package/tui/src/components/ModelPicker.tsx +0 -1
  178. package/tui/src/components/NativeAutoUpdater.tsx +1 -2
  179. package/tui/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -2
  180. package/tui/src/components/OffscreenFreeze.tsx +1 -2
  181. package/tui/src/components/Onboarding.tsx +2 -3
  182. package/tui/src/components/OutputStylePicker.tsx +0 -1
  183. package/tui/src/components/PackageManagerAutoUpdater.tsx +0 -1
  184. package/tui/src/components/Passes/Passes.tsx +0 -1
  185. package/tui/src/components/PrBadge.tsx +1 -2
  186. package/tui/src/components/PressEnterToContinue.tsx +1 -2
  187. package/tui/src/components/PromptInput/HistorySearchInput.tsx +1 -2
  188. package/tui/src/components/PromptInput/IssueFlagBanner.tsx +1 -2
  189. package/tui/src/components/PromptInput/Notifications.tsx +1 -2
  190. package/tui/src/components/PromptInput/PromptInput.tsx +0 -1
  191. package/tui/src/components/PromptInput/PromptInputFooter.tsx +1 -2
  192. package/tui/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -2
  193. package/tui/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -2
  194. package/tui/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -2
  195. package/tui/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -2
  196. package/tui/src/components/PromptInput/PromptInputQueuedCommands.tsx +1 -2
  197. package/tui/src/components/PromptInput/PromptInputStashNotice.tsx +1 -2
  198. package/tui/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -2
  199. package/tui/src/components/PromptInput/ShimmeredInput.tsx +1 -2
  200. package/tui/src/components/PromptInput/VoiceIndicator.tsx +1 -2
  201. package/tui/src/components/QuickOpenDialog.tsx +1 -2
  202. package/tui/src/components/RemoteCallout.tsx +0 -1
  203. package/tui/src/components/RemoteEnvironmentDialog.tsx +0 -1
  204. package/tui/src/components/ResumeTask.tsx +0 -1
  205. package/tui/src/components/SandboxViolationExpandedView.tsx +1 -2
  206. package/tui/src/components/ScrollKeybindingHandler.tsx +0 -1
  207. package/tui/src/components/SearchBox.tsx +1 -2
  208. package/tui/src/components/SessionBackgroundHint.tsx +1 -2
  209. package/tui/src/components/SessionPreview.tsx +1 -2
  210. package/tui/src/components/Settings/Config.tsx +0 -1
  211. package/tui/src/components/Settings/Settings.tsx +1 -2
  212. package/tui/src/components/Settings/Status.tsx +1 -2
  213. package/tui/src/components/Settings/Usage.tsx +1 -2
  214. package/tui/src/components/ShowInIDEPrompt.tsx +1 -2
  215. package/tui/src/components/SkillImprovementSurvey.tsx +1 -2
  216. package/tui/src/components/Spinner/FlashingChar.tsx +1 -2
  217. package/tui/src/components/Spinner/GlimmerMessage.tsx +1 -2
  218. package/tui/src/components/Spinner/ShimmerChar.tsx +1 -2
  219. package/tui/src/components/Spinner/SpinnerAnimationRow.tsx +1 -2
  220. package/tui/src/components/Spinner/SpinnerGlyph.tsx +1 -2
  221. package/tui/src/components/Spinner/TeammateSpinnerLine.tsx +1 -2
  222. package/tui/src/components/Spinner/TeammateSpinnerTree.tsx +1 -2
  223. package/tui/src/components/Spinner.tsx +0 -1
  224. package/tui/src/components/Stats.tsx +0 -1
  225. package/tui/src/components/StatusLine.tsx +1 -2
  226. package/tui/src/components/StatusNotices.tsx +1 -2
  227. package/tui/src/components/StructuredDiff/Fallback.tsx +1 -2
  228. package/tui/src/components/StructuredDiff.tsx +1 -2
  229. package/tui/src/components/StructuredDiffList.tsx +1 -2
  230. package/tui/src/components/TagTabs.tsx +1 -2
  231. package/tui/src/components/TaskListV2.tsx +1 -2
  232. package/tui/src/components/TeammateViewHeader.tsx +1 -2
  233. package/tui/src/components/TeleportError.tsx +0 -1
  234. package/tui/src/components/TeleportProgress.tsx +1 -2
  235. package/tui/src/components/TeleportRepoMismatchDialog.tsx +0 -1
  236. package/tui/src/components/TeleportStash.tsx +1 -2
  237. package/tui/src/components/TextInput.tsx +1 -2
  238. package/tui/src/components/ThemePicker.tsx +0 -1
  239. package/tui/src/components/ThinkingToggle.tsx +0 -1
  240. package/tui/src/components/TokenWarning.tsx +1 -2
  241. package/tui/src/components/ToolUseLoader.tsx +1 -2
  242. package/tui/src/components/TrustDialog/TrustDialog.tsx +0 -1
  243. package/tui/src/components/ValidationErrorsList.tsx +1 -2
  244. package/tui/src/components/VimTextInput.tsx +1 -2
  245. package/tui/src/components/VirtualMessageList.tsx +1 -2
  246. package/tui/src/components/WorktreeExitDialog.tsx +1 -2
  247. package/tui/src/components/agents/AgentDetail.tsx +0 -1
  248. package/tui/src/components/agents/AgentEditor.tsx +1 -2
  249. package/tui/src/components/agents/AgentNavigationFooter.tsx +1 -2
  250. package/tui/src/components/agents/AgentsList.tsx +0 -1
  251. package/tui/src/components/agents/AgentsMenu.tsx +1 -2
  252. package/tui/src/components/agents/ColorPicker.tsx +1 -2
  253. package/tui/src/components/agents/ModelSelector.tsx +1 -2
  254. package/tui/src/components/agents/ToolSelector.tsx +1 -2
  255. package/tui/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -2
  256. package/tui/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -2
  257. package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +0 -1
  258. package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +1 -2
  259. package/tui/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +0 -1
  260. package/tui/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +1 -2
  261. package/tui/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -2
  262. package/tui/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -2
  263. package/tui/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +0 -1
  264. package/tui/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -2
  265. package/tui/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -2
  266. package/tui/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -2
  267. package/tui/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -2
  268. package/tui/src/components/design-system/Byline.tsx +1 -2
  269. package/tui/src/components/design-system/Dialog.tsx +1 -2
  270. package/tui/src/components/design-system/Divider.tsx +1 -2
  271. package/tui/src/components/design-system/FuzzyPicker.tsx +1 -2
  272. package/tui/src/components/design-system/KeyboardShortcutHint.tsx +1 -2
  273. package/tui/src/components/design-system/ListItem.tsx +1 -2
  274. package/tui/src/components/design-system/LoadingState.tsx +0 -1
  275. package/tui/src/components/design-system/Pane.tsx +1 -2
  276. package/tui/src/components/design-system/ProgressBar.tsx +1 -2
  277. package/tui/src/components/design-system/Ratchet.tsx +1 -2
  278. package/tui/src/components/design-system/StatusIcon.tsx +1 -2
  279. package/tui/src/components/design-system/Tabs.tsx +1 -2
  280. package/tui/src/components/design-system/ThemeProvider.tsx +1 -2
  281. package/tui/src/components/design-system/ThemedBox.tsx +1 -2
  282. package/tui/src/components/design-system/ThemedText.tsx +1 -2
  283. package/tui/src/components/diff/DiffDetailView.tsx +1 -2
  284. package/tui/src/components/diff/DiffDialog.tsx +1 -2
  285. package/tui/src/components/diff/DiffFileList.tsx +1 -2
  286. package/tui/src/components/grove/Grove.tsx +0 -1
  287. package/tui/src/components/hooks/HooksConfigMenu.tsx +0 -1
  288. package/tui/src/components/hooks/PromptDialog.tsx +1 -2
  289. package/tui/src/components/hooks/SelectEventMode.tsx +0 -1
  290. package/tui/src/components/hooks/SelectHookMode.tsx +0 -1
  291. package/tui/src/components/hooks/SelectMatcherMode.tsx +0 -1
  292. package/tui/src/components/hooks/ViewHookMode.tsx +0 -1
  293. package/tui/src/components/mcp/CapabilitiesSection.tsx +1 -2
  294. package/tui/src/components/mcp/ElicitationDialog.tsx +0 -1
  295. package/tui/src/components/mcp/MCPAgentServerMenu.tsx +1 -2
  296. package/tui/src/components/mcp/MCPListPanel.tsx +0 -1
  297. package/tui/src/components/mcp/MCPReconnect.tsx +1 -2
  298. package/tui/src/components/mcp/MCPRemoteServerMenu.tsx +2 -3
  299. package/tui/src/components/mcp/MCPSettings.tsx +0 -1
  300. package/tui/src/components/mcp/MCPStdioServerMenu.tsx +1 -2
  301. package/tui/src/components/mcp/MCPToolDetailView.tsx +1 -2
  302. package/tui/src/components/mcp/MCPToolListView.tsx +1 -2
  303. package/tui/src/components/mcp/McpParsingWarnings.tsx +0 -1
  304. package/tui/src/components/mcp/utils/reconnectHelpers.tsx +1 -2
  305. package/tui/src/components/memory/MemoryFileSelector.tsx +1 -2
  306. package/tui/src/components/memory/MemoryUpdateNotification.tsx +1 -2
  307. package/tui/src/components/messageActions.tsx +1 -2
  308. package/tui/src/components/messages/AdvisorMessage.tsx +1 -2
  309. package/tui/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -2
  310. package/tui/src/components/messages/AssistantThinkingMessage.tsx +1 -2
  311. package/tui/src/components/messages/AssistantToolUseMessage.tsx +0 -1
  312. package/tui/src/components/messages/AttachmentMessage.tsx +1 -2
  313. package/tui/src/components/messages/CollapsedReadSearchContent.tsx +1 -2
  314. package/tui/src/components/messages/CompactBoundaryMessage.tsx +1 -2
  315. package/tui/src/components/messages/GroupedToolUseContent.tsx +1 -2
  316. package/tui/src/components/messages/HighlightedThinkingText.tsx +1 -2
  317. package/tui/src/components/messages/HookProgressMessage.tsx +1 -2
  318. package/tui/src/components/messages/PlanApprovalMessage.tsx +1 -2
  319. package/tui/src/components/messages/RateLimitMessage.tsx +1 -2
  320. package/tui/src/components/messages/ShutdownMessage.tsx +1 -2
  321. package/tui/src/components/messages/SystemAPIErrorMessage.tsx +1 -2
  322. package/tui/src/components/messages/SystemTextMessage.tsx +1 -2
  323. package/tui/src/components/messages/TaskAssignmentMessage.tsx +1 -2
  324. package/tui/src/components/messages/UserAgentNotificationMessage.tsx +1 -2
  325. package/tui/src/components/messages/UserBashInputMessage.tsx +1 -2
  326. package/tui/src/components/messages/UserBashOutputMessage.tsx +1 -2
  327. package/tui/src/components/messages/UserChannelMessage.tsx +1 -2
  328. package/tui/src/components/messages/UserCommandMessage.tsx +1 -2
  329. package/tui/src/components/messages/UserImageMessage.tsx +1 -2
  330. package/tui/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -2
  331. package/tui/src/components/messages/UserMemoryInputMessage.tsx +1 -2
  332. package/tui/src/components/messages/UserPlanMessage.tsx +1 -2
  333. package/tui/src/components/messages/UserPromptMessage.tsx +1 -2
  334. package/tui/src/components/messages/UserResourceUpdateMessage.tsx +1 -2
  335. package/tui/src/components/messages/UserTeammateMessage.tsx +1 -2
  336. package/tui/src/components/messages/UserTextMessage.tsx +1 -2
  337. package/tui/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +0 -1
  338. package/tui/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +1 -2
  339. package/tui/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +1 -2
  340. package/tui/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -2
  341. package/tui/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -2
  342. package/tui/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -2
  343. package/tui/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +1 -2
  344. package/tui/src/components/messages/UserToolResultMessage/utils.tsx +0 -1
  345. package/tui/src/components/messages/teamMemCollapsed.tsx +1 -2
  346. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +1 -2
  347. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -2
  348. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +1 -2
  349. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +1 -2
  350. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +1 -2
  351. package/tui/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -2
  352. package/tui/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -2
  353. package/tui/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +0 -1
  354. package/tui/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +0 -1
  355. package/tui/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +0 -1
  356. package/tui/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +0 -1
  357. package/tui/src/components/permissions/FallbackPermissionRequest.tsx +1 -2
  358. package/tui/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -2
  359. package/tui/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -2
  360. package/tui/src/components/permissions/FilePermissionDialog/permissionOptions.tsx +0 -1
  361. package/tui/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -2
  362. package/tui/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -2
  363. package/tui/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -2
  364. package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -2
  365. package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +1 -2
  366. package/tui/src/components/permissions/PermissionDecisionDebugInfo.tsx +1 -2
  367. package/tui/src/components/permissions/PermissionDialog.tsx +1 -2
  368. package/tui/src/components/permissions/PermissionExplanation.tsx +1 -2
  369. package/tui/src/components/permissions/PermissionPrompt.tsx +0 -1
  370. package/tui/src/components/permissions/PermissionRequest.tsx +0 -1
  371. package/tui/src/components/permissions/PermissionRequestTitle.tsx +1 -2
  372. package/tui/src/components/permissions/PermissionRuleExplanation.tsx +1 -2
  373. package/tui/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +1 -2
  374. package/tui/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +0 -1
  375. package/tui/src/components/permissions/SandboxPermissionRequest.tsx +0 -1
  376. package/tui/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -2
  377. package/tui/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +0 -1
  378. package/tui/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +0 -1
  379. package/tui/src/components/permissions/WorkerBadge.tsx +1 -2
  380. package/tui/src/components/permissions/WorkerPendingPermission.tsx +1 -2
  381. package/tui/src/components/permissions/rules/AddPermissionRules.tsx +0 -1
  382. package/tui/src/components/permissions/rules/AddWorkspaceDirectory.tsx +0 -1
  383. package/tui/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -2
  384. package/tui/src/components/permissions/rules/PermissionRuleInput.tsx +1 -2
  385. package/tui/src/components/permissions/rules/PermissionRuleList.tsx +0 -1
  386. package/tui/src/components/permissions/rules/RecentDenialsTab.tsx +1 -2
  387. package/tui/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +0 -1
  388. package/tui/src/components/permissions/rules/WorkspaceTab.tsx +1 -2
  389. package/tui/src/components/permissions/shellPermissionHelpers.tsx +1 -2
  390. package/tui/src/components/sandbox/SandboxConfigTab.tsx +1 -2
  391. package/tui/src/components/sandbox/SandboxDependenciesTab.tsx +1 -2
  392. package/tui/src/components/sandbox/SandboxDoctorSection.tsx +1 -2
  393. package/tui/src/components/sandbox/SandboxOverridesTab.tsx +0 -1
  394. package/tui/src/components/sandbox/SandboxSettings.tsx +0 -1
  395. package/tui/src/components/shell/ExpandShellOutputContext.tsx +1 -2
  396. package/tui/src/components/shell/OutputLine.tsx +1 -2
  397. package/tui/src/components/shell/ShellProgressMessage.tsx +1 -2
  398. package/tui/src/components/shell/ShellTimeDisplay.tsx +1 -2
  399. package/tui/src/components/skills/SkillsMenu.tsx +0 -1
  400. package/tui/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -2
  401. package/tui/src/components/tasks/BackgroundTask.tsx +1 -2
  402. package/tui/src/components/tasks/BackgroundTaskStatus.tsx +1 -2
  403. package/tui/src/components/tasks/BackgroundTasksDialog.tsx +1 -2
  404. package/tui/src/components/tasks/DreamDetailDialog.tsx +1 -2
  405. package/tui/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -2
  406. package/tui/src/components/tasks/RemoteSessionDetailDialog.tsx +0 -1
  407. package/tui/src/components/tasks/RemoteSessionProgress.tsx +1 -2
  408. package/tui/src/components/tasks/ShellDetailDialog.tsx +1 -2
  409. package/tui/src/components/tasks/ShellProgress.tsx +1 -2
  410. package/tui/src/components/tasks/renderToolActivity.tsx +1 -2
  411. package/tui/src/components/tasks/taskStatusUtils.tsx +1 -2
  412. package/tui/src/components/teams/TeamStatus.tsx +1 -2
  413. package/tui/src/components/teams/TeamsDialog.tsx +1 -2
  414. package/tui/src/components/ui/OrderedList.tsx +1 -2
  415. package/tui/src/components/ui/OrderedListItem.tsx +1 -2
  416. package/tui/src/components/ui/TreeSelect.tsx +1 -2
  417. package/tui/src/components/wizard/WizardDialogLayout.tsx +1 -2
  418. package/tui/src/components/wizard/WizardNavigationFooter.tsx +1 -2
  419. package/tui/src/components/wizard/WizardProvider.tsx +1 -2
  420. package/tui/src/context/QueuedMessageContext.tsx +1 -2
  421. package/tui/src/context/fpsMetrics.tsx +1 -2
  422. package/tui/src/context/mailbox.tsx +1 -2
  423. package/tui/src/context/modalContext.tsx +1 -2
  424. package/tui/src/context/notifications.tsx +1 -2
  425. package/tui/src/context/overlayContext.tsx +1 -2
  426. package/tui/src/context/promptOverlayContext.tsx +1 -2
  427. package/tui/src/context/stats.tsx +1 -2
  428. package/tui/src/context/voice.tsx +1 -2
  429. package/tui/src/dialogLaunchers.tsx +0 -1
  430. package/tui/src/entrypoints/cli.tsx +0 -1
  431. package/tui/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +0 -1
  432. package/tui/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -2
  433. package/tui/src/hooks/notifs/useFastModeNotification.tsx +1 -2
  434. package/tui/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -2
  435. package/tui/src/hooks/notifs/useInstallMessages.tsx +1 -2
  436. package/tui/src/hooks/notifs/useLspInitializationNotification.tsx +1 -2
  437. package/tui/src/hooks/notifs/useMcpConnectivityStatus.tsx +0 -1
  438. package/tui/src/hooks/notifs/useModelMigrationNotifications.tsx +1 -2
  439. package/tui/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -2
  440. package/tui/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -2
  441. package/tui/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -2
  442. package/tui/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -2
  443. package/tui/src/hooks/notifs/useSettingsErrors.tsx +1 -2
  444. package/tui/src/hooks/useApiKeyVerification.ts +7 -7
  445. package/tui/src/hooks/useArrowKeyHistory.tsx +1 -2
  446. package/tui/src/hooks/useCanUseTool.tsx +0 -1
  447. package/tui/src/hooks/useChromeExtensionNotification.tsx +0 -1
  448. package/tui/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -2
  449. package/tui/src/hooks/useCommandKeybindings.tsx +1 -2
  450. package/tui/src/hooks/useGlobalKeybindings.tsx +1 -2
  451. package/tui/src/hooks/useIDEIntegration.tsx +1 -2
  452. package/tui/src/hooks/useLspPluginRecommendation.tsx +1 -2
  453. package/tui/src/hooks/useOfficialMarketplaceNotification.tsx +0 -1
  454. package/tui/src/hooks/usePluginRecommendationBase.tsx +1 -2
  455. package/tui/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -2
  456. package/tui/src/hooks/useReplBridge.tsx +1 -2
  457. package/tui/src/hooks/useTypeahead.tsx +0 -1
  458. package/tui/src/hooks/useVoiceIntegration.tsx +1 -2
  459. package/tui/src/ink/Ansi.tsx +1 -2
  460. package/tui/src/ink/components/AlternateScreen.tsx +1 -2
  461. package/tui/src/ink/components/App.tsx +0 -1
  462. package/tui/src/ink/components/Box.tsx +1 -2
  463. package/tui/src/ink/components/Button.tsx +1 -2
  464. package/tui/src/ink/components/ClockContext.tsx +1 -2
  465. package/tui/src/ink/components/ErrorOverview.tsx +1 -2
  466. package/tui/src/ink/components/Link.tsx +1 -2
  467. package/tui/src/ink/components/Newline.tsx +1 -2
  468. package/tui/src/ink/components/NoSelect.tsx +1 -2
  469. package/tui/src/ink/components/RawAnsi.tsx +1 -2
  470. package/tui/src/ink/components/ScrollBox.tsx +1 -2
  471. package/tui/src/ink/components/Spacer.tsx +1 -2
  472. package/tui/src/ink/components/TerminalFocusContext.tsx +1 -2
  473. package/tui/src/ink/components/TerminalSizeContext.tsx +1 -2
  474. package/tui/src/ink/components/Text.tsx +1 -2
  475. package/tui/src/ink/ink.tsx +0 -1
  476. package/tui/src/interactiveHelpers.tsx +0 -1
  477. package/tui/src/keybindings/KeybindingContext.tsx +1 -2
  478. package/tui/src/keybindings/KeybindingProviderSetup.tsx +1 -2
  479. package/tui/src/main.tsx +0 -1
  480. package/tui/src/moreright/useMoreRight.tsx +1 -2
  481. package/tui/src/replLauncher.tsx +1 -2
  482. package/tui/src/screens/Doctor.tsx +0 -1
  483. package/tui/src/screens/REPL.tsx +0 -1
  484. package/tui/src/screens/ResumeConversation.tsx +0 -1
  485. package/tui/src/services/mcp/MCPConnectionManager.tsx +1 -2
  486. package/tui/src/services/mcp/claudeai.ts +1 -1
  487. package/tui/src/services/mcpServerApproval.tsx +1 -2
  488. package/tui/src/services/oauth/client.ts +16 -14
  489. package/tui/src/services/oauth/getOauthProfile.ts +2 -2
  490. package/tui/src/services/oauth/index.ts +12 -16
  491. package/tui/src/services/policyLimits/index.ts +3 -3
  492. package/tui/src/services/remoteManagedSettings/index.ts +3 -3
  493. package/tui/src/services/remoteManagedSettings/securityCheck.tsx +1 -2
  494. package/tui/src/services/remoteManagedSettings/syncCache.ts +3 -3
  495. package/tui/src/services/voiceStreamSTT.ts +2 -2
  496. package/tui/src/state/AppState.tsx +1 -2
  497. package/tui/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx +1 -2
  498. package/tui/src/tasks/LocalAgentTask/LocalAgentTask.tsx +1 -2
  499. package/tui/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -2
  500. package/tui/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +0 -1
  501. package/tui/src/tools/AgentTool/UI.tsx +1 -2
  502. package/tui/src/tools/BashTool/BashToolResultMessage.tsx +0 -1
  503. package/tui/src/tools/BashTool/UI.tsx +1 -2
  504. package/tui/src/tools/BriefTool/UI.tsx +0 -1
  505. package/tui/src/tools/ConfigTool/ConfigTool.ts +2 -2
  506. package/tui/src/tools/ConfigTool/UI.tsx +1 -2
  507. package/tui/src/tools/EnterPlanModeTool/UI.tsx +0 -1
  508. package/tui/src/tools/EnterWorktreeTool/UI.tsx +1 -2
  509. package/tui/src/tools/ExitPlanModeTool/UI.tsx +0 -1
  510. package/tui/src/tools/ExitWorktreeTool/UI.tsx +1 -2
  511. package/tui/src/tools/FileEditTool/UI.tsx +1 -2
  512. package/tui/src/tools/FileReadTool/UI.tsx +1 -2
  513. package/tui/src/tools/FileWriteTool/UI.tsx +1 -2
  514. package/tui/src/tools/GlobTool/UI.tsx +1 -2
  515. package/tui/src/tools/GrepTool/UI.tsx +1 -2
  516. package/tui/src/tools/LSPTool/UI.tsx +1 -2
  517. package/tui/src/tools/ListMcpResourcesTool/UI.tsx +1 -2
  518. package/tui/src/tools/MCPTool/UI.tsx +1 -2
  519. package/tui/src/tools/NotebookEditTool/UI.tsx +1 -2
  520. package/tui/src/tools/PowerShellTool/UI.tsx +0 -1
  521. package/tui/src/tools/ReadMcpResourceTool/UI.tsx +1 -2
  522. package/tui/src/tools/RemoteTriggerTool/UI.tsx +1 -2
  523. package/tui/src/tools/ScheduleCronTool/UI.tsx +1 -2
  524. package/tui/src/tools/SendMessageTool/UI.tsx +1 -2
  525. package/tui/src/tools/SkillTool/UI.tsx +1 -2
  526. package/tui/src/tools/TaskStopTool/UI.tsx +1 -2
  527. package/tui/src/tools/TeamCreateTool/UI.tsx +1 -2
  528. package/tui/src/tools/TeamDeleteTool/UI.tsx +1 -2
  529. package/tui/src/tools/WebFetchTool/UI.tsx +1 -2
  530. package/tui/src/tools/testing/TestingPermissionTool.tsx +1 -2
  531. package/tui/src/utils/auth.ts +8 -8
  532. package/tui/src/utils/autoRunIssue.tsx +1 -2
  533. package/tui/src/utils/billing.ts +2 -2
  534. package/tui/src/utils/computerUse/toolRendering.tsx +1 -2
  535. package/tui/src/utils/computerUse/wrapper.tsx +0 -1
  536. package/tui/src/utils/exportRenderer.tsx +1 -2
  537. package/tui/src/utils/fastMode.ts +2 -2
  538. package/tui/src/utils/highlightMatch.tsx +1 -2
  539. package/tui/src/utils/http.ts +2 -2
  540. package/tui/src/utils/managedEnv.ts +1 -1
  541. package/tui/src/utils/messages/systemInit.ts +2 -2
  542. package/tui/src/utils/plugins/performStartupChecks.tsx +1 -2
  543. package/tui/src/utils/preflightChecks.tsx +0 -1
  544. package/tui/src/utils/processUserInput/processBashCommand.tsx +1 -2
  545. package/tui/src/utils/processUserInput/processSlashCommand.tsx +0 -1
  546. package/tui/src/utils/staticRender.tsx +1 -2
  547. package/tui/src/utils/status.tsx +1 -2
  548. package/tui/src/utils/statusNoticeDefinitions.tsx +5 -6
  549. package/tui/src/utils/swarm/It2SetupPrompt.tsx +1 -2
  550. package/tui/src/utils/teleport.tsx +0 -1
  551. package/tui/src/voice/voiceModeEnabled.ts +3 -3
  552. package/uv.lock +1 -1
  553. package/src/ummaya/llm/_cc_reference/README.md +0 -104
  554. package/src/ummaya/llm/_cc_reference/api.ts +0 -721
  555. package/src/ummaya/llm/_cc_reference/claude.ts +0 -3422
  556. package/src/ummaya/llm/_cc_reference/client.ts +0 -392
  557. package/src/ummaya/llm/_cc_reference/emptyUsage.ts +0 -25
  558. package/src/ummaya/llm/_cc_reference/errors.ts +0 -1210
  559. package/src/ummaya/llm/_cc_reference/messages.ts +0 -5515
  560. package/src/ummaya/llm/_cc_reference/permissions.ts +0 -1489
  561. package/src/ummaya/llm/_cc_reference/prompts.ts +0 -917
  562. package/src/ummaya/llm/_cc_reference/query.ts +0 -1732
  563. package/src/ummaya/llm/_cc_reference/toolExecution.ts +0 -1748
  564. package/src/ummaya/llm/_cc_reference/toolOrchestration.ts +0 -191
  565. package/src/ummaya/llm/_cc_reference/toolResultStorage.ts +0 -1043
  566. package/src/ummaya/llm/_cc_reference/tools.ts +0 -392
@@ -41,5 +41,4 @@ export function MemoryUpdateNotification(t0) {
41
41
  t2 = $[3];
42
42
  }
43
43
  return t2;
44
- }
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJob21lZGlyIiwicmVsYXRpdmUiLCJSZWFjdCIsIkJveCIsIlRleHQiLCJnZXRDd2QiLCJnZXRSZWxhdGl2ZU1lbW9yeVBhdGgiLCJwYXRoIiwiaG9tZURpciIsImN3ZCIsInJlbGF0aXZlVG9Ib21lIiwic3RhcnRzV2l0aCIsInNsaWNlIiwibGVuZ3RoIiwicmVsYXRpdmVUb0N3ZCIsIk1lbW9yeVVwZGF0ZU5vdGlmaWNhdGlvbiIsInQwIiwiJCIsIl9jIiwibWVtb3J5UGF0aCIsInQxIiwiZGlzcGxheVBhdGgiLCJ0MiJdLCJzb3VyY2VzIjpbIk1lbW9yeVVwZGF0ZU5vdGlmaWNhdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9tZWRpciB9IGZyb20gJ29zJ1xuaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgZ2V0Q3dkIH0gZnJvbSAnLi4vLi4vdXRpbHMvY3dkLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVsYXRpdmVNZW1vcnlQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhvbWVEaXIgPSBob21lZGlyKClcbiAgY29uc3QgY3dkID0gZ2V0Q3dkKClcblxuICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgcGF0aHNcbiAgY29uc3QgcmVsYXRpdmVUb0hvbWUgPSBwYXRoLnN0YXJ0c1dpdGgoaG9tZURpcilcbiAgICA/ICd+JyArIHBhdGguc2xpY2UoaG9tZURpci5sZW5ndGgpXG4gICAgOiBudWxsXG5cbiAgY29uc3QgcmVsYXRpdmVUb0N3ZCA9IHBhdGguc3RhcnRzV2l0aChjd2QpID8gJy4vJyArIHJlbGF0aXZlKGN3ZCwgcGF0aCkgOiBudWxsXG5cbiAgLy8gUmV0dXJuIHRoZSBzaG9ydGVyIHBhdGgsIG9yIGFic29sdXRlIGlmIG5laXRoZXIgaXMgYXBwbGljYWJsZVxuICBpZiAocmVsYXRpdmVUb0hvbWUgJiYgcmVsYXRpdmVUb0N3ZCkge1xuICAgIHJldHVybiByZWxhdGl2ZVRvSG9tZS5sZW5ndGggPD0gcmVsYXRpdmVUb0N3ZC5sZW5ndGhcbiAgICAgID8gcmVsYXRpdmVUb0hvbWVcbiAgICAgIDogcmVsYXRpdmVUb0N3ZFxuICB9XG5cbiAgcmV0dXJuIHJlbGF0aXZlVG9Ib21lIHx8IHJlbGF0aXZlVG9Dd2QgfHwgcGF0aFxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVtb3J5VXBkYXRlTm90aWZpY2F0aW9uKHtcbiAgbWVtb3J5UGF0aCxcbn06IHtcbiAgbWVtb3J5UGF0aDogc3RyaW5nXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgZGlzcGxheVBhdGggPSBnZXRSZWxhdGl2ZU1lbW9yeVBhdGgobWVtb3J5UGF0aClcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGZsZXhHcm93PXsxfT5cbiAgICAgIDxUZXh0IGNvbG9yPVwidGV4dFwiPlxuICAgICAgICBNZW1vcnkgdXBkYXRlZCBpbiB7ZGlzcGxheVBhdGh9IMK3IC9tZW1vcnkgdG8gZWRpdFxuICAgICAgPC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxPQUFPLFFBQVEsSUFBSTtBQUM1QixTQUFTQyxRQUFRLFFBQVEsTUFBTTtBQUMvQixPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFFM0MsT0FBTyxTQUFTQyxxQkFBcUJBLENBQUNDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7RUFDMUQsTUFBTUMsT0FBTyxHQUFHUixPQUFPLENBQUMsQ0FBQztFQUN6QixNQUFNUyxHQUFHLEdBQUdKLE1BQU0sQ0FBQyxDQUFDOztFQUVwQjtFQUNBLE1BQU1LLGNBQWMsR0FBR0gsSUFBSSxDQUFDSSxVQUFVLENBQUNILE9BQU8sQ0FBQyxHQUMzQyxHQUFHLEdBQUdELElBQUksQ0FBQ0ssS0FBSyxDQUFDSixPQUFPLENBQUNLLE1BQU0sQ0FBQyxHQUNoQyxJQUFJO0VBRVIsTUFBTUMsYUFBYSxHQUFHUCxJQUFJLENBQUNJLFVBQVUsQ0FBQ0YsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHUixRQUFRLENBQUNRLEdBQUcsRUFBRUYsSUFBSSxDQUFDLEdBQUcsSUFBSTs7RUFFOUU7RUFDQSxJQUFJRyxjQUFjLElBQUlJLGFBQWEsRUFBRTtJQUNuQyxPQUFPSixjQUFjLENBQUNHLE1BQU0sSUFBSUMsYUFBYSxDQUFDRCxNQUFNLEdBQ2hESCxjQUFjLEdBQ2RJLGFBQWE7RUFDbkI7RUFFQSxPQUFPSixjQUFjLElBQUlJLGFBQWEsSUFBSVAsSUFBSTtBQUNoRDtBQUVBLE9BQU8sU0FBQVEseUJBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBa0M7SUFBQUM7RUFBQSxJQUFBSCxFQUl4QztFQUFBLElBQUFJLEVBQUE7RUFBQSxJQUFBSCxDQUFBLFFBQUFFLFVBQUE7SUFDcUJDLEVBQUEsR0FBQWQscUJBQXFCLENBQUNhLFVBQVUsQ0FBQztJQUFBRixDQUFBLE1BQUFFLFVBQUE7SUFBQUYsQ0FBQSxNQUFBRyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBSCxDQUFBO0VBQUE7RUFBckQsTUFBQUksV0FBQSxHQUFvQkQsRUFBaUM7RUFBQSxJQUFBRSxFQUFBO0VBQUEsSUFBQUwsQ0FBQSxRQUFBSSxXQUFBO0lBR25EQyxFQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQVcsUUFBQyxDQUFELEdBQUMsQ0FDckMsQ0FBQyxJQUFJLENBQU8sS0FBTSxDQUFOLE1BQU0sQ0FBQyxrQkFDRUQsWUFBVSxDQUFFLGtCQUNqQyxFQUZDLElBQUksQ0FHUCxFQUpDLEdBQUcsQ0FJRTtJQUFBSixDQUFBLE1BQUFJLFdBQUE7SUFBQUosQ0FBQSxNQUFBSyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBTCxDQUFBO0VBQUE7RUFBQSxPQUpOSyxFQUlNO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
44
+ }
@@ -446,5 +446,4 @@ function toolResultText(r: NormalizedUserMessage): string {
446
446
  if (typeof c === 'string') return c;
447
447
  if (!c) return '';
448
448
  return c.flatMap(x => x.type === 'text' ? [x.text] : []).join('\n');
449
- }
450
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVmT2JqZWN0IiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VSZWYiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZ3MiLCJsb2dFdmVudCIsIk5vcm1hbGl6ZWRVc2VyTWVzc2FnZSIsIlJlbmRlcmFibGVNZXNzYWdlIiwiaXNFbXB0eU1lc3NhZ2VUZXh0IiwiU1lOVEhFVElDX01FU1NBR0VTIiwiTkFWSUdBQkxFX1RZUEVTIiwiY29uc3QiLCJOYXZpZ2FibGVUeXBlIiwiTmF2aWdhYmxlT2YiLCJFeHRyYWN0IiwidHlwZSIsIlQiLCJOYXZpZ2FibGVNZXNzYWdlIiwiaXNOYXZpZ2FibGVNZXNzYWdlIiwibXNnIiwiYiIsIm1lc3NhZ2UiLCJjb250ZW50IiwidGV4dCIsImhhcyIsIm5hbWUiLCJQUklNQVJZX0lOUFVUIiwiaXNNZXRhIiwiaXNDb21wYWN0U3VtbWFyeSIsInN0cmlwU3lzdGVtUmVtaW5kZXJzIiwic3RhcnRzV2l0aCIsInN1YnR5cGUiLCJhdHRhY2htZW50IiwiUHJpbWFyeUlucHV0IiwibGFiZWwiLCJleHRyYWN0IiwiaW5wdXQiLCJSZWNvcmQiLCJzdHIiLCJrIiwiaSIsInVuZGVmaW5lZCIsIlJlYWQiLCJFZGl0IiwiV3JpdGUiLCJOb3RlYm9va0VkaXQiLCJCYXNoIiwiR3JlcCIsIkdsb2IiLCJXZWJGZXRjaCIsIldlYlNlYXJjaCIsIlRhc2siLCJBZ2VudCIsIlRtdXgiLCJBcnJheSIsImlzQXJyYXkiLCJhcmdzIiwiam9pbiIsInRvb2xDYWxsT2YiLCJtZXNzYWdlcyIsInRvb2xOYW1lIiwiTWVzc2FnZUFjdGlvbkNhcHMiLCJjb3B5IiwiZWRpdCIsIlByb21pc2UiLCJhY3Rpb24iLCJhIiwia2V5IiwiSyIsInMiLCJNZXNzYWdlQWN0aW9uc1N0YXRlIiwidHlwZXMiLCJhcHBsaWVzIiwic3RheXMiLCJydW4iLCJtIiwiY2FwcyIsIk1FU1NBR0VfQUNUSU9OUyIsImV4cGFuZGVkIiwiYyIsImNvcHlUZXh0T2YiLCJ0YyIsInZhbCIsImlzQXBwbGljYWJsZSIsImluY2x1ZGVzIiwibXNnVHlwZSIsInV1aWQiLCJNZXNzYWdlQWN0aW9uc05hdiIsImVudGVyQ3Vyc29yIiwibmF2aWdhdGVQcmV2IiwibmF2aWdhdGVOZXh0IiwibmF2aWdhdGVQcmV2VXNlciIsIm5hdmlnYXRlTmV4dFVzZXIiLCJuYXZpZ2F0ZVRvcCIsIm5hdmlnYXRlQm90dG9tIiwiZ2V0U2VsZWN0ZWQiLCJNZXNzYWdlQWN0aW9uc1NlbGVjdGVkQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJJblZpcnR1YWxMaXN0Q29udGV4dCIsInVzZVNlbGVjdGVkTWVzc2FnZUJnIiwidXNlQ29udGV4dCIsInVzZU1lc3NhZ2VBY3Rpb25zIiwiY3Vyc29yIiwic2V0Q3Vyc29yIiwiRGlzcGF0Y2giLCJTZXRTdGF0ZUFjdGlvbiIsIm5hdlJlZiIsImVudGVyIiwiaGFuZGxlcnMiLCJjdXJzb3JSZWYiLCJjdXJyZW50IiwiY2Fwc1JlZiIsImgiLCJtZXNzYWdlQWN0aW9uczpwcmV2IiwibWVzc2FnZUFjdGlvbnM6bmV4dCIsIm1lc3NhZ2VBY3Rpb25zOnByZXZVc2VyIiwibWVzc2FnZUFjdGlvbnM6bmV4dFVzZXIiLCJtZXNzYWdlQWN0aW9uczp0b3AiLCJtZXNzYWdlQWN0aW9uczpib3R0b20iLCJtZXNzYWdlQWN0aW9uczplc2NhcGUiLCJtZXNzYWdlQWN0aW9uczpjdHJsYyIsIlNldCIsIm1hcCIsImZpbmQiLCJNZXNzYWdlQWN0aW9uc0tleWJpbmRpbmdzIiwidDAiLCIkIiwiX2MiLCJpc0FjdGl2ZSIsInQxIiwiY29udGV4dCIsIk1lc3NhZ2VBY3Rpb25zQmFyIiwiVDAiLCJUMSIsInQyIiwidDMiLCJ0NCIsInQ1IiwidDYiLCJ0NyIsImFwcGxpY2FibGUiLCJmaWx0ZXIiLCJTeW1ib2wiLCJmb3IiLCJhXzAiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0OCIsInQ5IiwiYXJyb3dVcCIsImFycm93RG93biIsInQxMyIsInQxNCIsIkNMT1NFIiwidCIsInRyaW1TdGFydCIsImVuZCIsImluZGV4T2YiLCJzbGljZSIsImxlbmd0aCIsInJlc3VsdHMiLCJ0b29sUmVzdWx0VGV4dCIsIkJvb2xlYW4iLCJmbGF0TWFwIiwiU3RyaW5nIiwiZXJyb3IiLCJwIiwicHJvbXB0IiwiciIsIngiXSwic291cmNlcyI6WyJtZXNzYWdlQWN0aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCB0eXBlIHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdXNlS2V5YmluZGluZ3MgfSBmcm9tICcuLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgbG9nRXZlbnQgfSBmcm9tICcuLi9zZXJ2aWNlcy9hbmFseXRpY3MvaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7XG4gIE5vcm1hbGl6ZWRVc2VyTWVzc2FnZSxcbiAgUmVuZGVyYWJsZU1lc3NhZ2UsXG59IGZyb20gJy4uL3R5cGVzL21lc3NhZ2UuanMnXG5pbXBvcnQgeyBpc0VtcHR5TWVzc2FnZVRleHQsIFNZTlRIRVRJQ19NRVNTQUdFUyB9IGZyb20gJy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuXG5jb25zdCBOQVZJR0FCTEVfVFlQRVMgPSBbXG4gICd1c2VyJyxcbiAgJ2Fzc2lzdGFudCcsXG4gICdncm91cGVkX3Rvb2xfdXNlJyxcbiAgJ2NvbGxhcHNlZF9yZWFkX3NlYXJjaCcsXG4gICdzeXN0ZW0nLFxuICAnYXR0YWNobWVudCcsXG5dIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOYXZpZ2FibGVUeXBlID0gKHR5cGVvZiBOQVZJR0FCTEVfVFlQRVMpW251bWJlcl1cblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlT2Y8VCBleHRlbmRzIE5hdmlnYWJsZVR5cGU+ID0gRXh0cmFjdDxcbiAgUmVuZGVyYWJsZU1lc3NhZ2UsXG4gIHsgdHlwZTogVCB9XG4+XG5leHBvcnQgdHlwZSBOYXZpZ2FibGVNZXNzYWdlID0gUmVuZGVyYWJsZU1lc3NhZ2VcblxuLy8gVGllci0yIGJsb2NrbGlzdCAodGllci0xIGlzIGhlaWdodCA+IDApIOKAlCB0aGluZ3MgdGhhdCByZW5kZXIgYnV0IGFyZW4ndCBhY3Rpb25hYmxlLlxuZXhwb3J0IGZ1bmN0aW9uIGlzTmF2aWdhYmxlTWVzc2FnZShtc2c6IE5hdmlnYWJsZU1lc3NhZ2UpOiBib29sZWFuIHtcbiAgc3dpdGNoIChtc2cudHlwZSkge1xuICAgIGNhc2UgJ2Fzc2lzdGFudCc6IHtcbiAgICAgIGNvbnN0IGIgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICAvLyBUZXh0IHJlc3BvbnNlcyAobWludXMgQXNzaXN0YW50VGV4dE1lc3NhZ2UncyByZXR1cm4tbnVsbCBjYXNlcyDigJQgdGllci0xXG4gICAgICAvLyBtaXNzZXMgdW5tZWFzdXJlZCB2aXJ0dWFsIGl0ZW1zKSwgb3IgdG9vbCBjYWxscyB3aXRoIGV4dHJhY3RhYmxlIGlucHV0LlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgKGI/LnR5cGUgPT09ICd0ZXh0JyAmJlxuICAgICAgICAgICFpc0VtcHR5TWVzc2FnZVRleHQoYi50ZXh0KSAmJlxuICAgICAgICAgICFTWU5USEVUSUNfTUVTU0FHRVMuaGFzKGIudGV4dCkpIHx8XG4gICAgICAgIChiPy50eXBlID09PSAndG9vbF91c2UnICYmIGIubmFtZSBpbiBQUklNQVJZX0lOUFVUKVxuICAgICAgKVxuICAgIH1cbiAgICBjYXNlICd1c2VyJzoge1xuICAgICAgaWYgKG1zZy5pc01ldGEgfHwgbXNnLmlzQ29tcGFjdFN1bW1hcnkpIHJldHVybiBmYWxzZVxuICAgICAgY29uc3QgYiA9IG1zZy5tZXNzYWdlLmNvbnRlbnRbMF1cbiAgICAgIGlmIChiPy50eXBlICE9PSAndGV4dCcpIHJldHVybiBmYWxzZVxuICAgICAgLy8gSW50ZXJydXB0IGV0Yy4g4oCUIHN5bnRoZXRpYywgbm90IHVzZXItYXV0aG9yZWQuXG4gICAgICBpZiAoU1lOVEhFVElDX01FU1NBR0VTLmhhcyhiLnRleHQpKSByZXR1cm4gZmFsc2VcbiAgICAgIC8vIFNhbWUgZmlsdGVyIGFzIFZpcnR1YWxNZXNzYWdlTGlzdCBzdGlja3ktcHJvbXB0OiBYTUwtd3JhcHBlZCAoY29tbWFuZFxuICAgICAgLy8gZXhwYW5zaW9ucywgYmFzaC1zdGRvdXQsIGV0Yy4pIGFyZW4ndCByZWFsIHByb21wdHMuXG4gICAgICByZXR1cm4gIXN0cmlwU3lzdGVtUmVtaW5kZXJzKGIudGV4dCkuc3RhcnRzV2l0aCgnPCcpXG4gICAgfVxuICAgIGNhc2UgJ3N5c3RlbSc6XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9udXJzZXJ5L3VzZUV4aGF1c3RpdmVTd2l0Y2hDYXNlczogYmxvY2tsaXN0IOKAlCBmYWxsdGhyb3VnaCByZXR1cm4tdHJ1ZSBpcyB0aGUgZGVzaWduXG4gICAgICBzd2l0Y2ggKG1zZy5zdWJ0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2FwaV9tZXRyaWNzJzpcbiAgICAgICAgY2FzZSAnc3RvcF9ob29rX3N1bW1hcnknOlxuICAgICAgICBjYXNlICd0dXJuX2R1cmF0aW9uJzpcbiAgICAgICAgY2FzZSAnbWVtb3J5X3NhdmVkJzpcbiAgICAgICAgY2FzZSAnYWdlbnRzX2tpbGxlZCc6XG4gICAgICAgIGNhc2UgJ2F3YXlfc3VtbWFyeSc6XG4gICAgICAgIGNhc2UgJ3RoaW5raW5nJzpcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlXG4gICAgY2FzZSAnZ3JvdXBlZF90b29sX3VzZSc6XG4gICAgY2FzZSAnY29sbGFwc2VkX3JlYWRfc2VhcmNoJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgY2FzZSAnYXR0YWNobWVudCc6XG4gICAgICBzd2l0Y2ggKG1zZy5hdHRhY2htZW50LnR5cGUpIHtcbiAgICAgICAgY2FzZSAncXVldWVkX2NvbW1hbmQnOlxuICAgICAgICBjYXNlICdkaWFnbm9zdGljcyc6XG4gICAgICAgIGNhc2UgJ2hvb2tfYmxvY2tpbmdfZXJyb3InOlxuICAgICAgICBjYXNlICdob29rX2Vycm9yX2R1cmluZ19leGVjdXRpb24nOlxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG50eXBlIFByaW1hcnlJbnB1dCA9IHtcbiAgbGFiZWw6IHN0cmluZ1xuICBleHRyYWN0OiAoaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBzdHJpbmcgfCB1bmRlZmluZWRcbn1cbmNvbnN0IHN0ciA9IChrOiBzdHJpbmcpID0+IChpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT5cbiAgdHlwZW9mIGlba10gPT09ICdzdHJpbmcnID8gaVtrXSA6IHVuZGVmaW5lZFxuY29uc3QgUFJJTUFSWV9JTlBVVDogUmVjb3JkPHN0cmluZywgUHJpbWFyeUlucHV0PiA9IHtcbiAgUmVhZDogeyBsYWJlbDogJ3BhdGgnLCBleHRyYWN0OiBzdHIoJ2ZpbGVfcGF0aCcpIH0sXG4gIEVkaXQ6IHsgbGFiZWw6ICdwYXRoJywgZXh0cmFjdDogc3RyKCdmaWxlX3BhdGgnKSB9LFxuICBXcml0ZTogeyBsYWJlbDogJ3BhdGgnLCBleHRyYWN0OiBzdHIoJ2ZpbGVfcGF0aCcpIH0sXG4gIE5vdGVib29rRWRpdDogeyBsYWJlbDogJ3BhdGgnLCBleHRyYWN0OiBzdHIoJ25vdGVib29rX3BhdGgnKSB9LFxuICBCYXNoOiB7IGxhYmVsOiAnY29tbWFuZCcsIGV4dHJhY3Q6IHN0cignY29tbWFuZCcpIH0sXG4gIEdyZXA6IHsgbGFiZWw6ICdwYXR0ZXJuJywgZXh0cmFjdDogc3RyKCdwYXR0ZXJuJykgfSxcbiAgR2xvYjogeyBsYWJlbDogJ3BhdHRlcm4nLCBleHRyYWN0OiBzdHIoJ3BhdHRlcm4nKSB9LFxuICBXZWJGZXRjaDogeyBsYWJlbDogJ3VybCcsIGV4dHJhY3Q6IHN0cigndXJsJykgfSxcbiAgV2ViU2VhcmNoOiB7IGxhYmVsOiAncXVlcnknLCBleHRyYWN0OiBzdHIoJ3F1ZXJ5JykgfSxcbiAgVGFzazogeyBsYWJlbDogJ3Byb21wdCcsIGV4dHJhY3Q6IHN0cigncHJvbXB0JykgfSxcbiAgQWdlbnQ6IHsgbGFiZWw6ICdwcm9tcHQnLCBleHRyYWN0OiBzdHIoJ3Byb21wdCcpIH0sXG4gIFRtdXg6IHtcbiAgICBsYWJlbDogJ2NvbW1hbmQnLFxuICAgIGV4dHJhY3Q6IGkgPT5cbiAgICAgIEFycmF5LmlzQXJyYXkoaS5hcmdzKSA/IGB0bXV4ICR7aS5hcmdzLmpvaW4oJyAnKX1gIDogdW5kZWZpbmVkLFxuICB9LFxufVxuXG4vLyBPbmx5IEFnZW50VG9vbCBoYXMgcmVuZGVyR3JvdXBlZFRvb2xVc2Ug4oCUIEVkaXQvQmFzaC9ldGMuIHN0YXkgYXMgYXNzaXN0YW50IHRvb2xfdXNlIGJsb2Nrcy5cbmV4cG9ydCBmdW5jdGlvbiB0b29sQ2FsbE9mKFxuICBtc2c6IE5hdmlnYWJsZU1lc3NhZ2UsXG4pOiB7IG5hbWU6IHN0cmluZzsgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0gfCB1bmRlZmluZWQge1xuICBpZiAobXNnLnR5cGUgPT09ICdhc3Npc3RhbnQnKSB7XG4gICAgY29uc3QgYiA9IG1zZy5tZXNzYWdlLmNvbnRlbnRbMF1cbiAgICBpZiAoYj8udHlwZSA9PT0gJ3Rvb2xfdXNlJylcbiAgICAgIHJldHVybiB7IG5hbWU6IGIubmFtZSwgaW5wdXQ6IGIuaW5wdXQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVxuICB9XG4gIGlmIChtc2cudHlwZSA9PT0gJ2dyb3VwZWRfdG9vbF91c2UnKSB7XG4gICAgY29uc3QgYiA9IG1zZy5tZXNzYWdlc1swXT8ubWVzc2FnZS5jb250ZW50WzBdXG4gICAgaWYgKGI/LnR5cGUgPT09ICd0b29sX3VzZScpXG4gICAgICByZXR1cm4geyBuYW1lOiBtc2cudG9vbE5hbWUsIGlucHV0OiBiLmlucHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25DYXBzID0ge1xuICBjb3B5OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkXG4gIGVkaXQ6IChtc2c6IE5vcm1hbGl6ZWRVc2VyTWVzc2FnZSkgPT4gUHJvbWlzZTx2b2lkPlxufVxuXG4vLyBJZGVudGl0eSBidWlsZGVyIOKAlCBwcmVzZXJ2ZXMgdHVwbGUgdHlwZSBzbyBgcnVuYCdzIHBhcmFtIG5hcnJvd3MgKGFycmF5IGxpdGVyYWwgd2lkZW5zIHdpdGhvdXQgdGhpcykuXG5mdW5jdGlvbiBhY3Rpb248Y29uc3QgVCBleHRlbmRzIE5hdmlnYWJsZVR5cGUsIGNvbnN0IEsgZXh0ZW5kcyBzdHJpbmc+KGE6IHtcbiAga2V5OiBLXG4gIGxhYmVsOiBzdHJpbmcgfCAoKHM6IE1lc3NhZ2VBY3Rpb25zU3RhdGUpID0+IHN0cmluZylcbiAgdHlwZXM6IHJlYWRvbmx5IFRbXVxuICBhcHBsaWVzPzogKHM6IE1lc3NhZ2VBY3Rpb25zU3RhdGUpID0+IGJvb2xlYW5cbiAgc3RheXM/OiB0cnVlXG4gIHJ1bjogKG06IE5hdmlnYWJsZU9mPFQ+LCBjYXBzOiBNZXNzYWdlQWN0aW9uQ2FwcykgPT4gdm9pZFxufSkge1xuICByZXR1cm4gYVxufVxuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9BQ1RJT05TID0gW1xuICBhY3Rpb24oe1xuICAgIGtleTogJ2VudGVyJyxcbiAgICBsYWJlbDogcyA9PiAocy5leHBhbmRlZCA/ICdjb2xsYXBzZScgOiAnZXhwYW5kJyksXG4gICAgdHlwZXM6IFtcbiAgICAgICdncm91cGVkX3Rvb2xfdXNlJyxcbiAgICAgICdjb2xsYXBzZWRfcmVhZF9zZWFyY2gnLFxuICAgICAgJ2F0dGFjaG1lbnQnLFxuICAgICAgJ3N5c3RlbScsXG4gICAgXSxcbiAgICBzdGF5czogdHJ1ZSxcbiAgICAvLyBFbXB0eSDigJQgYHN0YXlzYCBoYW5kbGVkIGlubGluZSBieSBkaXNwYXRjaC5cbiAgICBydW46ICgpID0+IHt9LFxuICB9KSxcbiAgYWN0aW9uKHtcbiAgICBrZXk6ICdlbnRlcicsXG4gICAgbGFiZWw6ICdlZGl0JyxcbiAgICB0eXBlczogWyd1c2VyJ10sXG4gICAgcnVuOiAobSwgYykgPT4gdm9pZCBjLmVkaXQobSksXG4gIH0pLFxuICBhY3Rpb24oe1xuICAgIGtleTogJ2MnLFxuICAgIGxhYmVsOiAnY29weScsXG4gICAgdHlwZXM6IE5BVklHQUJMRV9UWVBFUyxcbiAgICBydW46IChtLCBjKSA9PiBjLmNvcHkoY29weVRleHRPZihtKSksXG4gIH0pLFxuICBhY3Rpb24oe1xuICAgIGtleTogJ3AnLFxuICAgIC8vIGAhYCBzYWZlOiBhcHBsaWVzKCkgZ3VhcmFudGVlcyB0b29sTmFtZSDiiIggUFJJTUFSWV9JTlBVVC5cbiAgICBsYWJlbDogcyA9PiBgY29weSAke1BSSU1BUllfSU5QVVRbcy50b29sTmFtZSFdIS5sYWJlbH1gLFxuICAgIHR5cGVzOiBbJ2dyb3VwZWRfdG9vbF91c2UnLCAnYXNzaXN0YW50J10sXG4gICAgYXBwbGllczogcyA9PiBzLnRvb2xOYW1lICE9IG51bGwgJiYgcy50b29sTmFtZSBpbiBQUklNQVJZX0lOUFVULFxuICAgIHJ1bjogKG0sIGMpID0+IHtcbiAgICAgIGNvbnN0IHRjID0gdG9vbENhbGxPZihtKVxuICAgICAgaWYgKCF0YykgcmV0dXJuXG4gICAgICBjb25zdCB2YWwgPSBQUklNQVJZX0lOUFVUW3RjLm5hbWVdPy5leHRyYWN0KHRjLmlucHV0KVxuICAgICAgaWYgKHZhbCkgYy5jb3B5KHZhbClcbiAgICB9LFxuICB9KSxcbl0gYXMgY29uc3RcblxuZnVuY3Rpb24gaXNBcHBsaWNhYmxlKFxuICBhOiAodHlwZW9mIE1FU1NBR0VfQUNUSU9OUylbbnVtYmVyXSxcbiAgYzogTWVzc2FnZUFjdGlvbnNTdGF0ZSxcbik6IGJvb2xlYW4ge1xuICBpZiAoIShhLnR5cGVzIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhjLm1zZ1R5cGUpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuICFhLmFwcGxpZXMgfHwgYS5hcHBsaWVzKGMpXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25zU3RhdGUgPSB7XG4gIHV1aWQ6IHN0cmluZ1xuICBtc2dUeXBlOiBOYXZpZ2FibGVUeXBlXG4gIGV4cGFuZGVkOiBib29sZWFuXG4gIHRvb2xOYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25zTmF2ID0ge1xuICBlbnRlckN1cnNvcjogKCkgPT4gdm9pZFxuICBuYXZpZ2F0ZVByZXY6ICgpID0+IHZvaWRcbiAgbmF2aWdhdGVOZXh0OiAoKSA9PiB2b2lkXG4gIG5hdmlnYXRlUHJldlVzZXI6ICgpID0+IHZvaWRcbiAgbmF2aWdhdGVOZXh0VXNlcjogKCkgPT4gdm9pZFxuICBuYXZpZ2F0ZVRvcDogKCkgPT4gdm9pZFxuICBuYXZpZ2F0ZUJvdHRvbTogKCkgPT4gdm9pZFxuICBnZXRTZWxlY3RlZDogKCkgPT4gTmF2aWdhYmxlTWVzc2FnZSB8IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IE1lc3NhZ2VBY3Rpb25zU2VsZWN0ZWRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChmYWxzZSlcbmV4cG9ydCBjb25zdCBJblZpcnR1YWxMaXN0Q29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZmFsc2UpXG5cbi8vIGJnIG11c3QgZ28gb24gdGhlIEJveCB0aGF0IEhBUyBtYXJnaW5Ub3AgKG1hcmdpbiBzdGF5cyBvdXRzaWRlIHBhaW50KSDigJQgdGhhdCdzIGluc2lkZSBlYWNoIGNvbnN1bWVyLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdGVkTWVzc2FnZUJnKCk6ICdtZXNzYWdlQWN0aW9uc0JhY2tncm91bmQnIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoTWVzc2FnZUFjdGlvbnNTZWxlY3RlZENvbnRleHQpXG4gICAgPyAnbWVzc2FnZUFjdGlvbnNCYWNrZ3JvdW5kJ1xuICAgIDogdW5kZWZpbmVkXG59XG5cbi8vIENhbid0IGNhbGwgdXNlS2V5YmluZGluZ3MgaGVyZSDigJQgaG9vayBydW5zIG91dHNpZGUgPEtleWJpbmRpbmdTZXR1cD4gcHJvdmlkZXIuIFJldHVybnMgaGFuZGxlcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXNzYWdlQWN0aW9ucyhcbiAgY3Vyc29yOiBNZXNzYWdlQWN0aW9uc1N0YXRlIHwgbnVsbCxcbiAgc2V0Q3Vyc29yOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxNZXNzYWdlQWN0aW9uc1N0YXRlIHwgbnVsbD4+LFxuICBuYXZSZWY6IFJlZk9iamVjdDxNZXNzYWdlQWN0aW9uc05hdiB8IG51bGw+LFxuICBjYXBzOiBNZXNzYWdlQWN0aW9uQ2Fwcyxcbik6IHtcbiAgZW50ZXI6ICgpID0+IHZvaWRcbiAgaGFuZGxlcnM6IFJlY29yZDxzdHJpbmcsICgpID0+IHZvaWQ+XG59IHtcbiAgLy8gUmVmcyBrZWVwIGhhbmRsZXJzIHN0YWJsZSDigJQgbm8gdXNlS2V5YmluZGluZ3MgcmUtcmVnaXN0ZXIgcGVyIG1lc3NhZ2UgYXBwZW5kLlxuICBjb25zdCBjdXJzb3JSZWYgPSB1c2VSZWYoY3Vyc29yKVxuICBjdXJzb3JSZWYuY3VycmVudCA9IGN1cnNvclxuICBjb25zdCBjYXBzUmVmID0gdXNlUmVmKGNhcHMpXG4gIGNhcHNSZWYuY3VycmVudCA9IGNhcHNcblxuICBjb25zdCBoYW5kbGVycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGg6IFJlY29yZDxzdHJpbmcsICgpID0+IHZvaWQ+ID0ge1xuICAgICAgJ21lc3NhZ2VBY3Rpb25zOnByZXYnOiAoKSA9PiBuYXZSZWYuY3VycmVudD8ubmF2aWdhdGVQcmV2KCksXG4gICAgICAnbWVzc2FnZUFjdGlvbnM6bmV4dCc6ICgpID0+IG5hdlJlZi5jdXJyZW50Py5uYXZpZ2F0ZU5leHQoKSxcbiAgICAgICdtZXNzYWdlQWN0aW9uczpwcmV2VXNlcic6ICgpID0+IG5hdlJlZi5jdXJyZW50Py5uYXZpZ2F0ZVByZXZVc2VyKCksXG4gICAgICAnbWVzc2FnZUFjdGlvbnM6bmV4dFVzZXInOiAoKSA9PiBuYXZSZWYuY3VycmVudD8ubmF2aWdhdGVOZXh0VXNlcigpLFxuICAgICAgJ21lc3NhZ2VBY3Rpb25zOnRvcCc6ICgpID0+IG5hdlJlZi5jdXJyZW50Py5uYXZpZ2F0ZVRvcCgpLFxuICAgICAgJ21lc3NhZ2VBY3Rpb25zOmJvdHRvbSc6ICgpID0+IG5hdlJlZi5jdXJyZW50Py5uYXZpZ2F0ZUJvdHRvbSgpLFxuICAgICAgJ21lc3NhZ2VBY3Rpb25zOmVzY2FwZSc6ICgpID0+XG4gICAgICAgIHNldEN1cnNvcihjID0+IChjPy5leHBhbmRlZCA/IHsgLi4uYywgZXhwYW5kZWQ6IGZhbHNlIH0gOiBudWxsKSksXG4gICAgICAvLyBjdHJsK2Mgc2tpcHMgdGhlIGNvbGxhcHNlIHN0ZXAg4oCUIGZyb20gZXhwYW5kZWQtZHVyaW5nLXN0cmVhbWluZywgdHdvLXN0YWdlXG4gICAgICAvLyB3b3VsZCBtZWFuIDMgcHJlc3NlcyB0byBpbnRlcnJ1cHQgKGNvbGxhcHNl4oaSbnVsbOKGkmNhbmNlbCkuXG4gICAgICAnbWVzc2FnZUFjdGlvbnM6Y3RybGMnOiAoKSA9PiBzZXRDdXJzb3IobnVsbCksXG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIG5ldyBTZXQoTUVTU0FHRV9BQ1RJT05TLm1hcChhID0+IGEua2V5KSkpIHtcbiAgICAgIGhbYG1lc3NhZ2VBY3Rpb25zOiR7a2V5fWBdID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBjID0gY3Vyc29yUmVmLmN1cnJlbnRcbiAgICAgICAgaWYgKCFjKSByZXR1cm5cbiAgICAgICAgY29uc3QgYSA9IE1FU1NBR0VfQUNUSU9OUy5maW5kKGEgPT4gYS5rZXkgPT09IGtleSAmJiBpc0FwcGxpY2FibGUoYSwgYykpXG4gICAgICAgIGlmICghYSkgcmV0dXJuXG4gICAgICAgIGlmIChhLnN0YXlzKSB7XG4gICAgICAgICAgc2V0Q3Vyc29yKGMgPT4gKGMgPyB7IC4uLmMsIGV4cGFuZGVkOiAhYy5leHBhbmRlZCB9IDogbnVsbCkpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbSA9IG5hdlJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZCgpXG4gICAgICAgIGlmICghbSkgcmV0dXJuXG4gICAgICAgIDsoYS5ydW4gYXMgKG06IE5hdmlnYWJsZU1lc3NhZ2UsIGM6IE1lc3NhZ2VBY3Rpb25DYXBzKSA9PiB2b2lkKShcbiAgICAgICAgICBtLFxuICAgICAgICAgIGNhcHNSZWYuY3VycmVudCxcbiAgICAgICAgKVxuICAgICAgICBzZXRDdXJzb3IobnVsbClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhcbiAgfSwgW3NldEN1cnNvciwgbmF2UmVmXSlcblxuICBjb25zdCBlbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsb2dFdmVudCgndGVuZ3VfbWVzc2FnZV9hY3Rpb25zX2VudGVyJywge30pXG4gICAgbmF2UmVmLmN1cnJlbnQ/LmVudGVyQ3Vyc29yKClcbiAgfSwgW25hdlJlZl0pXG5cbiAgcmV0dXJuIHsgZW50ZXIsIGhhbmRsZXJzIH1cbn1cblxuLy8gTXVzdCBtb3VudCBpbnNpZGUgPEtleWJpbmRpbmdTZXR1cD4uXG5leHBvcnQgZnVuY3Rpb24gTWVzc2FnZUFjdGlvbnNLZXliaW5kaW5ncyh7XG4gIGhhbmRsZXJzLFxuICBpc0FjdGl2ZSxcbn06IHtcbiAgaGFuZGxlcnM6IFJlY29yZDxzdHJpbmcsICgpID0+IHZvaWQ+XG4gIGlzQWN0aXZlOiBib29sZWFuXG59KTogbnVsbCB7XG4gIHVzZUtleWJpbmRpbmdzKGhhbmRsZXJzLCB7IGNvbnRleHQ6ICdNZXNzYWdlQWN0aW9ucycsIGlzQWN0aXZlIH0pXG4gIHJldHVybiBudWxsXG59XG5cbi8vIGJvcmRlclRvcC1vbmx5IEJveCBtYXRjaGVzIFByb21wdElucHV0J3Mg4pSA4pSA4pSAIGxpbmUgZm9yIHN0YWJsZSBmb290ZXIgaGVpZ2h0LlxuZXhwb3J0IGZ1bmN0aW9uIE1lc3NhZ2VBY3Rpb25zQmFyKHtcbiAgY3Vyc29yLFxufToge1xuICBjdXJzb3I6IE1lc3NhZ2VBY3Rpb25zU3RhdGVcbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBhcHBsaWNhYmxlID0gTUVTU0FHRV9BQ1RJT05TLmZpbHRlcihhID0+IGlzQXBwbGljYWJsZShhLCBjdXJzb3IpKVxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGZsZXhTaHJpbms9ezB9IHBhZGRpbmdZPXsxfT5cbiAgICAgIDxCb3hcbiAgICAgICAgYm9yZGVyU3R5bGU9XCJzaW5nbGVcIlxuICAgICAgICBib3JkZXJUb3BcbiAgICAgICAgYm9yZGVyQm90dG9tPXtmYWxzZX1cbiAgICAgICAgYm9yZGVyTGVmdD17ZmFsc2V9XG4gICAgICAgIGJvcmRlclJpZ2h0PXtmYWxzZX1cbiAgICAgICAgYm9yZGVyRGltQ29sb3JcbiAgICAgIC8+XG4gICAgICA8Qm94IHBhZGRpbmdYPXsyfSBwYWRkaW5nWT17MX0+XG4gICAgICAgIHthcHBsaWNhYmxlLm1hcCgoYSwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID1cbiAgICAgICAgICAgIHR5cGVvZiBhLmxhYmVsID09PSAnZnVuY3Rpb24nID8gYS5sYWJlbChjdXJzb3IpIDogYS5sYWJlbFxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXthLmtleX0+XG4gICAgICAgICAgICAgIHtpID4gMCAmJiA8VGV4dCBkaW1Db2xvcj4gwrcgPC9UZXh0Pn1cbiAgICAgICAgICAgICAgey8qIGRpbUNvbG9yPXtmYWxzZX0gZm9yY2VzIFNHUiAyMiDigJQgYm9yZGVyRGltQ29sb3Igc2libGluZyBibGVlZHMgZGltIGludG8gZmlyc3QgY2VsbCAqL31cbiAgICAgICAgICAgICAgPFRleHQgYm9sZCBkaW1Db2xvcj17ZmFsc2V9PlxuICAgICAgICAgICAgICAgIHthLmtleX1cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj4ge2xhYmVsfTwvVGV4dD5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgICAgPFRleHQgZGltQ29sb3I+IMK3IDwvVGV4dD5cbiAgICAgICAgPFRleHQgYm9sZCBkaW1Db2xvcj17ZmFsc2V9PlxuICAgICAgICAgIHtmaWd1cmVzLmFycm93VXB9XG4gICAgICAgICAge2ZpZ3VyZXMuYXJyb3dEb3dufVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPiBuYXZpZ2F0ZSDCtyA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGJvbGQgZGltQ29sb3I9e2ZhbHNlfT5cbiAgICAgICAgICBlc2NcbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj4gYmFjazwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFN5c3RlbVJlbWluZGVycyh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBDTE9TRSA9ICc8L3N5c3RlbS1yZW1pbmRlcj4nXG4gIGxldCB0ID0gdGV4dC50cmltU3RhcnQoKVxuICB3aGlsZSAodC5zdGFydHNXaXRoKCc8c3lzdGVtLXJlbWluZGVyPicpKSB7XG4gICAgY29uc3QgZW5kID0gdC5pbmRleE9mKENMT1NFKVxuICAgIGlmIChlbmQgPCAwKSBicmVha1xuICAgIHQgPSB0LnNsaWNlKGVuZCArIENMT1NFLmxlbmd0aCkudHJpbVN0YXJ0KClcbiAgfVxuICByZXR1cm4gdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weVRleHRPZihtc2c6IE5hdmlnYWJsZU1lc3NhZ2UpOiBzdHJpbmcge1xuICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgY2FzZSAndXNlcic6IHtcbiAgICAgIGNvbnN0IGIgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICByZXR1cm4gYj8udHlwZSA9PT0gJ3RleHQnID8gc3RyaXBTeXN0ZW1SZW1pbmRlcnMoYi50ZXh0KSA6ICcnXG4gICAgfVxuICAgIGNhc2UgJ2Fzc2lzdGFudCc6IHtcbiAgICAgIGNvbnN0IGIgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICBpZiAoYj8udHlwZSA9PT0gJ3RleHQnKSByZXR1cm4gYi50ZXh0XG4gICAgICBjb25zdCB0YyA9IHRvb2xDYWxsT2YobXNnKVxuICAgICAgcmV0dXJuIHRjID8gKFBSSU1BUllfSU5QVVRbdGMubmFtZV0/LmV4dHJhY3QodGMuaW5wdXQpID8/ICcnKSA6ICcnXG4gICAgfVxuICAgIGNhc2UgJ2dyb3VwZWRfdG9vbF91c2UnOlxuICAgICAgcmV0dXJuIG1zZy5yZXN1bHRzLm1hcCh0b29sUmVzdWx0VGV4dCkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcblxcbicpXG4gICAgY2FzZSAnY29sbGFwc2VkX3JlYWRfc2VhcmNoJzpcbiAgICAgIHJldHVybiBtc2cubWVzc2FnZXNcbiAgICAgICAgLmZsYXRNYXAobSA9PlxuICAgICAgICAgIG0udHlwZSA9PT0gJ3VzZXInXG4gICAgICAgICAgICA/IFt0b29sUmVzdWx0VGV4dChtKV1cbiAgICAgICAgICAgIDogbS50eXBlID09PSAnZ3JvdXBlZF90b29sX3VzZSdcbiAgICAgICAgICAgICAgPyBtLnJlc3VsdHMubWFwKHRvb2xSZXN1bHRUZXh0KVxuICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJ1xcblxcbicpXG4gICAgY2FzZSAnc3lzdGVtJzpcbiAgICAgIGlmICgnY29udGVudCcgaW4gbXNnKSByZXR1cm4gbXNnLmNvbnRlbnRcbiAgICAgIGlmICgnZXJyb3InIGluIG1zZykgcmV0dXJuIFN0cmluZyhtc2cuZXJyb3IpXG4gICAgICByZXR1cm4gbXNnLnN1YnR5cGVcbiAgICBjYXNlICdhdHRhY2htZW50Jzoge1xuICAgICAgY29uc3QgYSA9IG1zZy5hdHRhY2htZW50XG4gICAgICBpZiAoYS50eXBlID09PSAncXVldWVkX2NvbW1hbmQnKSB7XG4gICAgICAgIGNvbnN0IHAgPSBhLnByb21wdFxuICAgICAgICByZXR1cm4gdHlwZW9mIHAgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBwXG4gICAgICAgICAgOiBwLmZsYXRNYXAoYiA9PiAoYi50eXBlID09PSAndGV4dCcgPyBbYi50ZXh0XSA6IFtdKSkuam9pbignXFxuJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBgWyR7YS50eXBlfV1gXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRvb2xSZXN1bHRUZXh0KHI6IE5vcm1hbGl6ZWRVc2VyTWVzc2FnZSk6IHN0cmluZyB7XG4gIGNvbnN0IGIgPSByLm1lc3NhZ2UuY29udGVudFswXVxuICBpZiAoYj8udHlwZSAhPT0gJ3Rvb2xfcmVzdWx0JykgcmV0dXJuICcnXG4gIGNvbnN0IGMgPSBiLmNvbnRlbnRcbiAgaWYgKHR5cGVvZiBjID09PSAnc3RyaW5nJykgcmV0dXJuIGNcbiAgaWYgKCFjKSByZXR1cm4gJydcbiAgcmV0dXJuIGMuZmxhdE1hcCh4ID0+ICh4LnR5cGUgPT09ICd0ZXh0JyA/IFt4LnRleHRdIDogW10pKS5qb2luKCdcXG4nKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsT0FBTyxNQUFNLFNBQVM7QUFDN0IsY0FBY0MsU0FBUyxRQUFRLE9BQU87QUFDdEMsT0FBT0MsS0FBSyxJQUFJQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDM0QsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxjQUFjLFFBQVEsaUNBQWlDO0FBQ2hFLFNBQVNDLFFBQVEsUUFBUSxnQ0FBZ0M7QUFDekQsY0FDRUMscUJB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
449
+ }
@@ -154,5 +154,4 @@ export function AdvisorMessage(t0) {
154
154
  t1 = $[29];
155
155
  }
156
156
  return t1;
157
- }
158
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJCb3giLCJUZXh0IiwiQWR2aXNvckJsb2NrIiwicmVuZGVyTW9kZWxOYW1lIiwianNvblN0cmluZ2lmeSIsIkN0cmxPVG9FeHBhbmQiLCJNZXNzYWdlUmVzcG9uc2UiLCJUb29sVXNlTG9hZGVyIiwiUHJvcHMiLCJibG9jayIsImFkZE1hcmdpbiIsInJlc29sdmVkVG9vbFVzZUlEcyIsIlNldCIsImVycm9yZWRUb29sVXNlSURzIiwic2hvdWxkQW5pbWF0ZSIsInZlcmJvc2UiLCJhZHZpc29yTW9kZWwiLCJBZHZpc29yTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwidHlwZSIsInQxIiwiaW5wdXQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwidDIiLCJ0MyIsImlkIiwiaGFzIiwidDQiLCJ0NSIsInQ2IiwidDciLCJTeW1ib2wiLCJmb3IiLCJ0OCIsInQ5IiwidDEwIiwiYm9keSIsImJiMCIsImNvbnRlbnQiLCJlcnJvcl9jb2RlIiwidGV4dCIsInRpY2siXSwic291cmNlcyI6WyJBZHZpc29yTWVzc2FnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgQWR2aXNvckJsb2NrIH0gZnJvbSAnLi4vLi4vdXRpbHMvYWR2aXNvci5qcydcbmltcG9ydCB7IHJlbmRlck1vZGVsTmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21vZGVsL21vZGVsLmpzJ1xuaW1wb3J0IHsganNvblN0cmluZ2lmeSB9IGZyb20gJy4uLy4uL3V0aWxzL3Nsb3dPcGVyYXRpb25zLmpzJ1xuaW1wb3J0IHsgQ3RybE9Ub0V4cGFuZCB9IGZyb20gJy4uL0N0cmxPVG9FeHBhbmQuanMnXG5pbXBvcnQgeyBNZXNzYWdlUmVzcG9uc2UgfSBmcm9tICcuLi9NZXNzYWdlUmVzcG9uc2UuanMnXG5pbXBvcnQgeyBUb29sVXNlTG9hZGVyIH0gZnJvbSAnLi4vVG9vbFVzZUxvYWRlci5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgYmxvY2s6IEFkdmlzb3JCbG9ja1xuICBhZGRNYXJnaW46IGJvb2xlYW5cbiAgcmVzb2x2ZWRUb29sVXNlSURzOiBTZXQ8c3RyaW5nPlxuICBlcnJvcmVkVG9vbFVzZUlEczogU2V0PHN0cmluZz5cbiAgc2hvdWxkQW5pbWF0ZTogYm9vbGVhblxuICB2ZXJib3NlOiBib29sZWFuXG4gIGFkdmlzb3JNb2RlbD86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQWR2aXNvck1lc3NhZ2Uoe1xuICBibG9jayxcbiAgYWRkTWFyZ2luLFxuICByZXNvbHZlZFRvb2xVc2VJRHMsXG4gIGVycm9yZWRUb29sVXNlSURzLFxuICBzaG91bGRBbmltYXRlLFxuICB2ZXJib3NlLFxuICBhZHZpc29yTW9kZWwsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGlmIChibG9jay50eXBlID09PSAnc2VydmVyX3Rvb2xfdXNlJykge1xuICAgIGNvbnN0IGlucHV0ID1cbiAgICAgIGJsb2NrLmlucHV0ICYmIE9iamVjdC5rZXlzKGJsb2NrLmlucHV0KS5sZW5ndGggPiAwXG4gICAgICAgID8ganNvblN0cmluZ2lmeShibG9jay5pbnB1dClcbiAgICAgICAgOiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggbWFyZ2luVG9wPXthZGRNYXJnaW4gPyAxIDogMH0gcGFkZGluZ1JpZ2h0PXsyfSBmbGV4RGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgIDxUb29sVXNlTG9hZGVyXG4gICAgICAgICAgc2hvdWxkQW5pbWF0ZT17c2hvdWxkQW5pbWF0ZX1cbiAgICAgICAgICBpc1VucmVzb2x2ZWQ9eyFyZXNvbHZlZFRvb2xVc2VJRHMuaGFzKGJsb2NrLmlkKX1cbiAgICAgICAgICBpc0Vycm9yPXtlcnJvcmVkVG9vbFVzZUlEcy5oYXMoYmxvY2suaWQpfVxuICAgICAgICAvPlxuICAgICAgICA8VGV4dCBib2xkPkFkdmlzaW5nPC9UZXh0PlxuICAgICAgICB7YWR2aXNvck1vZGVsID8gKFxuICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPiB1c2luZyB7cmVuZGVyTW9kZWxOYW1lKGFkdmlzb3JNb2RlbCl9PC9UZXh0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge2lucHV0ID8gPFRleHQgZGltQ29sb3I+IMK3IHtpbnB1dH08L1RleHQ+IDogbnVsbH1cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGxldCBib2R5OiBSZWFjdC5SZWFjdE5vZGVcbiAgc3dpdGNoIChibG9jay5jb250ZW50LnR5cGUpIHtcbiAgICBjYXNlICdhZHZpc29yX3Rvb2xfcmVzdWx0X2Vycm9yJzpcbiAgICAgIGJvZHkgPSAoXG4gICAgICAgIDxUZXh0IGNvbG9yPVwiZXJyb3JcIj5cbiAgICAgICAgICBBZHZpc29yIHVuYXZhaWxhYmxlICh7YmxvY2suY29udGVudC5lcnJvcl9jb2RlfSlcbiAgICAgICAgPC9UZXh0PlxuICAgICAgKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICdhZHZpc29yX3Jlc3VsdCc6XG4gICAgICBib2R5ID0gdmVyYm9zZSA/IChcbiAgICAgICAgPFRleHQgZGltQ29sb3I+e2Jsb2NrLmNvbnRlbnQudGV4dH08L1RleHQ+XG4gICAgICApIDogKFxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICB7ZmlndXJlcy50aWNrfSBBZHZpc29yIGhhcyByZXZpZXdlZCB0aGUgY29udmVyc2F0aW9uIGFuZCB3aWxsIGFwcGx5XG4gICAgICAgICAgdGhlIGZlZWRiYWNrIDxDdHJsT1RvRXhwYW5kIC8+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYWR2aXNvcl9yZWRhY3RlZF9yZXN1bHQnOlxuICAgICAgYm9keSA9IChcbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAge2ZpZ3VyZXMudGlja30gQWR2aXNvciBoYXMgcmV2aWV3ZWQgdGhlIGNvbnZlcnNhdGlvbiBhbmQgd2lsbCBhcHBseVxuICAgICAgICAgIHRoZSBmZWVkYmFja1xuICAgICAgICA8L1RleHQ+XG4gICAgICApXG4gICAgICBicmVha1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IHBhZGRpbmdSaWdodD17Mn0+XG4gICAgICA8TWVzc2FnZVJlc3BvbnNlPntib2R5fTwvTWVzc2FnZVJlc3BvbnNlPlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLGNBQWNDLFlBQVksUUFBUSx3QkFBd0I7QUFDMUQsU0FBU0MsZUFBZSxRQUFRLDRCQUE0QjtBQUM1RCxTQUFTQyxhQUFhLFFBQVEsK0JBQStCO0FBQzdELFNBQVNDLGFBQWEsUUFBUSxxQkFBcUI7QUFDbkQsU0FBU0MsZUFBZSxRQUFRLHVCQUF1QjtBQUN2RCxTQUFTQyxhQUFhLFFBQVEscUJBQXFCO0FBRW5ELEtBQUtDLEtBQUssR0FBRztFQUNYQyxLQUFLLEVBQUVQLFlBQVk7RUFDbkJRLFNBQVMsRUFBRSxPQUFPO0VBQ2xCQyxrQkFBa0IsRUFBRUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztFQUMvQkMsaUJBQWlCLEVBQUVELEdBQUcsQ0FBQyxNQUFNLENBQUM7RUFDOUJFLGFBQWEsRUFBRSxPQUFPO0VBQ3RCQyxPQUFPLEVBQUUsT0FBTztFQUNoQkMsWUFBWSxDQUFDLEVBQUUsTUFBTTtBQUN2QixDQUFDO0FBRUQsT0FBTyxTQUFBQyxlQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQXdCO0lBQUFYLEtBQUE7SUFBQUMsU0FBQTtJQUFBQyxrQkFBQTtJQUFBRSxpQkFBQTtJQUFBQyxhQUFBO0lBQUFDLE9BQUE7SUFBQUM7RUFBQSxJQUFBRSxF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
157
+ }
@@ -27,5 +27,4 @@ export function AssistantRedactedThinkingMessage(t0) {
27
27
  t4 = $[2];
28
28
  }
29
29
  return t4;
30
- }
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIlRleHQiLCJQcm9wcyIsImFkZE1hcmdpbiIsIkFzc2lzdGFudFJlZGFjdGVkVGhpbmtpbmdNZXNzYWdlIiwidDAiLCIkIiwiX2MiLCJ0MSIsInVuZGVmaW5lZCIsInQyIiwidDMiLCJTeW1ib2wiLCJmb3IiLCJ0NCJdLCJzb3VyY2VzIjpbIkFzc2lzdGFudFJlZGFjdGVkVGhpbmtpbmdNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFkZE1hcmdpbjogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXNzaXN0YW50UmVkYWN0ZWRUaGlua2luZ01lc3NhZ2Uoe1xuICBhZGRNYXJnaW4gPSBmYWxzZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8Qm94IG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9PlxuICAgICAgPFRleHQgZGltQ29sb3IgaXRhbGljPlxuICAgICAgICDinLsgVGhpbmtpbmfigKZcbiAgICAgIDwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsY0FBYztBQUV4QyxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsU0FBUyxFQUFFLE9BQU87QUFDcEIsQ0FBQztBQUVELE9BQU8sU0FBQUMsaUNBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBMEM7SUFBQUosU0FBQSxFQUFBSztFQUFBLElBQUFILEVBRXpDO0VBRE4sTUFBQUYsU0FBQSxHQUFBSyxFQUFpQixLQUFqQkMsU0FBaUIsR0FBakIsS0FBaUIsR0FBakJELEVBQWlCO0VBR0MsTUFBQUUsRUFBQSxHQUFBUCxTQUFTLEdBQVQsQ0FBaUIsR0FBakIsQ0FBaUI7RUFBQSxJQUFBUSxFQUFBO0VBQUEsSUFBQUwsQ0FBQSxRQUFBTSxNQUFBLENBQUFDLEdBQUE7SUFDL0JGLEVBQUEsSUFBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBTixLQUFLLENBQUMsQ0FBQyxXQUV0QixFQUZDLElBQUksQ0FFRTtJQUFBTCxDQUFBLE1BQUFLLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFMLENBQUE7RUFBQTtFQUFBLElBQUFRLEVBQUE7RUFBQSxJQUFBUixDQUFBLFFBQUFJLEVBQUE7SUFIVEksRUFBQSxJQUFDLEdBQUcsQ0FBWSxTQUFpQixDQUFqQixDQUFBSixFQUFnQixDQUFDLENBQy9CLENBQUFDLEVBRU0sQ0FDUixFQUpDLEdBQUcsQ0FJRTtJQUFBTCxDQUFBLE1BQUFJLEVBQUE7SUFBQUosQ0FBQSxNQUFBUSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUixDQUFBO0VBQUE7RUFBQSxPQUpOUSxFQUlNO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
30
+ }
@@ -82,5 +82,4 @@ export function AssistantThinkingMessage(t0) {
82
82
  t7 = $[8];
83
83
  }
84
84
  return t7;
85
- }
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaGlua2luZ0Jsb2NrIiwiVGhpbmtpbmdCbG9ja1BhcmFtIiwiUmVhY3QiLCJCb3giLCJUZXh0IiwiQ3RybE9Ub0V4cGFuZCIsIk1hcmtkb3duIiwiUHJvcHMiLCJwYXJhbSIsInR5cGUiLCJ0aGlua2luZyIsImFkZE1hcmdpbiIsImlzVHJhbnNjcmlwdE1vZGUiLCJ2ZXJib3NlIiwiaGlkZUluVHJhbnNjcmlwdCIsIkFzc2lzdGFudFRoaW5raW5nTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwidDEiLCJ0MiIsInQzIiwidW5kZWZpbmVkIiwic2hvdWxkU2hvd0Z1bGxUaGlua2luZyIsInQ0IiwidDUiLCJTeW1ib2wiLCJmb3IiLCJsYWJlbCIsInQ2IiwidDciXSwic291cmNlcyI6WyJBc3Npc3RhbnRUaGlua2luZ01lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgVGhpbmtpbmdCbG9jayxcbiAgVGhpbmtpbmdCbG9ja1BhcmFtLFxufSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvaW5kZXgubWpzJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgQ3RybE9Ub0V4cGFuZCB9IGZyb20gJy4uL0N0cmxPVG9FeHBhbmQuanMnXG5pbXBvcnQgeyBNYXJrZG93biB9IGZyb20gJy4uL01hcmtkb3duLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICAvLyBBY2NlcHQgZWl0aGVyIGZ1bGwgVGhpbmtpbmdCbG9jay9UaGlua2luZ0Jsb2NrUGFyYW0gb3IgYSBtaW5pbWFsIHNoYXBlIHdpdGgganVzdCB0eXBlIGFuZCB0aGlua2luZ1xuICBwYXJhbTpcbiAgICB8IFRoaW5raW5nQmxvY2tcbiAgICB8IFRoaW5raW5nQmxvY2tQYXJhbVxuICAgIHwgeyB0eXBlOiAndGhpbmtpbmcnOyB0aGlua2luZzogc3RyaW5nIH1cbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIGlzVHJhbnNjcmlwdE1vZGU6IGJvb2xlYW5cbiAgdmVyYm9zZTogYm9vbGVhblxuICAvKiogV2hlbiB0cnVlLCBoaWRlIHRoaXMgdGhpbmtpbmcgYmxvY2sgZW50aXJlbHkgKHVzZWQgZm9yIHBhc3QgdGhpbmtpbmcgaW4gdHJhbnNjcmlwdCBtb2RlKSAqL1xuICBoaWRlSW5UcmFuc2NyaXB0PzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXNzaXN0YW50VGhpbmtpbmdNZXNzYWdlKHtcbiAgcGFyYW06IHsgdGhpbmtpbmcgfSxcbiAgYWRkTWFyZ2luID0gZmFsc2UsXG4gIGlzVHJhbnNjcmlwdE1vZGUsXG4gIHZlcmJvc2UsXG4gIGhpZGVJblRyYW5zY3JpcHQgPSBmYWxzZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgaWYgKCF0aGlua2luZykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAoaGlkZUluVHJhbnNjcmlwdCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBzaG91bGRTaG93RnVsbFRoaW5raW5nID0gaXNUcmFuc2NyaXB0TW9kZSB8fCB2ZXJib3NlXG4gIGNvbnN0IGxhYmVsID0gJ+KItCBUaGlua2luZydcblxuICBpZiAoIXNob3VsZFNob3dGdWxsVGhpbmtpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJveCBtYXJnaW5Ub3A9e2FkZE1hcmdpbiA/IDEgOiAwfT5cbiAgICAgICAgPFRleHQgZGltQ29sb3IgaXRhbGljPlxuICAgICAgICAgIHtsYWJlbH0gPEN0cmxPVG9FeHBhbmQgLz5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIGdhcD17MX1cbiAgICAgIG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9XG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgID5cbiAgICAgIDxUZXh0IGRpbUNvbG9yIGl0YWxpYz5cbiAgICAgICAge2xhYmVsfeKAplxuICAgICAgPC9UZXh0PlxuICAgICAgPEJveCBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgIDxNYXJrZG93biBkaW1Db2xvcj57dGhpbmtpbmd9PC9NYXJrZG93bj5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxjQUNFQSxhQUFhLEVBQ2JDLGtCQUFrQixRQUNiLHVDQUF1QztBQUM5QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLGFBQWEsUUFBUSxxQkFBcUI7QUFDbkQsU0FBU0MsUUFBUSxRQUFRLGdCQUFnQjtBQUV6QyxLQUFLQyxLQUFLLEdBQUc7RUFDWDtFQUNBQyxLQUFLLEVBQ0RSLGFBQWEsR0FDYkMsa0JBQWtCLEdBQ2xCO0lBQUVRLElBQUksRUFBRSxVQUFVO0lBQUVDLFFBQVEsRUFBRSxNQUFNO0VBQUMsQ0FBQztFQUMxQ0MsU0FBUyxFQUFFLE9BQU87RUFDbEJDLGdCQUFnQixFQUFFLE9BQU87RUFDekJDLE9BQU8sRUFBRSxPQUFPO0VBQ2hCO0VBQ0FDLGdCQUFnQixDQUFDLEVBQUUsT0FBTztBQUM1QixDQUFDO0FBRUQsT0FBTyxTQUFBQyx5QkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUFrQztJQUFBVixLQUFBLEVBQUFXLEVBQUE7SUFBQVIsU0FBQSxFQUFBUyxFQUFBO0lBQUFSLGdCQUFBO0lBQUFDLE9BQUE7SUFBQUMsZ0JBQUEsRUFBQU87RUFBQSxJQUFBTCxFQU1qQztFQUxDO0lBQUFOO0VBQUEsSUFBQVMsRUFBWTtFQUNuQixNQUFBUixTQUFBLEdBQUFTLEVBQWlCLEtBQWpCRSxTQUFpQixHQUFqQixLQUFpQixHQUFqQkYsRUFBaUI7RUFHakIsTUFBQU4sZ0JBQUEsR0FBQU8sRUFBd0IsS0FBeEJDLFNB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
85
+ }
@@ -366,4 +366,3 @@ function renderToolUseQueuedMessage(tool: Tool): React.ReactNode {
366
366
  return null;
367
367
  }
368
368
  }
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sVXNlQmxvY2tQYXJhbSIsIlJlYWN0IiwidXNlTWVtbyIsInVzZVRlcm1pbmFsU2l6ZSIsIlRoZW1lTmFtZSIsIkNvbW1hbmQiLCJCTEFDS19DSVJDTEUiLCJzdHJpbmdXaWR0aCIsIkJveCIsIlRleHQiLCJ1c2VUaGVtZSIsInVzZUFwcFN0YXRlTWF5YmVPdXRzaWRlT2ZQcm92aWRlciIsImZpbmRUb29sQnlOYW1lIiwiVG9vbCIsIlRvb2xQcm9ncmVzc0RhdGEiLCJUb29scyIsIlByb2dyZXNzTWVzc2FnZSIsInVzZUlzQ2xhc3NpZmllckNoZWNraW5nIiwibG9nRXJyb3IiLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiTWVzc2FnZVJlc3BvbnNlIiwidXNlU2VsZWN0ZWRNZXNzYWdlQmciLCJTZW50cnlFcnJvckJvdW5kYXJ5IiwiVG9vbFVzZUxvYWRlciIsIkhvb2tQcm9ncmVzc01lc3NhZ2UiLCJQcm9wcyIsInBhcmFtIiwiYWRkTWFyZ2luIiwidG9vbHMiLCJjb21tYW5kcyIsInZlcmJvc2UiLCJpblByb2dyZXNzVG9vbFVzZUlEcyIsIlNldCIsInByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlIiwic2hvdWxkQW5pbWF0ZSIsInNob3VsZFNob3dEb3QiLCJpblByb2dyZXNzVG9vbENhbGxDb3VudCIsImxvb2t1cHMiLCJSZXR1cm5UeXBlIiwiaXNUcmFuc2NyaXB0TW9kZSIsIkFzc2lzdGFudFRvb2xVc2VNZXNzYWdlIiwidDAiLCIkIiwiX2MiLCJ0ZXJtaW5hbFNpemUiLCJ0aGVtZSIsImJnIiwicGVuZGluZ1dvcmtlclJlcXVlc3QiLCJfdGVtcCIsImlzQ2xhc3NpZmllckNoZWNraW5nUmF3IiwiaWQiLCJwZXJtaXNzaW9uTW9kZSIsIl90ZW1wMiIsImhhc1N0cmlwcGVkUnVsZXMiLCJfdGVtcDMiLCJpc0F1dG9DbGFzc2lmaWVyIiwiaXNDbGFzc2lmaWVyQ2hlY2tpbmciLCJ0MSIsImlucHV0IiwibmFtZSIsImJiMCIsInRvb2wiLCJpbnB1dFNjaGVtYSIsInNhZmVQYXJzZSIsImRhdGEiLCJzdWNjZXNzIiwidW5kZWZpbmVkIiwidXNlckZhY2luZ1Rvb2xOYW1lIiwidXNlckZhY2luZ05hbWUiLCJ1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IiLCJ1c2VyRmFjaW5nTmFtZUJhY2tncm91bmRDb2xvciIsImlzVHJhbnNwYXJlbnRXcmFwcGVyIiwicGFyc2VkIiwiRXJyb3IiLCJ0b29sXzAiLCJpbnB1dF8wIiwidDIiLCJyZXNvbHZlZFRvb2xVc2VJRHMiLCJoYXMiLCJpc1Jlc29sdmVkIiwidDMiLCJpc1F1ZXVlZCIsImlzV2FpdGluZ0ZvclBlcm1pc3Npb24iLCJ0b29sVXNlSWQiLCJ0NCIsInJlbmRlclRvb2xVc2VQcm9ncmVzc01lc3NhZ2UiLCJ0NSIsInJlbmRlclRvb2xVc2VNZXNzYWdlIiwicmVuZGVyZWRUb29sVXNlTWVzc2FnZSIsInQ2IiwidDciLCJlcnJvcmVkVG9vbFVzZUlEcyIsInQ4IiwidDkiLCJ0MTAiLCJ0MTEiLCJyZW5kZXJUb29sVXNlVGFnIiwidDEyIiwidDEzIiwidDE0IiwicmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UiLCJ0MTUiLCJ0MTYiLCJzdGF0ZV8xIiwic3RhdGUiLCJ0b29sUGVybWlzc2lvbkNvbnRleHQiLCJzdHJpcHBlZERhbmdlcm91c1J1bGVzIiwic3RhdGVfMCIsIm1vZGUiLCJSZWFjdE5vZGUiLCJlcnJvciIsInRvb2xVc2VJRCIsImNvbHVtbnMiLCJyb3dzIiwidG9vbFByb2dyZXNzTWVzc2FnZXMiLCJmaWx0ZXIiLCJtc2ciLCJ0eXBlIiwidG9vbE1lc3NhZ2VzIl0sInNvdXJjZXMiOlsiQXNzaXN0YW50VG9vbFVzZU1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVG9vbFVzZUJsb2NrUGFyYW0gfSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvaW5kZXgubWpzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlcm1pbmFsU2l6ZSB9IGZyb20gJ3NyYy9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgdHlwZSB7IFRoZW1lTmFtZSB9IGZyb20gJ3NyYy91dGlscy90aGVtZS5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZCB9IGZyb20gJy4uLy4uL2NvbW1hbmRzLmpzJ1xuaW1wb3J0IHsgQkxBQ0tfQ0lSQ0xFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2ZpZ3VyZXMuanMnXG5pbXBvcnQgeyBzdHJpbmdXaWR0aCB9IGZyb20gJy4uLy4uL2luay9zdHJpbmdXaWR0aC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCwgdXNlVGhlbWUgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7XG4gIGZpbmRUb29sQnlOYW1lLFxuICB0eXBlIFRvb2wsXG4gIHR5cGUgVG9vbFByb2dyZXNzRGF0YSxcbiAgdHlwZSBUb29scyxcbn0gZnJvbSAnLi4vLi4vVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMvbWVzc2FnZS5qcydcbmltcG9ydCB7IHVzZUlzQ2xhc3NpZmllckNoZWNraW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NpZmllckFwcHJvdmFsc0hvb2suanMnXG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcydcbmltcG9ydCB0eXBlIHsgYnVpbGRNZXNzYWdlTG9va3VwcyB9IGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRNZXNzYWdlQmcgfSBmcm9tICcuLi9tZXNzYWdlQWN0aW9ucy5qcydcbmltcG9ydCB7IFNlbnRyeUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi9TZW50cnlFcnJvckJvdW5kYXJ5LmpzJ1xuaW1wb3J0IHsgVG9vbFVzZUxvYWRlciB9IGZyb20gJy4uL1Rvb2xVc2VMb2FkZXIuanMnXG5pbXBvcnQgeyBIb29rUHJvZ3Jlc3NNZXNzYWdlIH0gZnJvbSAnLi9Ib29rUHJvZ3Jlc3NNZXNzYWdlLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBwYXJhbTogVG9vbFVzZUJsb2NrUGFyYW1cbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIHRvb2xzOiBUb29sc1xuICBjb21tYW5kczogQ29tbWFuZFtdXG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+XG4gIHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlOiBQcm9ncmVzc01lc3NhZ2VbXVxuICBzaG91bGRBbmltYXRlOiBib29sZWFuXG4gIHNob3VsZFNob3dEb3Q6IGJvb2xlYW5cbiAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQ/OiBudW1iZXJcbiAgbG9va3VwczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRNZXNzYWdlTG9va3Vwcz5cbiAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFzc2lzdGFudFRvb2xVc2VNZXNzYWdlKHtcbiAgcGFyYW0sXG4gIGFkZE1hcmdpbixcbiAgdG9vbHMsXG4gIGNvbW1hbmRzLFxuICB2ZXJib3NlLFxuICBpblByb2dyZXNzVG9vbFVzZUlEcyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gIHNob3VsZEFuaW1hdGUsXG4gIHNob3VsZFNob3dEb3QsXG4gIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50LFxuICBsb29rdXBzLFxuICBpc1RyYW5zY3JpcHRNb2RlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0ZXJtaW5hbFNpemUgPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCBiZyA9IHVzZVNlbGVjdGVkTWVzc2FnZUJnKClcbiAgY29uc3QgcGVuZGluZ1dvcmtlclJlcXVlc3QgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUucGVuZGluZ1dvcmtlclJlcXVlc3QsXG4gIClcbiAgY29uc3QgaXNDbGFzc2lmaWVyQ2hlY2tpbmdSYXcgPSB1c2VJc0NsYXNzaWZpZXJDaGVja2luZyhwYXJhbS5pZClcbiAgY29uc3QgcGVybWlzc2lvbk1vZGUgPSB1c2VBcHBTdGF0ZU1heWJlT3V0c2lkZU9mUHJvdmlkZXIoXG4gICAgc3RhdGUgPT4gc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0Lm1vZGUsXG4gIClcbiAgLy8gc3RyaXBwZWREYW5nZXJvdXNSdWxlcyBpcyBzZXQgYnkgc3RyaXBEYW5nZXJvdXNQZXJtaXNzaW9uc0ZvckF1dG9Nb2RlXG4gIC8vIChldmVuIHRvIHt9KSB3aGVuZXZlciBhdXRvIGlzIGFjdGl2ZSwgYW5kIGNsZWFyZWQgYnkgcmVzdG9yZURhbmdlcm91c1Blcm1pc3Npb25zXG4gIC8vIG9uIGRlYWN0aXZhdGlvbiDigJQgYSByZWxpYWJsZSBwcm94eSBmb3IgaXNBdXRvTW9kZUFjdGl2ZSgpIGR1cmluZyBwbGFuLlxuICAvLyBwcmVQbGFuTW9kZSB3b3VsZCBiZSBzdGFsZSBhZnRlciB0cmFuc2l0aW9uUGxhbkF1dG9Nb2RlIGRlYWN0aXZhdGVzIG1pZC1wbGFuLlxuICBjb25zdCBoYXNTdHJpcHBlZFJ1bGVzID0gdXNlQXBwU3RhdGVNYXliZU91dHNpZGVPZlByb3ZpZGVyKFxuICAgIHN0YXRlID0+ICEhc3RhdGUudG9vbFBlcm1pc3Npb25Db250ZXh0LnN0cmlwcGVkRGFuZ2Vyb3VzUnVsZXMsXG4gIClcbiAgY29uc3QgaXNBdXRvQ2xhc3NpZmllciA9XG4gICAgcGVybWlzc2lvbk1vZGUgPT09ICdhdXRvJyB8fCAocGVybWlzc2lvbk1vZGUgPT09ICdwbGFuJyAmJiBoYXNTdHJpcHBlZFJ1bGVzKVxuICBjb25zdCBpc0NsYXNzaWZpZXJDaGVja2luZyA9XG4gICAgXCJleHRlcm5hbFwiID09PSAnYW50JyAmJlxuICAgIGlzQ2xhc3NpZmllckNoZWNraW5nUmF3ICYmXG4gICAgcGVybWlzc2lvbk1vZGUgIT09ICdhdXRvJ1xuXG4gIC8vIE1lbW9pemUgb24gcGFyYW0gaWRlbnRpdHkgKHN0YWJsZSDigJQgZnJvbSB0aGUgcGVyc2lzdGVkIG1lc3NhZ2Ugb2JqZWN0KS5cbiAgLy8gWm9kIHNhZmVQYXJzZSBhbGxvY2F0ZXMgcGVyIGNhbGwsIGFuZCBzb21lIHRvb2xzJyB1c2VyRmFjaW5nTmFtZSgpXG4gIC8vIChCYXNoVG9vbCDihpIgc2hvdWxkVXNlU2FuZGJveCDihpIgc2hlbGwtcXVvdGUgcGFyc2UpIGFyZSBleHBlbnNpdmUuIFdpdGhvdXRcbiAgLy8gdGhpcywgfjUwIGJhc2ggbWVzc2FnZXMgw5cgc2hlbGwtcXVvdGUtcGVyLXJlbmRlciBwdXNoZWQgdHJhbnNpdGlvblxuICAvLyByZW5kZXIgcGFzdCB0aGUgc2hpbW1lciB0aWNrIOKGkiBhYm9ydCDihpIgaW5maW5pdGUgcmV0cnkgKCMyMTYwNSkuXG4gIGNvbnN0IHBhcnNlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghdG9vbHMpIHJldHVybiBudWxsXG4gICAgY29uc3QgdG9vbCA9IGZpbmRUb29sQnlOYW1lKHRvb2xzLCBwYXJhbS5uYW1lKVxuICAgIGlmICghdG9vbCkgcmV0dXJuIG51bGxcbiAgICBjb25zdCBpbnB1dCA9IHRvb2wuaW5wdXRTY2hlbWEuc2FmZVBhcnNlKHBhcmFtLmlucHV0KVxuICAgIGNvbnN0IGRhdGEgPSBpbnB1dC5zdWNjZXNzID8gaW5wdXQuZGF0YSA6IHVuZGVmaW5lZFxuICAgIHJldHVybiB7XG4gICAgICB0b29sLFxuICAgICAgaW5wdXQsXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWU6IHRvb2wudXNlckZhY2luZ05hbWUoZGF0YSksXG4gICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgIHRvb2wudXNlckZhY2luZ05hbWVCYWNrZ3JvdW5kQ29sb3I/LihkYXRhKSxcbiAgICAgIGlzVHJhbnNwYXJlbnRXcmFwcGVyOiB0b29sLmlzVHJhbnNwYXJlbnRXcmFwcGVyPy4oKSA/PyBmYWxzZSxcbiAgICB9XG4gIH0sIFt0b29scywgcGFyYW1dKVxuXG4gIGlmICghcGFyc2VkKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgdG9vbHMgKHJlcXVpcmVkIHByb3ApIG9yIHVua25vd24gdG9vbCBuYW1lXG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIHRvb2xzXG4gICAgICAgICAgPyBgVG9vbCAke3BhcmFtLm5hbWV9IG5vdCBmb3VuZGBcbiAgICAgICAgICA6IGBUb29scyBhcnJheSBpcyB1bmRlZmluZWQgZm9yIHRvb2wgJHtwYXJhbS5uYW1lfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3Qge1xuICAgIHRvb2wsXG4gICAgaW5wdXQsXG4gICAgdXNlckZhY2luZ1Rvb2xOYW1lLFxuICAgIHVzZXJGYWNpbmdUb29sTmFtZUJhY2tncm91bmRDb2xvcixcbiAgICBpc1RyYW5zcGFyZW50V3JhcHBlcixcbiAgfSA9IHBhcnNlZFxuXG4gIGNvbnN0IGlzUmVzb2x2ZWQgPSBsb29rdXBzLnJlc29sdmVkVG9vbFVzZUlEcy5oYXMocGFyYW0uaWQpXG4gIGNvbnN0IGlzUXVldWVkID0gIWluUHJvZ3Jlc3NUb29sVXNlSURzLmhhcyhwYXJhbS5pZCkgJiYgIWlzUmVzb2x2ZWRcbiAgY29uc3QgaXNXYWl0aW5nRm9yUGVybWlzc2lvbiA9IHBlbmRpbmdXb3JrZXJSZXF1ZXN0Py50b29sVXNlSWQgPT09IHBhcmFtLmlkXG5cbiAgaWYgKGlzVHJhbnNwYXJlbnRXcmFwcGVyKSB7XG4gICAgaWYgKGlzUXVldWVkIHx8IGlzUmVzb2x2ZWQpIHJldHVybiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIHdpZHRoPVwiMTAwJVwiIGJhY2tncm91bmRDb2xvcj17Ymd9PlxuICAgICAgICB7cmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICB0b29sLFxuICAgICAgICAgIHRvb2xzLFxuICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgcGFyYW0uaWQsXG4gICAgICAgICAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2UsXG4gICAgICAgICAgeyB2ZXJib3NlLCBpblByb2dyZXNzVG9vbENhbGxDb3VudCwgaXNUcmFuc2NyaXB0TW9kZSB9LFxuICAgICAgICAgIHRlcm1pbmFsU2l6ZSxcbiAgICAgICAgKX1cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIGlmICh1c2VyRmFjaW5nVG9vbE5hbWUgPT09ICcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkVG9vbFVzZU1lc3NhZ2UgPSBpbnB1dC5zdWNjZXNzXG4gICAgPyByZW5kZXJUb29sVXNlTWVzc2FnZSh0b29sLCBpbnB1dC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICAgIDogbnVsbFxuICBpZiAocmVuZGVyZWRUb29sVXNlTWVzc2FnZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgIG1hcmdpblRvcD17YWRkTWFyZ2luID8gMSA6IDB9XG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgYmFja2dyb3VuZENvbG9yPXtiZ31cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICAgIGZsZXhXcmFwPVwibm93cmFwXCJcbiAgICAgICAgICBtaW5XaWR0aD17c3RyaW5nV2lkdGgodXNlckZhY2luZ1Rvb2xOYW1lKSArIChzaG91bGRTaG93RG90ID8gMiA6IDApfVxuICAgICAgICA+XG4gICAgICAgICAge3Nob3VsZFNob3dEb3QgJiZcbiAgICAgICAgICAgIChpc1F1ZXVlZCA/IChcbiAgICAgICAgICAgICAgPEJveCBtaW5XaWR0aD17Mn0+XG4gICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I9e2lzUXVldWVkfT57QkxBQ0tfQ0lSQ0xFfTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAvLyBXQVJOSU5HOiBUaGUgY29kZSBoZXJlIGFuZCBpbiBUb29sVXNlTG9hZGVyIGlzIHBhcnRpY3VsYXJseVxuICAgICAgICAgICAgICAvLyBzZW5zaXRpdmUgdG8gd2hhdCAqc2hvdWxkKiBqdXN0IGJlIHRyaXZpYWwgcmVmYWN0b3JpbmdzLiBTZWVcbiAgICAgICAgICAgICAgLy8gdGhlIGNvbW1lbnQgaW4gVG9vbFVzZUxvYWRlciBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICAgICAgICA8VG9vbFVzZUxvYWRlclxuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGU9e3Nob3VsZEFuaW1hdGV9XG4gICAgICAgICAgICAgICAgaXNVbnJlc29sdmVkPXshaXNSZXNvbHZlZH1cbiAgICAgICAgICAgICAgICBpc0Vycm9yPXtsb29rdXBzLmVycm9yZWRUb29sVXNlSURzLmhhcyhwYXJhbS5pZCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8Qm94IGZsZXhTaHJpbms9ezB9PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgYm9sZFxuICAgICAgICAgICAgICB3cmFwPVwidHJ1bmNhdGUtZW5kXCJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXt1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3J9XG4gICAgICAgICAgICAgIGNvbG9yPXtcbiAgICAgICAgICAgICAgICB1c2VyRmFjaW5nVG9vbE5hbWVCYWNrZ3JvdW5kQ29sb3IgPyAnaW52ZXJzZVRleHQnIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3VzZXJGYWNpbmdUb29sTmFtZX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7cmVuZGVyZWRUb29sVXNlTWVzc2FnZSAhPT0gJycgJiYgKFxuICAgICAgICAgICAgPEJveCBmbGV4V3JhcD1cIm5vd3JhcFwiPlxuICAgICAgICAgICAgICA8VGV4dD4oe3JlbmRlcmVkVG9vbFVzZU1lc3NhZ2V9KTwvVGV4dD5cbiAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIFJlbmRlciB0b29sLXNwZWNpZmljIHRhZ3MgKHRpbWVvdXQsIG1vZGVsLCByZXN1bWUgSUQsIGV0Yy4pICovfVxuICAgICAgICAgIHtpbnB1dC5zdWNjZXNzICYmXG4gICAgICAgICAgICB0b29sLnJlbmRlclRvb2xVc2VUYWcgJiZcbiAgICAgICAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVRhZyhpbnB1dC5kYXRhKX1cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHshaXNSZXNvbHZlZCAmJlxuICAgICAgICAgICFpc1F1ZXVlZCAmJlxuICAgICAgICAgIChpc0NsYXNzaWZpZXJDaGVja2luZyA/IChcbiAgICAgICAgICAgIDxNZXNzYWdlUmVzcG9uc2UgaGVpZ2h0PXsxfT5cbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAge2lzQXV0b0NsYXNzaWZpZXJcbiAgICAgICAgICAgICAgICAgID8gJ0F1dG8gY2xhc3NpZmllciBjaGVja2luZ1xcdTIwMjYnXG4gICAgICAgICAgICAgICAgICA6ICdCYXNoIGNsYXNzaWZpZXIgY2hlY2tpbmdcXHUyMDI2J31cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgKSA6IGlzV2FpdGluZ0ZvclBlcm1pc3Npb24gPyAoXG4gICAgICAgICAgICA8TWVzc2FnZVJlc3BvbnNlIGhlaWdodD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPldhaXRpbmcgZm9yIHBlcm1pc3Npb27igKY8L1RleHQ+XG4gICAgICAgICAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgcmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZShcbiAgICAgICAgICAgICAgdG9vbCxcbiAgICAgICAgICAgICAgdG9vbHMsXG4gICAgICAgICAgICAgIGxvb2t1cHMsXG4gICAgICAgICAgICAgIHBhcmFtLmlkLFxuICAgICAgICAgICAgICBwcm9ncmVzc01lc3NhZ2VzRm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZlcmJvc2UsXG4gICAgICAgICAgICAgICAgaW5Qcm9ncmVzc1Rvb2xDYWxsQ291bnQsXG4gICAgICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGVybWluYWxTaXplLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkpfVxuICAgICAgICB7IWlzUmVzb2x2ZWQgJiYgaXNRdWV1ZWQgJiYgcmVuZGVyVG9vbFVzZVF1ZXVlZE1lc3NhZ2UodG9vbCl9XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlTWVzc2FnZShcbiAgdG9vbDogVG9vbCxcbiAgaW5wdXQ6IHVua25vd24sXG4gIHtcbiAgICB0aGVtZSxcbiAgICB2ZXJib3NlLFxuICAgIGNvbW1hbmRzLFxuICB9OiB7IHRoZW1lOiBUaGVtZU5hbWU7IHZlcmJvc2U6IGJvb2xlYW47IGNvbW1hbmRzOiBDb21tYW5kW10gfSxcbik6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gdG9vbC5pbnB1dFNjaGVtYS5zYWZlUGFyc2UoaW5wdXQpXG4gICAgaWYgKCFwYXJzZWQuc3VjY2Vzcykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VNZXNzYWdlKHBhcnNlZC5kYXRhLCB7IHRoZW1lLCB2ZXJib3NlLCBjb21tYW5kcyB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWApLFxuICAgIClcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5mdW5jdGlvbiByZW5kZXJUb29sVXNlUHJvZ3Jlc3NNZXNzYWdlKFxuICB0b29sOiBUb29sLFxuICB0b29sczogVG9vbHMsXG4gIGxvb2t1cHM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkTWVzc2FnZUxvb2t1cHM+LFxuICB0b29sVXNlSUQ6IHN0cmluZyxcbiAgcHJvZ3Jlc3NNZXNzYWdlc0Zvck1lc3NhZ2U6IFByb2dyZXNzTWVzc2FnZVtdLFxuICB7XG4gICAgdmVyYm9zZSxcbiAgICBpblByb2dyZXNzVG9vbENhbGxDb3VudCxcbiAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICB9OiB7XG4gICAgdmVyYm9zZTogYm9vbGVhblxuICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50PzogbnVtYmVyXG4gICAgaXNUcmFuc2NyaXB0TW9kZT86IGJvb2xlYW5cbiAgfSxcbiAgdGVybWluYWxTaXplOiB7IGNvbHVtbnM6IG51bWJlcjsgcm93czogbnVtYmVyIH0sXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0b29sUHJvZ3Jlc3NNZXNzYWdlcyA9IHByb2dyZXNzTWVzc2FnZXNGb3JNZXNzYWdlLmZpbHRlcihcbiAgICAobXNnKTogbXNnIGlzIFByb2dyZXNzTWVzc2FnZTxUb29sUHJvZ3Jlc3NEYXRhPiA9PlxuICAgICAgbXNnLmRhdGEudHlwZSAhPT0gJ2hvb2tfcHJvZ3Jlc3MnLFxuICApXG4gIHRyeSB7XG4gICAgY29uc3QgdG9vbE1lc3NhZ2VzID1cbiAgICAgIHRvb2wucmVuZGVyVG9vbFVzZVByb2dyZXNzTWVzc2FnZT8uKHRvb2xQcm9ncmVzc01lc3NhZ2VzLCB7XG4gICAgICAgIHRvb2xzLFxuICAgICAgICB2ZXJib3NlLFxuICAgICAgICB0ZXJtaW5hbFNpemUsXG4gICAgICAgIGluUHJvZ3Jlc3NUb29sQ2FsbENvdW50OiBpblByb2dyZXNzVG9vbENhbGxDb3VudCA/PyAxLFxuICAgICAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICAgICAgfSkgPz8gbnVsbFxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8U2VudHJ5RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8SG9va1Byb2dyZXNzTWVzc2FnZVxuICAgICAgICAgICAgaG9va0V2ZW50PVwiUHJlVG9vbFVzZVwiXG4gICAgICAgICAgICBsb29rdXBzPXtsb29rdXBzfVxuICAgICAgICAgICAgdG9vbFVzZUlEPXt0b29sVXNlSUR9XG4gICAgICAgICAgICB2ZXJib3NlPXt2ZXJib3NlfVxuICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZT17aXNUcmFuc2NyaXB0TW9kZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NlbnRyeUVycm9yQm91bmRhcnk+XG4gICAgICAgIHt0b29sTWVzc2FnZXN9XG4gICAgICA8Lz5cbiAgICApXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nRXJyb3IoXG4gICAgICBuZXcgRXJyb3IoXG4gICAgICAgIGBFcnJvciByZW5kZXJpbmcgdG9vbCB1c2UgcHJvZ3Jlc3MgbWVzc2FnZSBmb3IgJHt0b29sLm5hbWV9OiAke2Vycm9yfWAsXG4gICAgICApLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlKHRvb2w6IFRvb2wpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB0cnkge1xuICAgIHJldHVybiB0b29sLnJlbmRlclRvb2xVc2VRdWV1ZWRNZXNzYWdlPy4oKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ0Vycm9yKFxuICAgICAgbmV3IEVycm9yKFxuICAgICAgICBgRXJyb3IgcmVuZGVyaW5nIHRvb2wgdXNlIHF1ZXVlZCBtZXNzYWdlIGZvciAke3Rvb2wubmFtZX06ICR7ZXJyb3J9YCxcbiAgICAgICksXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLGNBQWNBLGlCQUFpQixRQUFRLHVDQUF1QztBQUM5RSxPQUFPQyxLQUFLLElBQUlDLE9BQU8sUUFBUSxPQUFPO0FBQ3RDLFNBQVNDLGVBQWUsUUFBUSw4QkFBOEI7QUFDOUQsY0FBY0MsU0FBUyxRQUFRLG9CQUFvQjtBQUNuRCxjQUFjQyxPQUFPLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MsV0FBVyxRQUFRLDBCQUEwQjtBQUN0RCxTQUFTQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDbEQsU0FBU0MsaUNBQWlDLFFBQVEseUJBQXlCO0FBQzNFLFNBQ0VDLGNBQWMsRUFDZCxLQUFLQyxJQUFJLEVBQ1QsS0FBS0MsZ0JBQWdCLEVBQ3JCLEtBQUtDLEtBQUssUUFDTCxlQUFlO0FBQ3RCLGNBQWNDLGVBQWUsUUFBUSx3QkFBd0I7QUFDN0QsU0FBU0MsdUJBQXVCLFFBQVEsd0NBQXdDO0FBQ2hGLFNBQVNDLFFBQVEsUUFBUSxvQkFBb0I7QUFDN0MsY0FBY0MsbUJBQW1CLFFBQVEseUJBQXlCO0FBQ2xFLFNBQVNDLGVBQWUsUUFBUSx1QkFBdUI7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
@@ -532,5 +532,4 @@ function Line(t0) {
532
532
  t3 = $[6];
533
533
  }
534
534
  return t3;
535
- }
536
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJBbnNpIiwiQm94IiwiVGV4dCIsIkF0dGFjaG1lbnQiLCJOdWxsUmVuZGVyaW5nQXR0YWNobWVudFR5cGUiLCJ1c2VBcHBTdGF0ZSIsImdldERpc3BsYXlQYXRoIiwiZm9ybWF0RmlsZVNpemUiLCJNZXNzYWdlUmVzcG9uc2UiLCJiYXNlbmFtZSIsInNlcCIsIlVzZXJUZXh0TWVzc2FnZSIsIkRpYWdub3N0aWNzRGlzcGxheSIsImdldENvbnRlbnRUZXh0IiwiVGhlbWUiLCJVc2VySW1hZ2VNZXNzYWdlIiwidG9JbmtDb2xvciIsImpzb25QYXJzZSIsInBsdXJhbCIsImlzRW52VHJ1dGh5IiwiaXNBZ2VudFN3YXJtc0VuYWJsZWQiLCJ0cnlSZW5kZXJQbGFuQXBwcm92YWxNZXNzYWdlIiwiZm9ybWF0VGVhbW1hdGVNZXNzYWdlQ29udGVudCIsIkJMQUNLX0NJUkNMRSIsIlRlYW1tYXRlTWVzc2FnZUNvbnRlbnQiLCJpc1NodXRkb3duQXBwcm92ZWQiLCJDdHJsT1RvRXhwYW5kIiwiRmlsZVBhdGhMaW5rIiwiZmVhdHVyZSIsInVzZVNlbGVjdGVkTWVzc2FnZUJnIiwiUHJvcHMiLCJhZGRNYXJnaW4iLCJhdHRhY2htZW50IiwidmVyYm9zZSIsImlzVHJhbnNjcmlwdE1vZGUiLCJBdHRhY2htZW50TWVzc2FnZSIsIlJlYWN0Tm9kZSIsImJnIiwiaXNEZW1vRW52IiwicHJvY2VzcyIsImVudiIsIklTX0RFTU8iLCJ0eXBlIiwidmlzaWJsZU1lc3NhZ2VzIiwibWVzc2FnZXMiLCJmaWx0ZXIiLCJtc2ciLCJ0ZXh0IiwicGFyc2VkIiwibGVuZ3RoIiwibWFwIiwiaWR4IiwicGFyc2VkTXNnIiwidGFza0lkIiwic3ViamVjdCIsImFzc2lnbmVkQnkiLCJmcm9tIiwicGxhbkFwcHJvdmFsRWxlbWVudCIsImlua0NvbG9yIiwiY29sb3IiLCJmb3JtYXR0ZWRDb250ZW50Iiwic3VtbWFyeSIsInNraWxscyIsIm5hbWVzIiwicyIsInNob3J0SWQiLCJuYW1lIiwiam9pbiIsImZpcnN0SWQiLCJoaW50IiwiZGlzcGxheVBhdGgiLCJjb250ZW50IiwiZmlsZSIsImNlbGxzIiwibnVtTGluZXMiLCJ0cnVuY2F0ZWQiLCJvcmlnaW5hbFNpemUiLCJwYWdlQ291bnQiLCJsaW5lRW5kIiwibGluZVN0YXJ0IiwiaWRlTmFtZSIsIm1lbW9yaWVzIiwibSIsInBhdGgiLCJza2lsbENvdW50Iiwic2tpbGxOYW1lcyIsImlzSW5pdGlhbCIsImFkZGVkVHlwZXMiLCJjb3VudCIsInByb21wdCIsImhhc0ltYWdlcyIsImltYWdlUGFzdGVJZHMiLCJpZCIsInBsYW5GaWxlUGF0aCIsInNlcnZlciIsImhvb2tFdmVudCIsInN0ZGVyciIsImJsb2NraW5nRXJyb3IiLCJ0cmltIiwiaG9va05hbWUiLCJtZXNzYWdlIiwiYWN0aW9uIiwiZGVjaXNpb24iLCJUYXNrU3RhdHVzQXR0YWNobWVudCIsIkV4dHJhY3QiLCJUYXNrU3RhdHVzTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwic3RhdHVzIiwidGFza1R5cGUiLCJ0MSIsIkdlbmVyaWNUYXNrU3RhdHVzIiwic3RhdHVzVGV4dCIsIlN5bWJvbCIsImZvciIsInQyIiwiZGVzY3JpcHRpb24iLCJ0MyIsInQ0IiwiVGVhbW1hdGVUYXNrU3RhdHVzIiwidGFza3MiLCJ0YXNrIiwiaWRlbnRpdHkiLCJhZ2VudENvbG9yIiwiYWdlbnROYW1lIiwidDUiLCJ0NiIsIkxpbmUiLCJkaW1Db2xvciIsImNoaWxkcmVuIiwidW5kZWZpbmVkIl0sInNvdXJjZXMiOlsiQXR0YWNobWVudE1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGJpb21lLWlnbm9yZS1hbGwgYXNzaXN0L3NvdXJjZS9vcmdhbml6ZUltcG9ydHM6IEFOVC1PTkxZIGltcG9ydCBtYXJrZXJzIG11c3Qgbm90IGJlIHJlb3JkZXJlZFxuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFuc2ksIEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgQXR0YWNobWVudCB9IGZyb20gJ3NyYy91dGlscy9hdHRhY2htZW50cy5qcydcbmltcG9ydCB0eXBlIHsgTnVsbFJlbmRlcmluZ0F0dGFjaG1lbnRUeXBlIH0gZnJvbSAnLi9udWxsUmVuZGVyaW5nQXR0YWNobWVudHMuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHsgZ2V0RGlzcGxheVBhdGggfSBmcm9tICdzcmMvdXRpbHMvZmlsZS5qcydcbmltcG9ydCB7IGZvcm1hdEZpbGVTaXplIH0gZnJvbSAnc3JjL3V0aWxzL2Zvcm1hdC5qcydcbmltcG9ydCB7IE1lc3NhZ2VSZXNwb25zZSB9IGZyb20gJy4uL01lc3NhZ2VSZXNwb25zZS5qcydcbmltcG9ydCB7IGJhc2VuYW1lLCBzZXAgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgVXNlclRleHRNZXNzYWdlIH0gZnJvbSAnLi9Vc2VyVGV4dE1lc3NhZ2UuanMnXG5pbXBvcnQgeyBEaWFnbm9zdGljc0Rpc3BsYXkgfSBmcm9tICcuLi9EaWFnbm9zdGljc0Rpc3BsYXkuanMnXG5pbXBvcnQgeyBnZXRDb250ZW50VGV4dCB9IGZyb20gJ3NyYy91dGlscy9tZXNzYWdlcy5qcydcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tICdzcmMvdXRpbHMvdGhlbWUuanMnXG5pbXBvcnQgeyBVc2VySW1hZ2VNZXNzYWdlIH0gZnJvbSAnLi9Vc2VySW1hZ2VNZXNzYWdlLmpzJ1xuaW1wb3J0IHsgdG9JbmtDb2xvciB9IGZyb20gJy4uLy4uL3V0aWxzL2luay5qcydcbmltcG9ydCB7IGpzb25QYXJzZSB9IGZyb20gJy4uLy4uL3V0aWxzL3Nsb3dPcGVyYXRpb25zLmpzJ1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgeyBpc0VudlRydXRoeSB9IGZyb20gJy4uLy4uL3V0aWxzL2VudlV0aWxzLmpzJ1xuaW1wb3J0IHsgaXNBZ2VudFN3YXJtc0VuYWJsZWQgfSBmcm9tICcuLi8uLi91dGlscy9hZ2VudFN3YXJtc0VuYWJsZWQuanMnXG5pbXBvcnQge1xuICB0cnlSZW5kZXJQbGFuQXBwcm92YWxNZXNzYWdlLFxuICBmb3JtYXRUZWFtbWF0ZU1lc3NhZ2VDb250ZW50LFxufSBmcm9tICcuL1BsYW5BcHByb3ZhbE1lc3NhZ2UuanMnXG5pbXBvcnQgeyBCTEFDS19DSVJDTEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZmlndXJlcy5qcydcbmltcG9ydCB7IFRlYW1tYXRlTWVzc2FnZUNvbnRlbnQgfSBmcm9tICcuL1VzZXJUZWFtbWF0ZU1lc3NhZ2UuanMnXG5pbXBvcnQgeyBpc1NodXRkb3duQXBwcm92ZWQgfSBmcm9tICcuLi8uLi91dGlscy90ZWFtbWF0ZU1haWxib3guanMnXG5pbXBvcnQgeyBDdHJsT1RvRXhwYW5kIH0gZnJvbSAnLi4vQ3RybE9Ub0V4cGFuZC5qcydcbmltcG9ydCB7IEZpbGVQYXRoTGluayB9IGZyb20gJy4uL0ZpbGVQYXRoTGluay5qcydcbmltcG9ydCB7IGZlYXR1cmUgfSBmcm9tICdidW46YnVuZGxlJ1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRNZXNzYWdlQmcgfSBmcm9tICcuLi9tZXNzYWdlQWN0aW9ucy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRcbiAgdmVyYm9zZTogYm9vbGVhblxuICBpc1RyYW5zY3JpcHRNb2RlPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXR0YWNobWVudE1lc3NhZ2Uoe1xuICBhdHRhY2htZW50LFxuICBhZGRNYXJnaW4sXG4gIHZlcmJvc2UsXG4gIGlzVHJhbnNjcmlwdE1vZGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGJnID0gdXNlU2VsZWN0ZWRNZXNzYWdlQmcoKVxuICAvLyBIb2lzdGVkIHRvIG1vdW50LXRpbWUg4oCUIHBlci1tZXNzYWdlIGNvbXBvbmVudCwgcmUtcmVuZGVycyBvbiBldmVyeSBzY3JvbGwuXG4gIGNvbnN0IGlzRGVtb0VudiA9IGZlYXR1cmUoJ0VYUEVSSU1FTlRBTF9TS0lMTF9TRUFSQ0gnKVxuICAgID8gLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlSG9va0F0VG9wTGV2ZWw6IGZlYXR1cmUoKSBpcyBhIGNvbXBpbGUtdGltZSBjb25zdGFudFxuICAgICAgdXNlTWVtbygoKSA9PiBpc0VudlRydXRoeShwcm9jZXNzLmVudi5JU19ERU1PKSwgW10pXG4gICAgOiBmYWxzZVxuICAvLyBIYW5kbGUgdGVhbW1hdGVfbWFpbGJveCBCRUZPUkUgc3dpdGNoXG4gIGlmIChpc0FnZW50U3dhcm1zRW5hYmxlZCgpICYmIGF0dGFjaG1lbnQudHlwZSA9PT0gJ3RlYW1tYXRlX21haWxib3gnKSB7XG4gICAgLy8gRmlsdGVyIG91dCBpZGxlIG5vdGlmaWNhdGlvbnMgQkVGT1JFIGNvdW50aW5nIC0gdGhleSBhcmUgaGlkZGVuIGluIHRoZSBVSVxuICAgIC8vIHNvIHNob3dpbmcgdGhlbSBpbiB0aGUgY291bnQgd291bGQgYmUgY29uZnVzaW5nIChcIjIgbWVzc2FnZXMgaW4gbWFpbGJveDpcIiB3aXRoIG5vdGhpbmcgc2hvd24pXG4gICAgY29uc3QgdmlzaWJsZU1lc3NhZ2VzID0gYXR0YWNobWVudC5tZXNzYWdlcy5maWx0ZXIobXNnID0+IHtcbiAgICAgIGlmIChpc1NodXRkb3duQXBwcm92ZWQobXNnLnRleHQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0ganNvblBhcnNlKG1zZy50ZXh0KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHBhcnNlZD8udHlwZSAhPT0gJ2lkbGVfbm90aWZpY2F0aW9uJyAmJlxuICAgICAgICAgIHBhcnNlZD8udHlwZSAhPT0gJ3RlYW1tYXRlX3Rlcm1pbmF0ZWQnXG4gICAgICAgIClcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdHJ1ZSAvLyBOb24tSlNPTiBtZXNzYWdlcyBhcmUgdmlzaWJsZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAodmlzaWJsZU1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICB7dmlzaWJsZU1lc3NhZ2VzLm1hcCgobXNnLCBpZHgpID0+IHtcbiAgICAgICAgICAvLyBUcnkgdG8gcGFyc2UgYXMgSlNPTiBmb3IgdGFza19hc3NpZ25tZW50IG1lc3NhZ2VzXG4gICAgICAgICAgbGV0IHBhcnNlZE1zZzoge1xuICAgICAgICAgICAgdHlwZT86IHN0cmluZ1xuICAgICAgICAgICAgdGFza0lkPzogc3RyaW5nXG4gICAgICAgICAgICBzdWJqZWN0Pzogc3RyaW5nXG4gICAgICAgICAgICBhc3NpZ25lZEJ5Pzogc3RyaW5nXG4gICAgICAgICAgfSB8IG51bGwgPSBudWxsXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBhcnNlZE1zZyA9IGpzb25QYXJzZShtc2cudGV4dClcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIE5vdCBKU09OLCB0cmVhdCBhcyBwbGFpbiB0ZXh0XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhcnNlZE1zZz8udHlwZSA9PT0gJ3Rhc2tfYXNzaWdubWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxCb3gga2V5PXtpZHh9IHBhZGRpbmdMZWZ0PXsyfT5cbiAgICAgICAgICAgICAgICA8VGV4dD57QkxBQ0tfQ0lSQ0xFfSA8L1RleHQ+XG4gICAgICAgICAgICAgICAgPFRleHQ+VGFzayBhc3NpZ25lZDogPC9UZXh0PlxuICAgICAgICAgICAgICAgIDxUZXh0IGJvbGQ+I3twYXJzZWRNc2cudGFza0lkfTwvVGV4dD5cbiAgICAgICAgICAgICAgICA8VGV4dD4gLSB7cGFyc2VkTXNnLnN1YmplY3R9PC9UZXh0PlxuICAgICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPiAoZnJvbSB7cGFyc2VkTXNnLmFzc2lnbmVkQnkgfHwgbXNnLmZyb219KTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTm90ZTogaWRsZV9ub3RpZmljYXRpb24gbWVzc2FnZXMgYWxyZWFkeSBmaWx0ZXJlZCBvdXQgYWJvdmVcblxuICAgICAgICAgIC8vIFRyeSB0byByZW5kZXIgYXMgcGxhbiBhcHByb3ZhbCBtZXNzYWdlIChyZXF1ZXN0IG9yIHJlc3BvbnNlKVxuICAgICAgICAgIGNvbnN0IHBsYW5BcHByb3ZhbEVsZW1lbnQgPSB0cnlSZW5kZXJQbGFuQXBwcm92YWxNZXNzYWdlKFxuICAgICAgICAgICAgbXNnLnRleHQsXG4gICAgICAgICAgICBtc2cuZnJvbSxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKHBsYW5BcHByb3ZhbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2lkeH0+e3BsYW5BcHByb3ZhbEVsZW1lbnR9PC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQbGFpbiB0ZXh0IG1lc3NhZ2UgLSBzZW5kZXIgaGVhZGVyIHdpdGggY2hldnJvbiwgdHJ1bmNhdGVkIGNvbnRlbnRcbiAgICAgICAgICBjb25zdCBpbmtDb2xvciA9IHRvSW5rQ29sb3IobXNnLmNvbG9yKVxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbnRlbnQgPVxuICAgICAgICAgICAgZm9ybWF0VGVhbW1hdGVNZXNzYWdlQ29udGVudChtc2cudGV4dCkgPz8gbXNnLnRleHRcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRlYW1tYXRlTWVzc2FnZUNvbnRlbnRcbiAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lPXttc2cuZnJvbX1cbiAgICAgICAgICAgICAgaW5rQ29sb3I9e2lua0NvbG9yfVxuICAgICAgICAgICAgICBjb250ZW50PXtmb3JtYXR0ZWRDb250ZW50fVxuICAgICAgICAgICAgICBzdW1tYXJ5PXttc2cuc3VtbWFyeX1cbiAgICAgICAgICAgICAgaXNUcmFuc2NyaXB0TW9kZT17aXNUcmFuc2NyaXB0TW9kZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvQm94PlxuICAgIClcbiAgfVxuXG4gIC8vIHNraWxsX2Rpc2NvdmVyeSByZW5kZXJlZCBoZXJlIChub3QgaW4gdGhlIHN3aXRjaCkgc28gdGhlICdza2lsbF9kaXNjb3ZlcnknXG4gIC8vIHN0cmluZyBsaXRlcmFsIHN0YXlzIGluc2lkZSBhIGZlYXR1cmUoKS1ndWFyZGVkIGJsb2NrLiBBIGNhc2UgbGFiZWwgY2FuJ3RcbiAgLy8gYmUgY29uZGl0aW9uYWxseSBlbGltaW5hdGVkOyBhbiBpZi1ib2R5IGNhbi5cbiAgaWYgKGZlYXR1cmUoJ0VYUEVSSU1FTlRBTF9TS0lMTF9TRUFSQ0gnKSkge1xuICAgIGlmIChhdHRhY2htZW50LnR5cGUgPT09ICdza2lsbF9kaXNjb3ZlcnknKSB7XG4gICAgICBpZiAoYXR0YWNobWVudC5za2lsbHMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbFxuICAgICAgLy8gQW50IHVzZXJzIGdldCBzaG9ydElkcyBpbmxpbmUgc28gdGhleSBjYW4gL3NraWxsLWZlZWRiYWNrIHdoaWxlIHRoZVxuICAgICAgLy8gdHVybiBpcyBzdGlsbCBmcmVzaC4gRXh0ZXJuYWwgdXNlcnMgKHdoZW4gdGhpcyB1bi1nYXRlcykganVzdCBzZWVcbiAgICAgIC8vIG5hbWVzIOKAlCBzaG9ydElkIGlzIHVuZGVmaW5lZCBvdXRzaWRlIGFudCBidWlsZHMgYW55d2F5LlxuICAgICAgY29uc3QgbmFtZXMgPSBhdHRhY2htZW50LnNraWxsc1xuICAgICAgICAubWFwKHMgPT4gKHMuc2hvcnRJZCA/IGAke3MubmFtZX0gWyR7cy5zaG9ydElkfV1gIDogcy5uYW1lKSlcbiAgICAgICAgLmpvaW4oJywgJylcbiAgICAgIGNvbnN0IGZpcnN0SWQgPSBhdHRhY2htZW50LnNraWxsc1swXT8uc2hvcnRJZFxuICAgICAgY29uc3QgaGludCA9XG4gICAgICAgIFwiZXh0ZXJuYWxcIiA9PT0gJ2FudCcgJiYgIWlzRGVtb0VudiAmJiBmaXJzdElkXG4gICAgICAgICAgPyBgIMK3IC9za2lsbC1mZWVkYmFjayAke2ZpcnN0SWR9IDE9d3JvbmcgMj1ub2lzeSAzPWdvb2QgW2NvbW1lbnRdYFxuICAgICAgICAgIDogJydcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIDxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuc2tpbGxzLmxlbmd0aH08L1RleHQ+IHJlbGV2YW50eycgJ31cbiAgICAgICAgICB7cGx1cmFsKGF0dGFjaG1lbnQuc2tpbGxzLmxlbmd0aCwgJ3NraWxsJyl9OiB7bmFtZXN9XG4gICAgICAgICAge2hpbnQgJiYgPFRleHQgZGltQ29sb3I+e2hpbnR9PC9UZXh0Pn1cbiAgICAgICAgPC9MaW5lPlxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvc3dpdGNoLWV4aGF1c3RpdmVuZXNzLWNoZWNrIC0tIHRlYW1tYXRlX21haWxib3gvc2tpbGxfZGlzY292ZXJ5IGhhbmRsZWQgYmVmb3JlIHN3aXRjaFxuICBzd2l0Y2ggKGF0dGFjaG1lbnQudHlwZSkge1xuICAgIGNhc2UgJ2RpcmVjdG9yeSc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluZT5cbiAgICAgICAgICBMaXN0ZWQgZGlyZWN0b3J5IDxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuZGlzcGxheVBhdGggKyBzZXB9PC9UZXh0PlxuICAgICAgICA8L0xpbmU+XG4gICAgICApXG4gICAgY2FzZSAnZmlsZSc6XG4gICAgY2FzZSAnYWxyZWFkeV9yZWFkX2ZpbGUnOlxuICAgICAgaWYgKGF0dGFjaG1lbnQuY29udGVudC50eXBlID09PSAnbm90ZWJvb2snKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPExpbmU+XG4gICAgICAgICAgICBSZWFkIDxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuZGlzcGxheVBhdGh9PC9UZXh0PiAoXG4gICAgICAgICAgICB7YXR0YWNobWVudC5jb250ZW50LmZpbGUuY2VsbHMubGVuZ3RofSBjZWxscylcbiAgICAgICAgICA8L0xpbmU+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChhdHRhY2htZW50LmNvbnRlbnQudHlwZSA9PT0gJ2ZpbGVfdW5jaGFuZ2VkJykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxMaW5lPlxuICAgICAgICAgICAgUmVhZCA8VGV4dCBib2xkPnthdHRhY2htZW50LmRpc3BsYXlQYXRofTwvVGV4dD4gKHVuY2hhbmdlZClcbiAgICAgICAgICA8L0xpbmU+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIFJlYWQgPFRleHQgYm9sZD57YXR0YWNobWVudC5kaXNwbGF5UGF0aH08L1RleHQ+IChcbiAgICAgICAgICB7YXR0YWNobWVudC5jb250ZW50LnR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgPyBgJHthdHRhY2htZW50LmNvbnRlbnQuZmlsZS5udW1MaW5lc30ke2F0dGFjaG1lbnQudHJ1bmNhdGVkID8gJysnIDogJyd9IGxpbmVzYFxuICAgICAgICAgICAgOiBmb3JtYXRGaWxlU2l6ZShhdHRhY2htZW50LmNvbnRlbnQuZmlsZS5vcmlnaW5hbFNpemUpfVxuICAgICAgICAgIClcbiAgICAgICAgPC9MaW5lPlxuICAgICAgKVxuICAgIGNhc2UgJ2NvbXBhY3RfZmlsZV9yZWZlcmVuY2UnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExpbmU+XG4gICAgICAgICAgUmVmZXJlbmNlZCBmaWxlIDxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuZGlzcGxheVBhdGh9PC9UZXh0PlxuICAgICAgICA8L0xpbmU+XG4gICAgICApXG4gICAgY2FzZSAncGRmX3JlZmVyZW5jZSc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluZT5cbiAgICAgICAgICBSZWZlcmVuY2VkIFBERiA8VGV4dCBib2xkPnthdHRhY2htZW50LmRpc3BsYXlQYXRofTwvVGV4dD4gKFxuICAgICAgICAgIHthdHRhY2htZW50LnBhZ2VDb3VudH0gcGFnZXMpXG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICBjYXNlICdzZWxlY3RlZF9saW5lc19pbl9pZGUnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExpbmU+XG4gICAgICAgICAg4qeJIFNlbGVjdGVkeycgJ31cbiAgICAgICAgICA8VGV4dCBib2xkPnthdHRhY2htZW50LmxpbmVFbmQgLSBhdHRhY2htZW50LmxpbmVTdGFydCArIDF9PC9UZXh0PnsnICd9XG4gICAgICAgICAgbGluZXMgZnJvbSA8VGV4dCBib2xkPnthdHRhY2htZW50LmRpc3BsYXlQYXRofTwvVGV4dD4gaW57JyAnfVxuICAgICAgICAgIHthdHRhY2htZW50LmlkZU5hbWV9XG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICBjYXNlICduZXN0ZWRfbWVtb3J5JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIExvYWRlZCA8VGV4dCBib2xkPnthdHRhY2htZW50LmRpc3BsYXlQYXRofTwvVGV4dD5cbiAgICAgICAgPC9MaW5lPlxuICAgICAgKVxuICAgIGNhc2UgJ3JlbGV2YW50X21lbW9yaWVzJzpcbiAgICAgIC8vIFVzdWFsbHkgYWJzb3JiZWQgaW50byBhIENvbGxhcHNlZFJlYWRTZWFyY2hHcm91cCAoY29sbGFwc2VSZWFkU2VhcmNoLnRzKVxuICAgICAgLy8gc28gdGhpcyBvbmx5IHJlbmRlcnMgd2hlbiB0aGUgcHJlY2VkaW5nIHRvb2wgd2FzIG5vbi1jb2xsYXBzaWJsZSAoRWRpdCxcbiAgICAgIC8vIFdyaXRlKSBhbmQgbm8gZ3JvdXAgd2FzIG9wZW4uIE1hdGNoIENvbGxhcHNlZFJlYWRTZWFyY2hDb250ZW50J3Mgc3R5bGU6XG4gICAgICAvLyAyLXNwYWNlIGd1dHRlciwgZGltIHRleHQsIGNvdW50IG9ubHkg4oCUIGZpbGVuYW1lcy9jb250ZW50IGluIGN0cmwrby5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCb3hcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICBtYXJnaW5Ub3A9e2FkZE1hcmdpbiA/IDEgOiAwfVxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcj17Ymd9XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIDxCb3ggbWluV2lkdGg9ezJ9IC8+XG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgICAgUmVjYWxsZWQgPFRleHQgYm9sZD57YXR0YWNobWVudC5tZW1vcmllcy5sZW5ndGh9PC9UZXh0PnsnICd9XG4gICAgICAgICAgICAgIHthdHRhY2htZW50Lm1lbW9yaWVzLmxlbmd0aCA9PT0gMSA/ICdtZW1vcnknIDogJ21lbW9yaWVzJ31cbiAgICAgICAgICAgICAgeyFpc1RyYW5zY3JpcHRNb2RlICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICAgIDxDdHJsT1RvRXhwYW5kIC8+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgeyh2ZXJib3NlIHx8IGlzVHJhbnNjcmlwdE1vZGUpICYmXG4gICAgICAgICAgICBhdHRhY2htZW50Lm1lbW9yaWVzLm1hcChtID0+IChcbiAgICAgICAgICAgICAgPEJveCBrZXk9e20ucGF0aH0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxNZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgICAgICAgICAgPEZpbGVQYXRoTGluayBmaWxlUGF0aD17bS5wYXRofT5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFzZW5hbWUobS5wYXRoKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GaWxlUGF0aExpbms+XG4gICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgICAgICAgICAge2lzVHJhbnNjcmlwdE1vZGUgJiYgKFxuICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17NX0+XG4gICAgICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIDxBbnNpPnttLmNvbnRlbnR9PC9BbnNpPlxuICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L0JveD5cbiAgICAgIClcbiAgICBjYXNlICdkeW5hbWljX3NraWxsJzoge1xuICAgICAgY29uc3Qgc2tpbGxDb3VudCA9IGF0dGFjaG1lbnQuc2tpbGxOYW1lcy5sZW5ndGhcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIExvYWRlZHsnICd9XG4gICAgICAgICAgPFRleHQgYm9sZD5cbiAgICAgICAgICAgIHtza2lsbENvdW50fSB7cGx1cmFsKHNraWxsQ291bnQsICdza2lsbCcpfVxuICAgICAgICAgIDwvVGV4dD57JyAnfVxuICAgICAgICAgIGZyb20gPFRleHQgYm9sZD57YXR0YWNobWVudC5kaXNwbGF5UGF0aH08L1RleHQ+XG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAnc2tpbGxfbGlzdGluZyc6IHtcbiAgICAgIGlmIChhdHRhY2htZW50LmlzSW5pdGlhbCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExpbmU+XG4gICAgICAgICAgPFRleHQgYm9sZD57YXR0YWNobWVudC5za2lsbENvdW50fTwvVGV4dD57JyAnfVxuICAgICAgICAgIHtwbHVyYWwoYXR0YWNobWVudC5za2lsbENvdW50LCAnc2tpbGwnKX0gYXZhaWxhYmxlXG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAnYWdlbnRfbGlzdGluZ19kZWx0YSc6IHtcbiAgICAgIGlmIChhdHRhY2htZW50LmlzSW5pdGlhbCB8fCBhdHRhY2htZW50LmFkZGVkVHlwZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICBjb25zdCBjb3VudCA9IGF0dGFjaG1lbnQuYWRkZWRUeXBlcy5sZW5ndGhcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIDxUZXh0IGJvbGQ+e2NvdW50fTwvVGV4dD4gYWdlbnQge3BsdXJhbChjb3VudCwgJ3R5cGUnKX0gYXZhaWxhYmxlXG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncXVldWVkX2NvbW1hbmQnOiB7XG4gICAgICBjb25zdCB0ZXh0ID1cbiAgICAgICAgdHlwZW9mIGF0dGFjaG1lbnQucHJvbXB0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gYXR0YWNobWVudC5wcm9tcHRcbiAgICAgICAgICA6IGdldENvbnRlbnRUZXh0KGF0dGFjaG1lbnQucHJvbXB0KSB8fCAnJ1xuICAgICAgY29uc3QgaGFzSW1hZ2VzID1cbiAgICAgICAgYXR0YWNobWVudC5pbWFnZVBhc3RlSWRzICYmIGF0dGFjaG1lbnQuaW1hZ2VQYXN0ZUlkcy5sZW5ndGggPiAwXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICA8VXNlclRleHRNZXNzYWdlXG4gICAgICAgICAgICBhZGRNYXJnaW49e2FkZE1hcmdpbn1cbiAgICAgICAgICAgIHBhcmFtPXt7IHRleHQsIHR5cGU6ICd0ZXh0JyB9fVxuICAgICAgICAgICAgdmVyYm9zZT17dmVyYm9zZX1cbiAgICAgICAgICAgIGlzVHJhbnNjcmlwdE1vZGU9e2lzVHJhbnNjcmlwdE1vZGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7aGFzSW1hZ2VzICYmXG4gICAgICAgICAgICBhdHRhY2htZW50LmltYWdlUGFzdGVJZHM/Lm1hcChpZCA9PiAoXG4gICAgICAgICAgICAgIDxVc2VySW1hZ2VNZXNzYWdlIGtleT17aWR9IGltYWdlSWQ9e2lkfSAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvQm94PlxuICAgICAgKVxuICAgIH1cbiAgICBjYXNlICdwbGFuX2ZpbGVfcmVmZXJlbmNlJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lPlxuICAgICAgICAgIFBsYW4gZmlsZSByZWZlcmVuY2VkICh7Z2V0RGlzcGxheVBhdGgoYXR0YWNobWVudC5wbGFuRmlsZVBhdGgpfSlcbiAgICAgICAgPC9MaW5lPlxuICAgICAgKVxuICAgIGNhc2UgJ2ludm9rZWRfc2tpbGxzJzoge1xuICAgICAgaWYgKGF0dGFjaG1lbnQuc2tpbGxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgY29uc3Qgc2tpbGxOYW1lcyA9IGF0dGFjaG1lbnQuc2tpbGxzLm1hcChzID0+IHMubmFtZSkuam9pbignLCAnKVxuICAgICAgcmV0dXJuIDxMaW5lPlNraWxscyByZXN0b3JlZCAoe3NraWxsTmFtZXN9KTwvTGluZT5cbiAgICB9XG4gICAgY2FzZSAnZGlhZ25vc3RpY3MnOlxuICAgICAgcmV0dXJuIDxEaWFnbm9zdGljc0Rpc3BsYXkgYXR0YWNobWVudD17YXR0YWNobWVudH0gdmVyYm9zZT17dmVyYm9zZX0gLz5cbiAgICBjYXNlICdtY3BfcmVzb3VyY2UnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExpbmU+XG4gICAgICAgICAgUmVhZCBNQ1AgcmVzb3VyY2UgPFRleHQgYm9sZD57YXR0YWNobWVudC5uYW1lfTwvVGV4dD4gZnJvbXsnICd9XG4gICAgICAgICAge2F0dGFjaG1lbnQuc2VydmVyfVxuICAgICAgICA8L0xpbmU+XG4gICAgICApXG4gICAgY2FzZSAnY29tbWFuZF9wZXJtaXNzaW9ucyc6XG4gICAgICAvLyBUaGUgc2tpbGwgc3VjY2VzcyBtZXNzYWdlIGlzIHJlbmRlcmVkIGJ5IFNraWxsVG9vbCdzIHJlbmRlclRvb2xSZXN1bHRNZXNzYWdlLFxuICAgICAgLy8gc28gd2UgZG9uJ3QgcmVuZGVyIGFueXRoaW5nIGhlcmUgdG8gYXZvaWQgZHVwbGljYXRlIG1lc3NhZ2VzLlxuICAgICAgcmV0dXJuIG51bGxcbiAgICBjYXNlICdhc3luY19ob29rX3Jlc3BvbnNlJzoge1xuICAgICAgLy8gU2Vzc2lvblN0YXJ0IGhvb2sgY29tcGxldGlvbnMgYXJlIG9ubHkgc2hvd24gaW4gdmVyYm9zZSBtb2RlXG4gICAgICBpZiAoYXR0YWNobWVudC5ob29rRXZlbnQgPT09ICdTZXNzaW9uU3RhcnQnICYmICF2ZXJib3NlKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICAvLyBHZW5lcmFsbHkgaGlkZSBhc3luYyBob29rIGNvbXBsZXRpb24gbWVzc2FnZXMgdW5sZXNzIGluIHZlcmJvc2UgbW9kZVxuICAgICAgaWYgKCF2ZXJib3NlICYmICFpc1RyYW5zY3JpcHRNb2RlKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluZT5cbiAgICAgICAgICBBc3luYyBob29rIDxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuaG9va0V2ZW50fTwvVGV4dD4gY29tcGxldGVkXG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAnaG9va19ibG9ja2luZ19lcnJvcic6IHtcbiAgICAgIC8vIFN0b3AgaG9va3MgYXJlIHJlbmRlcmVkIGFzIGEgc3VtbWFyeSBpbiBTeXN0ZW1TdG9wSG9va1N1bW1hcnlNZXNzYWdlXG4gICAgICBpZiAoXG4gICAgICAgIGF0dGFjaG1lbnQuaG9va0V2ZW50ID09PSAnU3RvcCcgfHxcbiAgICAgICAgYXR0YWNobWVudC5ob29rRXZlbnQgPT09ICdTdWJhZ2VudFN0b3AnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIC8vIFNob3cgc3RkZXJyIHRvIHRoZSB1c2VyIHNvIHRoZXkgY2FuIHVuZGVyc3RhbmQgd2h5IHRoZSBob29rIGJsb2NrZWRcbiAgICAgIGNvbnN0IHN0ZGVyciA9IGF0dGFjaG1lbnQuYmxvY2tpbmdFcnJvci5ibG9ja2luZ0Vycm9yLnRyaW0oKVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8TGluZSBjb2xvcj1cImVycm9yXCI+XG4gICAgICAgICAgICB7YXR0YWNobWVudC5ob29rTmFtZX0gaG9vayByZXR1cm5lZCBibG9ja2luZyBlcnJvclxuICAgICAgICAgIDwvTGluZT5cbiAgICAgICAgICB7c3RkZXJyID8gPExpbmUgY29sb3I9XCJlcnJvclwiPntzdGRlcnJ9PC9MaW5lPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cbiAgICBjYXNlICdob29rX25vbl9ibG9ja2luZ19lcnJvcic6IHtcbiAgICAgIC8vIFN0b3AgaG9va3MgYXJlIHJlbmRlcmVkIGFzIGEgc3VtbWFyeSBpbiBTeXN0ZW1TdG9wSG9va1N1bW1hcnlNZXNzYWdlXG4gICAgICBpZiAoXG4gICAgICAgIGF0dGFjaG1lbnQuaG9va0V2ZW50ID09PSAnU3RvcCcgfHxcbiAgICAgICAgYXR0YWNobWVudC5ob29rRXZlbnQgPT09ICdTdWJhZ2VudFN0b3AnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIC8vIEZ1bGwgaG9vayBvdXRwdXQgaXMgbG9nZ2VkIHRvIGRlYnVnIGxvZyB2aWEgaG9va0V2ZW50cy50c1xuICAgICAgcmV0dXJuIDxMaW5lIGNvbG9yPVwiZXJyb3JcIj57YXR0YWNobWVudC5ob29rTmFtZX0gaG9vayBlcnJvcjwvTGluZT5cbiAgICB9XG4gICAgY2FzZSAnaG9va19lcnJvcl9kdXJpbmdfZXhlY3V0aW9uJzpcbiAgICAgIC8vIFN0b3AgaG9va3MgYXJlIHJlbmRlcmVkIGFzIGEgc3VtbWFyeSBpbiBTeXN0ZW1TdG9wSG9va1N1bW1hcnlNZXNzYWdlXG4gICAgICBpZiAoXG4gICAgICAgIGF0dGFjaG1lbnQuaG9va0V2ZW50ID09PSAnU3RvcCcgfHxcbiAgICAgICAgYXR0YWNobWVudC5ob29rRXZlbnQgPT09ICdTdWJhZ2VudFN0b3AnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIC8vIEZ1bGwgaG9vayBvdXRwdXQgaXMgbG9nZ2VkIHRvIGRlYnVnIGxvZyB2aWEgaG9va0V2ZW50cy50c1xuICAgICAgcmV0dXJuIDxMaW5lPnthdHRhY2htZW50Lmhvb2tOYW1lfSBob29rIHdhcm5pbmc8L0xpbmU+XG4gICAgY2FzZSAnaG9va19zdWNjZXNzJzpcbiAgICAgIC8vIEZ1bGwgaG9vayBvdXRwdXQgaXMgbG9nZ2VkIHRvIGRlYnVnIGxvZyB2aWEgaG9va0V2ZW50cy50c1xuICAgICAgcmV0dXJuIG51bGxcbiAgICBjYXNlICdob29rX3N0b3BwZWRfY29udGludWF0aW9uJzpcbiAgICAgIC8vIFN0b3AgaG9va3MgYXJlIHJlbmRlcmVkIGFzIGEgc3VtbWFyeSBpbiBTeXN0ZW1TdG9wSG9va1N1bW1hcnlNZXNzYWdlXG4gICAgICBpZiAoXG4gICAgICAgIGF0dGFjaG1lbnQuaG9va0V2ZW50ID09PSAnU3RvcCcgfHxcbiAgICAgICAgYXR0YWNobWVudC5ob29rRXZlbnQgPT09ICdTdWJhZ2VudFN0b3AnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMaW5lIGNvbG9yPVwid2FybmluZ1wiPlxuICAgICAgICAgIHthdHRhY2htZW50Lmhvb2tOYW1lfSBob29rIHN0b3BwZWQgY29udGludWF0aW9uOiB7YXR0YWNobWVudC5tZXNzYWdlfVxuICAgICAgICA8L0xpbmU+XG4gICAgICApXG4gICAgY2FzZSAnaG9va19zeXN0ZW1fbWVzc2FnZSc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TGluZT5cbiAgICAgICAgICB7YXR0YWNobWVudC5ob29rTmFtZX0gc2F5czoge2F0dGFjaG1lbnQuY29udGVudH1cbiAgICAgICAgPC9MaW5lPlxuICAgICAgKVxuICAgIGNhc2UgJ2hvb2tfcGVybWlzc2lvbl9kZWNpc2lvbic6IHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IGF0dGFjaG1lbnQuZGVjaXNpb24gPT09ICdhbGxvdycgPyAnQWxsb3dlZCcgOiAnRGVuaWVkJ1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPExpbmU+XG4gICAgICAgICAge2FjdGlvbn0gYnkgPFRleHQgYm9sZD57YXR0YWNobWVudC5ob29rRXZlbnR9PC9UZXh0PiBob29rXG4gICAgICAgIDwvTGluZT5cbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAndGFza19zdGF0dXMnOlxuICAgICAgcmV0dXJuIDxUYXNrU3RhdHVzTWVzc2FnZSBhdHRhY2htZW50PXthdHRhY2htZW50fSAvPlxuICAgIGNhc2UgJ3RlYW1tYXRlX3NodXRkb3duX2JhdGNoJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCb3hcbiAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1hcmdpblRvcD17MX1cbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JnfVxuICAgICAgICA+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+e0JMQUNLX0NJUkNMRX0gPC9UZXh0PlxuICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgICAge2F0dGFjaG1lbnQuY291bnR9IHtwbHVyYWwoYXR0YWNobWVudC5jb3VudCwgJ3RlYW1tYXRlJyl9IHNodXQgZG93blxuICAgICAgICAgICAgZ3JhY2VmdWxseVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICApXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEV4aGF1c3RpdmVuZXNzOiBldmVyeSB0eXBlIHJlYWNoaW5nIGhlcmUgbXVzdCBiZSBpbiBOVUxMX1JFTkRFUklOR19UWVBFUy5cbiAgICAgIC8vIElmIFRTIGVycm9ycywgYSBuZXcgQXR0YWNobWVudCB0eXBlIHdhcyBhZGRlZCB3aXRob3V0IGEgY2FzZSBhYm92ZSBBTkRcbiAgICAgIC8vIHdpdGhvdXQgYW4gZW50cnkgaW4gTlVMTF9SRU5ERVJJTkdfVFlQRVMg4oCUIGRlY2lkZTogcmVuZGVyIHNvbWV0aGluZyAoYWRkXG4gICAgICAvLyBhIGNhc2UpIG9yIHJlbmRlciBub3RoaW5nIChhZGQgdG8gdGhlIGFycmF5KS4gTWVzc2FnZXMudHN4IHByZS1maWx0ZXJzXG4gICAgICAvLyB0aGVzZSBzbyB0aGlzIGJyYW5jaCBpcyBkZWZlbnNlLWluLWRlcHRoIGZvciBvdGhlciByZW5kZXIgcGF0aHMuXG4gICAgICAvL1xuICAgICAgLy8gc2tpbGxfZGlzY292ZXJ5IGFuZCB0ZWFtbWF0ZV9tYWlsYm94IGFyZSBoYW5kbGVkIEJFRk9SRSB0aGUgc3dpdGNoIGluXG4gICAgICAvLyBydW50aW1lLWdhdGVkIGJsb2NrcyAoZmVhdHVyZSgpIC8gaXNBZ2VudFN3YXJtc0VuYWJsZWQoKSkgdGhhdCBUUyBjYW4ndFxuICAgICAgLy8gbmFycm93IHRocm91Z2gg4oCUIGV4Y2x1ZGVkIGhlcmUgdmlhIHR5cGUgdW5pb24gKGNvbXBpbGUtdGltZSBvbmx5LCBubyBlbWl0KS5cbiAgICAgIGF0dGFjaG1lbnQudHlwZSBzYXRpc2ZpZXNcbiAgICAgICAgfCBOdWxsUmVuZGVyaW5nQXR0YWNobWVudFR5cGVcbiAgICAgICAgfCAnc2tpbGxfZGlzY292ZXJ5J1xuICAgICAgICB8ICd0ZWFtbWF0ZV9tYWlsYm94J1xuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG50eXBlIFRhc2tTdGF0dXNBdHRhY2htZW50ID0gRXh0cmFjdDxBdHRhY2htZW50LCB7IHR5cGU6ICd0YXNrX3N0YXR1cycgfT5cblxuZnVuY3Rpb24gVGFza1N0YXR1c01lc3NhZ2Uoe1xuICBhdHRhY2htZW50LFxufToge1xuICBhdHRhY2htZW50OiBUYXNrU3RhdHVzQXR0YWNobWVudFxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIC8vIEZvciBhbnRzLCBraWxsZWQgdGFzayBzdGF0dXMgaXMgc2hvd24gaW4gdGhlIENvb3JkaW5hdG9yVGFza1BhbmVsLlxuICAvLyBEb24ndCByZW5kZXIgaXQgYWdhaW4gaW4gdGhlIGNoYXQuXG4gIGlmIChcImV4dGVybmFsXCIgPT09ICdhbnQnICYmIGF0dGFjaG1lbnQuc3RhdHVzID09PSAna2lsbGVkJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBPbmx5IGFjY2VzcyB0ZWFtbWF0ZS1zcGVjaWZpYyBjb2RlIHdoZW4gc3dhcm1zIGFyZSBlbmFibGVkLlxuICAvLyBUZWFtbWF0ZVRhc2tTdGF0dXMgc3Vic2NyaWJlcyB0byBBcHBTdGF0ZTsgYnkgZ2F0aW5nIHRoZSBtb3VudCB3ZVxuICAvLyBhdm9pZCBhZGRpbmcgYSBzdG9yZSBsaXN0ZW5lciBmb3IgZXZlcnkgbm9uLXRlYW1tYXRlIGF0dGFjaG1lbnQuXG4gIGlmIChpc0FnZW50U3dhcm1zRW5hYmxlZCgpICYmIGF0dGFjaG1lbnQudGFza1R5cGUgPT09ICdpbl9wcm9jZXNzX3RlYW1tYXRlJykge1xuICAgIHJldHVybiA8VGVhbW1hdGVUYXNrU3RhdHVzIGF0dGFjaG1lbnQ9e2F0dGFjaG1lbnR9IC8+XG4gIH1cblxuICByZXR1cm4gPEdlbmVyaWNUYXNrU3RhdHVzIGF0dGFjaG1lbnQ9e2F0dGFjaG1lbnR9IC8+XG59XG5cbmZ1bmN0aW9uIEdlbmVyaWNUYXNrU3RhdHVzKHtcbiAgYXR0YWNobWVudCxcbn06IHtcbiAgYXR0YWNobWVudDogVGFza1N0YXR1c0F0dGFjaG1lbnRcbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBiZyA9IHVzZVNlbGVjdGVkTWVzc2FnZUJnKClcbiAgY29uc3Qgc3RhdHVzVGV4dCA9XG4gICAgYXR0YWNobWVudC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXG4gICAgICA/ICdjb21wbGV0ZWQgaW4gYmFja2dyb3VuZCdcbiAgICAgIDogYXR0YWNobWVudC5zdGF0dXMgPT09ICdraWxsZWQnXG4gICAgICAgID8gJ3N0b3BwZWQnXG4gICAgICAgIDogYXR0YWNobWVudC5zdGF0dXMgPT09ICdydW5uaW5nJ1xuICAgICAgICAgID8gJ3N0aWxsIHJ1bm5pbmcgaW4gYmFja2dyb3VuZCdcbiAgICAgICAgICA6IGF0dGFjaG1lbnQuc3RhdHVzXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCIgd2lkdGg9XCIxMDAlXCIgbWFyZ2luVG9wPXsxfSBiYWNrZ3JvdW5kQ29sb3I9e2JnfT5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPntCTEFDS19DSVJDTEV9IDwvVGV4dD5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICBUYXNrICZxdW90OzxUZXh0IGJvbGQ+e2F0dGFjaG1lbnQuZGVzY3JpcHRpb259PC9UZXh0PiZxdW90OyB7c3RhdHVzVGV4dH1cbiAgICAgIDwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxufVxuXG5mdW5jdGlvbiBUZWFtbWF0ZVRhc2tTdGF0dXMoe1xuICBhdHRhY2htZW50LFxufToge1xuICBhdHRhY2htZW50OiBUYXNrU3RhdHVzQXR0YWNobWVudFxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGJnID0gdXNlU2VsZWN0ZWRNZXNzYWdlQmcoKVxuICAvLyBOYXJyb3cgc2VsZWN0b3I6IG9ubHkgcmUtcmVuZGVyIHdoZW4gdGhpcyBzcGVjaWZpYyB0YXNrIGNoYW5nZXMuXG4gIGNvbnN0IHRhc2sgPSB1c2VBcHBTdGF0ZShzID0+IHMudGFza3NbYXR0YWNobWVudC50YXNrSWRdKVxuICBpZiAodGFzaz8udHlwZSAhPT0gJ2luX3Byb2Nlc3NfdGVhbW1hdGUnKSB7XG4gICAgLy8gRmFsbCB0aHJvdWdoIHRvIGdlbmVyaWMgcmVuZGVyaW5nICh0YXNrIG5vdCB5ZXQgaW4gc3RvcmUsIG9yIHdyb25nIHR5cGUpXG4gICAgcmV0dXJuIDxHZW5lcmljVGFza1N0YXR1cyBhdHRhY2htZW50PXthdHRhY2htZW50fSAvPlxuICB9XG4gIGNvbnN0IGFnZW50Q29sb3IgPSB0b0lua0NvbG9yKHRhc2suaWRlbnRpdHkuY29sb3IpXG4gIGNvbnN0IHN0YXR1c1RleHQgPVxuICAgIGF0dGFjaG1lbnQuc3RhdHVzID09PSAnY29tcGxldGVkJ1xuICAgICAgPyAnc2h1dCBkb3duIGdyYWNlZnVsbHknXG4gICAgICA6IGF0dGFjaG1lbnQuc3RhdHVzXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCIgd2lkdGg9XCIxMDAlXCIgbWFyZ2luVG9wPXsxfSBiYWNrZ3JvdW5kQ29sb3I9e2JnfT5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPntCTEFDS19DSVJDTEV9IDwvVGV4dD5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICBUZWFtbWF0ZXsnICd9XG4gICAgICAgIDxUZXh0IGNvbG9yPXthZ2VudENvbG9yfSBib2xkIGRpbUNvbG9yPXtmYWxzZX0+XG4gICAgICAgICAgQHt0YXNrLmlkZW50aXR5LmFnZW50TmFtZX1cbiAgICAgICAgPC9UZXh0PnsnICd9XG4gICAgICAgIHtzdGF0dXNUZXh0fVxuICAgICAgPC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4vLyBXZSBhbGxvdyBzZXR0aW5nIGRpbUNvbG9yIHRvIGZhbHNlIGhlcmUgdG8gaGVscCB3b3JrIGFyb3VuZCB0aGUgZGltLWJvbGQgYnVnLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2NoYWxrL2NoYWxrL2lzc3Vlcy8yOTBcbmZ1bmN0aW9uIExpbmUoe1xuICBkaW1Db2xvciA9IHRydWUsXG4gIGNoaWxkcmVuLFxuICBjb2xvcixcbn06IHtcbiAgZGltQ29sb3I/OiBib29sZWFuXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgY29sb3I/OiBrZXlvZiBUaGVtZVxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGJnID0gdXNlU2VsZWN0ZWRNZXNzYWdlQmcoKVxuICByZXR1cm4gKFxuICAgIDxCb3ggYmFja2dyb3VuZENvbG9yPXtiZ30+XG4gICAgICA8TWVzc2FnZVJlc3BvbnNlPlxuICAgICAgICA8VGV4dCBjb2xvcj17Y29sb3J9IGRpbUNvbG9yPXtkaW1Db2xvcn0gd3JhcD1cIndyYXBcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvTWVzc2FnZVJlc3BvbnNlPlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBLE9BQU9BLEtBQUssSUFBSUMsT0FBTyxRQUFRLE9BQU87QUFDdEMsU0FBU0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQzlDLGNBQWNDLFVBQVUsUUFBUSwwQkFBMEI7QUFDMUQsY0FBY0MsMkJBQTJCLFFBQVEsK0JBQStCO0FBQ2hGLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0MsY0FBYyxRQUFR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
535
+ }
@@ -480,5 +480,4 @@ export function CollapsedReadSearchContent({
480
480
  {formatSecondsShort(message.hookTotalMs)})
481
481
  </Text>}
482
482
  </Box>;
483
- }
484
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZWF0dXJlIiwiYmFzZW5hbWUiLCJSZWFjdCIsInVzZVJlZiIsInVzZU1pbkRpc3BsYXlUaW1lIiwiQW5zaSIsIkJveCIsIlRleHQiLCJ1c2VUaGVtZSIsImZpbmRUb29sQnlOYW1lIiwiVG9vbHMiLCJnZXRSZXBsUHJpbWl0aXZlVG9vbHMiLCJDb2xsYXBzZWRSZWFkU2VhcmNoR3JvdXAiLCJOb3JtYWxpemVkQXNzaXN0YW50TWVzc2FnZSIsInVuaXEiLCJnZXRUb29sVXNlSWRzRnJvbUNvbGxhcHNlZEdyb3VwIiwiZ2V0RGlzcGxheVBhdGgiLCJmb3JtYXREdXJhdGlvbiIsImZvcm1hdFNlY29uZHNTaG9ydCIsImlzRnVsbHNjcmVlbkVudkVuYWJsZWQiLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiVGhlbWVOYW1lIiwiQ3RybE9Ub0V4cGFuZCIsInVzZVNlbGVjdGVkTWVzc2FnZUJnIiwiUHJCYWRnZSIsIlRvb2xVc2VMb2FkZXIiLCJ0ZWFtTWVtQ29sbGFwc2VkIiwicmVxdWlyZSIsIk1JTl9ISU5UX0RJU1BMQVlfTVMiLCJQcm9wcyIsIm1lc3NhZ2UiLCJpblByb2dyZXNzVG9vbFVzZUlEcyIsIlNldCIsInNob3VsZEFuaW1hdGUiLCJ2ZXJib3NlIiwidG9vbHMiLCJsb29rdXBzIiwiUmV0dXJuVHlwZSIsImlzQWN0aXZlR3JvdXAiLCJWZXJib3NlVG9vbFVzZSIsInQwIiwiJCIsIl9jIiwiY29udGVudCIsInRoZW1lIiwiYmciLCJ0MSIsInQyIiwiaWQiLCJpbnB1dCIsIm5hbWUiLCJTeW1ib2wiLCJmb3IiLCJiYjAiLCJ0b29sIiwidDMiLCJyZXNvbHZlZFRvb2xVc2VJRHMiLCJoYXMiLCJpc1Jlc29sdmVkIiwidDQiLCJlcnJvcmVkVG9vbFVzZUlEcyIsImlzRXJyb3IiLCJ0NSIsImlzSW5Qcm9ncmVzcyIsInJlc3VsdE1zZyIsInRvb2xSZXN1bHRCeVRvb2xVc2VJRCIsImdldCIsInJhd1Rvb2xSZXN1bHQiLCJ0eXBlIiwidG9vbFVzZVJlc3VsdCIsInVuZGVmaW5lZCIsInBhcnNlZE91dHB1dCIsIm91dHB1dFNjaGVtYSIsInNhZmVQYXJzZSIsInRvb2xSZXN1bHQiLCJzdWNjZXNzIiwiZGF0YSIsInBhcnNlZElucHV0IiwiaW5wdXRTY2hlbWEiLCJ1c2VyRmFjaW5nTmFtZSIsInRvb2xVc2VNZXNzYWdlIiwicmVuZGVyVG9vbFVzZU1lc3NhZ2UiLCJ0NiIsInQ3IiwidDgiLCJyZW5kZXJUb29sVXNlVGFnIiwicmVuZGVyVG9vbFJlc3VsdE1lc3NhZ2UiLCJDb2xsYXBzZWRSZWFkU2VhcmNoQ29udGVudCIsIlJlYWN0Tm9kZSIsInNlYXJjaENvdW50IiwicmF3U2VhcmNoQ291bnQiLCJyZWFkQ291bnQiLCJyYXdSZWFkQ291bnQiLCJsaXN0Q291bnQiLCJyYXdMaXN0Q291bnQiLCJyZXBsQ291bnQiLCJtZW1vcnlTZWFyY2hDb3VudCIsIm1lbW9yeVJlYWRDb3VudCIsIm1lbW9yeVdyaXRlQ291bnQiLCJtZXNzYWdlcyIsImdyb3VwTWVzc2FnZXMiLCJ0b29sVXNlSWRzIiwiYW55RXJyb3IiLCJzb21lIiwiaGFzTWVtb3J5T3BzIiwiaGFzVGVhbU1lbW9yeU9wcyIsImNoZWNrSGFzVGVhbU1lbU9wcyIsIm1heFJlYWRDb3VudFJlZiIsIm1heFNlYXJjaENvdW50UmVmIiwibWF4TGlzdENvdW50UmVmIiwibWF4TWNwQ291bnRSZWYiLCJtYXhCYXNoQ291bnRSZWYiLCJjdXJyZW50IiwiTWF0aCIsIm1heCIsIm1jcENhbGxDb3VudCIsImJhc2hDb3VudCIsImdpdE9wQmFzaENvdW50IiwiaGFzTm9uTWVtb3J5T3BzIiwicmVhZFBhdGhzIiwicmVhZEZpbGVQYXRocyIsInNlYXJjaEFyZ3MiLCJpbmNvbWluZ0hpbnQiLCJsYXRlc3REaXNwbGF5SGludCIsImxhc3RTZWFyY2hSYXciLCJhdCIsImxhc3RTZWFyY2giLCJsYXN0UmVhZCIsImxhdGVzdCIsInByb2dyZXNzTWVzc2FnZXNCeVRvb2xVc2VJRCIsInBoYXNlIiwidG9vbElucHV0IiwiY29tbWFuZCIsInBhdHRlcm4iLCJmaWxlX3BhdGgiLCJ0b29sTmFtZSIsImRpc3BsYXllZEhpbnQiLCJ0b29sVXNlcyIsIm1zZyIsInB1c2giLCJtYXAiLCJob29rSW5mb3MiLCJsZW5ndGgiLCJob29rQ291bnQiLCJob29rVG90YWxNcyIsImluZm8iLCJpZHgiLCJkdXJhdGlvbk1zIiwicmVsZXZhbnRNZW1vcmllcyIsIm0iLCJwYXRoIiwic2hlbGxQcm9ncmVzc1N1ZmZpeCIsImVsYXBzZWQiLCJsaW5lcyIsImVsYXBzZWRUaW1lU2Vjb25kcyIsInRvdGFsTGluZXMiLCJ0aW1lIiwibm9uTWVtUGFydHMiLCJwdXNoUGFydCIsImtleSIsInZlcmIiLCJib2R5IiwiaXNGaXJzdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjb21taXRzIiwiYnlLaW5kIiwiY29tbWl0dGVkIiwiYW1lbmRlZCIsImtpbmQiLCJjb25zdCIsInNoYXMiLCJmaWx0ZXIiLCJjIiwic2hhIiwiam9pbiIsInB1c2hlcyIsImJyYW5jaGVzIiwicCIsImJyYW5jaCIsImJ5QWN0aW9uIiwibWVyZ2VkIiwicmViYXNlZCIsImIiLCJhY3Rpb24iLCJyZWYiLCJwcnMiLCJ2ZXJicyIsImNyZWF0ZWQiLCJlZGl0ZWQiLCJjb21tZW50ZWQiLCJjbG9zZWQiLCJyZWFkeSIsInByIiwibnVtYmVyIiwidXJsIiwic2VhcmNoVmVyYiIsInJlYWRWZXJiIiwibGlzdFZlcmIiLCJyZXBsVmVyYiIsInNlcnZlckxhYmVsIiwibWNwU2VydmVyTmFtZXMiLCJuIiwicmVwbGFjZSIsImhhc1ByZWNlZGluZ05vbk1lbSIsIm1lbVBhcnRzIiwiVGVhbU1lbUNvdW50UGFydHMiLCJoYXNQcmVjZWRpbmdQYXJ0cyIsInNwbGl0IiwibGluZSIsImkiLCJhcnIiXSwic291cmNlcyI6WyJDb2xsYXBzZWRSZWFkU2VhcmNoQ29udGVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmVhdHVyZSB9IGZyb20gJ2J1bjpidW5kbGUnXG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VNaW5EaXNwbGF5VGltZSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZU1pbkRpc3BsYXlUaW1lLmpzJ1xuaW1wb3J0IHsgQW5zaSwgQm94LCBUZXh0LCB1c2VUaGVtZSB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IGZpbmRUb29sQnlOYW1lLCB0eXBlIFRvb2xzIH0gZnJvbSAnLi4vLi4vVG9vbC5qcydcbmltcG9ydCB7IGdldFJlcGxQcmltaXRpdmVUb29scyB9IGZyb20gJy4uLy4uL3Rvb2xzL1JFUExUb29sL3ByaW1pdGl2ZVRvb2xzLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBDb2xsYXBzZWRSZWFkU2VhcmNoR3JvdXAsXG4gIE5vcm1hbGl6ZWRBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi90eXBlcy9tZXNzYWdlLmpzJ1xuaW1wb3J0IHsgdW5pcSB9IGZyb20gJy4uLy4uL3V0aWxzL2FycmF5LmpzJ1xuaW1wb3J0IHsgZ2V0VG9vbFVzZUlkc0Zyb21Db2xsYXBzZWRHcm91cCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbGxhcHNlUmVhZFNlYXJjaC5qcydcbmltcG9ydCB7IGdldERpc3BsYXlQYXRoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcydcbmltcG9ydCB7IGZvcm1hdER1cmF0aW9uLCBmb3JtYXRTZWNvbmRzU2hvcnQgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtYXQuanMnXG5pbXBvcnQgeyBpc0Z1bGxzY3JlZW5FbnZFbmFibGVkIH0gZnJvbSAnLi4vLi4vdXRpbHMvZnVsbHNjcmVlbi5qcydcbmltcG9ydCB0eXBlIHsgYnVpbGRNZXNzYWdlTG9va3VwcyB9IGZyb20gJy4uLy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZU5hbWUgfSBmcm9tICcuLi8uLi91dGlscy90aGVtZS5qcydcbmltcG9ydCB7IEN0cmxPVG9FeHBhbmQgfSBmcm9tICcuLi9DdHJsT1RvRXhwYW5kLmpzJ1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRNZXNzYWdlQmcgfSBmcm9tICcuLi9tZXNzYWdlQWN0aW9ucy5qcydcbmltcG9ydCB7IFByQmFkZ2UgfSBmcm9tICcuLi9QckJhZGdlLmpzJ1xuaW1wb3J0IHsgVG9vbFVzZUxvYWRlciB9IGZyb20gJy4uL1Rvb2xVc2VMb2FkZXIuanMnXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IHRlYW1NZW1Db2xsYXBzZWQgPSBmZWF0dXJlKCdURUFNTUVNJylcbiAgPyAocmVxdWlyZSgnLi90ZWFtTWVtQ29sbGFwc2VkLmpzJykgYXMgdHlwZW9mIGltcG9ydCgnLi90ZWFtTWVtQ29sbGFwc2VkLmpzJykpXG4gIDogbnVsbFxuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5cbi8vIEhvbGQgZWFjaCDipL8gaGludCBmb3IgYSBtaW5pbXVtIGR1cmF0aW9uIHNvIGZhc3QtY29tcGxldGluZyB0b29sIGNhbGxzXG4vLyAoYmFzaCBjb21tYW5kcywgZmlsZSByZWFkcywgc2VhcmNoIHBhdHRlcm5zKSBhcmUgYWN0dWFsbHkgcmVhZGFibGUgaW5zdGVhZFxuLy8gb2YgZmxpY2tlcmluZyBwYXN0IGluIGEgc2luZ2xlIGZyYW1lLlxuY29uc3QgTUlOX0hJTlRfRElTUExBWV9NUyA9IDcwMFxuXG50eXBlIFByb3BzID0ge1xuICBtZXNzYWdlOiBDb2xsYXBzZWRSZWFkU2VhcmNoR3JvdXBcbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+XG4gIHNob3VsZEFuaW1hdGU6IGJvb2xlYW5cbiAgdmVyYm9zZTogYm9vbGVhblxuICB0b29sczogVG9vbHNcbiAgbG9va3VwczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRNZXNzYWdlTG9va3Vwcz5cbiAgLyoqIFRydWUgaWYgdGhpcyBpcyB0aGUgY3VycmVudGx5IGFjdGl2ZSBjb2xsYXBzZWQgZ3JvdXAgKGxhc3Qgb25lLCBzdGlsbCBsb2FkaW5nKSAqL1xuICBpc0FjdGl2ZUdyb3VwPzogYm9vbGVhblxufVxuXG4vKiogUmVuZGVyIGEgc2luZ2xlIHRvb2wgdXNlIGluIHZlcmJvc2UgbW9kZSAqL1xuZnVuY3Rpb24gVmVyYm9zZVRvb2xVc2Uoe1xuICBjb250ZW50LFxuICB0b29scyxcbiAgbG9va3VwcyxcbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHMsXG4gIHNob3VsZEFuaW1hdGUsXG4gIHRoZW1lLFxufToge1xuICBjb250ZW50OiB7IHR5cGU6ICd0b29sX3VzZSc7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgaW5wdXQ6IHVua25vd24gfVxuICB0b29sczogVG9vbHNcbiAgbG9va3VwczogUmV0dXJuVHlwZTx0eXBlb2YgYnVpbGRNZXNzYWdlTG9va3Vwcz5cbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+XG4gIHNob3VsZEFuaW1hdGU6IGJvb2xlYW5cbiAgdGhlbWU6IFRoZW1lTmFtZVxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGJnID0gdXNlU2VsZWN0ZWRNZXNzYWdlQmcoKVxuICAvLyBTYW1lIFJFUEwtcHJpbWl0aXZlIGZhbGxiYWNrIGFzIGdldFRvb2xTZWFyY2hPclJlYWRJbmZvIOKAlCBSRVBMIG1vZGUgc3RyaXBzXG4gIC8vIHRoZXNlIGZyb20gdGhlIGV4ZWN1dGlvbiB0b29scyBsaXN0LCBidXQgdmlydHVhbCBtZXNzYWdlcyBzdGlsbCBuZWVkIHRoZW1cbiAgLy8gdG8gcmVuZGVyIGluIHZlcmJvc2UgbW9kZS5cbiAgY29uc3QgdG9vbCA9XG4gICAgZmluZFRvb2xCeU5hbWUodG9vbHMsIGNvbnRlbnQubmFtZSkgPz9cbiAgICBmaW5kVG9vbEJ5TmFtZShnZXRSZXBsUHJpbWl0aXZlVG9vbHMoKSwgY29udGVudC5uYW1lKVxuICBpZiAoIXRvb2wpIHJldHVybiBudWxsXG5cbiAgY29uc3QgaXNSZXNvbHZlZCA9IGxvb2t1cHMucmVzb2x2ZWRUb29sVXNlSURzLmhhcyhjb250ZW50LmlkKVxuICBjb25zdCBpc0Vycm9yID0gbG9va3Vwcy5lcnJvcmVkVG9vbFVzZUlEcy5oYXMoY29udGVudC5pZClcbiAgY29uc3QgaXNJblByb2dyZXNzID0gaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuaGFzKGNvbnRlbnQuaWQpXG5cbiAgY29uc3QgcmVzdWx0TXNnID0gbG9va3Vwcy50b29sUmVzdWx0QnlUb29sVXNlSUQuZ2V0KGNvbnRlbnQuaWQpXG4gIGNvbnN0IHJhd1Rvb2xSZXN1bHQgPVxuICAgIHJlc3VsdE1zZz8udHlwZSA9PT0gJ3VzZXInID8gcmVzdWx0TXNnLnRvb2xVc2VSZXN1bHQgOiB1bmRlZmluZWRcbiAgY29uc3QgcGFyc2VkT3V0cHV0ID0gdG9vbC5vdXRwdXRTY2hlbWE/LnNhZmVQYXJzZShyYXdUb29sUmVzdWx0KVxuICBjb25zdCB0b29sUmVzdWx0ID0gcGFyc2VkT3V0cHV0Py5zdWNjZXNzID8gcGFyc2VkT3V0cHV0LmRhdGEgOiB1bmRlZmluZWRcblxuICBjb25zdCBwYXJzZWRJbnB1dCA9IHRvb2wuaW5wdXRTY2hlbWEuc2FmZVBhcnNlKGNvbnRlbnQuaW5wdXQpXG4gIGNvbnN0IGlucHV0ID0gcGFyc2VkSW5wdXQuc3VjY2VzcyA/IHBhcnNlZElucHV0LmRhdGEgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlckZhY2luZ05hbWUgPSB0b29sLnVzZXJGYWNpbmdOYW1lKGlucHV0KVxuICBjb25zdCB0b29sVXNlTWVzc2FnZSA9IGlucHV0XG4gICAgPyB0b29sLnJlbmRlclRvb2xVc2VNZXNzYWdlKGlucHV0LCB7IHRoZW1lLCB2ZXJib3NlOiB0cnVlIH0pXG4gICAgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICBrZXk9e2NvbnRlbnQuaWR9XG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIG1hcmdpblRvcD17MX1cbiAgICAgIGJhY2tncm91bmRDb2xvcj17Ymd9XG4gICAgPlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCI+XG4gICAgICAgIDxUb29sVXNlTG9hZGVyXG4gICAgICAgICAgc2hvdWxkQW5pbWF0ZT17c2hvdWxkQW5pbWF0ZSAmJiBpc0luUHJvZ3Jlc3N9XG4gICAgICAgICAgaXNVbnJlc29sdmVkPXshaXNSZXNvbHZlZH1cbiAgICAgICAgICBpc0Vycm9yPXtpc0Vycm9yfVxuICAgICAgICAvPlxuICAgICAgICA8VGV4dD5cbiAgICAgICAgICA8VGV4dCBib2xkPnt1c2VyRmFjaW5nTmFtZX08L1RleHQ+XG4gICAgICAgICAge3Rvb2xVc2VNZXNzYWdlICYmIDxUZXh0Pih7dG9vbFVzZU1lc3NhZ2V9KTwvVGV4dD59XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICAge2lucHV0ICYmIHRvb2wucmVuZGVyVG9vbFVzZVRhZz8uKGlucHV0KX1cbiAgICAgIDwvQm94PlxuICAgICAge2lzUmVzb2x2ZWQgJiYgIWlzRXJyb3IgJiYgdG9vbFJlc3VsdCAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgPEJveD5cbiAgICAgICAgICB7dG9vbC5yZW5kZXJUb29sUmVzdWx0TWVzc2FnZT8uKHRvb2xSZXN1bHQsIFtdLCB7XG4gICAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICAgICAgdG9vbHMsXG4gICAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9Cb3g+XG4gICAgICApfVxuICAgIDwvQm94PlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDb2xsYXBzZWRSZWFkU2VhcmNoQ29udGVudCh7XG4gIG1lc3NhZ2UsXG4gIGluUHJvZ3Jlc3NUb29sVXNlSURzLFxuICBzaG91bGRBbmltYXRlLFxuICB2ZXJib3NlLFxuICB0b29scyxcbiAgbG9va3VwcyxcbiAgaXNBY3RpdmVHcm91cCxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgYmcgPSB1c2VTZWxlY3RlZE1lc3NhZ2VCZygpXG4gIGNvbnN0IHtcbiAgICBzZWFyY2hDb3VudDogcmF3U2VhcmNoQ291bnQsXG4gICAgcmVhZENvdW50OiByYXdSZWFkQ291bnQsXG4gICAgbGlzdENvdW50OiByYXdMaXN0Q291bnQsXG4gICAgcmVwbENvdW50LFxuICAgIG1lbW9yeVNlYXJjaENvdW50LFxuICAgIG1lbW9yeVJlYWRDb3VudCxcbiAgICBtZW1vcnlXcml0ZUNvdW50LFxuICAgIG1lc3NhZ2VzOiBncm91cE1lc3NhZ2VzLFxuICB9ID0gbWVzc2FnZVxuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCB0b29sVXNlSWRzID0gZ2V0VG9vbFVzZUlkc0Zyb21Db2xsYXBzZWRHcm91cChtZXNzYWdlKVxuICBjb25zdCBhbnlFcnJvciA9IHRvb2xVc2VJZHMuc29tZShpZCA9PiBsb29rdXBzLmVycm9yZWRUb29sVXNlSURzLmhhcyhpZCkpXG4gIGNvbnN0IGhhc01lbW9yeU9wcyA9XG4gICAgbWVtb3J5U2VhcmNoQ291bnQgPiAwIHx8IG1lbW9yeVJlYWRDb3VudCA+IDAgfHwgbWVtb3J5V3JpdGVDb3VudCA+IDBcbiAgY29uc3QgaGFzVGVhbU1lbW9yeU9wcyA9IGZlYXR1cmUoJ1RFQU1NRU0nKVxuICAgID8gdGVhbU1lbUNvbGxhcHNlZCEuY2hlY2tIYXNUZWFtTWVtT3BzKG1lc3NhZ2UpXG4gICAgOiBmYWxzZVxuXG4gIC8vIFRyYWNrIHRoZSBtYXggc2VlbiBjb3VudHMgc28gdGhleSBvbmx5IGV2ZXIgaW5jcmVhc2UuIFRoZSBkZWJvdW5jZSB0aW1lclxuICAvLyBjYXVzZXMgZXh0cmEgcmUtcmVuZGVycyBhdCBhcmJpdHJhcnkgdGltZXM7IGR1cmluZyBhIGJyaWVmIFwiaW52aXNpYmxlIHdpbmRvd1wiXG4gIC8vIGluIHRoZSBzdHJlYW1pbmcgZXhlY3V0b3IgdGhlIGdyb3VwIGNvdW50IGNhbiBkaXAsIHdoaWNoIGNhdXNlcyBqaXR0ZXIuXG4gIGNvbnN0IG1heFJlYWRDb3VudFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBtYXhTZWFyY2hDb3VudFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBtYXhMaXN0Q291bnRSZWYgPSB1c2VSZWYoMClcbiAgY29uc3QgbWF4TWNwQ291bnRSZWYgPSB1c2VSZWYoMClcbiAgY29uc3QgbWF4QmFzaENvdW50UmVmID0gdXNlUmVmKDApXG4gIG1heFJlYWRDb3VudFJlZi5jdXJyZW50ID0gTWF0aC5tYXgobWF4UmVhZENvdW50UmVmLmN1cnJlbnQsIHJhd1JlYWRDb3VudClcbiAgbWF4U2VhcmNoQ291bnRSZWYuY3VycmVudCA9IE1hdGgubWF4KFxuICAgIG1heFNlYXJjaENvdW50UmVmLmN1cnJlbnQsXG4gICAgcmF3U2VhcmNoQ291bnQsXG4gIClcbiAgbWF4TGlzdENvdW50UmVmLmN1cnJlbnQgPSBNYXRoLm1heChtYXhMaXN0Q291bnRSZWYuY3VycmVudCwgcmF3TGlzdENvdW50KVxuICBtYXhNY3BDb3VudFJlZi5jdXJyZW50ID0gTWF0aC5tYXgoXG4gICAgbWF4TWNwQ291bnRSZWYuY3VycmVudCxcbiAgICBtZXNzYWdlLm1jcENhbGxDb3VudCA/PyAwLFxuICApXG4gIG1heEJhc2hDb3VudFJlZi5jdXJyZW50ID0gTWF0aC5tYXgoXG4gICAgbWF4QmFzaENvdW50UmVmLmN1cnJlbnQsXG4gICAgbWVzc2FnZS5iYXNoQ291bnQgPz8gMCxcbiAgKVxuICBjb25zdCByZWFkQ291bnQgPSBtYXhSZWFkQ291bnRSZWYuY3VycmVudFxuICBjb25zdCBzZWFyY2hDb3VudCA9IG1heFNlYXJjaENvdW50UmVmLmN1cnJlbnRcbiAgY29uc3QgbGlzdENvdW50ID0gbWF4TGlzdENvdW50UmVmLmN1cnJlbnRcbiAgY29uc3QgbWNwQ2FsbENvdW50ID0gbWF4TWNwQ291bnRSZWYuY3VycmVudFxuICAvLyBTdWJ0cmFjdCBjb21tYW5kcyBzdXJmYWNlZCBhcyBcIkNvbW1pdHRlZCDigKZcIiAvIFwiQ3JlYXRlZCBQUiDigKZcIiBzbyB0aGVcbiAgLy8gc2FtZSBjb21tYW5kIGlzbid0IGNvdW50ZWQgdHdpY2UuIGdpdE9wQmFzaENvdW50IGlzIHJlYWQgbGl2ZSAobm8gbWF4LXJlZlxuICAvLyBuZWVkZWQg4oCUIGl0J3MgMCB1bnRpbCByZXN1bHRzIGFycml2ZSwgdGhlbiBvbmx5IGdyb3dzKS5cbiAgY29uc3QgZ2l0T3BCYXNoQ291bnQgPSBtZXNzYWdlLmdpdE9wQmFzaENvdW50ID8/IDBcbiAgY29uc3QgYmFzaENvdW50ID0gaXNGdWxsc2NyZWVuRW52RW5hYmxlZCgpXG4gICAgPyBNYXRoLm1heCgwLCBtYXhCYXNoQ291bnRSZWYuY3VycmVudCAtIGdpdE9wQmFzaENvdW50KVxuICAgIDogMFxuXG4gIGNvbnN0IGhhc05vbk1lbW9yeU9wcyA9XG4gICAgc2VhcmNoQ291bnQgPiAwIHx8XG4gICAgcmVhZENvdW50ID4gMCB8fFxuICAgIGxpc3RDb3VudCA+IDAgfHxcbiAgICByZXBsQ291bnQgPiAwIHx8XG4gICAgbWNwQ2FsbENvdW50ID4gMCB8fFxuICAgIGJhc2hDb3VudCA+IDAgfHxcbiAgICBnaXRPcEJhc2hDb3VudCA+IDBcblxuICBjb25zdCByZWFkUGF0aHMgPSBtZXNzYWdlLnJlYWRGaWxlUGF0aHNcbiAgY29uc3Qgc2VhcmNoQXJncyA9IG1lc3NhZ2Uuc2VhcmNoQXJnc1xuICBsZXQgaW5jb21pbmdIaW50ID0gbWVzc2FnZS5sYXRlc3REaXNwbGF5SGludFxuICBpZiAoaW5jb21pbmdIaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBsYXN0U2VhcmNoUmF3ID0gc2VhcmNoQXJncz8uYXQoLTEpXG4gICAgY29uc3QgbGFzdFNlYXJjaCA9XG4gICAgICBsYXN0U2VhcmNoUmF3ICE9PSB1bmRlZmluZWQgPyBgXCIke2xhc3RTZWFyY2hSYXd9XCJgIDogdW5kZWZpbmVkXG4gICAgY29uc3QgbGFzdFJlYWQgPSByZWFkUGF0aHM/LmF0KC0xKVxuICAgIGluY29taW5nSGludCA9XG4gICAgICBsYXN0UmVhZCAhPT0gdW5kZWZpbmVkID8gZ2V0RGlzcGxheVBhdGgobGFzdFJlYWQpIDogbGFzdFNlYXJjaFxuICB9XG5cbiAgLy8gQWN0aXZlIFJFUEwgY2FsbHMgZW1pdCByZXBsX3Rvb2xfY2FsbCBwcm9ncmVzcyB3aXRoIHRoZSBjdXJyZW50IGlubmVyXG4gIC8vIHRvb2wncyBuYW1lK2lucHV0LiBWaXJ0dWFsIG1lc3NhZ2VzIGRvbid0IGFycml2ZSB1bnRpbCBSRVBMIGNvbXBsZXRlcyxcbiAgLy8gc28gdGhpcyBpcyB0aGUgb25seSBzb3VyY2Ugb2YgYSBsaXZlIGhpbnQgZHVyaW5nIGV4ZWN1dGlvbi5cbiAgaWYgKGlzQWN0aXZlR3JvdXApIHtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRvb2xVc2VJZHMpIHtcbiAgICAgIGlmICghaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuaGFzKGlkKSkgY29udGludWVcbiAgICAgIGNvbnN0IGxhdGVzdCA9IGxvb2t1cHMucHJvZ3Jlc3NNZXNzYWdlc0J5VG9vbFVzZUlELmdldChpZCk/LmF0KC0xKT8uZGF0YVxuICAgICAgaWYgKGxhdGVzdD8udHlwZSA9PT0gJ3JlcGxfdG9vbF9jYWxsJyAmJiBsYXRlc3QucGhhc2UgPT09ICdzdGFydCcpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBsYXRlc3QudG9vbElucHV0IGFzIHtcbiAgICAgICAgICBjb21tYW5kPzogc3RyaW5nXG4gICAgICAgICAgcGF0dGVybj86IHN0cmluZ1xuICAgICAgICAgIGZpbGVfcGF0aD86IHN0cmluZ1xuICAgICAgICB9XG4gICAgICAgIGluY29taW5nSGludCA9XG4gICAgICAgICAgaW5wdXQuZmlsZV9wYXRoID8/XG4gICAgICAgICAgKGlucHV0LnBhdHRlcm4gPyBgXCIke2lucHV0LnBhdHRlcm59XCJgIDogdW5kZWZpbmVkKSA/P1xuICAgICAgICAgIGlucHV0LmNvbW1hbmQgPz9cbiAgICAgICAgICBsYXRlc3QudG9vbE5hbWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNwbGF5ZWRIaW50ID0gdXNlTWluRGlzcGxheVRpbWUoaW5jb21pbmdIaW50LCBNSU5fSElOVF9ESVNQTEFZX01TKVxuXG4gIC8vIEluIHZlcmJvc2UgbW9kZSwgcmVuZGVyIGVhY2ggdG9vbCB1c2Ugd2l0aCBpdHMgMS1saW5lIHJlc3VsdCBzdW1tYXJ5XG4gIGlmICh2ZXJib3NlKSB7XG4gICAgY29uc3QgdG9vbFVzZXM6IE5vcm1hbGl6ZWRBc3Npc3RhbnRNZXNzYWdlW10gPSBbXVxuICAgIGZvciAoY29uc3QgbXNnIG9mIGdyb3VwTWVzc2FnZXMpIHtcbiAgICAgIGlmIChtc2cudHlwZSA9PT0gJ2Fzc2lzdGFudCcpIHtcbiAgICAgICAgdG9vbFVzZXMucHVzaChtc2cpXG4gICAgICB9IGVsc2UgaWYgKG1zZy50eXBlID09PSAnZ3JvdXBlZF90b29sX3VzZScpIHtcbiAgICAgICAgdG9vbFVzZXMucHVzaCguLi5tc2cubWVzc2FnZXMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICB7dG9vbFVzZXMubWFwKG1zZyA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IG1zZy5tZXNzYWdlLmNvbnRlbnRbMF1cbiAgICAgICAgICBpZiAoY29udGVudD8udHlwZSAhPT0gJ3Rvb2xfdXNlJykgcmV0dXJuIG51bGxcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFZlcmJvc2VUb29sVXNlXG4gICAgICAgICAgICAgIGtleT17Y29udGVudC5pZH1cbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgICAgICAgdG9vbHM9e3Rvb2xzfVxuICAgICAgICAgICAgICBsb29rdXBzPXtsb29rdXBzfVxuICAgICAgICAgICAgICBpblByb2dyZXNzVG9vbFVzZUlEcz17aW5Qcm9ncmVzc1Rvb2xVc2VJRHN9XG4gICAgICAgICAgICAgIHNob3VsZEFuaW1hdGU9e3Nob3VsZEFuaW1hdGV9XG4gICAgICAgICAgICAgIHRoZW1lPXt0aGVtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgICAge21lc3NhZ2UuaG9va0luZm9zICYmIG1lc3NhZ2UuaG9va0luZm9zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgICAgeycgIOKOvyAgJ31SYW4ge21lc3NhZ2UuaG9va0NvdW50fSBQcmVUb29sVXNleycgJ31cbiAgICAgICAgICAgICAge21lc3NhZ2UuaG9va0NvdW50ID09PSAxID8gJ2hvb2snIDogJ2hvb2tzJ30gKFxuICAgICAgICAgICAgICB7Zm9ybWF0U2Vjb25kc1Nob3J0KG1lc3NhZ2UuaG9va1RvdGFsTXMgPz8gMCl9KVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAge21lc3NhZ2UuaG9va0luZm9zLm1hcCgoaW5mbywgaWR4KSA9PiAoXG4gICAgICAgICAgICAgIDxUZXh0IGtleT17YGhvb2stJHtpZHh9YH0gZGltQ29sb3I+XG4gICAgICAgICAgICAgICAgeycgICAgIOKOvyAnfVxuICAgICAgICAgICAgICAgIHtpbmZvLmNvbW1hbmR9ICh7Zm9ybWF0U2Vjb25kc1Nob3J0KGluZm8uZHVyYXRpb25NcyA/PyAwKX0pXG4gICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7bWVzc2FnZS5yZWxldmFudE1lbW9yaWVzPy5tYXAobSA9PiAoXG4gICAgICAgICAgPEJveCBrZXk9e20ucGF0aH0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgICAgeycgIOKOvyAgJ31SZWNhbGxlZCB7YmFzZW5hbWUobS5wYXRoKX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxCb3ggcGFkZGluZ0xlZnQ9ezV9PlxuICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICA8QW5zaT57bS5jb250ZW50fTwvQW5zaT5cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICkpfVxuICAgICAgPC9Cb3g+XG4gICAgKVxuICB9XG5cbiAgLy8gTm9uLXZlcmJvc2UgbW9kZTogU2hvdyBjb3VudHMgd2l0aCBibGlua2luZyBncmV5IGRvdCB3aGlsZSBhY3RpdmUsIGdyZWVuIGRvdCB3aGVuIGZpbmFsaXplZFxuICAvLyBVc2UgcHJlc2VudCB0ZW5zZSB3aGVuIGFjdGl2ZSwgcGFzdCB0ZW5zZSB3aGVuIGZpbmFsaXplZFxuXG4gIC8vIERlZmVuc2l2ZTogSWYgYWxsIGNvdW50cyBhcmUgMCwgZG9uJ3QgcmVuZGVyIHRoZSBjb2xsYXBzZWQgZ3JvdXBcbiAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGluIG5vcm1hbCBvcGVyYXRpb24sIGJ1dCBoYW5kbGVzIGVkZ2UgY2FzZXNcbiAgaWYgKCFoYXNNZW1vcnlPcHMgJiYgIWhhc1RlYW1NZW1vcnlPcHMgJiYgIWhhc05vbk1lbW9yeU9wcykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBGaW5kIHRoZSBzbG93ZXN0IGluLXByb2dyZXNzIHNoZWxsIGNvbW1hbmQgaW4gdGhpcyBncm91cC4gQmFzaFRvb2wgeWllbGRzXG4gIC8vIHByb2dyZXNzIGV2ZXJ5IHNlY29uZCBidXQgdGhlIGNvbGxhcHNlZCByZW5kZXJlciBuZXZlciBzaG93ZWQgaXQg4oCUIGxvbmdcbiAgLy8gY29tbWFuZHMgKG5wbSBpbnN0YWxsLCB0ZXN0cykgbG9va2VkIGZyb3plbi4gU2hvd24gYWZ0ZXIgMnMgc28gZmFzdFxuICAvLyBjb21tYW5kcyBzdGF5IGNsZWFuOyB0aGUgdGlja2luZyBjb3VudGVyIHJlYXNzdXJlcyB0aGF0IHNsb3cgb25lcyBhcmVuJ3Qgc3R1Y2suXG4gIGxldCBzaGVsbFByb2dyZXNzU3VmZml4ID0gJydcbiAgaWYgKGlzRnVsbHNjcmVlbkVudkVuYWJsZWQoKSAmJiBpc0FjdGl2ZUdyb3VwKSB7XG4gICAgbGV0IGVsYXBzZWQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICAgIGxldCBsaW5lcyA9IDBcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRvb2xVc2VJZHMpIHtcbiAgICAgIGlmICghaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuaGFzKGlkKSkgY29udGludWVcbiAgICAgIGNvbnN0IGRhdGEgPSBsb29rdXBzLnByb2dyZXNzTWVzc2FnZXNCeVRvb2xVc2VJRC5nZXQoaWQpPy5hdCgtMSk/LmRhdGFcbiAgICAgIGlmIChcbiAgICAgICAgZGF0YT8udHlwZSAhPT0gJ2Jhc2hfcHJvZ3Jlc3MnICYmXG4gICAgICAgIGRhdGE/LnR5cGUgIT09ICdwb3dlcnNoZWxsX3Byb2dyZXNzJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoZWxhcHNlZCA9PT0gdW5kZWZpbmVkIHx8IGRhdGEuZWxhcHNlZFRpbWVTZWNvbmRzID4gZWxhcHNlZCkge1xuICAgICAgICBlbGFwc2VkID0gZGF0YS5lbGFwc2VkVGltZVNlY29uZHNcbiAgICAgICAgbGluZXMgPSBkYXRhLnRvdGFsTGluZXNcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVsYXBzZWQgIT09IHVuZGVmaW5lZCAmJiBlbGFwc2VkID49IDIpIHtcbiAgICAgIGNvbnN0IHRpbWUgPSBmb3JtYXREdXJhdGlvbihlbGFwc2VkICogMTAwMClcbiAgICAgIHNoZWxsUHJvZ3Jlc3NTdWZmaXggPVxuICAgICAgICBsaW5lcyA+IDBcbiAgICAgICAgICA/IGAgKCR7dGltZX0gwrcgJHtsaW5lc30gJHtsaW5lcyA9PT0gMSA/ICdsaW5lJyA6ICdsaW5lcyd9KWBcbiAgICAgICAgICA6IGAgKCR7dGltZX0pYFxuICAgIH1cbiAgfVxuXG4gIC8vIEJ1aWxkIG5vbi1tZW1vcnkgcGFydHMgZmlyc3QgKHNlYXJjaCwgcmVhZCwgcmVwbCwgbWNwLCBiYXNoKSDigJQgdGhlc2UgcmVuZGVyXG4gIC8vIGJlZm9yZSBtZW1vcnkgc28gdGhlIGxpbmUgcmVhZHMgXCJSYW4gMyBiYXNoIGNvbW1hbmRzLCByZWNhbGxlZCAxIG1lbW9yeVwiLlxuICBjb25zdCBub25NZW1QYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXVxuXG4gIC8vIEdpdCBvcGVyYXRpb25zIGxlYWQgdGhlIGxpbmUg4oCUIHRoZXkncmUgdGhlIGxvYWQtYmVhcmluZyBvdXRjb21lLlxuICBmdW5jdGlvbiBwdXNoUGFydChrZXk6IHN0cmluZywgdmVyYjogc3RyaW5nLCBib2R5OiBSZWFjdC5SZWFjdE5vZGUpOiB2b2lkIHtcbiAgICBjb25zdCBpc0ZpcnN0ID0gbm9uTWVtUGFydHMubGVuZ3RoID09PSAwXG4gICAgaWYgKCFpc0ZpcnN0KSBub25NZW1QYXJ0cy5wdXNoKDxUZXh0IGtleT17YGNvbW1hLSR7a2V5fWB9PiwgPC9UZXh0PilcbiAgICBub25NZW1QYXJ0cy5wdXNoKFxuICAgICAgPFRleHQga2V5PXtrZXl9PlxuICAgICAgICB7aXNGaXJzdCA/IHZlcmJbMF0hLnRvVXBwZXJDYXNlKCkgKyB2ZXJiLnNsaWNlKDEpIDogdmVyYn0ge2JvZHl9XG4gICAgICA8L1RleHQ+LFxuICAgIClcbiAgfVxuICBpZiAoaXNGdWxsc2NyZWVuRW52RW5hYmxlZCgpICYmIG1lc3NhZ2UuY29tbWl0cz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgYnlLaW5kID0ge1xuICAgICAgY29tbWl0dGVkOiAnY29tbWl0dGVkJyxcbiAgICAgIGFtZW5kZWQ6ICdhbWVuZGVkIGNvbW1pdCcsXG4gICAgICAnY2hlcnJ5LXBpY2tlZCc6ICdjaGVycnktcGlja2VkJyxcbiAgICB9XG4gICAgZm9yIChjb25zdCBraW5kIG9mIFsnY29tbWl0dGVkJywgJ2FtZW5kZWQnLCAnY2hlcnJ5LXBpY2tlZCddIGFzIGNvbnN0KSB7XG4gICAgICBjb25zdCBzaGFzID0gbWVzc2FnZS5jb21taXRzLmZpbHRlcihjID0+IGMua2luZCA9PT0ga2luZCkubWFwKGMgPT4gYy5zaGEpXG4gICAgICBpZiAoc2hhcy5sZW5ndGgpIHtcbiAgICAgICAgcHVzaFBhcnQoa2luZCwgYnlLaW5kW2tpbmRdLCA8VGV4dCBib2xkPntzaGFzLmpvaW4oJywgJyl9PC9UZXh0PilcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGlzRnVsbHNjcmVlbkVudkVuYWJsZWQoKSAmJiBtZXNzYWdlLnB1c2hlcz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgYnJhbmNoZXMgPSB1bmlxKG1lc3NhZ2UucHVzaGVzLm1hcChwID0+IHAuYnJhbmNoKSlcbiAgICBwdXNoUGFydCgncHVzaCcsICdwdXNoZWQgdG8nLCA8VGV4dCBib2xkPnticmFuY2hlcy5qb2luKCcsICcpfTwvVGV4dD4pXG4gIH1cbiAgaWYgKGlzRnVsbHNjcmVlbkVudkVuYWJsZWQoKSAmJiBtZXNzYWdlLmJyYW5jaGVzPy5sZW5ndGgpIHtcbiAgICBjb25zdCBieUFjdGlvbiA9IHsgbWVyZ2VkOiAnbWVyZ2VkJywgcmViYXNlZDogJ3JlYmFzZWQgb250bycgfVxuICAgIGZvciAoY29uc3QgYiBvZiBtZXNzYWdlLmJyYW5jaGVzKSB7XG4gICAgICBwdXNoUGFydChcbiAgICAgICAgYGJyLSR7Yi5hY3Rpb259LSR7Yi5yZWZ9YCxcbiAgICAgICAgYnlBY3Rpb25bYi5hY3Rpb25dLFxuICAgICAgICA8VGV4dCBib2xkPntiLnJlZn08L1RleHQ+LFxuICAgICAgKVxuICAgIH1cbiAgfVxuICBpZiAoaXNGdWxsc2NyZWVuRW52RW5hYmxlZCgpICYmIG1lc3NhZ2UucHJzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB2ZXJicyA9IHtcbiAgICAgIGNyZWF0ZWQ6ICdjcmVhdGVkJyxcbiAgICAgIGVkaXRlZDogJ2VkaXRlZCcsXG4gICAgICBtZXJnZWQ6ICdtZXJnZWQnLFxuICAgICAgY29tbWVudGVkOiAnY29tbWVudGVkIG9uJyxcbiAgICAgIGNsb3NlZDogJ2Nsb3NlZCcsXG4gICAgICByZWFkeTogJ21hcmtlZCByZWFkeScsXG4gICAgfVxuICAgIGZvciAoY29uc3QgcHIgb2YgbWVzc2FnZS5wcnMpIHtcbiAgICAgIHB1c2hQYXJ0KFxuICAgICAgICBgcHItJHtwci5hY3Rpb259LSR7cHIubnVtYmVyfWAsXG4gICAgICAgIHZlcmJzW3ByLmFjdGlvbl0sXG4gICAgICAgIHByLnVybCA/IChcbiAgICAgICAgICA8UHJCYWRnZSBudW1iZXI9e3ByLm51bWJlcn0gdXJsPXtwci51cmx9IGJvbGQgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8VGV4dCBib2xkPlBSICN7cHIubnVtYmVyfTwvVGV4dD5cbiAgICAgICAgKSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBpZiAoc2VhcmNoQ291bnQgPiAwKSB7XG4gICAgY29uc3QgaXNGaXJzdCA9IG5vbk1lbVBhcnRzLmxlbmd0aCA9PT0gMFxuICAgIGNvbnN0IHNlYXJjaFZlcmIgPSBpc0FjdGl2ZUdyb3VwXG4gICAgICA/IGlzRmlyc3RcbiAgICAgICAgPyAnU2VhcmNoaW5nIGZvcidcbiAgICAgICAgOiAnc2VhcmNoaW5nIGZvcidcbiAgICAgIDogaXNGaXJzdFxuICAgICAgICA/ICdTZWFyY2hlZCBmb3InXG4gICAgICAgIDogJ3NlYXJjaGVkIGZvcidcbiAgICBpZiAoIWlzRmlyc3QpIHtcbiAgICAgIG5vbk1lbVBhcnRzLnB1c2goPFRleHQga2V5PVwiY29tbWEtc1wiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9uTWVtUGFydHMucHVzaChcbiAgICAgIDxUZXh0IGtleT1cInNlYXJjaFwiPlxuICAgICAgICB7c2VhcmNoVmVyYn0gPFRleHQgYm9sZD57c2VhcmNoQ291bnR9PC9UZXh0PnsnICd9XG4gICAgICAgIHtzZWFyY2hDb3VudCA9PT0gMSA/ICdwYXR0ZXJuJyA6ICdwYXR0ZXJucyd9XG4gICAgICA8L1RleHQ+LFxuICAgIClcbiAgfVxuXG4gIGlmIChyZWFkQ291bnQgPiAwKSB7XG4gICAgY29uc3QgaXNGaXJzdCA9IG5vbk1lbVBhcnRzLmxlbmd0aCA9PT0gMFxuICAgIGNvbnN0IHJlYWRWZXJiID0gaXNBY3RpdmVHcm91cFxuICAgICAgPyBpc0ZpcnN0XG4gICAgICAgID8gJ1JlYWRpbmcnXG4gICAgICAgIDogJ3JlYWRpbmcnXG4gICAgICA6IGlzRmlyc3RcbiAgICAgICAgPyAnUmVhZCdcbiAgICAgICAgOiAncmVhZCdcbiAgICBpZiAoIWlzRmlyc3QpIHtcbiAgICAgIG5vbk1lbVBhcnRzLnB1c2goPFRleHQga2V5PVwiY29tbWEtclwiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9uTWVtUGFydHMucHVzaChcbiAgICAgIDxUZXh0IGtleT1cInJlYWRcIj5cbiAgICAgICAge3JlYWRWZXJifSA8VGV4dCBib2xkPntyZWFkQ291bnR9PC9UZXh0PnsnICd9XG4gICAgICAgIHtyZWFkQ291bnQgPT09IDEgPyAnZmlsZScgOiAnZmlsZXMnfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gIH1cblxuICBpZiAobGlzdENvdW50ID4gMCkge1xuICAgIGNvbnN0IGlzRmlyc3QgPSBub25NZW1QYXJ0cy5sZW5ndGggPT09IDBcbiAgICBjb25zdCBsaXN0VmVyYiA9IGlzQWN0aXZlR3JvdXBcbiAgICAgID8gaXNGaXJzdFxuICAgICAgICA/ICdMaXN0aW5nJ1xuICAgICAgICA6ICdsaXN0aW5nJ1xuICAgICAgOiBpc0ZpcnN0XG4gICAgICAgID8gJ0xpc3RlZCdcbiAgICAgICAgOiAnbGlzdGVkJ1xuICAgIGlmICghaXNGaXJzdCkge1xuICAgICAgbm9uTWVtUGFydHMucHVzaCg8VGV4dCBrZXk9XCJjb21tYS1sXCI+LCA8L1RleHQ+KVxuICAgIH1cbiAgICBub25NZW1QYXJ0cy5wdXNoKFxuICAgICAgPFRleHQga2V5PVwibGlzdFwiPlxuICAgICAgICB7bGlzdFZlcmJ9IDxUZXh0IGJvbGQ+e2xpc3RDb3VudH08L1RleHQ+eycgJ31cbiAgICAgICAge2xpc3RDb3VudCA9PT0gMSA/ICdkaXJlY3RvcnknIDogJ2RpcmVjdG9yaWVzJ31cbiAgICAgIDwvVGV4dD4sXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlcGxDb3VudCA+IDApIHtcbiAgICBjb25zdCByZXBsVmVyYiA9IGlzQWN0aXZlR3JvdXAgPyBcIlJFUEwnaW5nXCIgOiBcIlJFUEwnZFwiXG4gICAgaWYgKG5vbk1lbVBhcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5vbk1lbVBhcnRzLnB1c2goPFRleHQga2V5PVwiY29tbWEtcmVwbFwiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9uTWVtUGFydHMucHVzaChcbiAgICAgIDxUZXh0IGtleT1cInJlcGxcIj5cbiAgICAgICAge3JlcGxWZXJifSA8VGV4dCBib2xkPntyZXBsQ291bnR9PC9UZXh0PnsnICd9XG4gICAgICAgIHtyZXBsQ291bnQgPT09IDEgPyAndGltZScgOiAndGltZXMnfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gIH1cblxuICBpZiAobWNwQ2FsbENvdW50ID4gMCkge1xuICAgIGNvbnN0IHNlcnZlckxhYmVsID1cbiAgICAgIG1lc3NhZ2UubWNwU2VydmVyTmFtZXNcbiAgICAgICAgPy5tYXAobiA9PiBuLnJlcGxhY2UoL15jbGF1ZGVcXC5haSAvLCAnJykpXG4gICAgICAgIC5qb2luKCcsICcpIHx8ICdNQ1AnXG4gICAgY29uc3QgaXNGaXJzdCA9IG5vbk1lbVBhcnRzLmxlbmd0aCA9PT0gMFxuICAgIGNvbnN0IHZlcmIgPSBpc0FjdGl2ZUdyb3VwXG4gICAgICA/IGlzRmlyc3RcbiAgICAgICAgPyAnUXVlcnlpbmcnXG4gICAgICAgIDogJ3F1ZXJ5aW5nJ1xuICAgICAgOiBpc0ZpcnN0XG4gICAgICAgID8gJ1F1ZXJpZWQnXG4gICAgICAgIDogJ3F1ZXJpZWQnXG4gICAgaWYgKCFpc0ZpcnN0KSB7XG4gICAgICBub25NZW1QYXJ0cy5wdXNoKDxUZXh0IGtleT1cImNvbW1hLW1jcFwiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbm9uTWVtUGFydHMucHVzaChcbiAgICAgIDxUZXh0IGtleT1cIm1jcFwiPlxuICAgICAgICB7dmVyYn0ge3NlcnZlckxhYmVsfVxuICAgICAgICB7bWNwQ2FsbENvdW50ID4gMSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHsnICd9XG4gICAgICAgICAgICA8VGV4dCBib2xkPnttY3BDYWxsQ291bnR9PC9UZXh0PiB0aW1lc1xuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gIH1cblxuICBpZiAoaXNGdWxsc2NyZWVuRW52RW5hYmxlZCgpICYmIGJhc2hDb3VudCA+IDApIHtcbiAgICBjb25zdCBpc0ZpcnN0ID0gbm9uTWVtUGFydHMubGVuZ3RoID09PSAwXG4gICAgY29uc3QgdmVyYiA9IGlzQWN0aXZlR3JvdXBcbiAgICAgID8gaXNGaXJzdFxuICAgICAgICA/ICdSdW5uaW5nJ1xuICAgICAgICA6ICdydW5uaW5nJ1xuICAgICAgOiBpc0ZpcnN0XG4gICAgICAgID8gJ1JhbidcbiAgICAgICAgOiAncmFuJ1xuICAgIGlmICghaXNGaXJzdCkge1xuICAgICAgbm9uTWVtUGFydHMucHVzaCg8VGV4dCBrZXk9XCJjb21tYS1iYXNoXCI+LCA8L1RleHQ+KVxuICAgIH1cbiAgICBub25NZW1QYXJ0cy5wdXNoKFxuICAgICAgPFRleHQga2V5PVwiYmFzaFwiPlxuICAgICAgICB7dmVyYn0gPFRleHQgYm9sZD57YmFzaENvdW50fTwvVGV4dD4gYmFzaHsnICd9XG4gICAgICAgIHtiYXNoQ291bnQgPT09IDEgPyAnY29tbWFuZCcgOiAnY29tbWFuZHMnfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gIH1cblxuICAvLyBCdWlsZCBtZW1vcnkgcGFydHMgKGF1dG8tbWVtb3J5KSDigJQgcmVuZGVyZWQgYWZ0ZXIgbm9uTWVtUGFydHNcbiAgY29uc3QgaGFzUHJlY2VkaW5nTm9uTWVtID0gbm9uTWVtUGFydHMubGVuZ3RoID4gMFxuICBjb25zdCBtZW1QYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXVxuXG4gIGlmIChtZW1vcnlSZWFkQ291bnQgPiAwKSB7XG4gICAgY29uc3QgaXNGaXJzdCA9ICFoYXNQcmVjZWRpbmdOb25NZW0gJiYgbWVtUGFydHMubGVuZ3RoID09PSAwXG4gICAgY29uc3QgdmVyYiA9IGlzQWN0aXZlR3JvdXBcbiAgICAgID8gaXNGaXJzdFxuICAgICAgICA/ICdSZWNhbGxpbmcnXG4gICAgICAgIDogJ3JlY2FsbGluZydcbiAgICAgIDogaXNGaXJzdFxuICAgICAgICA/ICdSZWNhbGxlZCdcbiAgICAgICAgOiAncmVjYWxsZWQnXG4gICAgaWYgKCFpc0ZpcnN0KSB7XG4gICAgICBtZW1QYXJ0cy5wdXNoKDxUZXh0IGtleT1cImNvbW1hLW1yXCI+LCA8L1RleHQ+KVxuICAgIH1cbiAgICBtZW1QYXJ0cy5wdXNoKFxuICAgICAgPFRleHQga2V5PVwibWVtLXJlYWRcIj5cbiAgICAgICAge3ZlcmJ9IDxUZXh0IGJvbGQ+e21lbW9yeVJlYWRDb3VudH08L1RleHQ+eycgJ31cbiAgICAgICAge21lbW9yeVJlYWRDb3VudCA9PT0gMSA/ICdtZW1vcnknIDogJ21lbW9yaWVzJ31cbiAgICAgIDwvVGV4dD4sXG4gICAgKVxuICB9XG5cbiAgaWYgKG1lbW9yeVNlYXJjaENvdW50ID4gMCkge1xuICAgIGNvbnN0IGlzRmlyc3QgPSAhaGFzUHJlY2VkaW5nTm9uTWVtICYmIG1lbVBhcnRzLmxlbmd0aCA9PT0gMFxuICAgIGNvbnN0IHZlcmIgPSBpc0FjdGl2ZUdyb3VwXG4gICAgICA/IGlzRmlyc3RcbiAgICAgICAgPyAnU2VhcmNoaW5nJ1xuICAgICAgICA6ICdzZWFyY2hpbmcnXG4gICAgICA6IGlzRmlyc3RcbiAgICAgICAgPyAnU2VhcmNoZWQnXG4gICAgICAgIDogJ3NlYXJjaGVkJ1xuICAgIGlmICghaXNGaXJzdCkge1xuICAgICAgbWVtUGFydHMucHVzaCg8VGV4dCBrZXk9XCJjb21tYS1tc1wiPiwgPC9UZXh0PilcbiAgICB9XG4gICAgbWVtUGFydHMucHVzaCg8VGV4dCBrZXk9XCJtZW0tc2VhcmNoXCI+e2Ake3ZlcmJ9IG1lbW9yaWVzYH08L1RleHQ+KVxuICB9XG5cbiAgaWYgKG1lbW9yeVdyaXRlQ291bnQgPiAwKSB7XG4gICAgY29uc3QgaXNGaXJzdCA9ICFoYXNQcmVjZWRpbmdOb25NZW0gJiYgbWVtUGFydHMubGVuZ3RoID09PSAwXG4gICAgY29uc3QgdmVyYiA9IGlzQWN0aXZlR3JvdXBcbiAgICAgID8gaXNGaXJzdFxuICAgICAgICA/ICdXcml0aW5nJ1xuICAgICAgICA6ICd3cml0aW5nJ1xuICAgICAgOiBpc0ZpcnN0XG4gICAgICAgID8gJ1dyb3RlJ1xuICAgICAgICA6ICd3cm90ZSdcbiAgICBpZiAoIWlzRmlyc3QpIHtcbiAgICAgIG1lbVBhcnRzLnB1c2goPFRleHQga2V5PVwiY29tbWEtbXdcIj4sIDwvVGV4dD4pXG4gICAgfVxuICAgIG1lbVBhcnRzLnB1c2goXG4gICAgICA8VGV4dCBrZXk9XCJtZW0td3JpdGVcIj5cbiAgICAgICAge3ZlcmJ9IDxUZXh0IGJvbGQ+e21lbW9yeVdyaXRlQ291bnR9PC9UZXh0PnsnICd9XG4gICAgICAgIHttZW1vcnlXcml0ZUNvdW50ID09PSAxID8gJ21lbW9yeScgOiAnbWVtb3JpZXMnfVxuICAgICAgPC9UZXh0PixcbiAgICApXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpblRvcD17MX0gYmFja2dyb3VuZENvbG9yPXtiZ30+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAge2lzQWN0aXZlR3JvdXAgPyAoXG4gICAgICAgICAgPFRvb2xVc2VMb2FkZXIgc2hvdWxkQW5pbWF0ZSBpc1VucmVzb2x2ZWQgaXNFcnJvcj17YW55RXJyb3J9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEJveCBtaW5XaWR0aD17Mn0gLz5cbiAgICAgICAgKX1cbiAgICAgICAgPFRleHQgZGltQ29sb3I9eyFpc0FjdGl2ZUdyb3VwfT5cbiAgICAgICAgICB7bm9uTWVtUGFydHN9XG4gICAgICAgICAge21lbVBhcnRzfVxuICAgICAgICAgIHtmZWF0dXJlKCdURUFNTUVNJylcbiAgICAgICAgICAgID8gdGVhbU1lbUNvbGxhcHNlZCEuVGVhbU1lbUNvdW50UGFydHMoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgaXNBY3RpdmVHcm91cCxcbiAgICAgICAgICAgICAgICBoYXNQcmVjZWRpbmdQYXJ0czogaGFzUHJlY2VkaW5nTm9uTWVtIHx8IG1lbVBhcnRzLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IG51bGx9XG4gICAgICAgICAge2lzQWN0aXZlR3JvdXAgJiYgPFRleHQga2V5PVwiZWxsaXBzaXNcIj7igKY8L1RleHQ+fSA8Q3RybE9Ub0V4cGFuZCAvPlxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICAgIHtpc0FjdGl2ZUdyb3VwICYmIGRpc3BsYXllZEhpbnQgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgIC8vIFJvdyBsYXlvdXQ6IDUtd2lkZSBndXR0ZXIgZm9yIOKOvywgdGhlbiBhIGZsZXggY29sdW1uIGZvciB0aGUgdGV4dC5cbiAgICAgICAgLy8gSW5rJ3Mgd3JhcCBzdGF5cyBpbnNpZGUgdGhlIHJpZ2h0IGNvbHVtbiBzbyBjb250aW51YXRpb24gbGluZXNcbiAgICAgICAgLy8gaW5kZW50IHVuZGVyIOKOvy4gTUFYX0hJTlRfQ0hBUlMgaW4gY29tbWFuZEFzSGludCBjYXBzIHRvdGFsIGF0IH41IGxpbmVzLlxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICA8Qm94IHdpZHRoPXs1fSBmbGV4U2hyaW5rPXswfT5cbiAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPnsnICDijr8gICd9PC9UZXh0PlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGZsZXhHcm93PXsxfT5cbiAgICAgICAgICAgIHtkaXNwbGF5ZWRIaW50LnNwbGl0KCdcXG4nKS5tYXAoKGxpbmUsIGksIGFycikgPT4gKFxuICAgICAgICAgICAgICA8VGV4dCBrZXk9e2BoaW50LSR7aX1gfSBkaW1Db2xvcj5cbiAgICAgICAgICAgICAgICB7bGluZX1cbiAgICAgICAgICAgICAgICB7aSA9PT0gYXJyLmxlbmd0aCAtIDEgJiYgc2hlbGxQcm9ncmVzc1N1ZmZpeH1cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvQm94PlxuICAgICAgKX1cbiAgICAgIHttZXNzYWdlLmhvb2tUb3RhbE1zICE9PSB1bmRlZmluZWQgJiYgbWVzc2FnZS5ob29rVG90YWxNcyA+IDAgJiYgKFxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICB7JyAg4o6/ICAnfVJhbiB7bWVzc2FnZS5ob29rQ291bnR9IFByZVRvb2xVc2V7JyAnfVxuICAgICAgICAgIHttZXNzYWdlLmhvb2tDb3VudCA9PT0gMSA/ICdob29rJyA6ICdob29rcyd9IChcbiAgICAgICAgICB7Zm9ybWF0U2Vjb25kc1Nob3J0KG1lc3NhZ2UuaG9va1RvdGFsTXMpfSlcbiAgICAgICAgPC9UZXh0PlxuICAgICAgKX1cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsT0FBTyxRQUFRLFlBQVk7QUFDcEMsU0FBU0MsUUFBUSxRQUFRLE1BQU07QUFDL0IsT0FBT0MsS0FBSyxJQUFJQyxNQUFNLFFBQVEsT0FBTztBQUNyQyxTQUFTQyxpQkFBaUIsUUFBUSxrQ0FBa0M7QUFDcEUsU0FBU0MsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLGNBQWM7QUFDeEQsU0FBU0MsY0FBYyxFQUFFLEtBQUtDLEtBQUssUUFBUSxlQUFlO0FBQzFELFNBQVNDLHFCQUFxQixR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
483
+ }
@@ -14,5 +14,4 @@ export function CompactBoundaryMessage() {
14
14
  t0 = $[1];
15
15
  }
16
16
  return t0;
17
- }
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIlRleHQiLCJ1c2VTaG9ydGN1dERpc3BsYXkiLCJDb21wYWN0Qm91bmRhcnlNZXNzYWdlIiwiJCIsIl9jIiwiaGlzdG9yeVNob3J0Y3V0IiwidDAiXSwic291cmNlcyI6WyJDb21wYWN0Qm91bmRhcnlNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZVNob3J0Y3V0RGlzcGxheSB9IGZyb20gJy4uLy4uL2tleWJpbmRpbmdzL3VzZVNob3J0Y3V0RGlzcGxheS5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIENvbXBhY3RCb3VuZGFyeU1lc3NhZ2UoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgaGlzdG9yeVNob3J0Y3V0ID0gdXNlU2hvcnRjdXREaXNwbGF5KFxuICAgICdhcHA6dG9nZ2xlVHJhbnNjcmlwdCcsXG4gICAgJ0dsb2JhbCcsXG4gICAgJ2N0cmwrbycsXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxCb3ggbWFyZ2luWT17MX0+XG4gICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAg4py7IENvbnZlcnNhdGlvbiBjb21wYWN0ZWQgKHtoaXN0b3J5U2hvcnRjdXR9IGZvciBoaXN0b3J5KVxuICAgICAgPC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLGNBQWM7QUFDeEMsU0FBU0Msa0JBQWtCLFFBQVEseUNBQXlDO0FBRTVFLE9BQU8sU0FBQUMsdUJBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFDTCxNQUFBQyxlQUFBLEdBQXdCSixrQkFBa0IsQ0FDeEMsc0JBQXNCLEVBQ3RCLFFBQVEsRUFDUixRQUNGLENBQUM7RUFBQSxJQUFBSyxFQUFBO0VBQUEsSUFBQUgsQ0FBQSxRQUFBRSxlQUFBO0lBR0NDLEVBQUEsSUFBQyxHQUFHLENBQVUsT0FBQyxDQUFELEdBQUMsQ0FDYixDQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUMsMEJBQ2NELGdCQUFjLENBQUUsYUFDN0MsRUFGQyxJQUFJLENBR1AsRUFKQyxHQUFHLENBSUU7SUFBQUYsQ0FBQSxNQUFBRSxlQUFBO0lBQUFGLENBQUEsTUFBQUcsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQUgsQ0FBQTtFQUFBO0VBQUEsT0FKTkcsRUFJTTtBQUFBIiwiaWdub3JlTGlzdCI6W119
17
+ }
@@ -54,5 +54,4 @@ export function GroupedToolUseContent({
54
54
  shouldAnimate: shouldAnimate && anyInProgress,
55
55
  tools
56
56
  });
57
- }
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sUmVzdWx0QmxvY2tQYXJhbSIsIlRvb2xVc2VCbG9ja1BhcmFtIiwiUmVhY3QiLCJmaWx0ZXJUb29sUHJvZ3Jlc3NNZXNzYWdlcyIsImZpbmRUb29sQnlOYW1lIiwiVG9vbHMiLCJHcm91cGVkVG9vbFVzZU1lc3NhZ2UiLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiUHJvcHMiLCJtZXNzYWdlIiwidG9vbHMiLCJsb29rdXBzIiwiUmV0dXJuVHlwZSIsImluUHJvZ3Jlc3NUb29sVXNlSURzIiwiU2V0Iiwic2hvdWxkQW5pbWF0ZSIsIkdyb3VwZWRUb29sVXNlQ29udGVudCIsIlJlYWN0Tm9kZSIsInRvb2wiLCJ0b29sTmFtZSIsInJlbmRlckdyb3VwZWRUb29sVXNlIiwicmVzdWx0c0J5VG9vbFVzZUlkIiwiTWFwIiwicGFyYW0iLCJvdXRwdXQiLCJyZXN1bHRNc2ciLCJyZXN1bHRzIiwiY29udGVudCIsInR5cGUiLCJzZXQiLCJ0b29sX3VzZV9pZCIsInRvb2xVc2VSZXN1bHQiLCJ0b29sVXNlc0RhdGEiLCJtZXNzYWdlcyIsIm1hcCIsIm1zZyIsInJlc3VsdCIsImdldCIsImlkIiwiaXNSZXNvbHZlZCIsInJlc29sdmVkVG9vbFVzZUlEcyIsImhhcyIsImlzRXJyb3IiLCJlcnJvcmVkVG9vbFVzZUlEcyIsImlzSW5Qcm9ncmVzcyIsInByb2dyZXNzTWVzc2FnZXMiLCJwcm9ncmVzc01lc3NhZ2VzQnlUb29sVXNlSUQiLCJhbnlJblByb2dyZXNzIiwic29tZSIsImQiXSwic291cmNlcyI6WyJHcm91cGVkVG9vbFVzZUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgVG9vbFJlc3VsdEJsb2NrUGFyYW0sXG4gIFRvb2xVc2VCbG9ja1BhcmFtLFxufSBmcm9tICdAYW50aHJvcGljLWFpL3Nkay9yZXNvdXJjZXMvbWVzc2FnZXMvbWVzc2FnZXMubWpzJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBmaWx0ZXJUb29sUHJvZ3Jlc3NNZXNzYWdlcyxcbiAgZmluZFRvb2xCeU5hbWUsXG4gIHR5cGUgVG9vbHMsXG59IGZyb20gJy4uLy4uL1Rvb2wuanMnXG5pbXBvcnQgdHlwZSB7IEdyb3VwZWRUb29sVXNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL21lc3NhZ2UuanMnXG5pbXBvcnQgdHlwZSB7IGJ1aWxkTWVzc2FnZUxvb2t1cHMgfSBmcm9tICcuLi8uLi91dGlscy9tZXNzYWdlcy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgbWVzc2FnZTogR3JvdXBlZFRvb2xVc2VNZXNzYWdlXG4gIHRvb2xzOiBUb29sc1xuICBsb29rdXBzOiBSZXR1cm5UeXBlPHR5cGVvZiBidWlsZE1lc3NhZ2VMb29rdXBzPlxuICBpblByb2dyZXNzVG9vbFVzZUlEczogU2V0PHN0cmluZz5cbiAgc2hvdWxkQW5pbWF0ZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gR3JvdXBlZFRvb2xVc2VDb250ZW50KHtcbiAgbWVzc2FnZSxcbiAgdG9vbHMsXG4gIGxvb2t1cHMsXG4gIGluUHJvZ3Jlc3NUb29sVXNlSURzLFxuICBzaG91bGRBbmltYXRlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB0b29sID0gZmluZFRvb2xCeU5hbWUodG9vbHMsIG1lc3NhZ2UudG9vbE5hbWUpXG4gIGlmICghdG9vbD8ucmVuZGVyR3JvdXBlZFRvb2xVc2UpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQnVpbGQgYSBtYXAgZnJvbSB0b29sX3VzZV9pZCB0byByZXN1bHQgZGF0YVxuICBjb25zdCByZXN1bHRzQnlUb29sVXNlSWQgPSBuZXcgTWFwPFxuICAgIHN0cmluZyxcbiAgICB7IHBhcmFtOiBUb29sUmVzdWx0QmxvY2tQYXJhbTsgb3V0cHV0OiB1bmtub3duIH1cbiAgPigpXG4gIGZvciAoY29uc3QgcmVzdWx0TXNnIG9mIG1lc3NhZ2UucmVzdWx0cykge1xuICAgIGZvciAoY29uc3QgY29udGVudCBvZiByZXN1bHRNc2cubWVzc2FnZS5jb250ZW50KSB7XG4gICAgICBpZiAoY29udGVudC50eXBlID09PSAndG9vbF9yZXN1bHQnKSB7XG4gICAgICAgIHJlc3VsdHNCeVRvb2xVc2VJZC5zZXQoY29udGVudC50b29sX3VzZV9pZCwge1xuICAgICAgICAgIHBhcmFtOiBjb250ZW50LFxuICAgICAgICAgIG91dHB1dDogcmVzdWx0TXNnLnRvb2xVc2VSZXN1bHQsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgdG9vbFVzZXNEYXRhID0gbWVzc2FnZS5tZXNzYWdlcy5tYXAobXNnID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gbXNnLm1lc3NhZ2UuY29udGVudFswXVxuICAgIGNvbnN0IHJlc3VsdCA9IHJlc3VsdHNCeVRvb2xVc2VJZC5nZXQoY29udGVudC5pZClcbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW06IGNvbnRlbnQgYXMgVG9vbFVzZUJsb2NrUGFyYW0sXG4gICAgICBpc1Jlc29sdmVkOiBsb29rdXBzLnJlc29sdmVkVG9vbFVzZUlEcy5oYXMoY29udGVudC5pZCksXG4gICAgICBpc0Vycm9yOiBsb29rdXBzLmVycm9yZWRUb29sVXNlSURzLmhhcyhjb250ZW50LmlkKSxcbiAgICAgIGlzSW5Qcm9ncmVzczogaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuaGFzKGNvbnRlbnQuaWQpLFxuICAgICAgcHJvZ3Jlc3NNZXNzYWdlczogZmlsdGVyVG9vbFByb2dyZXNzTWVzc2FnZXMoXG4gICAgICAgIGxvb2t1cHMucHJvZ3Jlc3NNZXNzYWdlc0J5VG9vbFVzZUlELmdldChjb250ZW50LmlkKSA/PyBbXSxcbiAgICAgICksXG4gICAgICByZXN1bHQsXG4gICAgfVxuICB9KVxuXG4gIGNvbnN0IGFueUluUHJvZ3Jlc3MgPSB0b29sVXNlc0RhdGEuc29tZShkID0+IGQuaXNJblByb2dyZXNzKVxuXG4gIHJldHVybiB0b29sLnJlbmRlckdyb3VwZWRUb29sVXNlKHRvb2xVc2VzRGF0YSwge1xuICAgIHNob3VsZEFuaW1hdGU6IHNob3VsZEFuaW1hdGUgJiYgYW55SW5Qcm9ncmVzcyxcbiAgICB0b29scyxcbiAgfSlcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsY0FDRUEsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsUUFDWixtREFBbUQ7QUFDMUQsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUNFQywwQkFBMEIsRUFDMUJDLGNBQWMsRUFDZCxLQUFLQyxLQUFLLFFBQ0wsZUFBZTtBQUN0QixjQUFjQyxxQkFBcUIsUUFBUSx3QkFBd0I7QUFDbkUsY0FBY0MsbUJBQW1CLFFBQVEseUJBQXlCO0FBRWxFLEtBQUtDLEtBQUssR0FBRztFQUNYQyxPQUFPLEVBQUVILHFCQUFxQjtFQUM5QkksS0FBSyxFQUFFTCxLQUFLO0VBQ1pNLE9BQU8sRUFBRUMsVUFBVSxDQUFDLE9BQU9MLG1CQUFtQixDQUFDO0VBQy9DTSxvQkFBb0IsRUFBRUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztFQUNqQ0MsYUFBYSxFQUFFLE9BQU87QUFDeEIsQ0FBQztBQUVELE9BQU8sU0FBU0MscUJBQXFCQSxDQUFDO0VBQ3BDUCxPQUFPO0VBQ1BDLEtBQUs7RUFDTEMsT0FBTztFQUNQRSxvQkFBb0I7RUFDcEJFO0FBQ0ssQ0FBTixFQUFFUCxLQUFLLENBQUMsRUFBRU4sS0FBSyxDQUFDZSxTQUFTLENBQUM7RUFDekIsTUFBTUMsSUFBSSxHQUFHZCxjQUFjLENBQUNNLEtBQUssRUFBRUQsT0FBTyxDQUFDVSxRQUFRLENBQUM7RUFDcEQsSUFBSSxDQUFDRCxJQUFJLEVBQUVFLG9CQUFvQixFQUFFO0lBQy9CLE9BQU8sSUFBSTtFQUNiOztFQUVBO0VBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsSUFBSUMsR0FBRyxDQUNoQyxNQUFNLEVBQ047SUFBRUMsS0FBSyxFQUFFdkIsb0JBQW9CO0lBQUV3QixNQUFNLEVBQUUsT0FBTztFQUFDLENBQUMsQ0FDakQsQ0FBQyxDQUFDO0VBQ0gsS0FBSyxNQUFNQyxTQUFTLElBQUloQixPQUFPLENBQUNpQixPQUFPLEVBQUU7SUFDdkMsS0FBSyxNQUFNQyxPQUFPLElBQUlGLFNBQVMsQ0FBQ2hCLE9BQU8sQ0FBQ2tCLE9BQU8sRUFBRTtNQUMvQyxJQUFJQSxPQUFPLENBQUNDLElBQUksS0FBSyxhQUFhLEVBQUU7UUFDbENQLGtCQUFrQixDQUFDUSxHQUFHLENBQUNGLE9BQU8sQ0FBQ0csV0FBVyxFQUFFO1VBQzFDUCxLQUFLLEVBQUVJLE9BQU87VUFDZEgsTUFBTSxFQUFFQyxTQUFTLENBQUNNO1FBQ3BCLENBQUMsQ0FBQztNQUNKO0lBQ0Y7RUFDRjtFQUVBLE1BQU1DLFlBQVksR0FBR3ZCLE9BQU8sQ0FBQ3dCLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDQyxHQUFHLElBQUk7SUFDL0MsTUFBTVIsT0FBTyxHQUFHUSxHQUFHLENBQUMxQixPQUFPLENBQUNrQixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU1TLE1BQU0sR0FBR2Ysa0JBQWtCLENBQUNnQixHQUFHLENBQUNWLE9BQU8sQ0FBQ1csRUFBRSxDQUFDO0lBQ2pELE9BQU87TUFDTGYsS0FBSyxFQUFFSSxPQUFPLElBQUkxQixpQkFBaUI7TUFDbkNzQyxVQUFVLEVBQUU1QixPQUFPLENBQUM2QixrQkFBa0IsQ0FBQ0MsR0FBRyxDQUFDZCxPQUFPLENBQUNXLEVBQUUsQ0FBQztNQUN0REksT0FBTyxFQUFFL0IsT0FBTyxDQUFDZ0MsaUJBQWlCLENBQUNGLEdBQUcsQ0FBQ2QsT0FBTyxDQUFDVyxFQUFFLENBQUM7TUFDbERNLFlBQVksRUFBRS9CLG9CQUFvQixDQUFDNEIsR0FBRyxDQUFDZCxPQUFPLENBQUNXLEVBQUUsQ0FBQztNQUNsRE8sZ0JBQWdCLEVBQUUxQywwQkFBMEIsQ0FDMUNRLE9BQU8sQ0FBQ21DLDJCQUEyQixDQUFDVCxHQUFHLENBQUNWLE9BQU8sQ0FBQ1csRUFBRSxDQUFDLElBQUksRUFDekQsQ0FBQztNQUNERjtJQUNGLENBQUM7RUFDSCxDQUFDLENBQUM7RUFFRixNQUFNVyxhQUFhLEdBQUdmLFlBQVksQ0FBQ2dCLElBQUksQ0FBQ0MsQ0FBQyxJQUFJQSxDQUFDLENBQUNMLFlBQVksQ0FBQztFQUU1RCxPQUFPMUIsSUFBSSxDQUFDRSxvQkFBb0IsQ0FBQ1ksWUFBWSxFQUFFO0lBQzdDakIsYUFBYSxFQUFFQSxhQUFhLElBQUlnQyxhQUFhO0lBQzdDckM7RUFDRixDQUFDLENBQUM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==
57
+ }
@@ -158,5 +158,4 @@ export function HighlightedThinkingText(t0) {
158
158
  t3 = $[30];
159
159
  }
160
160
  return t3;
161
- }
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDb250ZXh0IiwidXNlUXVldWVkTWVzc2FnZSIsIkJveCIsIlRleHQiLCJmb3JtYXRCcmllZlRpbWVzdGFtcCIsImZpbmRUaGlua2luZ1RyaWdnZXJQb3NpdGlvbnMiLCJnZXRSYWluYm93Q29sb3IiLCJpc1VsdHJhdGhpbmtFbmFibGVkIiwiTWVzc2FnZUFjdGlvbnNTZWxlY3RlZENvbnRleHQiLCJQcm9wcyIsInRleHQiLCJ1c2VCcmllZkxheW91dCIsInRpbWVzdGFtcCIsIkhpZ2hsaWdodGVkVGhpbmtpbmdUZXh0IiwidDAiLCIkIiwiX2MiLCJpc1F1ZXVlZCIsImlzU2VsZWN0ZWQiLCJwb2ludGVyQ29sb3IiLCJ0MSIsInRzIiwidDIiLCJ0MyIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidDgiLCJwYXJ0cyIsIlN5bWJvbCIsImZvciIsImJiMCIsInRyaWdnZXJzIiwibGVuZ3RoIiwicG9pbnRlciIsImN1cnNvciIsInQiLCJzdGFydCIsInB1c2giLCJzbGljZSIsImkiLCJlbmQiXSwic291cmNlcyI6WyJIaWdobGlnaHRlZFRoaW5raW5nVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlUXVldWVkTWVzc2FnZSB9IGZyb20gJy4uLy4uL2NvbnRleHQvUXVldWVkTWVzc2FnZUNvbnRleHQuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyBmb3JtYXRCcmllZlRpbWVzdGFtcCB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1hdEJyaWVmVGltZXN0YW1wLmpzJ1xuaW1wb3J0IHtcbiAgZmluZFRoaW5raW5nVHJpZ2dlclBvc2l0aW9ucyxcbiAgZ2V0UmFpbmJvd0NvbG9yLFxuICBpc1VsdHJhdGhpbmtFbmFibGVkLFxufSBmcm9tICcuLi8uLi91dGlscy90aGlua2luZy5qcydcbmltcG9ydCB7IE1lc3NhZ2VBY3Rpb25zU2VsZWN0ZWRDb250ZXh0IH0gZnJvbSAnLi4vbWVzc2FnZUFjdGlvbnMuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIHRleHQ6IHN0cmluZ1xuICB1c2VCcmllZkxheW91dD86IGJvb2xlYW5cbiAgdGltZXN0YW1wPzogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIaWdobGlnaHRlZFRoaW5raW5nVGV4dCh7XG4gIHRleHQsXG4gIHVzZUJyaWVmTGF5b3V0LFxuICB0aW1lc3RhbXAsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIC8vIEJyaWVmL2Fzc2lzdGFudCBtb2RlOiBjaGF0LXN0eWxlIFwiWW91XCIgbGFiZWwgaW5zdGVhZCBvZiB0aGUg4p2vIGhpZ2hsaWdodC5cbiAgLy8gUGFyZW50IGRyb3BzIGl0cyBiYWNrZ3JvdW5kQ29sb3Igd2hlbiB0aGlzIGlzIHRydWUsIHNvIG5vIGdyZXkgc2hvd3NcbiAgLy8gdGhyb3VnaC4gTm8gbWFudWFsIHdyYXAgbmVlZGVkIOKAlCBJbmsgd3JhcHMgaW5zaWRlIHRoZSBwYXJlbnQgQm94LlxuICBjb25zdCBpc1F1ZXVlZCA9IHVzZVF1ZXVlZE1lc3NhZ2UoKT8uaXNRdWV1ZWQgPz8gZmFsc2VcbiAgY29uc3QgaXNTZWxlY3RlZCA9IHVzZUNvbnRleHQoTWVzc2FnZUFjdGlvbnNTZWxlY3RlZENvbnRleHQpXG4gIGNvbnN0IHBvaW50ZXJDb2xvciA9IGlzU2VsZWN0ZWQgPyAnc3VnZ2VzdGlvbicgOiAnc3VidGxlJ1xuICBpZiAodXNlQnJpZWZMYXlvdXQpIHtcbiAgICBjb25zdCB0cyA9IHRpbWVzdGFtcCA/IGZvcm1hdEJyaWVmVGltZXN0YW1wKHRpbWVzdGFtcCkgOiAnJ1xuICAgIHJldHVybiAoXG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nTGVmdD17Mn0+XG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtpc1F1ZXVlZCA/ICdzdWJ0bGUnIDogJ2JyaWVmTGFiZWxZb3UnfT5Zb3U8L1RleHQ+XG4gICAgICAgICAge3RzID8gPFRleHQgZGltQ29sb3I+IHt0c308L1RleHQ+IDogbnVsbH1cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtpc1F1ZXVlZCA/ICdzdWJ0bGUnIDogJ3RleHQnfT57dGV4dH08L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICApXG4gIH1cblxuICBjb25zdCB0cmlnZ2VycyA9IGlzVWx0cmF0aGlua0VuYWJsZWQoKVxuICAgID8gZmluZFRoaW5raW5nVHJpZ2dlclBvc2l0aW9ucyh0ZXh0KVxuICAgIDogW11cblxuICBpZiAodHJpZ2dlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj17cG9pbnRlckNvbG9yfT57ZmlndXJlcy5wb2ludGVyfSA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGV4dFwiPnt0ZXh0fTwvVGV4dD5cbiAgICAgIDwvVGV4dD5cbiAgICApXG4gIH1cblxuICAvLyBTdGF0aWMgcmFpbmJvdyAobm8gc2hpbW1lciDigJQgdHJhbnNjcmlwdCBtZXNzYWdlcyBkb24ndCBhbmltYXRlKVxuICBjb25zdCBwYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXVxuICBsZXQgY3Vyc29yID0gMFxuICBmb3IgKGNvbnN0IHQgb2YgdHJpZ2dlcnMpIHtcbiAgICBpZiAodC5zdGFydCA+IGN1cnNvcikge1xuICAgICAgcGFydHMucHVzaChcbiAgICAgICAgPFRleHQga2V5PXtgcGxhaW4tJHtjdXJzb3J9YH0gY29sb3I9XCJ0ZXh0XCI+XG4gICAgICAgICAge3RleHQuc2xpY2UoY3Vyc29yLCB0LnN0YXJ0KX1cbiAgICAgICAgPC9UZXh0PixcbiAgICAgIClcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHQuc3RhcnQ7IGkgPCB0LmVuZDsgaSsrKSB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICA8VGV4dCBrZXk9e2ByYi0ke2l9YH0gY29sb3I9e2dldFJhaW5ib3dDb2xvcihpIC0gdC5zdGFydCl9PlxuICAgICAgICAgIHt0ZXh0W2ldfVxuICAgICAgICA8L1RleHQ+LFxuICAgICAgKVxuICAgIH1cbiAgICBjdXJzb3IgPSB0LmVuZFxuICB9XG4gIGlmIChjdXJzb3IgPCB0ZXh0Lmxlbmd0aCkge1xuICAgIHBhcnRzLnB1c2goXG4gICAgICA8VGV4dCBrZXk9e2BwbGFpbi0ke2N1cnNvcn1gfSBjb2xvcj1cInRleHRcIj5cbiAgICAgICAge3RleHQuc2xpY2UoY3Vyc29yKX1cbiAgICAgIDwvVGV4dD4sXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8VGV4dD5cbiAgICAgIDxUZXh0IGNvbG9yPXtwb2ludGVyQ29sb3J9PntmaWd1cmVzLnBvaW50ZXJ9IDwvVGV4dD5cbiAgICAgIHtwYXJ0c31cbiAgICA8L1RleHQ+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLE9BQU8sTUFBTSxTQUFTO0FBQzdCLE9BQU8sS0FBS0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsVUFBVSxRQUFRLE9BQU87QUFDbEMsU0FBU0MsZ0JBQWdCLFFBQVEsdUNBQXVDO0FBQ3hFLFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLGNBQWM7QUFDeEMsU0FBU0Msb0JBQW9CLFFBQVEscUNBQXFDO0FBQzFFLFNBQ0VDLDRCQUE0QixFQUM1QkMsZUFBZSxFQUNmQyxtQkFBbUIsUUFDZCx5QkFBeUI7QUFDaEMsU0FBU0MsNkJBQTZCLFFBQVEsc0JBQXNCO0FBRXBFLEtBQUtDLEtBQUssR0FBRztFQUNYQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxjQUFjLENBQUMsRUFBRSxPQUFPO0VBQ3hCQyxTQUFTLENBQUMsRUFBRSxNQUFNO0FBQ3BCLENBQUM7QUFF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
161
+ }