@projectcor/maia-components 2.50.1-1 → 2.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/README.md +2 -0
  2. package/lib/App.js +19 -44
  3. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +1 -3
  4. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +1 -3
  5. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +14 -24
  6. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +10 -28
  7. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +15 -19
  8. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +4 -8
  9. package/lib/components/atoms/ClientSelector/ClientSelector.js +13 -15
  10. package/lib/components/atoms/Fade/Fade.js +6 -10
  11. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +1 -3
  12. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -19
  13. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +2 -3
  14. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +2 -3
  15. package/lib/components/atoms/MAIAInput/MAIAInput.js +99 -123
  16. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +4 -9
  17. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +5 -4
  18. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +26 -28
  19. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +14 -15
  20. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +2 -7
  21. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +24 -41
  22. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +10 -25
  23. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +43 -78
  24. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +11 -9
  25. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +15 -37
  26. package/lib/components/index.js +1 -2
  27. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +8 -6
  28. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +4 -6
  29. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +16 -25
  30. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -7
  31. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +72 -93
  32. package/lib/components/molecules/ChatAIHome/styles.js +78 -85
  33. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +14 -30
  34. package/lib/components/molecules/ChatAIMessages/newStyles.js +35 -32
  35. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +1 -8
  36. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +8 -25
  37. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  38. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +153 -15
  39. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -2
  40. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +367 -63
  41. package/lib/components/molecules/ChatFooter/ChatFooter.js +4 -10
  42. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +2 -5
  43. package/lib/components/molecules/Sidebar/Sidebar.js +23 -41
  44. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
  45. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +7 -11
  46. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +1 -4
  47. package/lib/constants/permissions/index.js +2 -2
  48. package/lib/constants/permissions/utils.js +1 -4
  49. package/lib/dev/DevReasoningTimeline.js +37 -68
  50. package/lib/dev/Providers.js +3 -5
  51. package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -7
  52. package/lib/hooks/useChatManager/useChatManager.helpers.js +3 -3
  53. package/lib/hooks/useChatManager/useChatManager.js +7 -8
  54. package/lib/hooks/useEntitySearch.js +1 -3
  55. package/lib/hooks/useFrequentlyUsedActions.js +22 -61
  56. package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
  57. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +15 -16
  58. package/lib/hooks/useProjectSummaryConfig.js +5 -10
  59. package/lib/index.js +2 -5
  60. package/lib/lang/br/index.js +2 -27
  61. package/lib/lang/en/index.js +2 -27
  62. package/lib/lang/es/index.js +2 -27
  63. package/lib/lang/fr/index.js +2 -27
  64. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  65. package/lib/services/maia/Agents/connectors.js +1 -3
  66. package/lib/store/sessions/sessionStreamManager.js +55 -51
  67. package/lib/store/useChatsStore.js +3 -4
  68. package/lib/styles/cascade.js +3 -29
  69. package/lib/styles/transitions.js +1 -3
  70. package/lib/types/global.d.js +1 -1
  71. package/lib/utils/hoursPlannerQuickActionType.js +1 -116
  72. package/lib/utils/imagePreprocessor.js +3 -14
  73. package/lib/utils/navigateContextEntity.js +2 -2
  74. package/lib/utils/openTaskInCorPanel.js +2 -2
  75. package/lib/utils/streamActivityMessages.helpers.js +4 -5
  76. package/lib/utils/streamActivityMessages.js +20 -32
  77. package/package.json +1 -1
  78. package/lib/components/atoms/ActionableButton.spec.js +0 -111
  79. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +0 -52
  80. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +0 -11
  81. package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.spec.js +0 -63
  82. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -183
  83. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +0 -123
  84. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +0 -139
  85. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +0 -385
  86. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +0 -78
  87. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +0 -94
  88. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +0 -396
  89. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +0 -80
  90. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +0 -526
  91. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +0 -169
  92. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +0 -11
  93. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +0 -77
  94. package/lib/components/atoms/Backdrop/Backdrop.spec.js +0 -28
  95. package/lib/components/atoms/CardMenu/CardMenu.spec.js +0 -56
  96. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +0 -67
  97. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  98. package/lib/components/atoms/Chip/Chip.spec.js +0 -82
  99. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +0 -26
  100. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +0 -45
  101. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +0 -133
  102. package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.spec.js +0 -107
  103. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  104. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +0 -46
  105. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +0 -109
  106. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +0 -81
  107. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +0 -92
  108. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +0 -319
  109. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +0 -107
  110. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +0 -136
  111. package/lib/components/atoms/CopyToClipboard.spec.js +0 -74
  112. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +0 -76
  113. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +0 -86
  114. package/lib/components/atoms/Expand/Expand.spec.js +0 -57
  115. package/lib/components/atoms/Fade/Fade.spec.js +0 -66
  116. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +0 -75
  117. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +0 -104
  118. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +0 -91
  119. package/lib/components/atoms/HelpButton.spec.js +0 -87
  120. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +0 -96
  121. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +0 -54
  122. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +0 -21
  123. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +0 -20
  124. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +0 -26
  125. package/lib/components/atoms/LoadingText/LoadingText.spec.js +0 -25
  126. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  127. package/lib/components/atoms/MAIAError/MAIAError.spec.js +0 -27
  128. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +0 -113
  129. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +0 -381
  130. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -719
  131. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +0 -92
  132. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +0 -193
  133. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +0 -32
  134. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +0 -64
  135. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +0 -43
  136. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +0 -114
  137. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +0 -51
  138. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +0 -48
  139. package/lib/components/atoms/ModalProject/ModalProject.spec.js +0 -66
  140. package/lib/components/atoms/NextPageLoader.spec.js +0 -37
  141. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +0 -20
  142. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +0 -35
  143. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +0 -47
  144. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +0 -146
  145. package/lib/components/atoms/PrimaryButton.spec.js +0 -42
  146. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +0 -69
  147. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -69
  148. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +0 -59
  149. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +0 -170
  150. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +0 -199
  151. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +0 -70
  152. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +0 -120
  153. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +0 -8
  154. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +0 -31
  155. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +0 -52
  156. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +0 -90
  157. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +0 -29
  158. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +0 -38
  159. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +0 -16
  160. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  161. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +0 -24
  162. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +0 -71
  163. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -120
  164. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  165. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +0 -52
  166. package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +0 -25
  167. package/lib/components/atoms/TextArea/TextArea.spec.js +0 -126
  168. package/lib/components/atoms/ThirdButton.spec.js +0 -29
  169. package/lib/components/atoms/VideoModal/VideoModal.spec.js +0 -68
  170. package/lib/components/atoms/WithAppCfg.spec.js +0 -82
  171. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +0 -53
  172. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -742
  173. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +0 -107
  174. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +0 -256
  175. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +0 -175
  176. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +0 -318
  177. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +0 -50
  178. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +0 -94
  179. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +0 -83
  180. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +0 -30
  181. package/lib/components/molecules/AgentInputBlock/index.js +0 -5
  182. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +0 -52
  183. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +0 -76
  184. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +0 -20
  185. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +0 -34
  186. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +0 -36
  187. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +0 -66
  188. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +0 -145
  189. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +0 -204
  190. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +0 -622
  191. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +0 -264
  192. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +0 -86
  193. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  194. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +0 -742
  195. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -541
  196. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  197. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +0 -1394
  198. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +0 -1401
  199. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +0 -33
  200. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +0 -116
  201. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +0 -134
  202. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +0 -142
  203. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +0 -241
  204. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +0 -69
  205. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +0 -144
  206. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +0 -95
  207. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +0 -174
  208. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +0 -99
  209. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +0 -65
  210. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +0 -37
  211. package/lib/components/molecules/ChatAIModal/constants.spec.js +0 -16
  212. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +0 -22
  213. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +0 -67
  214. package/lib/components/molecules/ChatAIModal/layout.spec.js +0 -72
  215. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +0 -93
  216. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +0 -297
  217. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +0 -62
  218. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -221
  219. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +0 -66
  220. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -369
  221. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +0 -10
  222. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +0 -104
  223. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +0 -139
  224. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  225. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  226. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +0 -126
  227. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +0 -115
  228. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +0 -79
  229. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +0 -37
  230. package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +0 -119
  231. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -464
  232. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +0 -1067
  233. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -1236
  234. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +0 -112
  235. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +0 -77
  236. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -503
  237. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  238. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +0 -525
  239. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +0 -246
  240. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +0 -16
  241. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +0 -253
  242. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +0 -291
  243. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +0 -13
  244. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +0 -284
  245. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +0 -343
  246. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +0 -197
  247. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +0 -94
  248. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +0 -69
  249. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +0 -38
  250. package/lib/components/organisms/ChatAIPage/getDaypart.js +0 -9
  251. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +0 -19
  252. package/lib/components/organisms/ChatAIPage/index.js +0 -3
  253. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +0 -53
  254. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  255. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  256. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  257. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +0 -49
  258. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +0 -67
  259. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +0 -117
  260. package/lib/components/organisms/SnackBar/Snackbar.spec.js +0 -66
  261. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +0 -19
  262. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +0 -52
  263. package/lib/constants/formatExtensions.spec.js +0 -15
  264. package/lib/constants/maiaExternalConnectorsAccess.spec.js +0 -29
  265. package/lib/constants/maiaFeatureAccess.spec.js +0 -30
  266. package/lib/constants/maiaHourAgentAccess.spec.js +0 -30
  267. package/lib/constants/maiaTaskPanelAccess.spec.js +0 -41
  268. package/lib/constants/permissions/clientRoleAccess.spec.js +0 -65
  269. package/lib/constants/permissions/utils.spec.js +0 -128
  270. package/lib/constants/plannerSyncEvents.spec.js +0 -31
  271. package/lib/constants/taskUrls.spec.js +0 -9
  272. package/lib/dev/DevMaiaPage.js +0 -30
  273. package/lib/hooks/frequentlyUsedActionsCache.js +0 -17
  274. package/lib/hooks/frequentlyUsedActionsCache.spec.js +0 -25
  275. package/lib/hooks/useAccessClient/useAccessClient.spec.js +0 -149
  276. package/lib/hooks/useAgentModel/useAgentModel.spec.js +0 -83
  277. package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +0 -268
  278. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -314
  279. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +0 -183
  280. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -374
  281. package/lib/hooks/useAgentSuggestions.spec.js +0 -89
  282. package/lib/hooks/useCaretPosition.spec.js +0 -58
  283. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +0 -2027
  284. package/lib/hooks/useChatManager/useChatManager.spec.js +0 -2409
  285. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +0 -491
  286. package/lib/hooks/useChatMessages/useChatMessages.spec.js +0 -729
  287. package/lib/hooks/useChats/useChats.spec.js +0 -208
  288. package/lib/hooks/useClientSearch.helpers.spec.js +0 -52
  289. package/lib/hooks/useClientSearch.spec.js +0 -86
  290. package/lib/hooks/useContextMentions.helpers.spec.js +0 -267
  291. package/lib/hooks/useContextMentions.spec.js +0 -338
  292. package/lib/hooks/useContextPinPopover.helpers.spec.js +0 -183
  293. package/lib/hooks/useContextPinPopover.spec.js +0 -159
  294. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +0 -2
  295. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +0 -93
  296. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.spec.js +0 -257
  297. package/lib/hooks/useDebounce.spec.js +0 -42
  298. package/lib/hooks/useEntitySearch.helpers.spec.js +0 -723
  299. package/lib/hooks/useEntitySearch.spec.js +0 -718
  300. package/lib/hooks/useEvent.spec.js +0 -45
  301. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +0 -222
  302. package/lib/hooks/useFrequentlyUsedActions.spec.js +0 -293
  303. package/lib/hooks/useIsMaiaPageRoute.js +0 -26
  304. package/lib/hooks/useIsMaiaPageRoute.spec.js +0 -26
  305. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +0 -122
  306. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +0 -148
  307. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +0 -104
  308. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +0 -178
  309. package/lib/hooks/useMaiaChatSessionMeta/index.js +0 -2
  310. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +0 -24
  311. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
  312. package/lib/hooks/useMentionPopover.helpers.spec.js +0 -100
  313. package/lib/hooks/useMentionPopover.spec.js +0 -392
  314. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +0 -176
  315. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +0 -89
  316. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +0 -67
  317. package/lib/hooks/useModal/useModal.spec.js +0 -73
  318. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +0 -138
  319. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +0 -417
  320. package/lib/hooks/useProjectSearch.helpers.spec.js +0 -89
  321. package/lib/hooks/useProjectSearch.spec.js +0 -91
  322. package/lib/hooks/useProjectSummary.spec.js +0 -193
  323. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +0 -151
  324. package/lib/hooks/useProjectSummaryConfig.spec.js +0 -133
  325. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +0 -112
  326. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +0 -33
  327. package/lib/hooks/useRecentClientsSearch.spec.js +0 -85
  328. package/lib/hooks/useRecentContexts.spec.js +0 -139
  329. package/lib/hooks/useResize.spec.js +0 -37
  330. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  331. package/lib/hooks/useSlashCommands.spec.js +0 -139
  332. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +0 -101
  333. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  334. package/lib/hooks/useStreamResponse.spec.js +0 -199
  335. package/lib/hooks/useT.spec.js +0 -20
  336. package/lib/hooks/useToggle.spec.js +0 -33
  337. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +0 -171
  338. package/lib/services/appcues.spec.js +0 -37
  339. package/lib/services/maia/Access/updateAccess.spec.js +0 -137
  340. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -121
  341. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -91
  342. package/lib/services/maia/Agents/connectors.spec.js +0 -496
  343. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  344. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -57
  345. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  346. package/lib/services/maia/Agents/getAgentById.spec.js +0 -190
  347. package/lib/services/maia/Agents/getAgentModels.spec.js +0 -190
  348. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -89
  349. package/lib/services/maia/Agents/getAgents.helpers.spec.js +0 -325
  350. package/lib/services/maia/Agents/getAgents.spec.js +0 -1135
  351. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  352. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -59
  353. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  354. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  355. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  356. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  357. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  358. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  359. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  360. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  361. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  362. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  363. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  364. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +0 -225
  365. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -181
  366. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  367. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -103
  368. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  369. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  370. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  371. package/lib/services/maia/Skills/createSkill.spec.js +0 -68
  372. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  373. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  374. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
  375. package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
  376. package/lib/services/maia/client.spec.js +0 -56
  377. package/lib/services/utils/fetchCOR.spec.js +0 -211
  378. package/lib/services/utils/getCookie.spec.js +0 -20
  379. package/lib/services/utils/mapChatMessages.helpers.spec.js +0 -336
  380. package/lib/services/utils/mapChatMessages.spec.js +0 -254
  381. package/lib/store/chatsSidebarOptimistic.spec.js +0 -145
  382. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  383. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  384. package/lib/store/sessions/sessionNotificationSound.spec.js +0 -145
  385. package/lib/store/sessions/sessionNotifications.helpers.spec.js +0 -63
  386. package/lib/store/sessions/sessionNotifications.spec.js +0 -106
  387. package/lib/store/sessions/sessionStreamManager.helpers.spec.js +0 -177
  388. package/lib/store/sessions/sessionStreamManager.spec.js +0 -939
  389. package/lib/store/sessions/sessions.types.spec.js +0 -16
  390. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  391. package/lib/store/useChatsStore.spec.js +0 -619
  392. package/lib/store/useFaqsStore.spec.js +0 -57
  393. package/lib/utils/actionCategoryMap.spec.js +0 -18
  394. package/lib/utils/agentDisplayName.spec.js +0 -48
  395. package/lib/utils/autoApproveStorage.spec.js +0 -25
  396. package/lib/utils/chatInputFiles.spec.js +0 -39
  397. package/lib/utils/contextMentionIcons.spec.js +0 -41
  398. package/lib/utils/contextMentionLabel.spec.js +0 -13
  399. package/lib/utils/contextMentionTriggers.spec.js +0 -44
  400. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  401. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  402. package/lib/utils/entityLinkRender.spec.js +0 -72
  403. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  404. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  405. package/lib/utils/formatUnreadCount.spec.js +0 -12
  406. package/lib/utils/getUnitFileSize.spec.js +0 -18
  407. package/lib/utils/hitlAnalytics.spec.js +0 -136
  408. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -124
  409. package/lib/utils/imagePreprocessor.helpers.spec.js +0 -28
  410. package/lib/utils/imagePreprocessor.spec.js +0 -112
  411. package/lib/utils/maiaPageRoute.js +0 -24
  412. package/lib/utils/maiaPageRoute.spec.js +0 -23
  413. package/lib/utils/mapBackendLang.spec.js +0 -19
  414. package/lib/utils/navigateContextEntity.spec.js +0 -50
  415. package/lib/utils/normalizeAgentConnectors.spec.js +0 -98
  416. package/lib/utils/openTaskInCorPanel.spec.js +0 -43
  417. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  418. package/lib/utils/reasoningMappers.spec.js +0 -103
  419. package/lib/utils/recentContextsHomeLimit.spec.js +0 -32
  420. package/lib/utils/renderContextMentions.helpers.spec.js +0 -87
  421. package/lib/utils/renderContextMentions.spec.js +0 -268
  422. package/lib/utils/retryCompletion.spec.js +0 -181
  423. package/lib/utils/skillContentSize.spec.js +0 -13
  424. package/lib/utils/slashCommandMarker.spec.js +0 -43
  425. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  426. package/lib/utils/sseStreamContent.spec.js +0 -31
  427. package/lib/utils/streamActivityMessages.helpers.spec.js +0 -84
  428. package/lib/utils/streamActivityMessages.spec.js +0 -336
  429. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -1,17 +1,10 @@
1
1
  import styled, { css, keyframes } from 'styled-components';
2
2
  import colors from '@projectcor/theme/lib/base/colors';
3
- import { MARKER_ACTIVATE_DELAY_MS, MARKER_HANDOFF_MS, NARRATION_ENTER_EASE } from './reasoningMotion';
4
- import { REASONING_COLLAPSE_EASE, REASONING_COLLAPSE_MS } from './useCollapsibleHeight';
5
3
  export var LIVE_VIEWPORT_MAX_HEIGHT = 72;
6
4
  var shimmer = keyframes(["0%{background-position:200% 0;}100%{background-position:-200% 0;}"]);
7
5
  var fadeIn = keyframes(["from{opacity:0;transform:translateY(-2px);}to{opacity:1;transform:none;}"]);
8
6
  var stepReplace = keyframes(["from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}"]);
9
7
 
10
- /** Narración que pasa del body al bloque: desliza suave desde la izquierda. */
11
- var narrationEnter = keyframes(["from{opacity:0;transform:translateX(-14px);}to{opacity:1;transform:none;}"]);
12
- export var NARRATION_ENTER_MS = 680;
13
- export { NARRATION_ENTER_EASE } from './reasoningMotion';
14
-
15
8
  /* Halo del paso en curso: lo distingue de los ya cerrados sin cambiar su tamaño. */
16
9
  var markerPulse = keyframes(["0%{box-shadow:0 0 0 0 rgba(32,32,32,0.28);}70%{box-shadow:0 0 0 5px rgba(32,32,32,0);}100%{box-shadow:0 0 0 0 rgba(32,32,32,0);}"]);
17
10
 
@@ -65,18 +58,14 @@ export var SCReasoningTimeline = styled.div.withConfig({
65
58
  componentId: "sc-y2psdb-2"
66
59
  })(["width:100%;max-width:640px;display:flex;flex-direction:column;"]);
67
60
  var stepReplaceAnim = css(["animation:", " 0.24s ease-out both;"], stepReplace);
68
- var narrationEnterAnim = css(["animation:", " ", "ms ", " both;@media (prefers-reduced-motion:reduce){animation:none;}"], narrationEnter, NARRATION_ENTER_MS, NARRATION_ENTER_EASE);
69
61
 
70
62
  /* Cada fila entra sola cuando llega su paso: sin delay escalonado (no es un listado que monta junto). */
71
63
  export var SCTimelineRow = styled.div.withConfig({
72
64
  displayName: "ReasoningBlockstyles__SCTimelineRow",
73
65
  componentId: "sc-y2psdb-3"
74
66
  })(["", ""], function (_ref) {
75
- var $seamless = _ref.$seamless,
76
- $narrationEnter = _ref.$narrationEnter;
77
- if ($seamless) return css([""]);
78
- if ($narrationEnter) return narrationEnterAnim;
79
- return stepReplaceAnim;
67
+ var $seamless = _ref.$seamless;
68
+ return $seamless ? css([""]) : stepReplaceAnim;
80
69
  });
81
70
 
82
71
  /* Va debajo del cuerpo del mensaje: separa del texto y no deja aire sobrante abajo. */
@@ -111,7 +100,7 @@ export var SCThinkingText = styled.div.withConfig({
111
100
  export var SCStepRow = styled.div.withConfig({
112
101
  displayName: "ReasoningBlockstyles__SCStepRow",
113
102
  componentId: "sc-y2psdb-7"
114
- })(["position:relative;padding-left:", ";padding-top:", ";padding-bottom:", ";&::before{content:'';display:", ";", " top:0;bottom:", ";}&::after{content:'';display:", ";", " top:", "px;bottom:0;}.ReasoningBlock-marker{display:", ";position:absolute;left:0;top:", "px;z-index:1;width:", "px;height:", "px;pointer-events:none;}.ReasoningBlock-markerDot{position:absolute;inset:0;border-radius:50%;background:", ";opacity:", ";transition:opacity ", "ms ", ",background-color ", "ms ", ";transition-delay:", ";@media (prefers-reduced-motion:reduce){transition:none;}}.ReasoningBlock-markerHalo{position:absolute;inset:0;border-radius:50%;opacity:0;transition:opacity ", "ms ", ";animation:", " 1.6s ease-out infinite;animation-play-state:", ";", " ", " @media (prefers-reduced-motion:reduce){animation:none;transition:none;}}"], function (_ref4) {
103
+ })(["position:relative;padding-left:", ";padding-top:", ";padding-bottom:", ";&::before{content:'';display:", ";", " top:0;bottom:", ";}&::after{content:'';display:", ";", " top:", "px;bottom:0;}.ReasoningBlock-marker{display:", ";position:absolute;left:0;top:", "px;z-index:1;width:", "px;height:", "px;border-radius:50%;background:", ";opacity:", ";animation:", " 1.6s ease-out infinite;}"], function (_ref4) {
115
104
  var $showChrome = _ref4.$showChrome;
116
105
  return $showChrome ? "".concat(GUTTER_WIDTH, "px") : '0';
117
106
  }, function (_ref5) {
@@ -144,20 +133,9 @@ export var SCStepRow = styled.div.withConfig({
144
133
  }, function (_ref10) {
145
134
  var $isActive = _ref10.$isActive;
146
135
  return $isActive ? 1 : 0.45;
147
- }, MARKER_HANDOFF_MS, NARRATION_ENTER_EASE, MARKER_HANDOFF_MS, NARRATION_ENTER_EASE, function (_ref11) {
136
+ }, function (_ref11) {
148
137
  var $isActive = _ref11.$isActive;
149
- return $isActive ? "".concat(MARKER_ACTIVATE_DELAY_MS, "ms") : '0ms';
150
- }, MARKER_HANDOFF_MS, NARRATION_ENTER_EASE, markerPulse, function (_ref12) {
151
- var $isActive = _ref12.$isActive,
152
- $isHandoff = _ref12.$isHandoff;
153
- return $isActive || $isHandoff ? 'running' : 'paused';
154
- }, function (_ref13) {
155
- var $isActive = _ref13.$isActive;
156
- return $isActive && css(["opacity:1;transition-delay:", "ms;"], MARKER_ACTIVATE_DELAY_MS);
157
- }, function (_ref14) {
158
- var $isHandoff = _ref14.$isHandoff,
159
- $isActive = _ref14.$isActive;
160
- return $isHandoff && !$isActive && css(["opacity:0;"]);
138
+ return $isActive ? markerPulse : 'none';
161
139
  });
162
140
  export var SCParallelContent = styled.div.withConfig({
163
141
  displayName: "ReasoningBlockstyles__SCParallelContent",
@@ -166,8 +144,8 @@ export var SCParallelContent = styled.div.withConfig({
166
144
  export var SCToolStep = styled.div.withConfig({
167
145
  displayName: "ReasoningBlockstyles__SCToolStep",
168
146
  componentId: "sc-y2psdb-9"
169
- })(["display:flex;align-items:baseline;gap:6px;font-size:16px;line-height:150%;color:#202020;.ReasoningBlock-toolLabel{flex-shrink:0;white-space:nowrap;color:", ";}.ReasoningBlock-toolPreview{flex:1;min-width:0;opacity:0.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"], function (_ref15) {
170
- var $status = _ref15.$status;
147
+ })(["display:flex;align-items:baseline;gap:6px;font-size:16px;line-height:150%;color:#202020;.ReasoningBlock-toolLabel{flex-shrink:0;white-space:nowrap;color:", ";}.ReasoningBlock-toolPreview{flex:1;min-width:0;opacity:0.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}"], function (_ref12) {
148
+ var $status = _ref12.$status;
171
149
  return $status === 'error' ? colors.error.main : colors.text.primary;
172
150
  });
173
151
  export var SCParallelCount = styled.span.withConfig({
@@ -181,24 +159,29 @@ export var SCParallelDetail = styled.div.withConfig({
181
159
  export var SCSummaryToggle = styled.button.withConfig({
182
160
  displayName: "ReasoningBlockstyles__SCSummaryToggle",
183
161
  componentId: "sc-y2psdb-12"
184
- })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform ", "ms ", ";}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
162
+ })(["align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:transparent;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#808080;transition:color 0.18s ease;animation:", " 0.24s ease-out;&:hover:not(:disabled){color:", ";}&:disabled{cursor:default;opacity:0.7;}&:disabled .ReasoningBlock-chevron{display:none;}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}.ReasoningBlock-chevron{flex-shrink:0;display:inline-flex;transition:transform 200ms ease;}&[aria-expanded='true'] .ReasoningBlock-chevron{transform:rotate(-90deg);}"], fadeIn, colors.text.primary, colors.primary.main);
163
+
164
+ /* height: auto <-> 0 sin medir el contenido: el track de grid interpola entre 0fr y 1fr. */
185
165
  export var SCTraceCollapse = styled.div.withConfig({
186
166
  displayName: "ReasoningBlockstyles__SCTraceCollapse",
187
167
  componentId: "sc-y2psdb-13"
188
- })(["overflow:hidden;height:", ";transition:height ", "ms ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref16) {
189
- var $height = _ref16.$height;
190
- return $height === 'auto' ? 'auto' : "".concat($height, "px");
191
- }, REASONING_COLLAPSE_MS, REASONING_COLLAPSE_EASE);
168
+ })(["display:grid;grid-template-rows:", ";transition:grid-template-rows 240ms cubic-bezier(0.2,0,0,1);> *{min-height:0;overflow:hidden;}"], function (_ref13) {
169
+ var $isOpen = _ref13.$isOpen;
170
+ return $isOpen ? '1fr' : '0fr';
171
+ });
192
172
  export var SCExpandedTrace = styled.div.withConfig({
193
173
  displayName: "ReasoningBlockstyles__SCExpandedTrace",
194
174
  componentId: "sc-y2psdb-14"
195
- })(["display:flex;flex-direction:column;padding-bottom:24px;opacity:", ";transition:opacity ", " ", ";@media (prefers-reduced-motion:reduce){transition:none;}"], function (_ref17) {
196
- var $isOpen = _ref17.$isOpen;
175
+ })(["display:flex;flex-direction:column;opacity:", ";padding-bottom:", ";transform:translateY(", ");transition:opacity 140ms ease-out,transform 140ms ease-out,padding 240ms cubic-bezier(0.2,0,0,1);"], function (_ref14) {
176
+ var $isOpen = _ref14.$isOpen;
197
177
  return $isOpen ? 1 : 0;
198
- }, function (_ref18) {
199
- var $isOpen = _ref18.$isOpen;
200
- return $isOpen ? '280ms' : "280ms ".concat(REASONING_COLLAPSE_MS - 280, "ms");
201
- }, REASONING_COLLAPSE_EASE);
178
+ }, function (_ref15) {
179
+ var $isOpen = _ref15.$isOpen;
180
+ return $isOpen ? '24px' : '0';
181
+ }, function (_ref16) {
182
+ var $isOpen = _ref16.$isOpen;
183
+ return $isOpen ? '0' : '-4px';
184
+ });
202
185
  export var SCTraceNote = styled.p.withConfig({
203
186
  displayName: "ReasoningBlockstyles__SCTraceNote",
204
187
  componentId: "sc-y2psdb-15"
@@ -211,4 +194,4 @@ export var SCErrorRow = styled.div.withConfig({
211
194
  displayName: "ReasoningBlockstyles__SCErrorRow",
212
195
  componentId: "sc-y2psdb-17"
213
196
  })(["display:flex;align-items:center;gap:8px;font-size:12px;color:", ";button{border:none;background:none;padding:0;cursor:pointer;font-size:12px;text-decoration:underline;color:", ";}"], colors.text.mediumGray, colors.text.primary);
214
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJNQVJLRVJfQUNUSVZBVEVfREVMQVlfTVMiLCJNQVJLRVJfSEFORE9GRl9NUyIsIk5BUlJBVElPTl9FTlRFUl9FQVNFIiwiUkVBU09OSU5HX0NPTExBUFNFX0VBU0UiLCJSRUFTT05JTkdfQ09MTEFQU0VfTVMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJuYXJyYXRpb25FbnRlciIsIk5BUlJBVElPTl9FTlRFUl9NUyIsIm1hcmtlclB1bHNlIiwiTUFSS0VSX1NJWkUiLCJHVVRURVJfV0lEVEgiLCJNQVJLRVJfUEFERElOR19ZIiwiTUFSS0VSX1RPUCIsIk1BUktFUl9SQUlMX0xFRlQiLCJSQUlMX0dBUCIsIk1BUktFUl9SQUlMX1RPUF9FTkQiLCJNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQiLCJyYWlsQmVmb3JlQm90dG9tIiwicmFpbFRocm91Z2giLCJyYWlsVG9wIiwiY29uY2F0Iiwic3RlcFJvd1BhZGRpbmdCb3R0b20iLCJoYXNNYXJrZXIiLCJjb25uZWN0QmVsb3ciLCJyYWlsQmVmb3JlRGlzcGxheSIsInNob3dDaHJvbWUiLCJyYWlsQWZ0ZXJEaXNwbGF5IiwicmFpbEJvdHRvbSIsInJhaWxTZWdtZW50U3R5bGUiLCJ0ZXh0IiwibWVkaXVtR3JheSIsIm1hcmtlckNvbG9yIiwic3RhdHVzIiwiaXNBY3RpdmUiLCJlcnJvciIsIm1haW4iLCJwcmltYXJ5IiwiU0NSZWFzb25pbmdCbG9jayIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiU0NMaXZlU3RlcCIsIlNDUmVhc29uaW5nVGltZWxpbmUiLCJzdGVwUmVwbGFjZUFuaW0iLCJuYXJyYXRpb25FbnRlckFuaW0iLCJTQ1RpbWVsaW5lUm93IiwiX3JlZiIsIiRzZWFtbGVzcyIsIiRuYXJyYXRpb25FbnRlciIsIlNDVGltZWxpbmVJbmRpY2F0b3IiLCJTQ0ZpbmFsQW5zd2VyQm9keSIsIlNDVGhpbmtpbmdUZXh0IiwiX3JlZjIiLCIkbXV0ZWQiLCJfcmVmMyIsIlNDU3RlcFJvdyIsIl9yZWY0IiwiJHNob3dDaHJvbWUiLCJfcmVmNSIsIiRoYXNNYXJrZXIiLCJfcmVmNiIsIiRjb25uZWN0QmVsb3ciLCJfcmVmNyIsIiRyYWlsVGhyb3VnaCIsIiRyYWlsVG9wIiwiX3JlZjgiLCJfcmVmOSIsIiRyYWlsQm90dG9tIiwiX3JlZjAiLCJfcmVmMSIsIiRzdGF0dXMiLCIkaXNBY3RpdmUiLCJfcmVmMTAiLCJfcmVmMTEiLCJfcmVmMTIiLCIkaXNIYW5kb2ZmIiwiX3JlZjEzIiwiX3JlZjE0IiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjE1IiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTYiLCIkaGVpZ2h0IiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE3IiwiJGlzT3BlbiIsIl9yZWYxOCIsIlNDVHJhY2VOb3RlIiwicCIsIlNDTG9hZGluZ0xpbmUiLCJTQ0Vycm9yUm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvUmVhc29uaW5nQmxvY2svUmVhc29uaW5nQmxvY2suc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQsIHsgY3NzLCBrZXlmcmFtZXMgfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgTUFSS0VSX0FDVElWQVRFX0RFTEFZX01TLCBNQVJLRVJfSEFORE9GRl9NUywgTkFSUkFUSU9OX0VOVEVSX0VBU0UgfSBmcm9tICcuL3JlYXNvbmluZ01vdGlvbidcbmltcG9ydCB7IFJFQVNPTklOR19DT0xMQVBTRV9FQVNFLCBSRUFTT05JTkdfQ09MTEFQU0VfTVMgfSBmcm9tICcuL3VzZUNvbGxhcHNpYmxlSGVpZ2h0J1xuXG5leHBvcnQgY29uc3QgTElWRV9WSUVXUE9SVF9NQVhfSEVJR0hUID0gNzJcblxuY29uc3Qgc2hpbW1lciA9IGtleWZyYW1lc2BcbiAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7IH1cbiAgMTAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7IH1cbmBcblxuY29uc3QgZmFkZUluID0ga2V5ZnJhbWVzYFxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG5gXG5cbmNvbnN0IHN0ZXBSZXBsYWNlID0ga2V5ZnJhbWVzYFxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuLyoqIE5hcnJhY2nDs24gcXVlIHBhc2EgZGVsIGJvZHkgYWwgYmxvcXVlOiBkZXNsaXphIHN1YXZlIGRlc2RlIGxhIGl6cXVpZXJkYS4gKi9cbmNvbnN0IG5hcnJhdGlvbkVudGVyID0ga2V5ZnJhbWVzYFxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG5leHBvcnQgY29uc3QgTkFSUkFUSU9OX0VOVEVSX01TID0gNjgwXG5leHBvcnQgeyBOQVJSQVRJT05fRU5URVJfRUFTRSB9IGZyb20gJy4vcmVhc29uaW5nTW90aW9uJ1xuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAxNlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnOHB4JyA6ICcwJ1xufVxuXG5jb25zdCByYWlsQmVmb3JlRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIChyYWlsVGhyb3VnaCB8fCByYWlsVG9wKSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbEFmdGVyRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbEJvdHRvbT86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiByYWlsQm90dG9tID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsU2VnbWVudFN0eWxlID0gYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6ICR7TUFSS0VSX1JBSUxfTEVGVH1weDtcbiAgd2lkdGg6IDFweDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC4yNTtcbmBcblxuLyoqIEVsIHBhc28gYWN0aXZvIHZhIGEgY29sb3IgcGxlbm87IGxvcyBjZXJyYWRvcyBxdWVkYW4gYXRlbnVhZG9zLiAqL1xuY29uc3QgbWFya2VyQ29sb3IgPSAoc3RhdHVzPzogc3RyaW5nLCBpc0FjdGl2ZT86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gY29sb3JzLmVycm9yLm1haW5cbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gY29sb3JzLnRleHQucHJpbWFyeVxuICByZXR1cm4gY29sb3JzLnRleHQubWVkaXVtR3JheVxufVxuXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdCbG9jayA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBTaW4gZ2FwOiBlbCBlc3BhY2lvIGhhY2lhIGVsIGRldGFsbGUgdml2ZSBlbiBzdSBwYWRkaW5nLXRvcCwgYXPDrSBjb2xhcHNhIGp1bnRvIGNvbiDDqWwuICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xpdmVTdGVwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6ICR7TElWRV9WSUVXUE9SVF9NQVhfSEVJR0hUfXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjJzIGVhc2Utb3V0O1xuYFxuXG4vKiBUaW1lbGluZSBlbiB2aXZvOiBsb3MgcGFzb3Mgc2UgYXBpbGFuIGVuIHZleiBkZSByZWVtcGxhemFyc2UuICovXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdUaW1lbGluZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYFxuXG5jb25zdCBzdGVwUmVwbGFjZUFuaW0gPSBjc3NgXG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcbmBcblxuY29uc3QgbmFycmF0aW9uRW50ZXJBbmltID0gY3NzYFxuICBhbmltYXRpb246ICR7bmFycmF0aW9uRW50ZXJ9ICR7TkFSUkFUSU9OX0VOVEVSX01TfW1zICR7TkFSUkFUSU9OX0VOVEVSX0VBU0V9IGJvdGg7XG5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbmBcblxuLyogQ2FkYSBmaWxhIGVudHJhIHNvbGEgY3VhbmRvIGxsZWdhIHN1IHBhc286IHNpbiBkZWxheSBlc2NhbG9uYWRvIChubyBlcyB1biBsaXN0YWRvIHF1ZSBtb250YSBqdW50bykuICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZVJvdyA9IHN0eWxlZC5kaXY8eyAkc2VhbWxlc3M/OiBib29sZWFuOyAkbmFycmF0aW9uRW50ZXI/OiBib29sZWFuIH0+YFxuICAkeyh7ICRzZWFtbGVzcywgJG5hcnJhdGlvbkVudGVyIH0pID0+IHtcbiAgICBpZiAoJHNlYW1sZXNzKSByZXR1cm4gY3NzYGBcbiAgICBpZiAoJG5hcnJhdGlvbkVudGVyKSByZXR1cm4gbmFycmF0aW9uRW50ZXJBbmltXG4gICAgcmV0dXJuIHN0ZXBSZXBsYWNlQW5pbVxuICB9fVxuYFxuXG4vKiBWYSBkZWJham8gZGVsIGN1ZXJwbyBkZWwgbWVuc2FqZTogc2VwYXJhIGRlbCB0ZXh0byB5IG5vIGRlamEgYWlyZSBzb2JyYW50ZSBhYmFqby4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lSW5kaWNhdG9yID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuXG4gID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbmBcblxuLyoqIFJlc3B1ZXN0YSBmaW5hbCBlbiBzdHJlYW06IHNpbiBndXR0ZXIgZGUgbGEgdHJhemEsIGRlYmFqbyBkZWwgcmF6b25hbWllbnRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDRmluYWxBbnN3ZXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG5gXG5cbi8qIEVsIG1hcmtkb3duIGxvIHJlc3VlbHZlIE1haWFTdHJlYW1kb3duIChtaXNtbyB2YXJpYW50IHF1ZSBlbCBjdWVycG8gZGVsIG1lbnNhamUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGhpbmtpbmdUZXh0ID0gc3R5bGVkLmRpdjx7ICRtdXRlZD86IGJvb2xlYW4gfT5gXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAvKiBFbCB0aGlua2luZyAocmF6b25hbWllbnRvIGNydWRvKSB2YSBhdGVudWFkbyBwYXJhIGRpc3Rpbmd1aXJsbyBkZSBsYSBuYXJyYWNpw7NuLiAqL1xuICBvcGFjaXR5OiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gMC42IDogMSl9O1xuICBmb250LXN0eWxlOiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gJ2l0YWxpYycgOiAnbm9ybWFsJyl9O1xuYFxuXG4vKipcbiAqIEZpbGEgZGUgbGEgdHJhemEuIFNvbG8gbG9zIHBhc29zIGRlIGFjY2nDs24gKHRvb2wvaGFuZG9mZikgbGxldmFuIGPDrXJjdWxvOyBsYXNcbiAqIG5hcnJhY2lvbmVzICh0YW1iacOpbiBsYSBpbmljaWFsKSBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXNcbiAqIGF0cmF2aWVzZSBzaW4gcHVudG8uIEVsIHJhaWwgZGVqYSA0cHggZGUgc2VwYXJhY2nDs24gYW50ZXMgZGUgY2FkYSBjw61yY3Vsby5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDU3RlcFJvdyA9IHN0eWxlZC5kaXY8e1xuICAkc3RhdHVzPzogc3RyaW5nXG4gICRoYXNNYXJrZXI/OiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gICRpc0FjdGl2ZT86IGJvb2xlYW5cbiAgJGlzSGFuZG9mZj86IGJvb2xlYW5cbiAgJHNob3dDaHJvbWU/OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaD86IGJvb2xlYW5cbiAgJHJhaWxUb3A/OiBib29sZWFuXG4gICRyYWlsQm90dG9tPzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/IGAke0dVVFRFUl9XSURUSH1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy10b3A6ICR7KHsgJGhhc01hcmtlciB9KSA9PiAoJGhhc01hcmtlciA/IGAke01BUktFUl9QQURESU5HX1l9cHhgIDogJzAnKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRoYXNNYXJrZXIsICRjb25uZWN0QmVsb3cgfSkgPT4gc3RlcFJvd1BhZGRpbmdCb3R0b20oJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyl9O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAkeyh7ICRyYWlsVGhyb3VnaCwgJHJhaWxUb3AgfSkgPT4gcmFpbEJlZm9yZUJvdHRvbSgkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20gfSkgPT4gcmFpbEFmdGVyRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20pfTtcbiAgICAke3JhaWxTZWdtZW50U3R5bGV9XG4gICAgdG9wOiAke01BUktFUl9SQUlMX0JPVFRPTV9TVEFSVH1weDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stbWFya2VyIHtcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICR7TUFSS0VSX1RPUH1weDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAke01BUktFUl9TSVpFfXB4O1xuICAgIGhlaWdodDogJHtNQVJLRVJfU0laRX1weDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5SZWFzb25pbmdCbG9jay1tYXJrZXJEb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHsoeyAkc3RhdHVzLCAkaXNBY3RpdmUgfSkgPT4gbWFya2VyQ29sb3IoJHN0YXR1cywgJGlzQWN0aXZlKX07XG4gICAgb3BhY2l0eTogJHsoeyAkaXNBY3RpdmUgfSkgPT4gKCRpc0FjdGl2ZSA/IDEgOiAwLjQ1KX07XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIG9wYWNpdHkgJHtNQVJLRVJfSEFORE9GRl9NU31tcyAke05BUlJBVElPTl9FTlRFUl9FQVNFfSxcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJHtNQVJLRVJfSEFORE9GRl9NU31tcyAke05BUlJBVElPTl9FTlRFUl9FQVNFfTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gYCR7TUFSS0VSX0FDVElWQVRFX0RFTEFZX01TfW1zYCA6ICcwbXMnKX07XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stbWFya2VySGFsbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHtNQVJLRVJfSEFORE9GRl9NU31tcyAke05BUlJBVElPTl9FTlRFUl9FQVNFfTtcbiAgICBhbmltYXRpb246ICR7bWFya2VyUHVsc2V9IDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgYW5pbWF0aW9uLXBsYXktc3RhdGU6ICR7KHsgJGlzQWN0aXZlLCAkaXNIYW5kb2ZmIH0pID0+ICgkaXNBY3RpdmUgfHwgJGlzSGFuZG9mZiA/ICdydW5uaW5nJyA6ICdwYXVzZWQnKX07XG5cbiAgICAkeyh7ICRpc0FjdGl2ZSB9KSA9PlxuICAgICAgJGlzQWN0aXZlICYmXG4gICAgICBjc3NgXG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6ICR7TUFSS0VSX0FDVElWQVRFX0RFTEFZX01TfW1zO1xuICAgICAgYH1cblxuICAgICR7KHsgJGlzSGFuZG9mZiwgJGlzQWN0aXZlIH0pID0+XG4gICAgICAkaXNIYW5kb2ZmICYmXG4gICAgICAhJGlzQWN0aXZlICYmXG4gICAgICBjc3NgXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbFN0ZXAgPSBzdHlsZWQuZGl2PHsgJHN0YXR1cz86IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICMyMDIwMjA7XG5cbiAgLlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJHsoeyAkc3RhdHVzIH0pID0+ICgkc3RhdHVzID09PSAnZXJyb3InID8gY29sb3JzLmVycm9yLm1haW4gOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stdG9vbFByZXZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ291bnQgPSBzdHlsZWQuc3BhbmBcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjODA4MDgwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NQYXJhbGxlbERldGFpbCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdW1tYXJ5VG9nZ2xlID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2U7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuMjRzIGVhc2Utb3V0O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gICY6ZGlzYWJsZWQgLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2NvbG9ycy5wcmltYXJ5Lm1haW59O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR7UkVBU09OSU5HX0NPTExBUFNFX01TfW1zICR7UkVBU09OSU5HX0NPTExBUFNFX0VBU0V9O1xuICB9XG5cbiAgLyogQ29sYXBzYWRvIGFwdW50YSBhIGxhIGRlcmVjaGEgKG9yaWVudGFjacOzbiBuYXRpdmEgZGVsIGljb25vKTsgZXhwYW5kaWRvLCBhcnJpYmEuICovXG4gICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIC5SZWFzb25pbmdCbG9jay1jaGV2cm9uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG5cbiAgLyogRWwgZ3Vpb24gZXMgcGFydGUgZGVsIHRleHRvIGVuIGVsIG1hcXVldGFkbywgbm8gdW4gc2VwYXJhZG9yIGF0ZW51YWRvLiAqL1xuYFxuXG5leHBvcnQgY29uc3QgU0NUcmFjZUNvbGxhcHNlID0gc3R5bGVkLmRpdjx7ICRoZWlnaHQ6IG51bWJlciB8ICdhdXRvJyB9PmBcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAkeyh7ICRoZWlnaHQgfSkgPT4gKCRoZWlnaHQgPT09ICdhdXRvJyA/ICdhdXRvJyA6IGAkeyRoZWlnaHR9cHhgKX07XG4gIHRyYW5zaXRpb246IGhlaWdodCAke1JFQVNPTklOR19DT0xMQVBTRV9NU31tcyAke1JFQVNPTklOR19DT0xMQVBTRV9FQVNFfTtcblxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRXhwYW5kZWRUcmFjZSA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgb3BhY2l0eTogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gMSA6IDApfTtcbiAgLyogRWwgZmFkZSB2YSBhbCBmaW5hbDogc2kgc2UgYXBhZ2EgYW50ZXMsIG5vIHNlIHZlIGVsIGNpZXJyZSBkZSBsYSBhbHR1cmEuICovXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzI4MG1zJyA6IGAyODBtcyAke1JFQVNPTklOR19DT0xMQVBTRV9NUyAtIDI4MH1tc2ApfVxuICAgICR7UkVBU09OSU5HX0NPTExBUFNFX0VBU0V9O1xuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NUcmFjZU5vdGUgPSBzdHlsZWQucGBcbiAgbWFyZ2luOiA4cHggMCAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG4gIG9wYWNpdHk6IDAuNzU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xvYWRpbmdMaW5lID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMHB4O1xuICB3aWR0aDogNjAlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgwLCAwLCAwLCAwLjA0KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjA4KSA1MCUsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMTAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246ICR7c2hpbW1lcn0gMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDRXJyb3JSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcblxuICBidXR0b24ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5wcmltYXJ5fTtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLHdCQUF3QixFQUFFQyxpQkFBaUIsRUFBRUMsb0JBQW9CLFFBQVEsbUJB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
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQiLCJzaGltbWVyIiwiZmFkZUluIiwic3RlcFJlcGxhY2UiLCJtYXJrZXJQdWxzZSIsIk1BUktFUl9TSVpFIiwiR1VUVEVSX1dJRFRIIiwiTUFSS0VSX1BBRERJTkdfWSIsIk1BUktFUl9UT1AiLCJNQVJLRVJfUkFJTF9MRUZUIiwiUkFJTF9HQVAiLCJNQVJLRVJfUkFJTF9UT1BfRU5EIiwiTUFSS0VSX1JBSUxfQk9UVE9NX1NUQVJUIiwicmFpbEJlZm9yZUJvdHRvbSIsInJhaWxUaHJvdWdoIiwicmFpbFRvcCIsImNvbmNhdCIsInN0ZXBSb3dQYWRkaW5nQm90dG9tIiwiaGFzTWFya2VyIiwiY29ubmVjdEJlbG93IiwicmFpbEJlZm9yZURpc3BsYXkiLCJzaG93Q2hyb21lIiwicmFpbEFmdGVyRGlzcGxheSIsInJhaWxCb3R0b20iLCJyYWlsU2VnbWVudFN0eWxlIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJtYXJrZXJDb2xvciIsInN0YXR1cyIsImlzQWN0aXZlIiwiZXJyb3IiLCJtYWluIiwicHJpbWFyeSIsIlNDUmVhc29uaW5nQmxvY2siLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDTGl2ZVN0ZXAiLCJTQ1JlYXNvbmluZ1RpbWVsaW5lIiwic3RlcFJlcGxhY2VBbmltIiwiU0NUaW1lbGluZVJvdyIsIl9yZWYiLCIkc2VhbWxlc3MiLCJTQ1RpbWVsaW5lSW5kaWNhdG9yIiwiU0NGaW5hbEFuc3dlckJvZHkiLCJTQ1RoaW5raW5nVGV4dCIsIl9yZWYyIiwiJG11dGVkIiwiX3JlZjMiLCJTQ1N0ZXBSb3ciLCJfcmVmNCIsIiRzaG93Q2hyb21lIiwiX3JlZjUiLCIkaGFzTWFya2VyIiwiX3JlZjYiLCIkY29ubmVjdEJlbG93IiwiX3JlZjciLCIkcmFpbFRocm91Z2giLCIkcmFpbFRvcCIsIl9yZWY4IiwiX3JlZjkiLCIkcmFpbEJvdHRvbSIsIl9yZWYwIiwiX3JlZjEiLCIkc3RhdHVzIiwiJGlzQWN0aXZlIiwiX3JlZjEwIiwiX3JlZjExIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1Rvb2xTdGVwIiwiX3JlZjEyIiwiU0NQYXJhbGxlbENvdW50Iiwic3BhbiIsIlNDUGFyYWxsZWxEZXRhaWwiLCJTQ1N1bW1hcnlUb2dnbGUiLCJidXR0b24iLCJTQ1RyYWNlQ29sbGFwc2UiLCJfcmVmMTMiLCIkaXNPcGVuIiwiU0NFeHBhbmRlZFRyYWNlIiwiX3JlZjE0IiwiX3JlZjE1IiwiX3JlZjE2IiwiU0NUcmFjZU5vdGUiLCJwIiwiU0NMb2FkaW5nTGluZSIsIlNDRXJyb3JSb3ciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdCbG9jay5zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5cbmV4cG9ydCBjb25zdCBMSVZFX1ZJRVdQT1JUX01BWF9IRUlHSFQgPSA3MlxuXG5jb25zdCBzaGltbWVyID0ga2V5ZnJhbWVzYFxuICAwJSB7IGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfVxuYFxuXG5jb25zdCBmYWRlSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IG5vbmU7IH1cbmBcblxuY29uc3Qgc3RlcFJlcGxhY2UgPSBrZXlmcmFtZXNgXG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxuYFxuXG4vKiBIYWxvIGRlbCBwYXNvIGVuIGN1cnNvOiBsbyBkaXN0aW5ndWUgZGUgbG9zIHlhIGNlcnJhZG9zIHNpbiBjYW1iaWFyIHN1IHRhbWHDsW8uICovXG5jb25zdCBtYXJrZXJQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMzIsIDMyLCAzMiwgMC4yOCk7IH1cbiAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgNXB4IHJnYmEoMzIsIDMyLCAzMiwgMCk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgzMiwgMzIsIDMyLCAwKTsgfVxuYFxuXG4vKiogR3V0dGVyIGRvbmRlIHZpdmVuIGVsIG1hcmNhZG9yIHkgbGEgbMOtbmVhIHF1ZSB1bmUgbG9zIHBhc29zLiAqL1xuY29uc3QgTUFSS0VSX1NJWkUgPSA3XG5jb25zdCBHVVRURVJfV0lEVEggPSAxNlxuY29uc3QgTUFSS0VSX1BBRERJTkdfWSA9IDRcbi8qIENlbnRyYSBlbCBtYXJjYWRvciBjb24gbGEgcHJpbWVyYSBsw61uZWEgZGUgdGV4dG8gKDE2cHggKiAxLjUgPSAyNHB4KSArIHBhZGRpbmcgdmVydGljYWwuICovXG5jb25zdCBNQVJLRVJfVE9QID0gTUFSS0VSX1BBRERJTkdfWSArICgyNCAtIE1BUktFUl9TSVpFKSAvIDJcbi8qKiBDZW50cmEgZWwgcmFpbCBkZSAxcHggY29uIGVsIGPDrXJjdWxvIGRlIDdweC4gKi9cbmNvbnN0IE1BUktFUl9SQUlMX0xFRlQgPSAoTUFSS0VSX1NJWkUgLSAxKSAvIDJcbi8qKiBTZXBhcmFjacOzbiBlbnRyZSBlbCByYWlsIHkgZWwgYm9yZGUgZGVsIGPDrXJjdWxvLiAqL1xuY29uc3QgUkFJTF9HQVAgPSA0XG5jb25zdCBNQVJLRVJfUkFJTF9UT1BfRU5EID0gTUFSS0VSX1RPUCAtIFJBSUxfR0FQXG5jb25zdCBNQVJLRVJfUkFJTF9CT1RUT01fU1RBUlQgPSBNQVJLRVJfVE9QICsgTUFSS0VSX1NJWkUgKyBSQUlMX0dBUFxuXG5jb25zdCByYWlsQmVmb3JlQm90dG9tID0gKHJhaWxUaHJvdWdoPzogYm9vbGVhbiwgcmFpbFRvcD86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAocmFpbFRocm91Z2gpIHJldHVybiAnMCdcbiAgaWYgKHJhaWxUb3ApIHJldHVybiBgY2FsYygxMDAlIC0gJHtNQVJLRVJfUkFJTF9UT1BfRU5EfXB4KWBcbiAgcmV0dXJuICcwJ1xufVxuXG5jb25zdCBzdGVwUm93UGFkZGluZ0JvdHRvbSA9IChoYXNNYXJrZXI/OiBib29sZWFuLCBjb25uZWN0QmVsb3c/OiBib29sZWFuKTogc3RyaW5nID0+IHtcbiAgaWYgKGhhc01hcmtlcikgcmV0dXJuIGAke01BUktFUl9QQURESU5HX1l9cHhgXG4gIHJldHVybiBjb25uZWN0QmVsb3cgPyAnOHB4JyA6ICcwJ1xufVxuXG5jb25zdCByYWlsQmVmb3JlRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbFRocm91Z2g/OiBib29sZWFuLCByYWlsVG9wPzogYm9vbGVhbik6IHN0cmluZyA9PlxuICBzaG93Q2hyb21lICYmIChyYWlsVGhyb3VnaCB8fCByYWlsVG9wKSA/ICdibG9jaycgOiAnbm9uZSdcblxuY29uc3QgcmFpbEFmdGVyRGlzcGxheSA9IChzaG93Q2hyb21lPzogYm9vbGVhbiwgcmFpbEJvdHRvbT86IGJvb2xlYW4pOiBzdHJpbmcgPT5cbiAgc2hvd0Nocm9tZSAmJiByYWlsQm90dG9tID8gJ2Jsb2NrJyA6ICdub25lJ1xuXG5jb25zdCByYWlsU2VnbWVudFN0eWxlID0gYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6ICR7TUFSS0VSX1JBSUxfTEVGVH1weDtcbiAgd2lkdGg6IDFweDtcbiAgei1pbmRleDogMDtcbiAgYmFja2dyb3VuZDogJHtjb2xvcnMudGV4dC5tZWRpdW1HcmF5fTtcbiAgb3BhY2l0eTogMC4yNTtcbmBcblxuLyoqIEVsIHBhc28gYWN0aXZvIHZhIGEgY29sb3IgcGxlbm87IGxvcyBjZXJyYWRvcyBxdWVkYW4gYXRlbnVhZG9zLiAqL1xuY29uc3QgbWFya2VyQ29sb3IgPSAoc3RhdHVzPzogc3RyaW5nLCBpc0FjdGl2ZT86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICBpZiAoc3RhdHVzID09PSAnZXJyb3InKSByZXR1cm4gY29sb3JzLmVycm9yLm1haW5cbiAgaWYgKGlzQWN0aXZlKSByZXR1cm4gY29sb3JzLnRleHQucHJpbWFyeVxuICByZXR1cm4gY29sb3JzLnRleHQubWVkaXVtR3JheVxufVxuXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdCbG9jayA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiBTaW4gZ2FwOiBlbCBlc3BhY2lvIGhhY2lhIGVsIGRldGFsbGUgdml2ZSBlbiBzdSBwYWRkaW5nLXRvcCwgYXPDrSBjb2xhcHNhIGp1bnRvIGNvbiDDqWwuICovXG5gXG5cbmV4cG9ydCBjb25zdCBTQ0xpdmVTdGVwID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6ICR7TElWRV9WSUVXUE9SVF9NQVhfSEVJR0hUfXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246ICR7c3RlcFJlcGxhY2V9IDAuMjJzIGVhc2Utb3V0O1xuYFxuXG4vKiBUaW1lbGluZSBlbiB2aXZvOiBsb3MgcGFzb3Mgc2UgYXBpbGFuIGVuIHZleiBkZSByZWVtcGxhemFyc2UuICovXG5leHBvcnQgY29uc3QgU0NSZWFzb25pbmdUaW1lbGluZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDY0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYFxuXG5jb25zdCBzdGVwUmVwbGFjZUFuaW0gPSBjc3NgXG4gIGFuaW1hdGlvbjogJHtzdGVwUmVwbGFjZX0gMC4yNHMgZWFzZS1vdXQgYm90aDtcbmBcblxuLyogQ2FkYSBmaWxhIGVudHJhIHNvbGEgY3VhbmRvIGxsZWdhIHN1IHBhc286IHNpbiBkZWxheSBlc2NhbG9uYWRvIChubyBlcyB1biBsaXN0YWRvIHF1ZSBtb250YSBqdW50bykuICovXG5leHBvcnQgY29uc3QgU0NUaW1lbGluZVJvdyA9IHN0eWxlZC5kaXY8eyAkc2VhbWxlc3M/OiBib29sZWFuIH0+YFxuICAkeyh7ICRzZWFtbGVzcyB9KSA9PiAoJHNlYW1sZXNzID8gY3NzYGAgOiBzdGVwUmVwbGFjZUFuaW0pfVxuYFxuXG4vKiBWYSBkZWJham8gZGVsIGN1ZXJwbyBkZWwgbWVuc2FqZTogc2VwYXJhIGRlbCB0ZXh0byB5IG5vIGRlamEgYWlyZSBzb2JyYW50ZSBhYmFqby4gKi9cbmV4cG9ydCBjb25zdCBTQ1RpbWVsaW5lSW5kaWNhdG9yID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgYW5pbWF0aW9uOiAke3N0ZXBSZXBsYWNlfSAwLjI0cyBlYXNlLW91dCBib3RoO1xuXG4gID4gKiB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbmBcblxuLyoqIFJlc3B1ZXN0YSBmaW5hbCBlbiBzdHJlYW06IHNpbiBndXR0ZXIgZGUgbGEgdHJhemEsIGRlYmFqbyBkZWwgcmF6b25hbWllbnRvLiAqL1xuZXhwb3J0IGNvbnN0IFNDRmluYWxBbnN3ZXJCb2R5ID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG5gXG5cbi8qIEVsIG1hcmtkb3duIGxvIHJlc3VlbHZlIE1haWFTdHJlYW1kb3duIChtaXNtbyB2YXJpYW50IHF1ZSBlbCBjdWVycG8gZGVsIG1lbnNhamUpLiAqL1xuZXhwb3J0IGNvbnN0IFNDVGhpbmtpbmdUZXh0ID0gc3R5bGVkLmRpdjx7ICRtdXRlZD86IGJvb2xlYW4gfT5gXG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAvKiBFbCB0aGlua2luZyAocmF6b25hbWllbnRvIGNydWRvKSB2YSBhdGVudWFkbyBwYXJhIGRpc3Rpbmd1aXJsbyBkZSBsYSBuYXJyYWNpw7NuLiAqL1xuICBvcGFjaXR5OiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gMC42IDogMSl9O1xuICBmb250LXN0eWxlOiAkeyh7ICRtdXRlZCB9KSA9PiAoJG11dGVkID8gJ2l0YWxpYycgOiAnbm9ybWFsJyl9O1xuYFxuXG4vKipcbiAqIEZpbGEgZGUgbGEgdHJhemEuIFNvbG8gbG9zIHBhc29zIGRlIGFjY2nDs24gKHRvb2wvaGFuZG9mZikgbGxldmFuIGPDrXJjdWxvOyBsYXNcbiAqIG5hcnJhY2lvbmVzICh0YW1iacOpbiBsYSBpbmljaWFsKSBjb21wYXJ0ZW4gZWwgZ3V0dGVyIHBhcmEgcXVlIGxhIGzDrW5lYSBsYXNcbiAqIGF0cmF2aWVzZSBzaW4gcHVudG8uIEVsIHJhaWwgZGVqYSA0cHggZGUgc2VwYXJhY2nDs24gYW50ZXMgZGUgY2FkYSBjw61yY3Vsby5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDU3RlcFJvdyA9IHN0eWxlZC5kaXY8e1xuICAkc3RhdHVzPzogc3RyaW5nXG4gICRoYXNNYXJrZXI/OiBib29sZWFuXG4gICRjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gICRjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gICRpc0FjdGl2ZT86IGJvb2xlYW5cbiAgJHNob3dDaHJvbWU/OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaD86IGJvb2xlYW5cbiAgJHJhaWxUb3A/OiBib29sZWFuXG4gICRyYWlsQm90dG9tPzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/IGAke0dVVFRFUl9XSURUSH1weGAgOiAnMCcpfTtcbiAgcGFkZGluZy10b3A6ICR7KHsgJGhhc01hcmtlciB9KSA9PiAoJGhhc01hcmtlciA/IGAke01BUktFUl9QQURESU5HX1l9cHhgIDogJzAnKX07XG4gIHBhZGRpbmctYm90dG9tOiAkeyh7ICRoYXNNYXJrZXIsICRjb25uZWN0QmVsb3cgfSkgPT4gc3RlcFJvd1BhZGRpbmdCb3R0b20oJGhhc01hcmtlciwgJGNvbm5lY3RCZWxvdyl9O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCB9KSA9PiByYWlsQmVmb3JlRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxUaHJvdWdoLCAkcmFpbFRvcCl9O1xuICAgICR7cmFpbFNlZ21lbnRTdHlsZX1cbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAkeyh7ICRyYWlsVGhyb3VnaCwgJHJhaWxUb3AgfSkgPT4gcmFpbEJlZm9yZUJvdHRvbSgkcmFpbFRocm91Z2gsICRyYWlsVG9wKX07XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogJHsoeyAkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20gfSkgPT4gcmFpbEFmdGVyRGlzcGxheSgkc2hvd0Nocm9tZSwgJHJhaWxCb3R0b20pfTtcbiAgICAke3JhaWxTZWdtZW50U3R5bGV9XG4gICAgdG9wOiAke01BUktFUl9SQUlMX0JPVFRPTV9TVEFSVH1weDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stbWFya2VyIHtcbiAgICBkaXNwbGF5OiAkeyh7ICRzaG93Q2hyb21lIH0pID0+ICgkc2hvd0Nocm9tZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICR7TUFSS0VSX1RPUH1weDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAke01BUktFUl9TSVpFfXB4O1xuICAgIGhlaWdodDogJHtNQVJLRVJfU0laRX1weDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHsoeyAkc3RhdHVzLCAkaXNBY3RpdmUgfSkgPT4gbWFya2VyQ29sb3IoJHN0YXR1cywgJGlzQWN0aXZlKX07XG4gICAgb3BhY2l0eTogJHsoeyAkaXNBY3RpdmUgfSkgPT4gKCRpc0FjdGl2ZSA/IDEgOiAwLjQ1KX07XG4gICAgYW5pbWF0aW9uOiAkeyh7ICRpc0FjdGl2ZSB9KSA9PiAoJGlzQWN0aXZlID8gbWFya2VyUHVsc2UgOiAnbm9uZScpfSAxLjZzIGVhc2Utb3V0IGluZmluaXRlO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVG9vbFN0ZXAgPSBzdHlsZWQuZGl2PHsgJHN0YXR1cz86IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICMyMDIwMjA7XG5cbiAgLlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJHsoeyAkc3RhdHVzIH0pID0+ICgkc3RhdHVzID09PSAnZXJyb3InID8gY29sb3JzLmVycm9yLm1haW4gOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stdG9vbFByZXZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1BhcmFsbGVsQ291bnQgPSBzdHlsZWQuc3BhbmBcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjODA4MDgwO1xuYFxuXG5leHBvcnQgY29uc3QgU0NQYXJhbGxlbERldGFpbCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDJweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMTUwJTtcbiAgY29sb3I6ICM4MDgwODA7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NTdW1tYXJ5VG9nZ2xlID0gc3R5bGVkLmJ1dHRvbmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY29sb3I6ICM4MDgwODA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2U7XG4gIGFuaW1hdGlvbjogJHtmYWRlSW59IDAuMjRzIGVhc2Utb3V0O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gICY6ZGlzYWJsZWQgLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke2NvbG9ycy5wcmltYXJ5Lm1haW59O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAuUmVhc29uaW5nQmxvY2stY2hldnJvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7XG4gIH1cblxuICAvKiBDb2xhcHNhZG8gYXB1bnRhIGEgbGEgZGVyZWNoYSAob3JpZW50YWNpw7NuIG5hdGl2YSBkZWwgaWNvbm8pOyBleHBhbmRpZG8sIGFycmliYS4gKi9cbiAgJlthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLlJlYXNvbmluZ0Jsb2NrLWNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cblxuICAvKiBFbCBndWlvbiBlcyBwYXJ0ZSBkZWwgdGV4dG8gZW4gZWwgbWFxdWV0YWRvLCBubyB1biBzZXBhcmFkb3IgYXRlbnVhZG8uICovXG5gXG5cbi8qIGhlaWdodDogYXV0byA8LT4gMCBzaW4gbWVkaXIgZWwgY29udGVuaWRvOiBlbCB0cmFjayBkZSBncmlkIGludGVycG9sYSBlbnRyZSAwZnIgeSAxZnIuICovXG5leHBvcnQgY29uc3QgU0NUcmFjZUNvbGxhcHNlID0gc3R5bGVkLmRpdjx7ICRpc09wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzFmcicgOiAnMGZyJyl9O1xuICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMjQwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMCwgMCwgMSk7XG5cbiAgPiAqIHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDRXhwYW5kZWRUcmFjZSA9IHN0eWxlZC5kaXY8eyAkaXNPcGVuOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvcGFjaXR5OiAkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAxIDogMCl9O1xuICBwYWRkaW5nLWJvdHRvbTogJHsoeyAkaXNPcGVuIH0pID0+ICgkaXNPcGVuID8gJzI0cHgnIDogJzAnKX07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkeyh7ICRpc09wZW4gfSkgPT4gKCRpc09wZW4gPyAnMCcgOiAnLTRweCcpfSk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAxNDBtcyBlYXNlLW91dCxcbiAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZS1vdXQsXG4gICAgcGFkZGluZyAyNDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLCAxKTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVHJhY2VOb3RlID0gc3R5bGVkLnBgXG4gIG1hcmdpbjogOHB4IDAgMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0Lm1lZGl1bUdyYXl9O1xuICBvcGFjaXR5OiAwLjc1O1xuYFxuXG5leHBvcnQgY29uc3QgU0NMb2FkaW5nTGluZSA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMTBweDtcbiAgd2lkdGg6IDYwJTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wOCkgNTAlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke3NoaW1tZXJ9IDEuOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ0Vycm9yUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7Y29sb3JzLnRleHQubWVkaXVtR3JheX07XG5cbiAgYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY29sb3I6ICR7Y29sb3JzLnRleHQucHJpbWFyeX07XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLEVBQUVDLFNBQVMsUUFBUSxtQkFBbUI7QUFDMUQsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxPQUFPLElBQU1DLHdCQUF3QixHQUFHLEVBQUU7QUFFMUMsSUFBTUMsT0FBTyxHQUFHSCxTQUFTLHVFQUd4QjtBQUVELElBQU1JLE1BQU0sR0FBR0osU0FBUyw4RUFHdkI7QUFFRCxJQUFNSyxXQUFXLEdBQUdMLFNBQVMsNkVBRzVCOztBQUVEO0FBQ0EsSUFBTU0sV0FBVyxHQUFHTixTQUFTLHNJQUk1Qjs7QUFFRDtBQUNBLElBQU1PLFdBQVcsR0FBRyxDQUFDO0FBQ3JCLElBQU1DLFlBQVksR0FBRyxFQUFFO0FBQ3ZCLElBQU1DLGdCQUFnQixHQUFHLENBQUM7QUFDMUI7QUFDQSxJQUFNQyxVQUFVLEdBQUdELGdCQUFnQixHQUFHLENBQUMsRUFBRSxHQUFHRixXQUFXLElBQUksQ0FBQztBQUM1RDtBQUNBLElBQU1JLGdCQUFnQixHQUFHLENBQUNKLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM5QztBQUNBLElBQU1LLFFBQVEsR0FBRyxDQUFDO0FBQ2xCLElBQU1DLG1CQUFtQixHQUFHSCxVQUFVLEdBQUdFLFFBQVE7QUFDakQsSUFBTUUs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
@@ -61,40 +61,27 @@ var stepRowRailProps = function stepRowRailProps(hasMarker, connectAbove, connec
61
61
  $railBottom: showChrome && hasMarker && !!connectBelow
62
62
  };
63
63
  };
64
- var ReasoningStepMarker = function ReasoningStepMarker() {
65
- return /*#__PURE__*/_jsxs("span", {
66
- className: "ReasoningBlock-marker",
67
- "aria-hidden": true,
68
- children: [/*#__PURE__*/_jsx("span", {
69
- className: "ReasoningBlock-markerDot"
70
- }), /*#__PURE__*/_jsx("span", {
71
- className: "ReasoningBlock-markerHalo"
72
- })]
73
- });
74
- };
75
64
  export var ReasoningStepRow = function ReasoningStepRow(_ref) {
76
65
  var step = _ref.step,
77
66
  t = _ref.t,
78
67
  connectAbove = _ref.connectAbove,
79
68
  connectBelow = _ref.connectBelow,
80
69
  isActive = _ref.isActive,
81
- isHandoff = _ref.isHandoff,
82
70
  _ref$showChrome = _ref.showChrome,
83
- showChrome = _ref$showChrome === void 0 ? true : _ref$showChrome,
84
- _ref$streamAnimating = _ref.streamAnimating,
85
- streamAnimating = _ref$streamAnimating === void 0 ? false : _ref$streamAnimating;
71
+ showChrome = _ref$showChrome === void 0 ? true : _ref$showChrome;
86
72
  var isText = step.type === 'narration' || step.type === 'thinking';
87
73
  var hasMarker = isActionStep(step);
88
74
  if (isText && !step.text) return null;
89
75
  return /*#__PURE__*/_jsxs(SCStepRow, _objectSpread(_objectSpread({}, stepRowRailProps(hasMarker, connectAbove, connectBelow, showChrome)), {}, {
90
76
  $status: step.status,
91
77
  $isActive: showChrome ? isActive : false,
92
- $isHandoff: showChrome ? isHandoff : false,
93
- children: [showChrome && hasMarker && /*#__PURE__*/_jsx(ReasoningStepMarker, {}), isText ? /*#__PURE__*/_jsx(SCThinkingText, {
78
+ children: [showChrome && hasMarker && /*#__PURE__*/_jsx("span", {
79
+ className: "ReasoningBlock-marker",
80
+ "aria-hidden": true
81
+ }), isText ? /*#__PURE__*/_jsx(SCThinkingText, {
94
82
  $muted: step.type === 'thinking',
95
83
  children: /*#__PURE__*/_jsx(MaiaStreamdown, {
96
84
  variant: "chat",
97
- isAnimating: streamAnimating,
98
85
  children: step.text
99
86
  })
100
87
  }) : /*#__PURE__*/_jsx(SCToolStep, {
@@ -113,7 +100,6 @@ var ParallelStepRow = function ParallelStepRow(_ref2) {
113
100
  connectBelow = _ref2.connectBelow,
114
101
  showDetail = _ref2.showDetail,
115
102
  isActive = _ref2.isActive,
116
- isHandoff = _ref2.isHandoff,
117
103
  _ref2$showChrome = _ref2.showChrome,
118
104
  showChrome = _ref2$showChrome === void 0 ? true : _ref2$showChrome;
119
105
  var detail = showDetail ? parallelStepDetail(row.steps) : null;
@@ -123,8 +109,10 @@ var ParallelStepRow = function ParallelStepRow(_ref2) {
123
109
  return /*#__PURE__*/_jsxs(SCStepRow, _objectSpread(_objectSpread({}, stepRowRailProps(true, connectAbove, connectBelow, showChrome)), {}, {
124
110
  $status: row.status,
125
111
  $isActive: showChrome ? isActive : false,
126
- $isHandoff: showChrome ? isHandoff : false,
127
- children: [showChrome && /*#__PURE__*/_jsx(ReasoningStepMarker, {}), /*#__PURE__*/_jsxs(SCParallelContent, {
112
+ children: [showChrome && /*#__PURE__*/_jsx("span", {
113
+ className: "ReasoningBlock-marker",
114
+ "aria-hidden": true
115
+ }), /*#__PURE__*/_jsxs(SCParallelContent, {
128
116
  children: [/*#__PURE__*/_jsxs(SCToolStep, {
129
117
  $status: row.status,
130
118
  children: [/*#__PURE__*/_jsx("span", {
@@ -147,7 +135,6 @@ export var DisplayStepRow = function DisplayStepRow(_ref3) {
147
135
  connectBelow = _ref3.connectBelow,
148
136
  showDetail = _ref3.showDetail,
149
137
  isActive = _ref3.isActive,
150
- isHandoff = _ref3.isHandoff,
151
138
  _ref3$showChrome = _ref3.showChrome,
152
139
  showChrome = _ref3$showChrome === void 0 ? true : _ref3$showChrome;
153
140
  if (row.kind === 'parallel') {
@@ -158,7 +145,6 @@ export var DisplayStepRow = function DisplayStepRow(_ref3) {
158
145
  connectBelow: connectBelow,
159
146
  showDetail: showDetail,
160
147
  isActive: isActive,
161
- isHandoff: isHandoff,
162
148
  showChrome: showChrome
163
149
  });
164
150
  }
@@ -168,7 +154,6 @@ export var DisplayStepRow = function DisplayStepRow(_ref3) {
168
154
  connectAbove: connectAbove,
169
155
  connectBelow: connectBelow,
170
156
  isActive: isActive,
171
- isHandoff: isHandoff,
172
157
  showChrome: showChrome
173
158
  });
174
159
  };
@@ -195,4 +180,4 @@ export var StepList = function StepList(_ref4) {
195
180
  })
196
181
  });
197
182
  };
198
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsImlzVmlzaWJsZVN0ZXAiLCJpc1Zpc2libGVSZWFzb25pbmdTdGVwIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1BhcmFsbGVsQ291bnQiLCJTQ1BhcmFsbGVsRGV0YWlsIiwiU0NTdGVwUm93IiwiU0NUaGlua2luZ1RleHQiLCJTQ1Rvb2xTdGVwIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50Iiwic3RlcExhYmVsIiwic3RlcCIsInQiLCJ0eXBlIiwidG8iLCJhZ2VudCIsInRvb2wiLCJpc0FjdGlvblN0ZXAiLCJpc1RleHRTdGVwUm93Iiwicm93Iiwia2luZCIsInJlc29sdmVSb3dDb25uZWN0aW9ucyIsInJvd3MiLCJpbmRleCIsImNvbm5lY3RBYm92ZSIsImxlbmd0aCIsImNvbm5lY3RCZWxvdyIsImlzTGFzdFBhaXIiLCJuZXh0SXNUZXJtaW5hbFRleHQiLCJzdGVwUm93UmFpbFByb3BzIiwiaGFzTWFya2VyIiwic2hvd0Nocm9tZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIiRzaG93Q2hyb21lIiwiJGhhc01hcmtlciIsIiRjb25uZWN0QWJvdmUiLCIkY29ubmVjdEJlbG93IiwiJHJhaWxUaHJvdWdoIiwiJHJhaWxUb3AiLCIkcmFpbEJvdHRvbSIsIlJlYXNvbmluZ1N0ZXBNYXJrZXIiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsIlJlYXNvbmluZ1N0ZXBSb3ciLCJfcmVmIiwiaXNBY3RpdmUiLCJpc0hhbmRvZmYiLCJfcmVmJHNob3dDaHJvbWUiLCJfcmVmJHN0cmVhbUFuaW1hdGluZyIsInN0cmVhbUFuaW1hdGluZyIsImlzVGV4dCIsInRleHQiLCJfb2JqZWN0U3ByZWFkIiwiJHN0YXR1cyIsInN0YXR1cyIsIiRpc0FjdGl2ZSIsIiRpc0hhbmRvZmYiLCIkbXV0ZWQiLCJ2YXJpYW50IiwiaXNBbmltYXRpbmciLCJQYXJhbGxlbFN0ZXBSb3ciLCJfcmVmMiIsInNob3dEZXRhaWwiLCJfcmVmMiRzaG93Q2hyb21lIiwiZGV0YWlsIiwic3RlcHMiLCJjb3VudExhYmVsIiwiY291bnQiLCJsYWJlbCIsIkRpc3BsYXlTdGVwUm93IiwiX3JlZjMiLCJfcmVmMyRzaG93Q2hyb21lIiwiU3RlcExpc3QiLCJfcmVmNCIsIl9yZWY0JHNob3dEZXRhaWwiLCJtYXAiLCJfcmVzb2x2ZVJvd0Nvbm5lY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdTdGVwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBkaXNwbGF5Um93S2V5LCBncm91cFBhcmFsbGVsU3RlcHMsIHBhcmFsbGVsU3RlcERldGFpbCB9IGZyb20gJy4vZ3JvdXBQYXJhbGxlbFN0ZXBzJ1xuaW1wb3J0IHsgaXNWaXNpYmxlU3RlcCBhcyBpc1Zpc2libGVSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuaW1wb3J0IHtcbiAgU0NQYXJhbGxlbENvbnRlbnQsXG4gIFNDUGFyYWxsZWxDb3VudCxcbiAgU0NQYXJhbGxlbERldGFpbCxcbiAgU0NTdGVwUm93LFxuICBTQ1RoaW5raW5nVGV4dCxcbiAgU0NUb29sU3RlcCxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0ZUZuID0gUmV0dXJuVHlwZTx0eXBlb2YgdXNlVD5bJ3QnXVxuXG5leHBvcnQgY29uc3Qgc3RlcExhYmVsID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHQ6IFRyYW5zbGF0ZUZuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0ZXAudHlwZSA9PT0gJ2hhbmRvZmYnKSB7XG4gICAgcmV0dXJuIHN0ZXAudG8gPyB0KCdjaGF0LnJlYXNvbmluZy5jYWxsZWRBZ2VudCcsIHsgYWdlbnQ6IHN0ZXAudG8gfSkgOiB0KCdjaGF0LmFjdGl2aXR5LmV4ZWN1dGVkQWN0aW9uJylcbiAgfVxuICBpZiAoIXN0ZXAudG9vbCkgcmV0dXJuIHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICByZXR1cm4gcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsKHN0ZXAudG9vbCwgdClcbn1cblxuLyoqIExvcyBgdGhpbmtpbmdgIHNvbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gZGVsIG1vZGVsbzogZnVlcmEgZGUgbGEgdmlzdGEgcG9yIGRlZmVjdG8uICovXG5leHBvcnQgY29uc3QgaXNWaXNpYmxlU3RlcCA9IGlzVmlzaWJsZVJlYXNvbmluZ1N0ZXBcblxuLyoqIFNvbG8gdG9vbC9oYW5kb2ZmIGxsZXZhbiBjw61yY3VsbyBlbiBsYSB0cmF6YTsgbmFycmFjaW9uZXMgeSB0aGlua2luZyBuby4gKi9cbmV4cG9ydCBjb25zdCBpc0FjdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZidcblxuLyoqIE5hcnJhY2nDs24vdGhpbmtpbmcgYWwgY2llcnJlIGRlIGxhIHRyYXphOiBubyBsbGV2YW4gcmFpbCBjb2xnYW50ZS4gKi9cbmV4cG9ydCBjb25zdCBpc1RleHRTdGVwUm93ID0gKHJvdzogUmVhc29uaW5nRGlzcGxheVJvdyk6IGJvb2xlYW4gPT5cbiAgcm93LmtpbmQgPT09ICdzaW5nbGUnICYmIChyb3cuc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCByb3cuc3RlcC50eXBlID09PSAndGhpbmtpbmcnKVxuXG4vKiogQ29uZWN0b3JlcyBkZSByYWlsOiBzaW4gbMOtbmVhIGhhY2lhIGFiYWpvIHNpIGxvIHNpZ3VpZW50ZSBlcyBuYXJyYWNpw7NuIGZpbmFsLiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSb3dDb25uZWN0aW9ucyA9IChcbiAgcm93czogUmVhc29uaW5nRGlzcGxheVJvd1tdLFxuICBpbmRleDogbnVtYmVyXG4pOiB7IGNvbm5lY3RBYm92ZTogYm9vbGVhbjsgY29ubmVjdEJlbG93OiBib29sZWFuIH0gPT4ge1xuICBjb25zdCBjb25uZWN0QWJvdmUgPSBpbmRleCA+IDBcbiAgaWYgKGluZGV4ID49IHJvd3MubGVuZ3RoIC0gMSkge1xuICAgIHJldHVybiB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93OiBmYWxzZSB9XG4gIH1cblxuICBjb25zdCBpc0xhc3RQYWlyID0gaW5kZXggPT09IHJvd3MubGVuZ3RoIC0gMlxuICBjb25zdCBuZXh0SXNUZXJtaW5hbFRleHQgPSBpc0xhc3RQYWlyICYmIGlzVGV4dFN0ZXBSb3cocm93c1tpbmRleCArIDFdKVxuXG4gIHJldHVybiB7XG4gICAgY29ubmVjdEFib3ZlLFxuICAgIGNvbm5lY3RCZWxvdzogIW5leHRJc1Rlcm1pbmFsVGV4dCxcbiAgfVxufVxuXG5jb25zdCBzdGVwUm93UmFpbFByb3BzID0gKFxuICBoYXNNYXJrZXI6IGJvb2xlYW4sXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW4sXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW4sXG4gIHNob3dDaHJvbWUgPSB0cnVlXG4pOiB7XG4gICRzaG93Q2hyb21lOiBib29sZWFuXG4gICRoYXNNYXJrZXI6IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZTogYm9vbGVhblxuICAkY29ubmVjdEJlbG93OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaDogYm9vbGVhblxuICAkcmFpbFRvcDogYm9vbGVhblxuICAkcmFpbEJvdHRvbTogYm9vbGVhblxufSA9PiAoe1xuICAkc2hvd0Nocm9tZTogc2hvd0Nocm9tZSxcbiAgJGhhc01hcmtlcjogaGFzTWFya2VyLFxuICAkY29ubmVjdEFib3ZlOiAhIWNvbm5lY3RBYm92ZSxcbiAgJGNvbm5lY3RCZWxvdzogISFjb25uZWN0QmVsb3csXG4gIC8vIE5hcnJhY2nDs24gaW5pY2lhbCAoc2luIGPDrXJjdWxvKTogbGEgbMOtbmVhIGJhamEgaGFjaWEgZWwgcHJpbWVyIHN0ZXAuXG4gIC8vIE5hcnJhY2nDs24gZmluYWw6IGNvbm5lY3RCZWxvdyBlcyBmYWxzZSDihpIgc2luIGzDrW5lYSBjb2xnYW50ZS5cbiAgJHJhaWxUaHJvdWdoOiBzaG93Q2hyb21lICYmICFoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG4gICRyYWlsVG9wOiBzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiAhIWNvbm5lY3RBYm92ZSxcbiAgJHJhaWxCb3R0b206IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEJlbG93LFxufSlcblxuY29uc3QgUmVhc29uaW5nU3RlcE1hcmtlciA9ICgpID0+IChcbiAgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4+XG4gICAgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyRG90XCIgLz5cbiAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay1tYXJrZXJIYWxvXCIgLz5cbiAgPC9zcGFuPlxuKVxuXG5leHBvcnQgdHlwZSBSZWFzb25pbmdTdGVwUm93UHJvcHMgPSB7XG4gIHN0ZXA6IFJlYXNvbmluZ1N0ZXBcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBpc0hhbmRvZmY/OiBib29sZWFuXG4gIC8qKiBDw61yY3Vsb3MgeSByYWlsIGRlIGxhIHRyYXphLiBEZWZhdWx0IGVuY2VuZGlkbyAoYmxvcXVlIHkgdGltZWxpbmUgZW4gdml2bykuICovXG4gIHNob3dDaHJvbWU/OiBib29sZWFuXG4gIC8qKiBTdHJlYW1kb3duIGVuIG1vZG8gYW5pbWFjacOzbiAobmFycmFjacOzbiBsaXZlIGVuIHRpbWVsaW5lKS4gKi9cbiAgc3RyZWFtQW5pbWF0aW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgUmVhc29uaW5nU3RlcFJvdyA9ICh7XG4gIHN0ZXAsXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBpc0FjdGl2ZSxcbiAgaXNIYW5kb2ZmLFxuICBzaG93Q2hyb21lID0gdHJ1ZSxcbiAgc3RyZWFtQW5pbWF0aW5nID0gZmFsc2UsXG59OiBSZWFzb25pbmdTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgaXNUZXh0ID0gc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCBzdGVwLnR5cGUgPT09ICd0aGlua2luZydcbiAgY29uc3QgaGFzTWFya2VyID0gaXNBY3Rpb25TdGVwKHN0ZXApXG4gIGlmIChpc1RleHQgJiYgIXN0ZXAudGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKGhhc01hcmtlciwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17c3RlcC5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgICAgJGlzSGFuZG9mZj17c2hvd0Nocm9tZSA/IGlzSGFuZG9mZiA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiA8UmVhc29uaW5nU3RlcE1hcmtlciAvPn1cbiAgICAgIHtpc1RleHQgPyAoXG4gICAgICAgIDxTQ1RoaW5raW5nVGV4dCAkbXV0ZWQ9e3N0ZXAudHlwZSA9PT0gJ3RoaW5raW5nJ30+XG4gICAgICAgICAgPE1haWFTdHJlYW1kb3duIHZhcmlhbnQ9XCJjaGF0XCIgaXNBbmltYXRpbmc9e3N0cmVhbUFuaW1hdGluZ30+XG4gICAgICAgICAgICB7c3RlcC50ZXh0fVxuICAgICAgICAgIDwvTWFpYVN0cmVhbWRvd24+XG4gICAgICAgIDwvU0NUaGlua2luZ1RleHQ+XG4gICAgICApIDogKFxuICAgICAgICA8U0NUb29sU3RlcCAkc3RhdHVzPXtzdGVwLnN0YXR1c30+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stdG9vbExhYmVsXCI+e3N0ZXBMYWJlbChzdGVwLCB0KX08L3NwYW4+XG4gICAgICAgICAgey8qIFByZXZpZXcgZGVsIHJlc3VsdGFkbyBkZXNoYWJpbGl0YWRvOiB2ZXIgbm90YSBlbiBSZWFzb25pbmdCbG9jay50c3ggKi99XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICl9XG4gICAgPC9TQ1N0ZXBSb3c+XG4gIClcbn1cblxudHlwZSBQYXJhbGxlbFN0ZXBSb3dQcm9wcyA9IHtcbiAgcm93OiBFeHRyYWN0PFJlYXNvbmluZ0Rpc3BsYXlSb3csIHsga2luZDogJ3BhcmFsbGVsJyB9PlxuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIGlzSGFuZG9mZj86IGJvb2xlYW5cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuY29uc3QgUGFyYWxsZWxTdGVwUm93ID0gKHtcbiAgcm93LFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgc2hvd0RldGFpbCxcbiAgaXNBY3RpdmUsXG4gIGlzSGFuZG9mZixcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBQYXJhbGxlbFN0ZXBSb3dQcm9wcykgPT4ge1xuICBjb25zdCBkZXRhaWwgPSBzaG93RGV0YWlsID8gcGFyYWxsZWxTdGVwRGV0YWlsKHJvdy5zdGVwcykgOiBudWxsXG4gIGNvbnN0IGNvdW50TGFiZWwgPSB0KCdjaGF0LnJlYXNvbmluZy5wYXJhbGxlbENvdW50JywgeyBjb3VudDogcm93LnN0ZXBzLmxlbmd0aCB9KVxuXG4gIHJldHVybiAoXG4gICAgPFNDU3RlcFJvd1xuICAgICAgey4uLnN0ZXBSb3dSYWlsUHJvcHModHJ1ZSwgY29ubmVjdEFib3ZlLCBjb25uZWN0QmVsb3csIHNob3dDaHJvbWUpfVxuICAgICAgJHN0YXR1cz17cm93LnN0YXR1c31cbiAgICAgICRpc0FjdGl2ZT17c2hvd0Nocm9tZSA/IGlzQWN0aXZlIDogZmFsc2V9XG4gICAgICAkaXNIYW5kb2ZmPXtzaG93Q2hyb21lID8gaXNIYW5kb2ZmIDogZmFsc2V9XG4gICAgPlxuICAgICAge3Nob3dDaHJvbWUgJiYgPFJlYXNvbmluZ1N0ZXBNYXJrZXIgLz59XG4gICAgICA8U0NQYXJhbGxlbENvbnRlbnQ+XG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3Jvdy5zdGF0dXN9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLXRvb2xMYWJlbFwiPntyb3cubGFiZWx9PC9zcGFuPlxuICAgICAgICAgIDxTQ1BhcmFsbGVsQ291bnQgYXJpYS1sYWJlbD17Y291bnRMYWJlbH0+e2NvdW50TGFiZWx9PC9TQ1BhcmFsbGVsQ291bnQ+XG4gICAgICAgIDwvU0NUb29sU3RlcD5cbiAgICAgICAge2RldGFpbCAmJiA8U0NQYXJhbGxlbERldGFpbD57ZGV0YWlsfTwvU0NQYXJhbGxlbERldGFpbD59XG4gICAgICA8L1NDUGFyYWxsZWxDb250ZW50PlxuICAgIDwvU0NTdGVwUm93PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlTdGVwUm93UHJvcHMgPSB7XG4gIHJvdzogUmVhc29uaW5nRGlzcGxheVJvd1xuICB0OiBUcmFuc2xhdGVGblxuICBjb25uZWN0QWJvdmU/OiBib29sZWFuXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW5cbiAgc2hvd0RldGFpbD86IGJvb2xlYW5cbiAgaXNBY3RpdmU/OiBib29sZWFuXG4gIGlzSGFuZG9mZj86IGJvb2xlYW5cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IERpc3BsYXlTdGVwUm93ID0gKHtcbiAgcm93LFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgc2hvd0RldGFpbCxcbiAgaXNBY3RpdmUsXG4gIGlzSGFuZG9mZixcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBEaXNwbGF5U3RlcFJvd1Byb3BzKSA9PiB7XG4gIGlmIChyb3cua2luZCA9PT0gJ3BhcmFsbGVsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8UGFyYWxsZWxTdGVwUm93XG4gICAgICAgIHJvdz17cm93fVxuICAgICAgICB0PXt0fVxuICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgIHNob3dEZXRhaWw9e3Nob3dEZXRhaWx9XG4gICAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgaXNIYW5kb2ZmPXtpc0hhbmRvZmZ9XG4gICAgICAgIHNob3dDaHJvbWU9e3Nob3dDaHJvbWV9XG4gICAgICAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gKFxuICAgIDxSZWFzb25pbmdTdGVwUm93XG4gICAgICBzdGVwPXtyb3cuc3RlcH1cbiAgICAgIHQ9e3R9XG4gICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgIGNvbm5lY3RCZWxvdz17Y29ubmVjdEJlbG93fVxuICAgICAgaXNBY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgaXNIYW5kb2ZmPXtpc0hhbmRvZmZ9XG4gICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgU3RlcExpc3RQcm9wcyA9IHtcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuICB0OiBUcmFuc2xhdGVGblxuICBzaG93RGV0YWlsPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgU3RlcExpc3QgPSAoeyBzdGVwcywgdCwgc2hvd0RldGFpbCA9IHRydWUgfTogU3RlcExpc3RQcm9wcykgPT4ge1xuICBjb25zdCByb3dzID0gZ3JvdXBQYXJhbGxlbFN0ZXBzKHN0ZXBzLCBzdGVwID0+IHN0ZXBMYWJlbChzdGVwLCB0KSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cm93cy5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgeyBjb25uZWN0QWJvdmUsIGNvbm5lY3RCZWxvdyB9ID0gcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIGluZGV4KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxEaXNwbGF5U3RlcFJvd1xuICAgICAgICAgICAga2V5PXtkaXNwbGF5Um93S2V5KHJvdyl9XG4gICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgIHQ9e3R9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgICAgIGNvbm5lY3RCZWxvdz17Y29ubmVjdEJlbG93fVxuICAgICAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFL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
183
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCIsIk1haWFTdHJlYW1kb3duIiwiZGlzcGxheVJvd0tleSIsImdyb3VwUGFyYWxsZWxTdGVwcyIsInBhcmFsbGVsU3RlcERldGFpbCIsImlzVmlzaWJsZVN0ZXAiLCJpc1Zpc2libGVSZWFzb25pbmdTdGVwIiwiU0NQYXJhbGxlbENvbnRlbnQiLCJTQ1BhcmFsbGVsQ291bnQiLCJTQ1BhcmFsbGVsRGV0YWlsIiwiU0NTdGVwUm93IiwiU0NUaGlua2luZ1RleHQiLCJTQ1Rvb2xTdGVwIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50Iiwic3RlcExhYmVsIiwic3RlcCIsInQiLCJ0eXBlIiwidG8iLCJhZ2VudCIsInRvb2wiLCJpc0FjdGlvblN0ZXAiLCJpc1RleHRTdGVwUm93Iiwicm93Iiwia2luZCIsInJlc29sdmVSb3dDb25uZWN0aW9ucyIsInJvd3MiLCJpbmRleCIsImNvbm5lY3RBYm92ZSIsImxlbmd0aCIsImNvbm5lY3RCZWxvdyIsImlzTGFzdFBhaXIiLCJuZXh0SXNUZXJtaW5hbFRleHQiLCJzdGVwUm93UmFpbFByb3BzIiwiaGFzTWFya2VyIiwic2hvd0Nocm9tZSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIiRzaG93Q2hyb21lIiwiJGhhc01hcmtlciIsIiRjb25uZWN0QWJvdmUiLCIkY29ubmVjdEJlbG93IiwiJHJhaWxUaHJvdWdoIiwiJHJhaWxUb3AiLCIkcmFpbEJvdHRvbSIsIlJlYXNvbmluZ1N0ZXBSb3ciLCJfcmVmIiwiaXNBY3RpdmUiLCJfcmVmJHNob3dDaHJvbWUiLCJpc1RleHQiLCJ0ZXh0IiwiX29iamVjdFNwcmVhZCIsIiRzdGF0dXMiLCJzdGF0dXMiLCIkaXNBY3RpdmUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIiRtdXRlZCIsInZhcmlhbnQiLCJQYXJhbGxlbFN0ZXBSb3ciLCJfcmVmMiIsInNob3dEZXRhaWwiLCJfcmVmMiRzaG93Q2hyb21lIiwiZGV0YWlsIiwic3RlcHMiLCJjb3VudExhYmVsIiwiY291bnQiLCJsYWJlbCIsIkRpc3BsYXlTdGVwUm93IiwiX3JlZjMiLCJfcmVmMyRzaG93Q2hyb21lIiwiU3RlcExpc3QiLCJfcmVmNCIsIl9yZWY0JHNob3dEZXRhaWwiLCJtYXAiLCJfcmVzb2x2ZVJvd0Nvbm5lY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9SZWFzb25pbmdCbG9jay9SZWFzb25pbmdTdGVwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHJlc29sdmVUb29sU3RlcFBhc3RMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3N0cmVhbUFjdGl2aXR5TWVzc2FnZXMnXG5pbXBvcnQgeyBNYWlhU3RyZWFtZG93biB9IGZyb20gJy4uL01haWFTdHJlYW1kb3duL01haWFTdHJlYW1kb3duJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvcmVhc29uaW5nJ1xuaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdEaXNwbGF5Um93IH0gZnJvbSAnLi9ncm91cFBhcmFsbGVsU3RlcHMnXG5pbXBvcnQgeyBkaXNwbGF5Um93S2V5LCBncm91cFBhcmFsbGVsU3RlcHMsIHBhcmFsbGVsU3RlcERldGFpbCB9IGZyb20gJy4vZ3JvdXBQYXJhbGxlbFN0ZXBzJ1xuaW1wb3J0IHsgaXNWaXNpYmxlU3RlcCBhcyBpc1Zpc2libGVSZWFzb25pbmdTdGVwIH0gZnJvbSAnLi9yZWFzb25pbmdMZWFkaW5nJ1xuaW1wb3J0IHtcbiAgU0NQYXJhbGxlbENvbnRlbnQsXG4gIFNDUGFyYWxsZWxDb3VudCxcbiAgU0NQYXJhbGxlbERldGFpbCxcbiAgU0NTdGVwUm93LFxuICBTQ1RoaW5raW5nVGV4dCxcbiAgU0NUb29sU3RlcCxcbn0gZnJvbSAnLi9SZWFzb25pbmdCbG9jay5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIFRyYW5zbGF0ZUZuID0gUmV0dXJuVHlwZTx0eXBlb2YgdXNlVD5bJ3QnXVxuXG5leHBvcnQgY29uc3Qgc3RlcExhYmVsID0gKHN0ZXA6IFJlYXNvbmluZ1N0ZXAsIHQ6IFRyYW5zbGF0ZUZuKTogc3RyaW5nID0+IHtcbiAgaWYgKHN0ZXAudHlwZSA9PT0gJ2hhbmRvZmYnKSB7XG4gICAgcmV0dXJuIHN0ZXAudG8gPyB0KCdjaGF0LnJlYXNvbmluZy5jYWxsZWRBZ2VudCcsIHsgYWdlbnQ6IHN0ZXAudG8gfSkgOiB0KCdjaGF0LmFjdGl2aXR5LmV4ZWN1dGVkQWN0aW9uJylcbiAgfVxuICBpZiAoIXN0ZXAudG9vbCkgcmV0dXJuIHQoJ2NoYXQuYWN0aXZpdHkuZXhlY3V0ZWRBY3Rpb24nKVxuICByZXR1cm4gcmVzb2x2ZVRvb2xTdGVwUGFzdExhYmVsKHN0ZXAudG9vbCwgdClcbn1cblxuLyoqIExvcyBgdGhpbmtpbmdgIHNvbiBlbCByYXpvbmFtaWVudG8gY3J1ZG8gZGVsIG1vZGVsbzogZnVlcmEgZGUgbGEgdmlzdGEgcG9yIGRlZmVjdG8uICovXG5leHBvcnQgY29uc3QgaXNWaXNpYmxlU3RlcCA9IGlzVmlzaWJsZVJlYXNvbmluZ1N0ZXBcblxuLyoqIFNvbG8gdG9vbC9oYW5kb2ZmIGxsZXZhbiBjw61yY3VsbyBlbiBsYSB0cmF6YTsgbmFycmFjaW9uZXMgeSB0aGlua2luZyBuby4gKi9cbmV4cG9ydCBjb25zdCBpc0FjdGlvblN0ZXAgPSAoc3RlcDogUmVhc29uaW5nU3RlcCk6IGJvb2xlYW4gPT4gc3RlcC50eXBlID09PSAndG9vbCcgfHwgc3RlcC50eXBlID09PSAnaGFuZG9mZidcblxuLyoqIE5hcnJhY2nDs24vdGhpbmtpbmcgYWwgY2llcnJlIGRlIGxhIHRyYXphOiBubyBsbGV2YW4gcmFpbCBjb2xnYW50ZS4gKi9cbmV4cG9ydCBjb25zdCBpc1RleHRTdGVwUm93ID0gKHJvdzogUmVhc29uaW5nRGlzcGxheVJvdyk6IGJvb2xlYW4gPT5cbiAgcm93LmtpbmQgPT09ICdzaW5nbGUnICYmIChyb3cuc3RlcC50eXBlID09PSAnbmFycmF0aW9uJyB8fCByb3cuc3RlcC50eXBlID09PSAndGhpbmtpbmcnKVxuXG4vKiogQ29uZWN0b3JlcyBkZSByYWlsOiBzaW4gbMOtbmVhIGhhY2lhIGFiYWpvIHNpIGxvIHNpZ3VpZW50ZSBlcyBuYXJyYWNpw7NuIGZpbmFsLiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVSb3dDb25uZWN0aW9ucyA9IChcbiAgcm93czogUmVhc29uaW5nRGlzcGxheVJvd1tdLFxuICBpbmRleDogbnVtYmVyXG4pOiB7IGNvbm5lY3RBYm92ZTogYm9vbGVhbjsgY29ubmVjdEJlbG93OiBib29sZWFuIH0gPT4ge1xuICBjb25zdCBjb25uZWN0QWJvdmUgPSBpbmRleCA+IDBcbiAgaWYgKGluZGV4ID49IHJvd3MubGVuZ3RoIC0gMSkge1xuICAgIHJldHVybiB7IGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93OiBmYWxzZSB9XG4gIH1cblxuICBjb25zdCBpc0xhc3RQYWlyID0gaW5kZXggPT09IHJvd3MubGVuZ3RoIC0gMlxuICBjb25zdCBuZXh0SXNUZXJtaW5hbFRleHQgPSBpc0xhc3RQYWlyICYmIGlzVGV4dFN0ZXBSb3cocm93c1tpbmRleCArIDFdKVxuXG4gIHJldHVybiB7XG4gICAgY29ubmVjdEFib3ZlLFxuICAgIGNvbm5lY3RCZWxvdzogIW5leHRJc1Rlcm1pbmFsVGV4dCxcbiAgfVxufVxuXG5jb25zdCBzdGVwUm93UmFpbFByb3BzID0gKFxuICBoYXNNYXJrZXI6IGJvb2xlYW4sXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW4sXG4gIGNvbm5lY3RCZWxvdz86IGJvb2xlYW4sXG4gIHNob3dDaHJvbWUgPSB0cnVlXG4pOiB7XG4gICRzaG93Q2hyb21lOiBib29sZWFuXG4gICRoYXNNYXJrZXI6IGJvb2xlYW5cbiAgJGNvbm5lY3RBYm92ZTogYm9vbGVhblxuICAkY29ubmVjdEJlbG93OiBib29sZWFuXG4gICRyYWlsVGhyb3VnaDogYm9vbGVhblxuICAkcmFpbFRvcDogYm9vbGVhblxuICAkcmFpbEJvdHRvbTogYm9vbGVhblxufSA9PiAoe1xuICAkc2hvd0Nocm9tZTogc2hvd0Nocm9tZSxcbiAgJGhhc01hcmtlcjogaGFzTWFya2VyLFxuICAkY29ubmVjdEFib3ZlOiAhIWNvbm5lY3RBYm92ZSxcbiAgJGNvbm5lY3RCZWxvdzogISFjb25uZWN0QmVsb3csXG4gIC8vIE5hcnJhY2nDs24gaW5pY2lhbCAoc2luIGPDrXJjdWxvKTogbGEgbMOtbmVhIGJhamEgaGFjaWEgZWwgcHJpbWVyIHN0ZXAuXG4gIC8vIE5hcnJhY2nDs24gZmluYWw6IGNvbm5lY3RCZWxvdyBlcyBmYWxzZSDihpIgc2luIGzDrW5lYSBjb2xnYW50ZS5cbiAgJHJhaWxUaHJvdWdoOiBzaG93Q2hyb21lICYmICFoYXNNYXJrZXIgJiYgISFjb25uZWN0QmVsb3csXG4gICRyYWlsVG9wOiBzaG93Q2hyb21lICYmIGhhc01hcmtlciAmJiAhIWNvbm5lY3RBYm92ZSxcbiAgJHJhaWxCb3R0b206IHNob3dDaHJvbWUgJiYgaGFzTWFya2VyICYmICEhY29ubmVjdEJlbG93LFxufSlcblxuZXhwb3J0IHR5cGUgUmVhc29uaW5nU3RlcFJvd1Byb3BzID0ge1xuICBzdGVwOiBSZWFzb25pbmdTdGVwXG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgY29ubmVjdEJlbG93PzogYm9vbGVhblxuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgLyoqIEPDrXJjdWxvcyB5IHJhaWw6IHNvbG8gZW4gZWwgYmxvcXVlIGV4cGFuZGlkbywgbm8gZW4gdGltZWxpbmUgZW4gdml2by4gKi9cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1N0ZXBSb3cgPSAoe1xuICBzdGVwLFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgaXNBY3RpdmUsXG4gIHNob3dDaHJvbWUgPSB0cnVlLFxufTogUmVhc29uaW5nU3RlcFJvd1Byb3BzKSA9PiB7XG4gIGNvbnN0IGlzVGV4dCA9IHN0ZXAudHlwZSA9PT0gJ25hcnJhdGlvbicgfHwgc3RlcC50eXBlID09PSAndGhpbmtpbmcnXG4gIGNvbnN0IGhhc01hcmtlciA9IGlzQWN0aW9uU3RlcChzdGVwKVxuICBpZiAoaXNUZXh0ICYmICFzdGVwLnRleHQpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdGVwUm93XG4gICAgICB7Li4uc3RlcFJvd1JhaWxQcm9wcyhoYXNNYXJrZXIsIGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93LCBzaG93Q2hyb21lKX1cbiAgICAgICRzdGF0dXM9e3N0ZXAuc3RhdHVzfVxuICAgICAgJGlzQWN0aXZlPXtzaG93Q2hyb21lID8gaXNBY3RpdmUgOiBmYWxzZX1cbiAgICA+XG4gICAgICB7c2hvd0Nocm9tZSAmJiBoYXNNYXJrZXIgJiYgPHNwYW4gY2xhc3NOYW1lPVwiUmVhc29uaW5nQmxvY2stbWFya2VyXCIgYXJpYS1oaWRkZW4gLz59XG4gICAgICB7aXNUZXh0ID8gKFxuICAgICAgICA8U0NUaGlua2luZ1RleHQgJG11dGVkPXtzdGVwLnR5cGUgPT09ICd0aGlua2luZyd9PlxuICAgICAgICAgIDxNYWlhU3RyZWFtZG93biB2YXJpYW50PVwiY2hhdFwiPntzdGVwLnRleHR9PC9NYWlhU3RyZWFtZG93bj5cbiAgICAgICAgPC9TQ1RoaW5raW5nVGV4dD5cbiAgICAgICkgOiAoXG4gICAgICAgIDxTQ1Rvb2xTdGVwICRzdGF0dXM9e3N0ZXAuc3RhdHVzfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay10b29sTGFiZWxcIj57c3RlcExhYmVsKHN0ZXAsIHQpfTwvc3Bhbj5cbiAgICAgICAgICB7LyogUHJldmlldyBkZWwgcmVzdWx0YWRvIGRlc2hhYmlsaXRhZG86IHZlciBub3RhIGVuIFJlYXNvbmluZ0Jsb2NrLnRzeCAqL31cbiAgICAgICAgPC9TQ1Rvb2xTdGVwPlxuICAgICAgKX1cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG50eXBlIFBhcmFsbGVsU3RlcFJvd1Byb3BzID0ge1xuICByb3c6IEV4dHJhY3Q8UmVhc29uaW5nRGlzcGxheVJvdywgeyBraW5kOiAncGFyYWxsZWwnIH0+XG4gIHQ6IFRyYW5zbGF0ZUZuXG4gIGNvbm5lY3RBYm92ZT86IGJvb2xlYW5cbiAgY29ubmVjdEJlbG93PzogYm9vbGVhblxuICBzaG93RGV0YWlsPzogYm9vbGVhblxuICBpc0FjdGl2ZT86IGJvb2xlYW5cbiAgc2hvd0Nocm9tZT86IGJvb2xlYW5cbn1cblxuY29uc3QgUGFyYWxsZWxTdGVwUm93ID0gKHtcbiAgcm93LFxuICB0LFxuICBjb25uZWN0QWJvdmUsXG4gIGNvbm5lY3RCZWxvdyxcbiAgc2hvd0RldGFpbCxcbiAgaXNBY3RpdmUsXG4gIHNob3dDaHJvbWUgPSB0cnVlLFxufTogUGFyYWxsZWxTdGVwUm93UHJvcHMpID0+IHtcbiAgY29uc3QgZGV0YWlsID0gc2hvd0RldGFpbCA/IHBhcmFsbGVsU3RlcERldGFpbChyb3cuc3RlcHMpIDogbnVsbFxuICBjb25zdCBjb3VudExhYmVsID0gdCgnY2hhdC5yZWFzb25pbmcucGFyYWxsZWxDb3VudCcsIHsgY291bnQ6IHJvdy5zdGVwcy5sZW5ndGggfSlcblxuICByZXR1cm4gKFxuICAgIDxTQ1N0ZXBSb3dcbiAgICAgIHsuLi5zdGVwUm93UmFpbFByb3BzKHRydWUsIGNvbm5lY3RBYm92ZSwgY29ubmVjdEJlbG93LCBzaG93Q2hyb21lKX1cbiAgICAgICRzdGF0dXM9e3Jvdy5zdGF0dXN9XG4gICAgICAkaXNBY3RpdmU9e3Nob3dDaHJvbWUgPyBpc0FjdGl2ZSA6IGZhbHNlfVxuICAgID5cbiAgICAgIHtzaG93Q2hyb21lICYmIDxzcGFuIGNsYXNzTmFtZT1cIlJlYXNvbmluZ0Jsb2NrLW1hcmtlclwiIGFyaWEtaGlkZGVuIC8+fVxuICAgICAgPFNDUGFyYWxsZWxDb250ZW50PlxuICAgICAgICA8U0NUb29sU3RlcCAkc3RhdHVzPXtyb3cuc3RhdHVzfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJSZWFzb25pbmdCbG9jay10b29sTGFiZWxcIj57cm93LmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8U0NQYXJhbGxlbENvdW50IGFyaWEtbGFiZWw9e2NvdW50TGFiZWx9Pntjb3VudExhYmVsfTwvU0NQYXJhbGxlbENvdW50PlxuICAgICAgICA8L1NDVG9vbFN0ZXA+XG4gICAgICAgIHtkZXRhaWwgJiYgPFNDUGFyYWxsZWxEZXRhaWw+e2RldGFpbH08L1NDUGFyYWxsZWxEZXRhaWw+fVxuICAgICAgPC9TQ1BhcmFsbGVsQ29udGVudD5cbiAgICA8L1NDU3RlcFJvdz5cbiAgKVxufVxuXG5leHBvcnQgdHlwZSBEaXNwbGF5U3RlcFJvd1Byb3BzID0ge1xuICByb3c6IFJlYXNvbmluZ0Rpc3BsYXlSb3dcbiAgdDogVHJhbnNsYXRlRm5cbiAgY29ubmVjdEFib3ZlPzogYm9vbGVhblxuICBjb25uZWN0QmVsb3c/OiBib29sZWFuXG4gIHNob3dEZXRhaWw/OiBib29sZWFuXG4gIGlzQWN0aXZlPzogYm9vbGVhblxuICBzaG93Q2hyb21lPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgRGlzcGxheVN0ZXBSb3cgPSAoe1xuICByb3csXG4gIHQsXG4gIGNvbm5lY3RBYm92ZSxcbiAgY29ubmVjdEJlbG93LFxuICBzaG93RGV0YWlsLFxuICBpc0FjdGl2ZSxcbiAgc2hvd0Nocm9tZSA9IHRydWUsXG59OiBEaXNwbGF5U3RlcFJvd1Byb3BzKSA9PiB7XG4gIGlmIChyb3cua2luZCA9PT0gJ3BhcmFsbGVsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8UGFyYWxsZWxTdGVwUm93XG4gICAgICAgIHJvdz17cm93fVxuICAgICAgICB0PXt0fVxuICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICAgIHNob3dEZXRhaWw9e3Nob3dEZXRhaWx9XG4gICAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgc2hvd0Nocm9tZT17c2hvd0Nocm9tZX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPFJlYXNvbmluZ1N0ZXBSb3dcbiAgICAgIHN0ZXA9e3Jvdy5zdGVwfVxuICAgICAgdD17dH1cbiAgICAgIGNvbm5lY3RBYm92ZT17Y29ubmVjdEFib3ZlfVxuICAgICAgY29ubmVjdEJlbG93PXtjb25uZWN0QmVsb3d9XG4gICAgICBpc0FjdGl2ZT17aXNBY3RpdmV9XG4gICAgICBzaG93Q2hyb21lPXtzaG93Q2hyb21lfVxuICAgIC8+XG4gIClcbn1cblxuZXhwb3J0IHR5cGUgU3RlcExpc3RQcm9wcyA9IHtcbiAgc3RlcHM6IFJlYXNvbmluZ1N0ZXBbXVxuICB0OiBUcmFuc2xhdGVGblxuICBzaG93RGV0YWlsPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgU3RlcExpc3QgPSAoeyBzdGVwcywgdCwgc2hvd0RldGFpbCA9IHRydWUgfTogU3RlcExpc3RQcm9wcykgPT4ge1xuICBjb25zdCByb3dzID0gZ3JvdXBQYXJhbGxlbFN0ZXBzKHN0ZXBzLCBzdGVwID0+IHN0ZXBMYWJlbChzdGVwLCB0KSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cm93cy5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgeyBjb25uZWN0QWJvdmUsIGNvbm5lY3RCZWxvdyB9ID0gcmVzb2x2ZVJvd0Nvbm5lY3Rpb25zKHJvd3MsIGluZGV4KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxEaXNwbGF5U3RlcFJvd1xuICAgICAgICAgICAga2V5PXtkaXNwbGF5Um93S2V5KHJvdyl9XG4gICAgICAgICAgICByb3c9e3Jvd31cbiAgICAgICAgICAgIHQ9e3R9XG4gICAgICAgICAgICBjb25uZWN0QWJvdmU9e2Nvbm5lY3RBYm92ZX1cbiAgICAgICAgICAgIGNvbm5lY3RCZWxvdz17Y29ubmVjdEJlbG93fVxuICAgICAgICAgICAgc2hvd0RldGFpbD17c2hvd0RldGFpbH1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUd6QixTQUFTQyx3QkFBd0IsUUFBUSx1Q0FBdUM7QUFDaEYsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQztBQUdqRSxTQUFTQyxhQUFhLEVBQUVDLGtCQUFrQixFQUFFQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDNUYsU0FBU0MsYUFBYSxJQUFJQyxzQkFBc0IsUUFBUSxvQkFBb0I7QUFDNUUsU0FDRUMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsU0FBUyxFQUNUQyxjQUFjLEVBQ2RDLFVBQVUsUUFDTCx5QkFBeUI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQTtBQUloQyxPQUFPLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxJQUFtQixFQUFFQyxDQUFjLEVBQWE7RUFDeEUsSUFBSUQsSUFBSSxDQUFDRSxJQUFJLEtBQUssU0FBUyxFQUFFO0lBQzNCLE9BQU9GLElBQUksQ0FBQ0csRUFBRSxHQUFHRixDQUFDLENBQUMsNEJBQTRCLEVBQUU7TUFBRUcsS0FBSyxFQUFFSixJQUFJLENBQUNHO0lBQUcsQ0FBQyxDQUFDLEdBQUdGLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQztFQUMxRztFQUNBLElBQUksQ0FBQ0QsSUFBSSxDQUFDSyxJQUFJLEVBQUUsT0FBT0osQ0FBQyxDQUFDLDhCQUE4QixDQUFDO0VBQ3hELE9BQU9yQix3QkFBd0IsQ0FBQ29CLElBQUksQ0FBQ0ssSUFBSSxFQUFFSixDQUFDLENBQUM7QUFDL0MsQ0FBQzs7QUFFRDtBQUNBLE9BQU8sSUFBTWhCLGFBQWEsR0FBR0Msc0JBQXNCOztBQUVuRDtBQUNBLE9BQU8sSUFBTW9CLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJTixJQUFtQjtFQUFBLE9BQWNBLElBQUksQ0FBQ0UsSUFBSSxLQUFLLE1BQU0sSUFBSUYsSUFBSSxDQUFDRSxJQUFJLEtBQUssU0FBUztBQUFBOztBQUU3RztBQUNBLE9BQU8sSUFBTUssYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxHQUF3QjtFQUFBLE9BQ3BEQSxHQUFHLENBQUNDLElBQUksS0FBSyxRQUFRLEtBQUtELEdBQUcsQ0FBQ1IsSUFBSSxDQUFDRSxJQUFJLEtBQUssV0FBVyxJQUFJTSxHQUFHLENBQUNSLElBQUksQ0FBQ0UsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUFBOztBQUUxRjtBQUNBLE9BQU8sSUFBTVEscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FDaENDLElBQTJCLEVBQzNCQyxLQUFhLEVBQ3dDO0VBQ3JELElBQU1DLFlBQVksR0FBR0QsS0FBSyxHQUFHLENBQUM7RUFDOUIsSUFBSUEsS0FBSyxJQUFJRCxJQUFJLENBQUNHLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDNUIsT0FBTztNQUFFRCxZQUFZLEVBQVpBLFlBQVk7TUFBRUUsWUFBWSxFQUFFO0lBQU0sQ0FBQztFQUM5QztFQUVBLElBQU1DLFVBQVUsR0FBR0osS0FBSyxLQUFLRCxJQUFJLENBQUNHLE1BQU0sR0FBRyxDQUFDO0VBQzVDLElBQU1HLGtCQUFrQixHQUFHRCxVQUFVLElBQUlULGFBQWEsQ0FBQ0ksSUFBSSxDQUFDQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7RUFFdkUsT0FBTztJQUNMQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkUsWUFBWSxFQUFFLENBQUNFO0VBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FDcEJDLFNBQWtCLEVBQ2xCTixZQUFzQixFQUN0QkUsWUFBc0I7RUFBQSxJQUN0QkssVUFBVSxHQUFBQyxTQUFBLENBQUFQLE1BQUEsUUFBQU8sU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxJQUFJO0VBQUEsT0FTYjtJQUNKRSxXQUFXLEVBQUVILFVBQVU7SUFDdkJJLFVBQVUsRUFBRUwsU0FBUztJQUNyQk0sYUFBYSxFQUFFLENBQUMsQ0FBQ1osWUFBWTtJQUM3QmEsYUFBYSxFQUFFLENBQUMsQ0FBQ1gsWUFBWTtJQUM3QjtJQUNBO0lBQ0FZLFlBQVksRUFBRVAsVUFBVSxJQUFJLENBQUNELFNBQVMsSUFBSSxDQUFDLENBQUNKLFlBQVk7SUFDeERhLFFBQVEsRUFBRVIsVUFBVSxJQUFJRCxTQUFTLElBQUksQ0FBQyxDQUFDTixZQUFZO0lBQ25EZ0IsV0FBVyxFQUFFVCxVQUFVLElBQUlELFNBQVMsSUFBSSxDQUFDLENBQUNKO0VBQzVDLENBQUM7QUFBQSxDQUFDO0FBWUYsT0FBTyxJQUFNZSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBQyxJQUFBLEVBT0E7RUFBQSxJQU4zQi9CLElBQUksR0FBQStCLElBQUEsQ0FBSi9CLElBQUk7SUFDSkMsQ0FBQyxHQUFBOEIsSUFBQSxDQUFEOUIsQ0FBQztJQUNEWSxZQUFZLEdBQUFrQixJQUFBLENBQVpsQixZQUFZO0lBQ1pFLFlBQVksR0FBQWdCLElBQUEsQ0FBWmhCLFlBQVk7SUFDWmlCLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0lBQUFDLGVBQUEsR0FBQUYsSUFBQSxDQUNSWCxVQUFVO0lBQVZBLFVBQVUsR0FBQWEsZUFBQSxjQUFHLElBQUksR0FBQUEsZUFBQTtFQUVqQixJQUFNQyxNQUFNLEdBQUdsQyxJQUFJLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUlGLElBQUksQ0FBQ0UsSUFBSSxLQUFLLFVBQVU7RUFDcEUsSUFBTWlCLFNBQVMsR0FBR2IsWUFBWSxDQUFDTixJQUFJLENBQUM7RUFDcEMsSUFBSWtDLE1BQU0sSUFBSSxDQUFDbEMsSUFBSSxDQUFDbUMsSUFBSSxFQUFFLE9BQU8sSUFBSTtFQUVyQyxvQkFDRXZDLEtBQUEsQ0FBQ04sU0FBUyxFQUFBOEMsYUFBQSxDQUFBQSxhQUFBLEtBQ0psQixnQkFBZ0IsQ0FBQ0MsU0FBUyxFQUFFTixZQUFZLEVBQUVFLFlBQVksRUFBRUssVUFBVSxDQUFDO0lBQ3ZFaUIsT0FBTyxFQUFFckMsSUFBSSxDQUFDc0MsTUFBTztJQUNyQkMsU0FBUyxFQUFFbkIsVUFBVSxHQUFHWSxRQUFRLEdBQUcsS0FBTTtJQUFBUSxRQUFBLEdBRXhDcEIsVUFBVSxJQUFJRCxTQUFTLGlCQUFJekIsSUFBQTtNQUFNK0MsU0FBUyxFQUFDLHVCQUF1QjtNQUFDO0lBQVcsQ0FBRSxDQUFDLEVBQ2pGUCxNQUFNLGdCQUNMeEMsSUFBQSxDQUFDSCxjQUFjO01BQUNtRCxNQUFNLEVBQUUxQyxJQUFJLENBQUNFLElBQUksS0FBSyxVQUFXO01BQUFzQyxRQUFBLGVBQy9DOUMsSUFBQSxDQUFDYixjQUFjO1FBQUM4RCxPQUFPLEVBQUMsTUFBTTtRQUFBSCxRQUFBLEVBQUV4QyxJQUFJLENBQUNtQztNQUFJLENBQWlCO0lBQUMsQ0FDN0MsQ0FBQyxnQkFFakJ6QyxJQUFBLENBQUNGLFVBQVU7TUFBQzZDLE9BQU8sRUFBRXJDLElBQUksQ0FBQ3NDLE1BQU87TUFBQUUsUUFBQSxlQUMvQjlDLElBQUE7UUFBTStDLFNBQVMsRUFBQywwQkFBMEI7UUFBQUQsUUFBQSxFQUFFekMsU0FBUyxDQUFDQyxJQUFJLEVBQUVDLENBQUM7TUFBQyxDQUFPO0lBQUMsQ0FFNUQsQ0FDYjtFQUFBLEVBQ1EsQ0FBQztBQUVoQixDQUFDO0FBWUQsSUFBTTJDLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQUMsS0FBQSxFQVFPO0VBQUEsSUFQMUJyQyxHQUFHLEdBQUFxQyxLQUFBLENBQUhyQyxHQUFHO0lBQ0hQLENBQUMsR0FBQTRDLEtBQUEsQ0FBRDVDLENBQUM7SUFDRFksWUFBWSxHQUFBZ0MsS0FBQSxDQUFaaEMsWUFBWTtJQUNaRSxZQUFZLEdBQUE4QixLQUFBLENBQVo5QixZQUFZO0lBQ1orQixVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtJQUNWZCxRQUFRLEdBQUFhLEtBQUEsQ0FBUmIsUUFBUTtJQUFBZSxnQkFBQSxHQUFBRixLQUFBLENBQ1J6QixVQUFVO0lBQVZBLFVBQVUsR0FBQTJCLGdCQUFBLGNBQUcsSUFBSSxHQUFBQSxnQkFBQTtFQUVqQixJQUFNQyxNQUFNLEdBQUdGLFVBQVUsR0FBRzlELGtCQUFrQixDQUFDd0IsR0FBRyxDQUFDeUMsS0FBSyxDQUFDLEdBQUcsSUFBSTtFQUNoRSxJQUFNQyxVQUFVLEdBQUdqRCxDQUFDLENBQUMsOEJBQThCLEVBQUU7SUFBRWtELEtBQUssRUFBRTNDLEdBQUcsQ0FBQ3lDLEtBQUssQ0FBQ25DO0VBQU8sQ0FBQyxDQUFDO0VBRWpGLG9CQUNFbEIsS0FBQSxDQUFDTixTQUFTLEVBQUE4QyxhQUFBLENBQUFBLGFBQUEsS0FDSmxCLGdCQUFnQixDQUFDLElBQUksRUFBRUwsWUFBWSxFQUFFRSxZQUFZLEVBQUVLLFVBQVUsQ0FBQztJQUNsRWlCLE9BQU8sRUFBRTdCLEdBQUcsQ0FBQzhCLE1BQU87SUFDcEJDLFNBQVMsRUFBRW5CLFVBQVUsR0FBR1ksUUFBUSxHQUFHLEtBQU07SUFBQVEsUUFBQSxHQUV4Q3BCLFVBQVUsaUJBQUkxQixJQUFBO01BQU0rQyxTQUFTLEVBQUMsdUJBQXVCO01BQUM7SUFBVyxDQUFFLENBQUMsZUFDckU3QyxLQUFBLENBQUNULGlCQUFpQjtNQUFBcUQsUUFBQSxnQkFDaEI1QyxLQUFBLENBQUNKLFVBQVU7UUFBQzZDLE9BQU8sRUFBRTdCLEdBQUcsQ0FBQzhCLE1BQU87UUFBQUUsUUFBQSxnQkFDOUI5QyxJQUFBO1VBQU0rQyxTQUFTLEVBQUMsMEJBQTBCO1VBQUFELFFBQUEsRUFBRWhDLEdBQUcsQ0FBQzRDO1FBQUssQ0FBTyxDQUFDLGVBQzdEMUQsSUFBQSxDQUFDTixlQUFlO1VBQUMsY0FBWThELFVBQVc7VUFBQVYsUUFBQSxFQUFFVTtRQUFVLENBQWtCLENBQUM7TUFBQSxDQUM3RCxDQUFDLEVBQ1pGLE1BQU0saUJBQUl0RCxJQUFBLENBQUNMLGdCQUFnQjtRQUFBbUQsUUFBQSxFQUFFUTtNQUFNLENBQW1CLENBQUM7SUFBQSxDQUN2QyxDQUFDO0VBQUEsRUFDWCxDQUFDO0FBRWhCLENBQUM7QUFZRCxPQUFPLElBQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQUMsS0FBQSxFQVFBO0VBQUEsSUFQekI5QyxHQUFHLEdBQUE4QyxLQUFBLENBQUg5QyxHQUFHO0lBQ0hQLENBQUMsR0FBQXFELEtBQUEsQ0FBRHJELENBQUM7SUFDRFksWUFBWSxHQUFBeUMsS0FBQSxDQUFaekMsWUFBWTtJQUNaRSxZQUFZLEdBQUF1QyxLQUFBLENBQVp2QyxZQUFZO0lBQ1orQixVQUFVLEdBQUFRLEtBQUEsQ0FBVlIsVUFBVTtJQUNWZCxRQUFRLEdBQUFzQixLQUFBLENBQVJ0QixRQUFRO0lBQUF1QixnQkFBQSxHQUFBRCxLQUFBLENBQ1JsQyxVQUFVO0lBQVZBLFVBQVUsR0FBQW1DLGdCQUFBLGNBQUcsSUFBSSxHQUFBQSxnQkFBQTtFQUVqQixJQUFJL0MsR0FBRyxDQUFDQyxJQUFJLEtBQUssVUFBVSxFQUFFO0lBQzNCLG9CQUNFZixJQUFBLENBQUNrRCxlQUFlO01BQ2RwQyxHQUFHLEVBQUVBLEdBQUk7TUFDVFAsQ0FBQyxFQUFFQSxDQUFFO01BQ0xZLFlBQVksRUFBRUEsWUFBYTtNQUMzQkUsWUFBWSxFQUFFQSxZQUFhO01BQzNCK0IsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCZCxRQUFRLEVBQUVBLFFBQVM7TUFDbkJaLFVBQVUsRUFBRUE7SUFBVyxDQUN4QixDQUFDO0VBRU47RUFDQSxvQkFDRTFCLElBQUEsQ0FBQ29DLGdCQUFnQjtJQUNmOUIsSUFBSSxFQUFFUSxHQUFHLENBQUNSLElBQUs7SUFDZkMsQ0FBQyxFQUFFQSxDQUFFO0lBQ0xZLFlBQVksRUFBRUEsWUFBYTtJQUMzQkUsWUFBWSxFQUFFQSxZQUFhO0lBQzNCaUIsUUFBUSxFQUFFQSxRQUFTO0lBQ25CWixVQUFVLEVBQUVBO0VBQVcsQ0FDeEIsQ0FBQztBQUVOLENBQUM7QUFRRCxPQUFPLElBQU1vQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsS0FBQSxFQUF1RDtFQUFBLElBQWpEUixLQUFLLEdBQUFRLEtBQUEsQ0FBTFIsS0FBSztJQUFFaEQsQ0FBQyxHQUFBd0QsS0FBQSxDQUFEeEQsQ0FBQztJQUFBeUQsZ0JBQUEsR0FBQUQsS0FBQSxDQUFFWCxVQUFVO0lBQVZBLFVBQVUsR0FBQVksZ0JBQUEsY0FBRyxJQUFJLEdBQUFBLGdCQUFBO0VBQ3BELElBQU0vQyxJQUFJLEdBQUc1QixrQkFBa0IsQ0FBQ2tFLEtBQUssRUFBRSxVQUFBakQsSUFBSTtJQUFBLE9BQUlELFNBQVMsQ0FBQ0MsSUFBSSxFQUFFQyxDQUFDLENBQUM7RUFBQSxFQUFDO0VBRWxFLG9CQUNFUCxJQUFBLENBQUFJLFNBQUE7SUFBQTBDLFFBQUEsRUFDRzdCLElBQUksQ0FBQ2dELEdBQUcsQ0FBQyxVQUFDbkQsR0FBRyxFQUFFSSxLQUFLLEVBQUs7TUFDeEIsSUFBQWdELHFCQUFBLEdBQXVDbEQscUJBQXFCLENBQUNDLElBQUksRUFBRUMsS0FBSyxDQUFDO1FBQWpFQyxZQUFZLEdBQUErQyxxQkFBQSxDQUFaL0MsWUFBWTtRQUFFRSxZQUFZLEdBQUE2QyxxQkFBQSxDQUFaN0MsWUFBWTtNQUNsQyxvQkFDRXJCLElBQUEsQ0FBQzJELGNBQWM7UUFFYjdDLEdBQUcsRUFBRUEsR0FBSTtRQUNUUCxDQUFDLEVBQUVBLENBQUU7UUFDTFksWUFBWSxFQUFFQSxZQUFhO1FBQzNCRSxZQUFZLEVBQUVBLFlBQWE7UUFDM0IrQixVQUFVLEVBQUVBO01BQVcsR0FMbEJoRSxhQUFhLENBQUMwQixHQUFHLENBTXZCLENBQUM7SUFFTixDQUFDO0VBQUMsQ0FDRixDQUFDO0FBRVAsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==