@projectcor/maia-components 2.29.0 → 2.30.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 (658) hide show
  1. package/lib/App.js +55 -0
  2. package/lib/components/atoms/ActionableButton.js +60 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +89 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +21 -0
  5. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.js +9 -0
  6. package/lib/components/atoms/AgentActivityIndicator/index.js +2 -0
  7. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +209 -0
  8. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +93 -0
  9. package/lib/components/atoms/ApprovalBox/index.js +2 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCard.js +218 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCard.styles.js +52 -0
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +448 -0
  13. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.styles.js +58 -0
  14. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +55 -0
  15. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.styles.js +14 -0
  16. package/lib/components/atoms/AttachmentCard/index.js +4 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +442 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +119 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +222 -0
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +128 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/index.js +2 -0
  23. package/lib/components/atoms/Backdrop/Backdrop.js +17 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.styles.js +9 -0
  25. package/lib/components/atoms/Backdrop/index.js +2 -0
  26. package/lib/components/atoms/CardItem.js +7 -0
  27. package/lib/components/atoms/CardMenu/CardMenu.js +131 -0
  28. package/lib/components/atoms/CardMenu/index.js +2 -0
  29. package/lib/components/atoms/CardMenu/styles.js +21 -0
  30. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +77 -0
  31. package/lib/components/atoms/ChatClientSelector/index.js +2 -0
  32. package/lib/components/atoms/ChatDisclaimerMessage/ChatDisclaimerMessage.js +9 -0
  33. package/lib/components/atoms/ChatDisclaimerMessage/index.js +2 -0
  34. package/lib/components/atoms/ChatDisclaimerMessage/styles.js +6 -0
  35. package/lib/components/atoms/Checkbox/Checkbox.js +34 -0
  36. package/lib/components/atoms/Checkbox/index.js +2 -0
  37. package/lib/components/atoms/Checkbox/styles.js +39 -0
  38. package/lib/components/atoms/Chip/Chip.js +150 -0
  39. package/lib/components/atoms/Chip/index.js +2 -0
  40. package/lib/components/atoms/Chip/styles.js +43 -0
  41. package/lib/components/atoms/ChipLlm/ChipLlm.js +45 -0
  42. package/lib/components/atoms/ChipLlm/ChipLlm.style.js +21 -0
  43. package/lib/components/atoms/ChipLlm/index.js +2 -0
  44. package/lib/components/atoms/ChipStatus/ChipStatus.interface.js +2 -0
  45. package/lib/components/atoms/ChipStatus/ChipStatus.js +14 -0
  46. package/lib/components/atoms/ChipStatus/ChipStatus.styles.js +27 -0
  47. package/lib/components/atoms/ChipStatus/index.js +2 -0
  48. package/lib/components/atoms/ClearButton.js +6 -0
  49. package/lib/components/atoms/ClientSelector/ClientSelector.js +146 -0
  50. package/lib/components/atoms/ClientSelector/ClientSelector.styles.js +15 -0
  51. package/lib/components/atoms/ClientSelector/index.js +2 -0
  52. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.js +38 -0
  53. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +188 -0
  54. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.js +39 -0
  55. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +434 -0
  56. package/lib/components/atoms/ContextMentionChip/index.js +4 -0
  57. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +411 -0
  58. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +10 -0
  59. package/lib/components/atoms/ContextMentionEditor/index.js +2 -0
  60. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +309 -0
  61. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +157 -0
  62. package/lib/components/atoms/ContextMentionItem/index.js +2 -0
  63. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +307 -0
  64. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.styles.js +108 -0
  65. package/lib/components/atoms/ContextMentionPopover/index.js +3 -0
  66. package/lib/components/atoms/CopyToClipboard.js +70 -0
  67. package/lib/components/atoms/EditableLabel/EditableLabel.js +110 -0
  68. package/lib/components/atoms/EditableLabel/index.js +2 -0
  69. package/lib/components/atoms/EditableLabel/styles.js +7 -0
  70. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.js +22 -0
  71. package/lib/components/atoms/EmptySearchClients/EmptySearchClients.styles.js +18 -0
  72. package/lib/components/atoms/EmptySearchClients/index.js +2 -0
  73. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.js +19 -0
  74. package/lib/components/atoms/EmptySearchProjects/EmptySearchProjects.styles.js +15 -0
  75. package/lib/components/atoms/EmptySearchProjects/index.js +2 -0
  76. package/lib/components/atoms/EntitySelector/EntitySelector.js +247 -0
  77. package/lib/components/atoms/EntitySelector/EntitySelector.skeleton.js +38 -0
  78. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +67 -0
  79. package/lib/components/atoms/EntitySelector/index.js +2 -0
  80. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.js +14 -0
  81. package/lib/components/atoms/ErrorSearchClients/ErrorSearchClients.styles.js +15 -0
  82. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.js +14 -0
  83. package/lib/components/atoms/ErrorSearchFaqs/ErrorSearchFaqs.style.js +15 -0
  84. package/lib/components/atoms/ErrorSearchFaqs/index.js +2 -0
  85. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +18 -0
  86. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.style.js +15 -0
  87. package/lib/components/atoms/ErrorSearchProjects/index.js +2 -0
  88. package/lib/components/atoms/Expand/Expand.js +32 -0
  89. package/lib/components/atoms/Expand/index.js +2 -0
  90. package/lib/components/atoms/Fade/Fade.js +56 -0
  91. package/lib/components/atoms/Fade/index.js +2 -0
  92. package/lib/components/atoms/FeedbackButton/FeedbackButton.js +59 -0
  93. package/lib/components/atoms/FeedbackButton/FeedbackButton.styles.js +14 -0
  94. package/lib/components/atoms/FeedbackButton/index.js +2 -0
  95. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +138 -0
  96. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.skeleton.js +44 -0
  97. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +43 -0
  98. package/lib/components/atoms/FrequentlyAskedQuestions/index.js +2 -0
  99. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +122 -0
  100. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.skeleton.js +43 -0
  101. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +62 -0
  102. package/lib/components/atoms/FrequentlyUsedActions/index.js +2 -0
  103. package/lib/components/atoms/GoBackButton.js +24 -0
  104. package/lib/components/atoms/HelpButton.js +44 -0
  105. package/lib/components/atoms/IconButton.js +56 -0
  106. package/lib/components/atoms/ImagePreview/ImagePreview.js +96 -0
  107. package/lib/components/atoms/ImagePreview/ImagePreview.styles.js +70 -0
  108. package/lib/components/atoms/Input/CustomInput.interface.js +2 -0
  109. package/lib/components/atoms/Input/CustomInput.js +91 -0
  110. package/lib/components/atoms/Input/CustomInput.styles.js +39 -0
  111. package/lib/components/atoms/Input/index.js +2 -0
  112. package/lib/components/atoms/ListMenuOption/ListMenuOption.js +41 -0
  113. package/lib/components/atoms/ListMenuOption/index.js +2 -0
  114. package/lib/components/atoms/ListMenuOption/styles.js +9 -0
  115. package/lib/components/atoms/Loader.js +41 -0
  116. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.js +11 -0
  117. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.style.js +6 -0
  118. package/lib/components/atoms/LoadingFaqs/index.js +2 -0
  119. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.js +11 -0
  120. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.styles.js +6 -0
  121. package/lib/components/atoms/LoadingSearchClients/index.js +2 -0
  122. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.js +14 -0
  123. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.style.js +10 -0
  124. package/lib/components/atoms/LoadingSearchProjects/index.js +2 -0
  125. package/lib/components/atoms/LoadingText/LoadingText.js +18 -0
  126. package/lib/components/atoms/LoadingText/index.js +2 -0
  127. package/lib/components/atoms/LoadingText/styles.js +7 -0
  128. package/lib/components/atoms/MAIAButton/MAIAButton.js +33 -0
  129. package/lib/components/atoms/MAIAButton/index.js +2 -0
  130. package/lib/components/atoms/MAIAError/MAIAError.js +15 -0
  131. package/lib/components/atoms/MAIAError/index.js +2 -0
  132. package/lib/components/atoms/MAIAInput/MAIAInput.js +1058 -0
  133. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +266 -0
  134. package/lib/components/atoms/MAIAInput/index.js +2 -0
  135. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  136. package/lib/components/atoms/MAIAInput/styles.js +182 -0
  137. package/lib/components/atoms/MAIAMessage/MAIAMessage.interfaces.js +2 -0
  138. package/lib/components/atoms/MAIAMessage/MAIAMessage.js +22 -0
  139. package/lib/components/atoms/MAIAMessage/index.js +2 -0
  140. package/lib/components/atoms/MAIAMessage/styles.js +7 -0
  141. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.config.js +23 -0
  142. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.interfaces.js +2 -0
  143. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.js +51 -0
  144. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.styles.js +26 -0
  145. package/lib/components/atoms/MaiaStreamdown/index.js +2 -0
  146. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.js +18 -0
  147. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +84 -0
  148. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.js +15 -0
  149. package/lib/components/atoms/MaiaWrapper/index.js +3 -0
  150. package/lib/components/atoms/MaiaWrapper/styles.js +21 -0
  151. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.interface.js +2 -0
  152. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.js +84 -0
  153. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.styles.js +53 -0
  154. package/lib/components/atoms/ModalClientAccess/index.js +2 -0
  155. package/lib/components/atoms/ModalInfo/ModalInfo.js +52 -0
  156. package/lib/components/atoms/ModalInfo/ModalInfoContent.js +7 -0
  157. package/lib/components/atoms/ModalInfo/index.js +3 -0
  158. package/lib/components/atoms/ModalInfo/styles.js +7 -0
  159. package/lib/components/atoms/ModalProject/ModalProject.interface.js +2 -0
  160. package/lib/components/atoms/ModalProject/ModalProject.js +112 -0
  161. package/lib/components/atoms/ModalProject/ModalProject.style.js +59 -0
  162. package/lib/components/atoms/ModalProject/index.js +2 -0
  163. package/lib/components/atoms/NextPageLoader.js +33 -0
  164. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.js +28 -0
  165. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +180 -0
  166. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.styles.js +34 -0
  167. package/lib/components/atoms/OnboardingModalButton/index.js +3 -0
  168. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +131 -0
  169. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.styles.js +59 -0
  170. package/lib/components/atoms/OptionAccessibility/index.js +2 -0
  171. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +27 -0
  172. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +18 -0
  173. package/lib/components/atoms/OptionCorPermission/index.js +2 -0
  174. package/lib/components/atoms/PrimaryButton.js +31 -0
  175. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +77 -0
  176. package/lib/components/atoms/ProjectSelector/ProjectSelector.styles.js +61 -0
  177. package/lib/components/atoms/ProjectSelector/index.js +2 -0
  178. package/lib/components/atoms/SecondaryButton.js +20 -0
  179. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +20 -0
  180. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +20 -0
  181. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  182. package/lib/components/atoms/Skeleton/Skeleton.js +36 -0
  183. package/lib/components/atoms/Skeleton/index.js +2 -0
  184. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.js +16 -0
  185. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.styles.js +24 -0
  186. package/lib/components/atoms/SlashCommandChip/buildSlashChipElement.js +18 -0
  187. package/lib/components/atoms/SlashCommandChip/index.js +4 -0
  188. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +210 -0
  189. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +53 -0
  190. package/lib/components/atoms/SlashCommandDropdown/index.js +2 -0
  191. package/lib/components/atoms/Switch/Switch.js +27 -0
  192. package/lib/components/atoms/Switch/Switch.styles.js +22 -0
  193. package/lib/components/atoms/Switch/index.js +2 -0
  194. package/lib/components/atoms/TextArea/CustomTextArea.interface.js +2 -0
  195. package/lib/components/atoms/TextArea/CustomTextArea.js +93 -0
  196. package/lib/components/atoms/TextArea/CustomTextArea.styles.js +25 -0
  197. package/lib/components/atoms/TextArea/TextArea.interfaces.js +2 -0
  198. package/lib/components/atoms/TextArea/TextArea.js +172 -0
  199. package/lib/components/atoms/TextArea/TextArea.styles.js +16 -0
  200. package/lib/components/atoms/TextArea/index.js +2 -0
  201. package/lib/components/atoms/ThirdButton.js +19 -0
  202. package/lib/components/atoms/VideoModal/VideoModal.js +76 -0
  203. package/lib/components/atoms/VideoModal/index.js +2 -0
  204. package/lib/components/atoms/WithAppCfg.js +26 -0
  205. package/lib/components/atoms/WithFeatureValidation.js +23 -0
  206. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.js +9 -0
  207. package/lib/components/atoms/WrapperCenterIcon/WrapperCenterIcon.styles.js +6 -0
  208. package/lib/components/atoms/WrapperCenterIcon/index.js +2 -0
  209. package/lib/components/atoms/icons/AIIcon.js +23 -0
  210. package/lib/components/atoms/icons/AacFile.js +39 -0
  211. package/lib/components/atoms/icons/AccessibilityIcon.js +42 -0
  212. package/lib/components/atoms/icons/ActionAssignIcon.js +111 -0
  213. package/lib/components/atoms/icons/ActionCalendarIcon.js +112 -0
  214. package/lib/components/atoms/icons/ActionChargeHoursIcon.js +111 -0
  215. package/lib/components/atoms/icons/ActionChatIcon.js +71 -0
  216. package/lib/components/atoms/icons/ActionCreateIcon.js +91 -0
  217. package/lib/components/atoms/icons/ActionCreateReworkIcon.js +39 -0
  218. package/lib/components/atoms/icons/ActionCreateSubtaskIcon.js +37 -0
  219. package/lib/components/atoms/icons/ActionEditIcon.js +39 -0
  220. package/lib/components/atoms/icons/ActionSummaryMessagesIcon.js +88 -0
  221. package/lib/components/atoms/icons/ActionSummaryTaskIcon.js +37 -0
  222. package/lib/components/atoms/icons/ActionTimeBackIcon.js +112 -0
  223. package/lib/components/atoms/icons/AgentMaiaIcon.js +31 -0
  224. package/lib/components/atoms/icons/Brain.js +77 -0
  225. package/lib/components/atoms/icons/CorAccessIcon.js +41 -0
  226. package/lib/components/atoms/icons/CorLogo.js +76 -0
  227. package/lib/components/atoms/icons/CsvFile.js +41 -0
  228. package/lib/components/atoms/icons/DocFile.js +41 -0
  229. package/lib/components/atoms/icons/DocxFile.js +41 -0
  230. package/lib/components/atoms/icons/EmptyClientIllustration.js +67 -0
  231. package/lib/components/atoms/icons/EmptyHistory.js +46 -0
  232. package/lib/components/atoms/icons/EmptySearchIllustration.js +37 -0
  233. package/lib/components/atoms/icons/EmptyState.js +84 -0
  234. package/lib/components/atoms/icons/EmptyStateAgents.js +58 -0
  235. package/lib/components/atoms/icons/ErrorIcon.js +14 -0
  236. package/lib/components/atoms/icons/ErrorSearchIllustration.js +52 -0
  237. package/lib/components/atoms/icons/ErrorState.js +51 -0
  238. package/lib/components/atoms/icons/FaqChevronIcon.js +39 -0
  239. package/lib/components/atoms/icons/FaqsIcon.js +51 -0
  240. package/lib/components/atoms/icons/FlacIcon.js +39 -0
  241. package/lib/components/atoms/icons/FolderIcon.js +29 -0
  242. package/lib/components/atoms/icons/HomeIcon.js +30 -0
  243. package/lib/components/atoms/icons/ImageFile.js +46 -0
  244. package/lib/components/atoms/icons/M4aFile.js +39 -0
  245. package/lib/components/atoms/icons/MAIAIcon.js +20 -0
  246. package/lib/components/atoms/icons/MAIAIsologo.js +65 -0
  247. package/lib/components/atoms/icons/MDFile.js +41 -0
  248. package/lib/components/atoms/icons/MaiaChatLayoutFloatingIcon.js +41 -0
  249. package/lib/components/atoms/icons/MaiaChatLayoutFullscreenIcon.js +41 -0
  250. package/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
  251. package/lib/components/atoms/icons/MaiaChatLayoutSidebarIcon.js +41 -0
  252. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  253. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  254. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  255. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  256. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  257. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  258. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  259. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  260. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  261. package/lib/components/atoms/icons/MaiaSettingsProject.js +111 -0
  262. package/lib/components/atoms/icons/MaiaSettingsProjectV2.js +193 -0
  263. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  264. package/lib/components/atoms/icons/MaiaStoreIcon.js +31 -0
  265. package/lib/components/atoms/icons/Mp3File.js +39 -0
  266. package/lib/components/atoms/icons/Mp4File.js +39 -0
  267. package/lib/components/atoms/icons/MyAgentsNavIcon.js +51 -0
  268. package/lib/components/atoms/icons/NewChat.js +29 -0
  269. package/lib/components/atoms/icons/NotionIcon.js +36 -0
  270. package/lib/components/atoms/icons/OgaFile.js +39 -0
  271. package/lib/components/atoms/icons/OggFile.js +39 -0
  272. package/lib/components/atoms/icons/PdfFile.js +39 -0
  273. package/lib/components/atoms/icons/PptFile.js +47 -0
  274. package/lib/components/atoms/icons/PptxFile.js +49 -0
  275. package/lib/components/atoms/icons/RetryIcon.js +34 -0
  276. package/lib/components/atoms/icons/SkillIcon.js +30 -0
  277. package/lib/components/atoms/icons/SkillsNavIcon.js +27 -0
  278. package/lib/components/atoms/icons/SubtaskIcon.js +36 -0
  279. package/lib/components/atoms/icons/TaskLinkIcon.js +27 -0
  280. package/lib/components/atoms/icons/TelescopeIcon.js +60 -0
  281. package/lib/components/atoms/icons/TemplateGradientIcon.js +42 -0
  282. package/lib/components/atoms/icons/TextFile.js +41 -0
  283. package/lib/components/atoms/icons/WavFile.js +39 -0
  284. package/lib/components/atoms/icons/WebmFile.js +50 -0
  285. package/lib/components/atoms/icons/XlsFile.js +42 -0
  286. package/lib/components/atoms/icons/XlsxFile.js +42 -0
  287. package/lib/components/atoms/icons/index.js +50 -0
  288. package/lib/components/atoms/index.js +42 -0
  289. package/lib/components/index.js +11 -0
  290. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.interface.js +2 -0
  291. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +149 -0
  292. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.styles.js +53 -0
  293. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +415 -0
  294. package/lib/components/molecules/AbmSection/AbmGeneralSection.styles.js +152 -0
  295. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +374 -0
  296. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.styles.js +106 -0
  297. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +92 -0
  298. package/lib/components/molecules/AbmSection/AbmLoaderFiles.styles.js +57 -0
  299. package/lib/components/molecules/AbmSection/index.js +4 -0
  300. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +52 -0
  301. package/lib/components/molecules/ChatAIClientSelector/index.js +2 -0
  302. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +117 -0
  303. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +187 -0
  304. package/lib/components/molecules/ChatAIContent/ChatAIContent.styles.js +6 -0
  305. package/lib/components/molecules/ChatAIContent/index.js +2 -0
  306. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.js +241 -0
  307. package/lib/components/molecules/ChatAIHistory/index.js +2 -0
  308. package/lib/components/molecules/ChatAIHistory/styles.js +22 -0
  309. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +649 -0
  310. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +115 -0
  311. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +95 -0
  312. package/lib/components/molecules/ChatAIHome/index.js +2 -0
  313. package/lib/components/molecules/ChatAIHome/styles.js +335 -0
  314. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +137 -0
  315. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +853 -0
  316. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +47 -0
  317. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.styles.js +37 -0
  318. package/lib/components/molecules/ChatAIMessages/README.md +101 -0
  319. package/lib/components/molecules/ChatAIMessages/index.js +2 -0
  320. package/lib/components/molecules/ChatAIMessages/newStyles.js +131 -0
  321. package/lib/components/molecules/ChatAIMessages/styles.js +94 -0
  322. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1217 -0
  323. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +58 -0
  324. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +127 -0
  325. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +34 -0
  326. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/index.js +2 -0
  327. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +189 -0
  328. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +26 -0
  329. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/index.js +2 -0
  330. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +448 -0
  331. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +108 -0
  332. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/index.js +2 -0
  333. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +48 -0
  334. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +38 -0
  335. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  336. package/lib/components/molecules/ChatAIModal/constants.js +40 -0
  337. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
  338. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
  339. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
  340. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
  341. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
  342. package/lib/components/molecules/ChatAIModal/index.js +2 -0
  343. package/lib/components/molecules/ChatAIModal/layout.js +74 -0
  344. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +457 -0
  345. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +218 -0
  346. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +357 -0
  347. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +145 -0
  348. package/lib/components/molecules/ChatAIMySkills/index.js +2 -0
  349. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.js +48 -0
  350. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.styles.js +49 -0
  351. package/lib/components/molecules/ChatAIProjectSelector/index.js +2 -0
  352. package/lib/components/molecules/ChatFooter/ChatFooter.js +337 -0
  353. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.js +32 -0
  354. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.styles.js +14 -0
  355. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +201 -0
  356. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +51 -0
  357. package/lib/components/molecules/ChatFooter/index.js +2 -0
  358. package/lib/components/molecules/ChatFooter/styles.js +23 -0
  359. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +62 -0
  360. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.styles.js +6 -0
  361. package/lib/components/molecules/ContextMentionInput/index.js +2 -0
  362. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +118 -0
  363. package/lib/components/molecules/MessageFeedback/index.js +2 -0
  364. package/lib/components/molecules/MessageFeedback/styles.js +14 -0
  365. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.js +127 -0
  366. package/lib/components/molecules/ProjectSummaryChat/index.js +2 -0
  367. package/lib/components/molecules/ProjectSummaryChat/styles.js +8 -0
  368. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.js +152 -0
  369. package/lib/components/molecules/ProjectSummaryConfig/index.js +2 -0
  370. package/lib/components/molecules/ProjectSummaryConfig/styles.js +86 -0
  371. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.js +49 -0
  372. package/lib/components/molecules/ProjectSummaryContent/index.js +2 -0
  373. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.js +19 -0
  374. package/lib/components/molecules/ProjectSummaryModal/index.js +2 -0
  375. package/lib/components/molecules/ProjectSummaryModal/styles.js +2 -0
  376. package/lib/components/molecules/Sidebar/Sidebar.js +715 -0
  377. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +157 -0
  378. package/lib/components/molecules/Sidebar/Sidebar.skeleton.js +48 -0
  379. package/lib/components/molecules/Sidebar/Sidebar.styles.js +75 -0
  380. package/lib/components/molecules/Sidebar/index.js +2 -0
  381. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +1420 -0
  382. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.styles.js +93 -0
  383. package/lib/components/organisms/AbmAgentModal/index.js +2 -0
  384. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +175 -0
  385. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +34 -0
  386. package/lib/components/organisms/AbmSkillGenerateModal/index.js +2 -0
  387. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +432 -0
  388. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +98 -0
  389. package/lib/components/organisms/AbmSkillModal/index.js +2 -0
  390. package/lib/components/organisms/ChatAI/ChatAI.js +167 -0
  391. package/lib/components/organisms/ChatAI/index.js +2 -0
  392. package/lib/components/organisms/ChatAI/styles.js +7 -0
  393. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +23 -0
  394. package/lib/components/organisms/ClientAIButton/index.js +2 -0
  395. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.js +86 -0
  396. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.styles.js +39 -0
  397. package/lib/components/organisms/DeleteAgentModal/index.js +2 -0
  398. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +122 -0
  399. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.styles.js +47 -0
  400. package/lib/components/organisms/DeleteQuestionModal/index.js +2 -0
  401. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.js +138 -0
  402. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.styles.js +69 -0
  403. package/lib/components/organisms/EditQuestionModal/index.js +2 -0
  404. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.js +113 -0
  405. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.styles.js +54 -0
  406. package/lib/components/organisms/ModalFileExceeds/index.js +2 -0
  407. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.js +26 -0
  408. package/lib/components/organisms/ProjectAIButton/index.js +2 -0
  409. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +60 -0
  410. package/lib/components/organisms/ProjectSummary/index.js +2 -0
  411. package/lib/components/organisms/ProjectSummary/styles.js +7 -0
  412. package/lib/components/organisms/SnackBar/Snackbar.interface.js +2 -0
  413. package/lib/components/organisms/SnackBar/Snackbar.js +73 -0
  414. package/lib/components/organisms/SnackBar/Snackbar.styles.js +9 -0
  415. package/lib/components/organisms/SnackBar/index.js +2 -0
  416. package/lib/components/organisms/SourcesInformation/SourceItem.js +18 -0
  417. package/lib/components/organisms/SourcesInformation/SourceItem.styles.js +14 -0
  418. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +66 -0
  419. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.styles.js +27 -0
  420. package/lib/components/organisms/SourcesInformation/index.js +2 -0
  421. package/lib/constants/config.js +13 -0
  422. package/lib/constants/formatExtensions.js +55 -0
  423. package/lib/constants/gqlClient.js +4 -0
  424. package/lib/constants/maiaHourAgentAccess.js +15 -0
  425. package/lib/constants/maiaTaskPanelAccess.js +24 -0
  426. package/lib/constants/maiaTaskPanelOutsideClick.js +9 -0
  427. package/lib/constants/maiaTaskPanelZIndex.js +19 -0
  428. package/lib/constants/permissions/config.js +72 -0
  429. package/lib/constants/permissions/index.js +3 -0
  430. package/lib/constants/permissions/types.js +2 -0
  431. package/lib/constants/permissions/utils.js +18 -0
  432. package/lib/constants/plannerSyncEvents.js +15 -0
  433. package/lib/constants/taskLinkIcon.js +15 -0
  434. package/lib/constants/taskUrls.js +11 -0
  435. package/lib/context/cor-user.js +31 -0
  436. package/lib/context/global-context.js +39 -0
  437. package/lib/dev/DevChatAI.js +101 -0
  438. package/lib/dev/DevContextMentionInput.js +67 -0
  439. package/lib/dev/ProjectSummary.js +9 -0
  440. package/lib/dev/Providers.js +27 -0
  441. package/lib/exports.js +2 -0
  442. package/lib/hooks/README.md +192 -0
  443. package/lib/hooks/index.js +30 -0
  444. package/lib/hooks/useAccessClient/index.js +2 -0
  445. package/lib/hooks/useAccessClient/useAccessClient.js +81 -0
  446. package/lib/hooks/useAgentModel/index.js +2 -0
  447. package/lib/hooks/useAgentModel/useAgentModel.js +62 -0
  448. package/lib/hooks/useAgentModel/useCreateAgent.js +128 -0
  449. package/lib/hooks/useAgentModel/useDeleteAgent.js +88 -0
  450. package/lib/hooks/useAgentModel/useUpdateAgent.js +129 -0
  451. package/lib/hooks/useAgentSuggestions.js +60 -0
  452. package/lib/hooks/useCaretPosition.js +65 -0
  453. package/lib/hooks/useChatManager/index.js +2 -0
  454. package/lib/hooks/useChatManager/useChatManager.interface.js +2 -0
  455. package/lib/hooks/useChatManager/useChatManager.js +1782 -0
  456. package/lib/hooks/useChatMessages/index.js +2 -0
  457. package/lib/hooks/useChatMessages/useChatMessages.interface.js +2 -0
  458. package/lib/hooks/useChatMessages/useChatMessages.js +722 -0
  459. package/lib/hooks/useChats/index.js +2 -0
  460. package/lib/hooks/useChats/useChats.interfaces.js +2 -0
  461. package/lib/hooks/useChats/useChats.js +187 -0
  462. package/lib/hooks/useClientSearch.js +163 -0
  463. package/lib/hooks/useContextMentions.js +463 -0
  464. package/lib/hooks/useContextPinPopover.js +228 -0
  465. package/lib/hooks/useDebounce.js +18 -0
  466. package/lib/hooks/useEntitySearch.js +1239 -0
  467. package/lib/hooks/useEvent.js +93 -0
  468. package/lib/hooks/useFrequentlyAskedQuestions.js +150 -0
  469. package/lib/hooks/useFrequentlyUsedActions.js +94 -0
  470. package/lib/hooks/useKnowledge/deleteKnowledge.js +69 -0
  471. package/lib/hooks/useKnowledge/downloadKnowledge.js +81 -0
  472. package/lib/hooks/useKnowledge/index.js +4 -0
  473. package/lib/hooks/useKnowledge/saveKnowledge.js +107 -0
  474. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +156 -0
  475. package/lib/hooks/useMaiaTaskPanelZIndex.js +17 -0
  476. package/lib/hooks/useMentionAllowedTypes.js +136 -0
  477. package/lib/hooks/useMentionPopover.js +366 -0
  478. package/lib/hooks/useMinimizedPillBottomOffset.js +110 -0
  479. package/lib/hooks/useModal/index.js +2 -0
  480. package/lib/hooks/useModal/useModal.interfaces.js +2 -0
  481. package/lib/hooks/useModal/useModal.js +47 -0
  482. package/lib/hooks/useOnboardingNavigation.js +20 -0
  483. package/lib/hooks/useOrchestratorStream/index.js +2 -0
  484. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +2 -0
  485. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +269 -0
  486. package/lib/hooks/useProjectSearch.js +183 -0
  487. package/lib/hooks/useProjectSummary.js +101 -0
  488. package/lib/hooks/useProjectSummaryConfig.js +211 -0
  489. package/lib/hooks/useProjects.js +46 -0
  490. package/lib/hooks/useRecentClientsSearch.js +150 -0
  491. package/lib/hooks/useRecentContexts.js +86 -0
  492. package/lib/hooks/useResize.js +29 -0
  493. package/lib/hooks/useSlashCommands.js +84 -0
  494. package/lib/hooks/useSmoothStreamText/index.js +2 -0
  495. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +197 -0
  496. package/lib/hooks/useSnackBarManager/useSnackBarManager.js +41 -0
  497. package/lib/hooks/useStreamResponse.js +112 -0
  498. package/lib/hooks/useStreamdownStyles.js +13 -0
  499. package/lib/hooks/useStreamingMessage/index.js +2 -0
  500. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +18 -0
  501. package/lib/hooks/useT.js +17 -0
  502. package/lib/hooks/useTabTaskDefault.js +33 -0
  503. package/lib/hooks/useTaskPanel.js +22 -0
  504. package/lib/hooks/useTextOverflowEllipsisTooltip.js +34 -0
  505. package/lib/hooks/useToggle.js +19 -0
  506. package/lib/hooks/useToggleFavorite/index.js +2 -0
  507. package/lib/hooks/useToggleFavorite/useToggleFavorite.js +83 -0
  508. package/lib/index.css +76 -0
  509. package/lib/index.js +30 -0
  510. package/lib/lang/br/index.js +761 -0
  511. package/lib/lang/en/index.js +761 -0
  512. package/lib/lang/es/index.js +762 -0
  513. package/lib/lang/fr/index.js +582 -0
  514. package/lib/lang/index.js +24 -0
  515. package/lib/lang/utils.js +33 -0
  516. package/lib/mocks/mockChats.js +395 -0
  517. package/lib/mocks/mockOrchestrator.js +5 -0
  518. package/lib/mocks/mockProject.js +11 -0
  519. package/lib/mocks/mockProjectSummary.js +6 -0
  520. package/lib/mocks/mockedUser.js +169 -0
  521. package/lib/services/apolloClient.js +3 -0
  522. package/lib/services/appcues.js +19 -0
  523. package/lib/services/corpilot/ProjectSummary/getProjectSummary.js +31 -0
  524. package/lib/services/corpilot/ProjectSummary/index.js +5 -0
  525. package/lib/services/corpilot/client.js +27 -0
  526. package/lib/services/corpilot/index.js +5 -0
  527. package/lib/services/maia/Access/updateAccess.js +59 -0
  528. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +46 -0
  529. package/lib/services/maia/Actions/getSlashCommands.js +39 -0
  530. package/lib/services/maia/Actions/index.js +7 -0
  531. package/lib/services/maia/Agents/createAgent.js +39 -0
  532. package/lib/services/maia/Agents/deleteAgent.js +38 -0
  533. package/lib/services/maia/Agents/fetchAgentDetail.js +122 -0
  534. package/lib/services/maia/Agents/getAgentById.js +162 -0
  535. package/lib/services/maia/Agents/getAgentModels.js +112 -0
  536. package/lib/services/maia/Agents/getAgentSuggestions.js +44 -0
  537. package/lib/services/maia/Agents/getAgents.js +718 -0
  538. package/lib/services/maia/Agents/setAgentToolGroups.js +42 -0
  539. package/lib/services/maia/Agents/toggleFavorite.js +34 -0
  540. package/lib/services/maia/Agents/updateAgent.js +39 -0
  541. package/lib/services/maia/Chats/deleteChat.js +32 -0
  542. package/lib/services/maia/Chats/getChatMessages.js +144 -0
  543. package/lib/services/maia/Chats/getChatsByUserId.js +82 -0
  544. package/lib/services/maia/Chats/index.js +15 -0
  545. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  546. package/lib/services/maia/Chats/patchChat.js +43 -0
  547. package/lib/services/maia/Chats/wasHelpfulChat.js +31 -0
  548. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.js +55 -0
  549. package/lib/services/maia/Faqs/index.js +5 -0
  550. package/lib/services/maia/Knowledge/delete.js +41 -0
  551. package/lib/services/maia/Knowledge/download.js +48 -0
  552. package/lib/services/maia/Knowledge/index.js +3 -0
  553. package/lib/services/maia/Knowledge/save.js +43 -0
  554. package/lib/services/maia/Orchestrator/index.js +7 -0
  555. package/lib/services/maia/Orchestrator/orchestrator.js +246 -0
  556. package/lib/services/maia/RecentClients/getRecentClients.js +43 -0
  557. package/lib/services/maia/RecentClients/index.js +6 -0
  558. package/lib/services/maia/RecentContexts/getRecentContexts.js +54 -0
  559. package/lib/services/maia/RecentContexts/index.js +6 -0
  560. package/lib/services/maia/RecentProjects/getRecentProjects.js +55 -0
  561. package/lib/services/maia/RecentProjects/index.js +6 -0
  562. package/lib/services/maia/RecentTasks/getRecentTasks.js +54 -0
  563. package/lib/services/maia/RecentTasks/index.js +6 -0
  564. package/lib/services/maia/RecentUsers/getRecentUsers.js +59 -0
  565. package/lib/services/maia/RecentUsers/index.js +6 -0
  566. package/lib/services/maia/Skills/createSkill.js +39 -0
  567. package/lib/services/maia/Skills/deleteSkill.js +38 -0
  568. package/lib/services/maia/Skills/generateSkill.js +41 -0
  569. package/lib/services/maia/Skills/getSkills.js +90 -0
  570. package/lib/services/maia/Skills/updateSkill.js +39 -0
  571. package/lib/services/maia/client.js +27 -0
  572. package/lib/services/maia/index.js +17 -0
  573. package/lib/services/query/ClientSearchQuery.js +5 -0
  574. package/lib/services/query/entitySearchQuery.js +18 -0
  575. package/lib/services/query/index.js +2 -0
  576. package/lib/services/query/projectSearchByValueQuery.js +5 -0
  577. package/lib/services/query/taskUserTabQuery.js +8 -0
  578. package/lib/services/query/usersDirectoryQuery.js +19 -0
  579. package/lib/services/types.js +6 -0
  580. package/lib/services/utils/fetchCOR.js +117 -0
  581. package/lib/services/utils/getCookie.js +10 -0
  582. package/lib/services/utils/index.js +3 -0
  583. package/lib/services/utils/mapChatMessages.js +287 -0
  584. package/lib/services/utils/validateIsMaia.js +4 -0
  585. package/lib/store/chatsSidebarOptimistic.js +92 -0
  586. package/lib/store/chatsStore.types.js +2 -0
  587. package/lib/store/chatsStoreLifecycle.js +8 -0
  588. package/lib/store/faqsStore.types.js +2 -0
  589. package/lib/store/index.js +4 -0
  590. package/lib/store/maiaLastChatPersistence.js +35 -0
  591. package/lib/store/sessions/activeView.js +22 -0
  592. package/lib/store/sessions/index.js +9 -0
  593. package/lib/store/sessions/sessionHitlContext.js +15 -0
  594. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  595. package/lib/store/sessions/sessionNotifications.js +110 -0
  596. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  597. package/lib/store/sessions/sessionStreamManager.js +715 -0
  598. package/lib/store/sessions/sessionStreamingText.js +80 -0
  599. package/lib/store/sessions/sessions.types.js +35 -0
  600. package/lib/store/sessions/useSessionMeta.js +39 -0
  601. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  602. package/lib/store/sessions/useSessionsStore.js +197 -0
  603. package/lib/store/useChatsStore.js +387 -0
  604. package/lib/store/useFaqsStore.js +27 -0
  605. package/lib/streamdownStyles.js +9 -0
  606. package/lib/styles/StyledCleanContainer.js +7 -0
  607. package/lib/styles/cascade.js +14 -0
  608. package/lib/styles/config.js +47 -0
  609. package/lib/styles/shared/scrollable.js +3 -0
  610. package/lib/styles/transitions.js +21 -0
  611. package/lib/types/Action.js +2 -0
  612. package/lib/types/AgentSuggestion.js +2 -0
  613. package/lib/types/Chat.js +10 -0
  614. package/lib/types/Client.js +2 -0
  615. package/lib/types/FrequentlyAskedQuestion.js +2 -0
  616. package/lib/types/Project.js +2 -0
  617. package/lib/types/ProjectSummaryConfigKeys.js +9 -0
  618. package/lib/types/Task.js +2 -0
  619. package/lib/types/agent.js +2 -0
  620. package/lib/types/agentModal.js +2 -0
  621. package/lib/types/contextMention.js +37 -0
  622. package/lib/types/global.d.js +2 -0
  623. package/lib/types/skill.js +2 -0
  624. package/lib/types/streamActivity.js +2 -0
  625. package/lib/types/userType.d.js +2 -0
  626. package/lib/utils/actionCategoryMap.js +37 -0
  627. package/lib/utils/actionIconMap.js +61 -0
  628. package/lib/utils/agentDisplayName.js +42 -0
  629. package/lib/utils/chatInputFiles.js +52 -0
  630. package/lib/utils/contextMentionIcons.js +134 -0
  631. package/lib/utils/contextMentionLabel.js +4 -0
  632. package/lib/utils/contextMentionTriggers.js +54 -0
  633. package/lib/utils/contextMentionTypeLabel.js +17 -0
  634. package/lib/utils/corConnectorMentionTypes.js +41 -0
  635. package/lib/utils/ensureStreamdownStyles.js +21 -0
  636. package/lib/utils/entityLinkRender.js +135 -0
  637. package/lib/utils/fileDownloadHelper.js +40 -0
  638. package/lib/utils/formatQuickActionMessage.js +16 -0
  639. package/lib/utils/formatUnreadCount.js +6 -0
  640. package/lib/utils/getUnitFileSize.js +13 -0
  641. package/lib/utils/hitlAnalytics.js +65 -0
  642. package/lib/utils/hoursPlannerQuickActionType.js +64 -0
  643. package/lib/utils/imagePreprocessor.js +108 -0
  644. package/lib/utils/index.js +3 -0
  645. package/lib/utils/maiaHostOpen.js +19 -0
  646. package/lib/utils/maiaStreamdownRehypePlugins.js +27 -0
  647. package/lib/utils/mapBackendLang.js +8 -0
  648. package/lib/utils/normalizeAgentConnectors.js +70 -0
  649. package/lib/utils/openTaskInCorPanel.js +22 -0
  650. package/lib/utils/orchestratorSubagents.js +11 -0
  651. package/lib/utils/renderContextMentions.js +399 -0
  652. package/lib/utils/retryCompletion.js +85 -0
  653. package/lib/utils/slashCommandMarker.js +30 -0
  654. package/lib/utils/sortManagerHoursHomeFuas.js +14 -0
  655. package/lib/utils/sseStreamContent.js +17 -0
  656. package/lib/utils/streamActivityMessages.js +359 -0
  657. package/lib/utils/validateTrimmedFields.js +8 -0
  658. package/package.json +1 -1
@@ -0,0 +1,582 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { SECTIONS } from '../../constants/config';
5
+ import { ProjectSummaryConfigKeys } from '../../types/ProjectSummaryConfigKeys';
6
+ var globals = {
7
+ close: 'Close',
8
+ minimize: 'Réduire',
9
+ howWorks: 'How does it work?',
10
+ brandName: 'MAIA',
11
+ expand: 'Expand',
12
+ collapse: 'Collapse',
13
+ goBack: 'Go back to the start',
14
+ copy: 'Copy',
15
+ copied: 'Copied',
16
+ saved: 'Saved',
17
+ selectProject: 'Select project',
18
+ save: 'Save',
19
+ cancel: 'Cancel'
20
+ };
21
+ var error = {
22
+ title: "Une erreur s'est produite",
23
+ description: 'Nous rencontrons actuellement quelques problèmes. Veuillez réessayer dans quelques minutes.',
24
+ tryAgain: 'Réessayer'
25
+ };
26
+ var genericSection = {
27
+ error: error,
28
+ globals: globals
29
+ };
30
+ var projectSummarySection = {
31
+ resume: 'Resume',
32
+ hello: 'Hi, {{name}}!',
33
+ welcome: "I'm MAIA, your assistant at COR",
34
+ feedback: {
35
+ thumbsUp: 'It was helpful',
36
+ thumbsDown: "It wasn't helpful",
37
+ sources: 'Sources'
38
+ },
39
+ config: {
40
+ projectSummary: 'Summarize project',
41
+ selectProject: 'Select project',
42
+ configureResume: 'Advanced settings',
43
+ generatingResume: 'Generating summary',
44
+ generateResume: 'Generate',
45
+ hideConfig: 'Hide settings'
46
+ },
47
+ configureSettings: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ProjectSummaryConfigKeys.GENERAL_STATUS, 'Dates and deadlines'), ProjectSummaryConfigKeys.INCOME_COSTS, 'Profitability'), ProjectSummaryConfigKeys.TIME_HOURS, 'Estimated hours and usage'), ProjectSummaryConfigKeys.TASKS_PROGRESS, 'Tasks and progress'), ProjectSummaryConfigKeys.REWORKS, 'Rework')
48
+ };
49
+ var homeMenu = {
50
+ projectSummary: {
51
+ title: 'Résumé du projet',
52
+ description: "Générez des rapports avec l'IA à partir de votre projet"
53
+ },
54
+ faq: {
55
+ startTitle: 'Vous pouvez commencer par...',
56
+ categories: {
57
+ reworks: 'Rework'
58
+ }
59
+ },
60
+ fua: {
61
+ title: 'Actions fréquentes',
62
+ newBadge: 'Nouveau',
63
+ error: 'Oups! Nous avons eu un problème pour charger les actions fréquentes. Veuillez réessayer dans quelques minutes.'
64
+ },
65
+ recentContexts: {
66
+ title: 'Choisissez un contexte récent pour une réponse plus précise :',
67
+ types: {
68
+ client: 'Client',
69
+ project: 'Projet',
70
+ task: 'Tâche'
71
+ }
72
+ },
73
+ contextHome: {
74
+ greeting: 'Bonjour, {{name}} 👋',
75
+ subtitle: 'Je suis MAIA, votre assistante pour les tâches, les projets et les clients.\nOn reprend quelque chose de récent ?',
76
+ subtitleCollaborator: 'Je suis MAIA, votre assistante pour les tâches. On reprend quelque chose de récent ?',
77
+ subtitleCollaboratorWithHours: 'Saisissez vos heures ou démarrez un chat sur une tâche.',
78
+ subtitleManagerWithHours: 'Par où voulez-vous commencer ?',
79
+ hoursSection: {
80
+ title: 'Saisir des heures'
81
+ },
82
+ recentTasksSection: {
83
+ title: 'Consulter une tâche',
84
+ subtitle: 'Choisissez une tâche récente pour l’utiliser comme contexte.'
85
+ },
86
+ recentContextsSectionManager: {
87
+ title: 'Ou reprenez quelque chose de récent',
88
+ subtitle: 'Choisissez une tâche, un projet ou un client comme contexte'
89
+ },
90
+ contextGreeting: {
91
+ project: 'Que voulez-vous analyser ? Heures, estimations, reprises ? À vous de choisir !',
92
+ task: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
93
+ client: 'Que voulez-vous analyser ? Rentabilité, avancées, deadlines ? À vous de choisir !'
94
+ }
95
+ },
96
+ plannerHome: {
97
+ title: 'Commençons par saisir vos heures',
98
+ subtitle: 'Par où commence-t-on ?'
99
+ },
100
+ action: {
101
+ categories: {
102
+ tasks: 'Actions sur les tâches',
103
+ collaborators: 'Collaborateurs et responsables',
104
+ labels: 'Étiquettes et types',
105
+ checklists: 'Checklists',
106
+ deliverables: 'Livrables',
107
+ reworks: 'Reprises',
108
+ hours: 'Saisie des heures'
109
+ }
110
+ },
111
+ createdBy: 'Created by',
112
+ taskGreeting: "Je suis là pour vous aider avec cette tâche. Utilisez l'une des actions pour commencer.",
113
+ maiaker: {
114
+ title: 'Transformez les processus répétitifs en agents intelligents',
115
+ description: 'Créez des agents qui analysent et génèrent du contenu selon vos besoins.',
116
+ createManualAgent: 'Créer un agent manuellement',
117
+ badgeNew: 'Nouveau',
118
+ briefCard: {
119
+ title: 'Agent spécialiste en brief',
120
+ description: 'Créez et améliorez des briefs pour qu’ils soient prêts à être utilisés dans des tâches.',
121
+ prompt: 'Je veux créer un agent spécialiste en brief.'
122
+ },
123
+ comingSoonCard: {
124
+ title: 'Bientôt disponible',
125
+ description: 'Nous travaillons pour vous proposer davantage d’agents'
126
+ }
127
+ }
128
+ };
129
+ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SECTIONS.projectSummary, _objectSpread(_objectSpread({}, genericSection), projectSummarySection)), SECTIONS.chatAI, _objectSpread(_objectSpread(_objectSpread({}, genericSection), projectSummarySection), {}, {
130
+ homeMenu: homeMenu,
131
+ contextMention: {
132
+ keyboardHint: 'Navigation entre les onglets : @, @@… dans l’ordre. Aussi Alt/Cmd + ←/→',
133
+ recentsTitle: 'Récents',
134
+ me: 'Moi',
135
+ tabs: {
136
+ client: 'Client',
137
+ project: 'Projet',
138
+ task: 'Tâche',
139
+ user: 'Utilisateur',
140
+ mcp: 'Connecteurs',
141
+ skill: 'Compétences'
142
+ },
143
+ loading: 'Recherche...',
144
+ error: 'Un problème est survenu. Réessayez.',
145
+ skillQueryTooShort: 'Saisissez au moins 3 caractères pour rechercher',
146
+ empty: {
147
+ recents: 'Commencez à écrire pour rechercher',
148
+ withQuery: 'Aucun résultat pour "{{query}}"',
149
+ skillNoItems: "Aucune compétence créée pour l'instant",
150
+ skillWithQuery: 'Aucune compétence correspondant à "{{query}}"'
151
+ },
152
+ counters: {
153
+ projects: 'projets',
154
+ tasks: 'tâches'
155
+ }
156
+ },
157
+ contextPin: {
158
+ addContext: 'Contexte global',
159
+ searchPlaceholder: 'Rechercher un contexte…',
160
+ remove: 'Retirer le contexte'
161
+ },
162
+ button: 'IA',
163
+ title: 'Bonjour, {{name}}!',
164
+ description: "Je suis MAIA, ton assistante, et je suis là pour t'aider avec tes questions.",
165
+ newChat: 'Nouveau chat',
166
+ generating: 'Génération de la réponse',
167
+ history: {
168
+ tooltip: 'Historique',
169
+ title: 'Historique vide',
170
+ description: 'Aucune conversation trouvée',
171
+ item: {
172
+ date: 'Dernière mise à jour {{date}}'
173
+ },
174
+ menu: {
175
+ rename: 'Renommer',
176
+ "delete": 'Supprimer'
177
+ },
178
+ loadingMore: 'Chargement des conversations'
179
+ },
180
+ onboarding: {
181
+ maia: 'MAIA',
182
+ agentCustom: 'Custom agents',
183
+ howCreateAgent: 'How to create an agent?',
184
+ tooltip: 'How does it work?'
185
+ },
186
+ qa: {
187
+ title: 'Questions Fréquemment Posées',
188
+ items: {
189
+ rentabilidad_proyecto: 'Quelle est la rentabilité de ce projet ?',
190
+ avance_proyecto: 'Quel est le progrès de ce projet ?',
191
+ tareas_proyecto: 'Quelles sont les tâches à venir à venir ?'
192
+ }
193
+ },
194
+ attachmentCard: {
195
+ download: 'Télécharger',
196
+ "delete": 'Supprimer'
197
+ },
198
+ chat: {
199
+ generating: 'Analyse du message',
200
+ generatingAttachment: "Analyse de l'attachement",
201
+ suggestionsTitle: 'Réponses suggérées',
202
+ createAgentActionsTitle: 'Étape suivante',
203
+ createAgentActionStartChat: 'Démarrer une conversation avec le nouvel agent',
204
+ createAgentActionKnowledge: 'Téléverser des fichiers dans la base de connaissances',
205
+ createAgentActionLoadError: "Impossible de charger l'agent. Veuillez réessayer.",
206
+ executingAction: "Exécution de l'action",
207
+ processing: 'Traitement en cours',
208
+ activity: {
209
+ generating: {
210
+ preparing: 'Préparation de votre réponse',
211
+ considering: 'Analyse de votre question',
212
+ almostReady: "Définition de l'approche"
213
+ },
214
+ thinking: {
215
+ analyzing: 'Analyse de votre question',
216
+ reviewing: 'Examen du contexte',
217
+ planning: 'Structuration de la réponse'
218
+ },
219
+ search: {
220
+ scanning: 'Recherche sur le web',
221
+ summarizing: 'Analyse des résultats'
222
+ },
223
+ deepSearch: {
224
+ exploring: 'Exploration des sources',
225
+ crossChecking: 'Vérification des informations'
226
+ },
227
+ attachment: {
228
+ reading: 'Lecture de la pièce jointe',
229
+ extracting: 'Extraction des éléments pertinents',
230
+ readingPlural: 'Lecture des pièces jointes',
231
+ extractingPlural: 'Extraction des éléments pertinents'
232
+ },
233
+ writing: {
234
+ composing: 'Rédaction de la réponse'
235
+ },
236
+ dynamicContextTooltip: 'Ce contexte a été généré dynamiquement et peut évoluer au fil de la conversation.',
237
+ creatingTask: 'Création de tâche',
238
+ creatingTasksBatch: 'Création de tâches',
239
+ creatingAgent: "Création d'agent",
240
+ editingAgent: "Modification de l'agent",
241
+ editingTask: 'Modification de tâche',
242
+ editingTasksBatch: 'Modification de tâches',
243
+ deletingTask: 'Suppression de tâche',
244
+ deletingTasksBatch: 'Suppression de tâches',
245
+ assigningUser: "Attribution d'utilisateur",
246
+ unassigningUser: "Retrait d'utilisateur",
247
+ assigningLabel: "Attribution d'étiquette",
248
+ updatingTaskType: 'Mise à jour du type de tâche',
249
+ updatingEstimatedHours: 'Mise à jour des heures estimées',
250
+ updatingDeliverable: 'Mise à jour du livrable',
251
+ loggingHours: "Saisie d'heures",
252
+ creatingChecklist: 'Création de checklist',
253
+ creatingLabel: "Création de l'étiquette",
254
+ editingProject: 'Modification du projet',
255
+ creatingChecklistItem: "Ajout d'un élément à la checklist",
256
+ queryingHours: 'Consultation des heures par date',
257
+ configuringAgentAccess: "Modification de la visibilité de l'agent",
258
+ sendingTaskMessage: "Envoi d'un message sur la tâche",
259
+ deletingChecklistItem: "Suppression d'un élément de la checklist",
260
+ removingTaskType: 'Suppression du type de tâche',
261
+ removingLabel: "Suppression de l'étiquette",
262
+ updatingDeliverableCount: 'Mise à jour du compteur de livrables',
263
+ creatingRework: "Création d'une reprise",
264
+ updatingRework: 'Mise à jour de la reprise',
265
+ generatingFile: 'Génération du fichier',
266
+ resumingAction: "Exécution de l'action approuvée"
267
+ },
268
+ loadingMore: 'Chargement des messages',
269
+ footer: {
270
+ placeholder: "Comment puis-je t'aider aujourd'hui ?",
271
+ corAccessLabel: 'Accès à COR',
272
+ corAccessTooltip: 'Accès aux données COR',
273
+ orchestratorPlaceholder: 'Demandez à Maia, @ pour mentionner ou / pour les actions rapides'
274
+ },
275
+ error: 'Une erreur est survenue lors de la génération de votre réponse, veuillez réessayer.',
276
+ retry: 'Réessayer',
277
+ errorAccessDenied: "You don't have access to interact with this agent. It is possible that your accessibility settings have changed. Please contact the person in your organization who manages agents for more information.",
278
+ errorPromptTooLong: 'Vous avez dépassé la limite de contexte {{used}} tokens. Veuillez réessayer ou continuer dans un autre chat',
279
+ changeProject: "J'ai détecté que vous souhaitez changer de Projet.\n\n**Sélectionnez le projet pour continuer :**",
280
+ searchWeb: 'Search the web',
281
+ deepSearch: 'In-depth research',
282
+ attachFile: 'Attach file',
283
+ plusMenuAttach: 'Joindre des fichiers',
284
+ dropFilesHere: 'Déposez les fichiers ici',
285
+ plusMenuDeepInvestigation: 'Rechercher en profondeur',
286
+ plusMenuQuickActions: 'Actions rapides',
287
+ openPlusMenuAria: 'Pièces jointes et options de recherche',
288
+ openMentionAria: 'Mentionner',
289
+ removeAttachmentAria: 'Retirer le fichier',
290
+ removeActiveToolAria: 'Retirer le mode recherche',
291
+ send: 'Send',
292
+ limitFiles: 'You have exceeded the attachment limit',
293
+ stop: 'Stop generating',
294
+ cancelled: 'The search has been cancelled.',
295
+ tooManyActiveSessions: 'Trop de conversations sont générées en même temps. Attendez qu’une se termine avant d’en démarrer une autre.'
296
+ },
297
+ deleteQuestionModal: {
298
+ title: 'Voulez-vous supprimer cette conversation?',
299
+ cancel: 'Annuler',
300
+ "delete": 'Supprimer'
301
+ },
302
+ deleteSkillModal: {
303
+ title: 'Voulez-vous supprimer cette skill?',
304
+ firstPart: 'Vous etes sur le point de supprimer',
305
+ secondPart: 'Cette action est irreversible.',
306
+ cancel: 'Annuler',
307
+ "delete": 'Supprimer'
308
+ },
309
+ editQuestionModal: {
310
+ newName: 'New name',
311
+ title: 'Rename conversation',
312
+ rename: 'Rename',
313
+ cancel: 'Cancel',
314
+ maxLength: 'You cannot enter more than 150 characters.'
315
+ },
316
+ modalFileExceeds: {
317
+ limitFilesTitle: 'Maximum attachments exceeded.',
318
+ limitSizeTitle: "You've exceeded the allowed file size limit",
319
+ limitFilesDescription: 'You can attach a maximum of 5 files per message. The following files could not be attached:',
320
+ limitSizeDescription: 'One or more files exceed the maximum allowed size by type. The following files could not be attached:',
321
+ accept: 'Accept',
322
+ limit: 'limit',
323
+ stop: 'Cancel search'
324
+ },
325
+ sourcesInformationModal: {
326
+ title: 'Sources:'
327
+ },
328
+ agents: {
329
+ title: 'Agents',
330
+ newAgent: 'Nouvel agent',
331
+ edit: 'Éditer',
332
+ maia: '(Spécialiste de projet)',
333
+ addFavorite: 'Add to favorites',
334
+ removeFavorite: 'Remove from favorites',
335
+ favoriteToggledAddedSuccess: 'Agent added to favorites',
336
+ favoriteToggledRemovedSuccess: 'Agent removed from favorites',
337
+ favoriteToggledError: 'Could not save your favorite. Please try again.'
338
+ },
339
+ conversations: {
340
+ title: 'Mes conversations',
341
+ agentsSectionTitle: 'Agents',
342
+ maiakerNav: "Créateur d'agents",
343
+ myAgentsNav: 'Mes agents',
344
+ mySkillsNav: 'Mes skills',
345
+ error: 'An error occurred while loading the conversation history',
346
+ empty: "You haven't started any conversations yet",
347
+ emptyLabel: 'Message with attachments',
348
+ unreadLabel: 'Non lu',
349
+ minimizedOpen: 'Ouvrir MAIA',
350
+ minimizedSeeAnswer: 'Voir la réponse',
351
+ collapse: 'Collapse',
352
+ expand: 'Expand',
353
+ newChat: 'New chat',
354
+ generating: 'Génération de la réponse',
355
+ sessionFinished: '{{title}} a terminé de répondre',
356
+ sessionFinishedApproval: '{{title}} requiert votre approbation',
357
+ sessionFinishedError: '{{title}} a rencontré une erreur',
358
+ openAgentCreator: 'Créer un agent',
359
+ openMarketplace: "Marketplace d'agents"
360
+ },
361
+ marketplace: {
362
+ back: 'Retour',
363
+ title: 'Idees pour creer des agents',
364
+ description: "Choisissez une suggestion bien construite et ouvrez l'editeur avec l'agent deja pre-rempli pour l'adapter a votre cas.",
365
+ myAgentsTitle: 'Mes agents',
366
+ myAgentsReadyTitle: 'Vos agents sont prets a vous aider avec des taches',
367
+ myAgentsDescription: 'Voici vos agents custom. Selectionnez-en un pour commencer a discuter avec ce profil.',
368
+ myAgentsEmptyStateTitle: "Vous n'avez pas encore d'agents crees",
369
+ myAgentsEmptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer des agents sur mesure.',
370
+ myAgentsEmptyStateDescriptionNoPerm: "Lorsqu'une personne habilitee les aura configures, vous pourrez y acceder depuis ici.",
371
+ myAgentsEmptyStateButton: 'Creer un agent',
372
+ myAgentsFallbackIntro: 'Agent personnalise pret a vous aider dans votre flux de travail.',
373
+ myAgentsFallbackDescription: 'Cliquez sur utiliser agent pour demarrer une conversation avec cet agent.',
374
+ myAgentsFallbackDate: 'Il y a quelques jours',
375
+ myAgentsToday: "Aujourd'hui",
376
+ myAgentsOneDayAgo: 'Il y a 1 jour',
377
+ myAgentsDaysAgo: 'Il y a {{days}} jours',
378
+ cardMenuAriaLabel: "Menu d'actions de l'agent",
379
+ use: 'Utiliser',
380
+ createAgent: 'Creer un agent manuellement',
381
+ searchAgentPlaceholder: 'Rechercher un agent...',
382
+ searchMinLength: 'min. 3 caractères',
383
+ searchNoResults: 'Aucun résultat trouvé.',
384
+ searchNoResultsSubtitle: 'Créez un agent IA capable de penser, d’agir et d’automatiser le travail pour vous',
385
+ useTemplate: 'Creer a partir de cette idee',
386
+ useMyAgent: 'Utiliser agent',
387
+ badges: {
388
+ branding: 'Branding',
389
+ linkedin: 'LinkedIn',
390
+ marketing: 'Marketing'
391
+ }
392
+ },
393
+ mySkills: {
394
+ title: 'Vos skills pretes a renforcer vos agents',
395
+ subtitle: 'Les skills sont globales : elles sont disponibles pour tous vos agents.',
396
+ createSkill: 'Creer une skill',
397
+ preview: 'Apercu',
398
+ previewEmpty: 'Rien a previsualiser pour le moment.',
399
+ uploadMd: 'Importer .md',
400
+ uploadError: 'Seuls les fichiers .md sont autorises',
401
+ createWithMaia: 'Creer avec Maia',
402
+ writeInstructions: 'Ecrire les instructions',
403
+ uploadSkill: 'Importer une skill',
404
+ generatePlaceholder: 'Je veux une Skill pour creer mes projets',
405
+ generateWithMaia: 'Creer la Skill avec Maia',
406
+ generateNeedsName: 'Saisissez d abord un nom pour decrire la skill',
407
+ generateSuccess: 'Skill generee avec Maia',
408
+ generateError: 'La skill n a pas pu etre generee. Veuillez reessayer.',
409
+ cardMenuAriaLabel: "Menu d'actions de la skill",
410
+ edit: 'Modifier',
411
+ "delete": 'Supprimer',
412
+ cancel: 'Annuler',
413
+ save: 'Enregistrer',
414
+ close: 'Fermer',
415
+ createTitle: 'Nouvelle skill',
416
+ editTitle: 'Modifier la skill',
417
+ nameLabel: 'Nom',
418
+ namePlaceholder: 'Nom de la skill',
419
+ contentLabel: 'Skill',
420
+ contentPlaceholder: 'Ecrivez la skill...',
421
+ emptyStateTitle: "Vous n'avez pas encore de skills",
422
+ emptyStateDescription: 'Cliquez sur le bouton ci-dessous pour commencer a creer vos skills.',
423
+ emptyStateDescriptionNoPerm: 'Lorsquune personne habilitee les aura configurees, vous pourrez y acceder depuis ici.',
424
+ emptyStateButton: 'Creer une skill',
425
+ createSuccess: 'Skill creee avec succes',
426
+ createError: "La skill n'a pas pu etre creee. Veuillez reessayer.",
427
+ updateSuccess: 'Skill mise a jour avec succes',
428
+ updateError: "La skill n'a pas pu etre mise a jour. Veuillez reessayer.",
429
+ deleteSuccess: 'Skill supprimee avec succes',
430
+ deleteError: "La skill n'a pas pu etre supprimee. Veuillez reessayer."
431
+ },
432
+ snackbar: {
433
+ deleteChat: {
434
+ success: 'Chat deleted successfully',
435
+ error: 'An unexpected error occurred. Please, try again.'
436
+ },
437
+ renamedChat: {
438
+ success: 'Conversation renamed successfully',
439
+ error: 'An unexpected error occurred. Please, try again.'
440
+ },
441
+ loadMoreAgents: {
442
+ error: 'An unexpected error occurred. Please, try again.'
443
+ }
444
+ },
445
+ approvalBox: {
446
+ untitledAgent: 'Agent sans titre',
447
+ actions: {
448
+ create_task: 'Création de tâche',
449
+ create_tasks_batch: 'Création de tâches',
450
+ create_agent: 'Création d’agent',
451
+ edit_agent: 'Modification de l’agent',
452
+ edit_project: 'Modification du projet',
453
+ edit_task: 'Modification de tâche',
454
+ edit_tasks_batch: 'Modification de tâches',
455
+ delete_task: 'Suppression de tâche',
456
+ delete_tasks_batch: 'Suppression de tâches',
457
+ task_assign: 'Attribution d’utilisateur',
458
+ task_unassign: 'Retrait d’utilisateur',
459
+ assign_task_label: 'Attribution d’étiquette',
460
+ create_labels: 'Création d’étiquette',
461
+ update_task_type: 'Mise à jour du type de tâche',
462
+ update_estimated_hours: 'Mise à jour des heures estimées',
463
+ update_deliverable: 'Mise à jour du livrable',
464
+ create_hour: 'Saisie d’heures',
465
+ create_checklist: 'Création de checklist',
466
+ create_checklist_item: 'Ajout d’un élément à la checklist',
467
+ clone_task: 'Dupliquer la tâche',
468
+ get_task_date_hours: 'Consultation des heures par date',
469
+ configure_agent_access: "Modifier la visibilité de l'agent",
470
+ send_task_message: 'Envoi d’un message sur la tâche',
471
+ delete_checklist_item: 'Suppression d’un élément de la checklist',
472
+ remove_task_type: 'Suppression du type de tâche',
473
+ remove_task_label: 'Suppression de l’étiquette',
474
+ count_deliverable: 'Mise à jour du compteur de livrables',
475
+ create_rework: 'Création d’une reprise',
476
+ update_rework: 'Mise à jour de la reprise',
477
+ delete_agent: 'Suppression de l’agent',
478
+ unknown: 'Action inconnue'
479
+ },
480
+ special: {
481
+ createRework: {
482
+ title: 'Créer une reprise',
483
+ description: 'Une demande de reprise sera créée sur la tâche avec les informations ci-dessous.'
484
+ },
485
+ updateDeliverableChildren: {
486
+ title: 'Mettre à jour l’avancement des livrables',
487
+ description: 'L’avancement des sous-livrables liés à cette tâche sera mis à jour.'
488
+ }
489
+ },
490
+ fields: {
491
+ name: 'Nom',
492
+ emoji: 'Emoji',
493
+ introduction: 'Introduction',
494
+ input_placeholder: 'Placeholder',
495
+ user_prompt: 'Prompt principal',
496
+ language: 'Langue',
497
+ provider: 'Provider',
498
+ model_name: 'Modèle',
499
+ api_key: 'API key'
500
+ },
501
+ title: 'Confirmation requise',
502
+ description: 'Votre approbation est nécessaire pour exécuter l’action suivante :',
503
+ approve: 'Approuver',
504
+ deny: 'Refuser',
505
+ manualApprovalWarning: 'Maia a détecté que la demande a été approuvée manuellement',
506
+ status: {
507
+ approved: 'Demande approuvée',
508
+ denied: 'Demande refusée'
509
+ }
510
+ },
511
+ chipLlm: {
512
+ tooltip: 'Modèle : {{model}}'
513
+ },
514
+ clientSelector: {
515
+ project: 'projet',
516
+ projects: 'projets'
517
+ }
518
+ })), SECTIONS.abmAgent, _objectSpread(_objectSpread({}, genericSection), {}, {
519
+ legendLegacyContextSession: 'Cette conversation appartient à un contexte précédent. Vous pouvez continuer avec {{name}} dans un nouveau chat.',
520
+ continueInNewChat: 'Continuer dans un nouveau chat',
521
+ layoutMenuTooltip: 'Disposition du chat',
522
+ layoutSidebar: 'Barre latérale',
523
+ layoutFullscreen: 'Plein écran',
524
+ layoutFloating: 'Fenêtre flottante',
525
+ back: 'Retour',
526
+ openAgentCreator: 'Créer un agent',
527
+ accessibilitySection: {
528
+ titleTab: 'Permissions',
529
+ titleSection: "Visibilité et permissions de l'agent",
530
+ subtitleSection: "Définissez qui peut utiliser cet agent et s'il peut accéder aux données COR.",
531
+ corPermissionsTitle: "Permissions d'accès aux données COR",
532
+ corPermissionsSubtitle: 'À quoi cet agent a-t-il accès ?',
533
+ taskAccessTitle: 'Accès aux tâches',
534
+ taskAccessDescription: "L'agent pourra lire, créer, modifier et supprimer des tâches selon les permissions de l'utilisateur.",
535
+ visibilityTitle: "Visibilité de l'agent",
536
+ whoCanAccess: 'Qui peut utiliser cet agent ?',
537
+ allCompanyTitle: "Toute l'entreprise",
538
+ allCompanyDescription: 'Tous les utilisateurs de votre organisation pourront voir et utiliser cet agent.',
539
+ clientTitle: 'Pour des clients spécifiques',
540
+ clientDescription: 'Associez cet agent à un ou plusieurs clients. Tous les utilisateurs pourront voir à quels clients il est lié.',
541
+ ownTitle: 'Moi uniquement',
542
+ ownDescription: 'Cet agent sera privé et ne sera pas disponible pour les autres utilisateurs.',
543
+ clientsSelected: 'Clients selected:',
544
+ searchError: 'An error occurred while loading the list of clients, please try again in a few minutes.',
545
+ searchEmpty: 'Oops! No clients were found that match your search.',
546
+ searchInitial: 'Write a word to start your search',
547
+ searchPlaceholder: 'Search client',
548
+ clientInactive: 'This client is inactive. We recommend removing it from the list.',
549
+ clientDeletedTooltip: 'This client was deleted. We recommend removing it from the list.',
550
+ clientDeleted: 'Client deleted'
551
+ }
552
+ })), SECTIONS.projectSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
553
+ projectSelector: {
554
+ title: 'Which project would you like help with?',
555
+ subtitle: 'Select a project so MAIA can respond in context.',
556
+ labelProject: 'SELECT PROJECT',
557
+ placeholder: 'Search',
558
+ changeProject: 'Change project',
559
+ recentProjects: 'Recent projects',
560
+ errorMessage: 'Search error! Please try again in a few moments.',
561
+ emptyRecentProjects: 'No recent projects. Enter the name in the search bar to get results.',
562
+ emptyState: 'Oops! there are no results for your search',
563
+ withoutClient: 'No client',
564
+ withoutTitle: 'No title'
565
+ }
566
+ })), SECTIONS.clientSelector, _objectSpread(_objectSpread({}, genericSection), {}, {
567
+ clientSelector: {
568
+ title: 'Which client would you like help with?',
569
+ subtitle: 'Select a client so MAIA can respond in context.',
570
+ labelClient: 'SELECT CLIENT',
571
+ placeholder: 'Search',
572
+ changeClient: 'Change client',
573
+ recentClients: 'Recent clients',
574
+ searchingClients: 'Searching your clients...',
575
+ errorMessage: 'Search error! Please try again in a few moments.',
576
+ emptyRecentClients: 'No recent clients. Enter the name in the search bar to get results.',
577
+ emptyState: 'Oops! there are no results for your search',
578
+ project: 'projet',
579
+ projects: 'projets'
580
+ }
581
+ }));
582
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsIm1pbmltaXplIiwiaG93V29ya3MiLCJicmFuZE5hbWUiLCJleHBhbmQiLCJjb2xsYXBzZSIsImdvQmFjayIsImNvcHkiLCJjb3BpZWQiLCJzYXZlZCIsInNlbGVjdFByb2plY3QiLCJzYXZlIiwiY2FuY2VsIiwiZXJyb3IiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwidHJ5QWdhaW4iLCJnZW5lcmljU2VjdGlvbiIsInByb2plY3RTdW1tYXJ5U2VjdGlvbiIsInJlc3VtZSIsImhlbGxvIiwid2VsY29tZSIsImZlZWRiYWNrIiwidGh1bWJzVXAiLCJ0aHVtYnNEb3duIiwic291cmNlcyIsImNvbmZpZyIsInByb2plY3RTdW1tYXJ5IiwiY29uZmlndXJlUmVzdW1lIiwiZ2VuZXJhdGluZ1Jlc3VtZSIsImdlbmVyYXRlUmVzdW1lIiwiaGlkZUNvbmZpZyIsImNvbmZpZ3VyZVNldHRpbmdzIiwiX2RlZmluZVByb3BlcnR5IiwiR0VORVJBTF9TVEFUVVMiLCJJTkNPTUVfQ09TVFMiLCJUSU1FX0hPVVJTIiwiVEFTS1NfUFJPR1JFU1MiLCJSRVdPUktTIiwiaG9tZU1lbnUiLCJmYXEiLCJzdGFydFRpdGxlIiwiY2F0ZWdvcmllcyIsInJld29ya3MiLCJmdWEiLCJuZXdCYWRnZSIsInJlY2VudENvbnRleHRzIiwidHlwZXMiLCJjbGllbnQiLCJwcm9qZWN0IiwidGFzayIsImNvbnRleHRIb21lIiwiZ3JlZXRpbmciLCJzdWJ0aXRsZSIsInN1YnRpdGxlQ29sbGFib3JhdG9yIiwic3VidGl0bGVDb2xsYWJvcmF0b3JXaXRoSG91cnMiLCJzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnMiLCJob3Vyc1NlY3Rpb24iLCJyZWNlbnRUYXNrc1NlY3Rpb24iLCJyZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyIiwiY29udGV4dEdyZWV0aW5nIiwicGxhbm5lckhvbWUiLCJhY3Rpb24iLCJ0YXNrcyIsImNvbGxhYm9yYXRvcnMiLCJsYWJlbHMiLCJjaGVja2xpc3RzIiwiZGVsaXZlcmFibGVzIiwiaG91cnMiLCJjcmVhdGVkQnkiLCJ0YXNrR3JlZXRpbmciLCJtYWlha2VyIiwiY3JlYXRlTWFudWFsQWdlbnQiLCJiYWRnZU5ldyIsImJyaWVmQ2FyZCIsInByb21wdCIsImNvbWluZ1Nvb25DYXJkIiwiX29iamVjdFNwcmVhZCIsImNoYXRBSSIsImNvbnRleHRNZW50aW9uIiwia2V5Ym9hcmRIaW50IiwicmVjZW50c1RpdGxlIiwibWUiLCJ0YWJzIiwidXNlciIsIm1jcCIsInNraWxsIiwibG9hZGluZyIsInNraWxsUXVlcnlUb29TaG9ydCIsImVtcHR5IiwicmVjZW50cyIsIndpdGhRdWVyeSIsInNraWxsTm9JdGVtcyIsInNraWxsV2l0aFF1ZXJ5IiwiY291bnRlcnMiLCJwcm9qZWN0cyIsImNvbnRleHRQaW4iLCJhZGRDb250ZXh0Iiwic2VhcmNoUGxhY2Vob2xkZXIiLCJyZW1vdmUiLCJidXR0b24iLCJuZXdDaGF0IiwiZ2VuZXJhdGluZyIsImhpc3RvcnkiLCJ0b29sdGlwIiwiaXRlbSIsImRhdGUiLCJtZW51IiwicmVuYW1lIiwibG9hZGluZ01vcmUiLCJvbmJvYXJkaW5nIiwibWFpYSIsImFnZW50Q3VzdG9tIiwiaG93Q3JlYXRlQWdlbnQiLCJxYSIsIml0ZW1zIiwicmVudGFiaWxpZGFkX3Byb3llY3RvIiwiYXZhbmNlX3Byb3llY3RvIiwidGFyZWFzX3Byb3llY3RvIiwiYXR0YWNobWVudENhcmQiLCJkb3dubG9hZCIsImNoYXQiLCJnZW5lcmF0aW5nQXR0YWNobWVudCIsInN1Z2dlc3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvbnNUaXRsZSIsImNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0IiwiY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2UiLCJjcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvciIsImV4ZWN1dGluZ0FjdGlvbiIsInByb2Nlc3NpbmciLCJhY3Rpdml0eSIsInByZXBhcmluZyIsImNvbnNpZGVyaW5nIiwiYWxtb3N0UmVhZHkiLCJ0aGlua2luZyIsImFuYWx5emluZyIsInJldmlld2luZyIsInBsYW5uaW5nIiwic2VhcmNoIiwic2Nhbm5pbmciLCJzdW1tYXJpemluZyIsImRlZXBTZWFyY2giLCJleHBsb3JpbmciLCJjcm9zc0NoZWNraW5nIiwiYXR0YWNobWVudCIsInJlYWRpbmciLCJleHRyYWN0aW5nIiwicmVhZGluZ1BsdXJhbCIsImV4dHJhY3RpbmdQbHVyYWwiLCJ3cml0aW5nIiwiY29tcG9zaW5nIiwiZHluYW1pY0NvbnRleHRUb29sdGlwIiwiY3JlYXRpbmdUYXNrIiwiY3JlYXRpbmdUYXNrc0JhdGNoIiwiY3JlYXRpbmdBZ2VudCIsImVkaXRpbmdBZ2VudCIsImVkaXRpbmdUYXNrIiwiZWRpdGluZ1Rhc2tzQmF0Y2giLCJkZWxldGluZ1Rhc2siLCJkZWxldGluZ1Rhc2tzQmF0Y2giLCJhc3NpZ25pbmdVc2VyIiwidW5hc3NpZ25pbmdVc2VyIiwiYXNzaWduaW5nTGFiZWwiLCJ1cGRhdGluZ1Rhc2tUeXBlIiwidXBkYXRpbmdFc3RpbWF0ZWRIb3VycyIsInVwZGF0aW5nRGVsaXZlcmFibGUiLCJsb2dnaW5nSG91cnMiLCJjcmVhdGluZ0NoZWNrbGlzdCIsImNyZWF0aW5nTGFiZWwiLCJlZGl0aW5nUHJvamVjdCIsImNyZWF0aW5nQ2hlY2tsaXN0SXRlbSIsInF1ZXJ5aW5nSG91cnMiLCJjb25maWd1cmluZ0FnZW50QWNjZXNzIiwic2VuZGluZ1Rhc2tNZXNzYWdlIiwiZGVsZXRpbmdDaGVja2xpc3RJdGVtIiwicmVtb3ZpbmdUYXNrVHlwZSIsInJlbW92aW5nTGFiZWwiLCJ1cGRhdGluZ0RlbGl2ZXJhYmxlQ291bnQiLCJjcmVhdGluZ1Jld29yayIsInVwZGF0aW5nUmV3b3JrIiwiZ2VuZXJhdGluZ0ZpbGUiLCJyZXN1bWluZ0FjdGlvbiIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwiY29yQWNjZXNzTGFiZWwiLCJjb3JBY2Nlc3NUb29sdGlwIiwib3JjaGVzdHJhdG9yUGxhY2Vob2xkZXIiLCJyZXRyeSIsImVycm9yQWNjZXNzRGVuaWVkIiwiZXJyb3JQcm9tcHRUb29Mb25nIiwiY2hhbmdlUHJvamVjdCIsInNlYXJjaFdlYiIsImF0dGFjaEZpbGUiLCJwbHVzTWVudUF0dGFjaCIsImRyb3BGaWxlc0hlcmUiLCJwbHVzTWVudURlZXBJbnZlc3RpZ2F0aW9uIiwicGx1c01lbnVRdWlja0FjdGlvbnMiLCJvcGVuUGx1c01lbnVBcmlhIiwib3Blbk1lbnRpb25BcmlhIiwicmVtb3ZlQXR0YWNobWVudEFyaWEiLCJyZW1vdmVBY3RpdmVUb29sQXJpYSIsInNlbmQiLCJsaW1pdEZpbGVzIiwic3RvcCIsImNhbmNlbGxlZCIsInRvb01hbnlBY3RpdmVTZXNzaW9ucyIsImRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJkZWxldGVTa2lsbE1vZGFsIiwiZmlyc3RQYXJ0Iiwic2Vjb25kUGFydCIsImVkaXRRdWVzdGlvbk1vZGFsIiwibmV3TmFtZSIsIm1heExlbmd0aCIsIm1vZGFsRmlsZUV4Y2VlZHMiLCJsaW1pdEZpbGVzVGl0bGUiLCJsaW1pdFNpemVUaXRsZSIsImxpbWl0RmlsZXNEZXNjcmlwdGlvbiIsImxpbWl0U2l6ZURlc2NyaXB0aW9uIiwiYWNjZXB0IiwibGltaXQiLCJzb3VyY2VzSW5mb3JtYXRpb25Nb2RhbCIsImFnZW50cyIsIm5ld0FnZW50IiwiZWRpdCIsImFkZEZhdm9yaXRlIiwicmVtb3ZlRmF2b3JpdGUiLCJmYXZvcml0ZVRvZ2dsZWRBZGRlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzcyIsImZhdm9yaXRlVG9nZ2xlZEVycm9yIiwiY29udmVyc2F0aW9ucyIsImFnZW50c1NlY3Rpb25UaXRsZSIsIm1haWFrZXJOYXYiLCJteUFnZW50c05hdiIsIm15U2tpbGxzTmF2IiwiZW1wdHlMYWJlbCIsInVucmVhZExhYmVsIiwibWluaW1pemVkT3BlbiIsIm1pbmltaXplZFNlZUFuc3dlciIsInNlc3Npb25GaW5pc2hlZCIsInNlc3Npb25GaW5pc2hlZEFwcHJvdmFsIiwic2Vzc2lvbkZpbmlzaGVkRXJyb3IiLCJvcGVuQWdlbnRDcmVhdG9yIiwib3Blbk1hcmtldHBsYWNlIiwibWFya2V0cGxhY2UiLCJiYWNrIiwibXlBZ2VudHNUaXRsZSIsIm15QWdlbnRzUmVhZHlUaXRsZSIsIm15QWdlbnRzRGVzY3JpcHRpb24iLCJteUFnZW50c0VtcHR5U3RhdGVUaXRsZSIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlRGVzY3JpcHRpb25Ob1Blcm0iLCJteUFnZW50c0VtcHR5U3RhdGVCdXR0b24iLCJteUFnZW50c0ZhbGxiYWNrSW50cm8iLCJteUFnZW50c0ZhbGxiYWNrRGVzY3JpcHRpb24iLCJteUFnZW50c0ZhbGxiYWNrRGF0ZSIsIm15QWdlbnRzVG9kYXkiLCJteUFnZW50c09uZURheUFnbyIsIm15QWdlbnRzRGF5c0FnbyIsImNhcmRNZW51QXJpYUxhYmVsIiwidXNlIiwiY3JlYXRlQWdlbnQiLCJzZWFyY2hBZ2VudFBsYWNlaG9sZGVyIiwic2VhcmNoTWluTGVuZ3RoIiwic2VhcmNoTm9SZXN1bHRzIiwic2VhcmNoTm9SZXN1bHRzU3VidGl0bGUiLCJ1c2VUZW1wbGF0ZSIsInVzZU15QWdlbnQiLCJiYWRnZXMiLCJicmFuZGluZyIsImxpbmtlZGluIiwibWFya2V0aW5nIiwibXlTa2lsbHMiLCJjcmVhdGVTa2lsbCIsInByZXZpZXciLCJwcmV2aWV3RW1wdHkiLCJ1cGxvYWRNZCIsInVwbG9hZEVycm9yIiwiY3JlYXRlV2l0aE1haWEiLCJ3cml0ZUluc3RydWN0aW9ucyIsInVwbG9hZFNraWxsIiwiZ2VuZXJhdGVQbGFjZWhvbGRlciIsImdlbmVyYXRlV2l0aE1haWEiLCJnZW5lcmF0ZU5lZWRzTmFtZSIsImdlbmVyYXRlU3VjY2VzcyIsImdlbmVyYXRlRXJyb3IiLCJjcmVhdGVUaXRsZSIsImVkaXRUaXRsZSIsIm5hbWVMYWJlbCIsIm5hbWVQbGFjZWhvbGRlciIsImNvbnRlbnRMYWJlbCIsImNvbnRlbnRQbGFjZWhvbGRlciIsImVtcHR5U3RhdGVUaXRsZSIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbiIsImVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybSIsImVtcHR5U3RhdGVCdXR0b24iLCJjcmVhdGVTdWNjZXNzIiwiY3JlYXRlRXJyb3IiLCJ1cGRhdGVTdWNjZXNzIiwidXBkYXRlRXJyb3IiLCJkZWxldGVTdWNjZXNzIiwiZGVsZXRlRXJyb3IiLCJzbmFja2JhciIsImRlbGV0ZUNoYXQiLCJzdWNjZXNzIiwicmVuYW1lZENoYXQiLCJsb2FkTW9yZUFnZW50cyIsImFwcHJvdmFsQm94IiwidW50aXRsZWRBZ2VudCIsImFjdGlvbnMiLCJjcmVhdGVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Byb2plY3QiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsImNyZWF0ZV9sYWJlbHMiLCJ1cGRhdGVfdGFza190eXBlIiwidXBkYXRlX2VzdGltYXRlZF9ob3VycyIsInVwZGF0ZV9kZWxpdmVyYWJsZSIsImNyZWF0ZV9ob3VyIiwiY3JlYXRlX2NoZWNrbGlzdCIsImNyZWF0ZV9jaGVja2xpc3RfaXRlbSIsImNsb25lX3Rhc2siLCJnZXRfdGFza19kYXRlX2hvdXJzIiwiY29uZmlndXJlX2FnZW50X2FjY2VzcyIsInNlbmRfdGFza19tZXNzYWdlIiwiZGVsZXRlX2NoZWNrbGlzdF9pdGVtIiwicmVtb3ZlX3Rhc2tfdHlwZSIsInJlbW92ZV90YXNrX2xhYmVsIiwiY291bnRfZGVsaXZlcmFibGUiLCJjcmVhdGVfcmV3b3JrIiwidXBkYXRlX3Jld29yayIsImRlbGV0ZV9hZ2VudCIsInVua25vd24iLCJzcGVjaWFsIiwiY3JlYXRlUmV3b3JrIiwidXBkYXRlRGVsaXZlcmFibGVDaGlsZHJlbiIsImZpZWxkcyIsIm5hbWUiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsImlucHV0X3BsYWNlaG9sZGVyIiwidXNlcl9wcm9tcHQiLCJsYW5ndWFnZSIsInByb3ZpZGVyIiwibW9kZWxfbmFtZSIsImFwaV9rZXkiLCJhcHByb3ZlIiwiZGVueSIsIm1hbnVhbEFwcHJvdmFsV2FybmluZyIsInN0YXR1cyIsImFwcHJvdmVkIiwiZGVuaWVkIiwiY2hpcExsbSIsImNsaWVudFNlbGVjdG9yIiwiYWJtQWdlbnQiLCJsZWdlbmRMZWdhY3lDb250ZXh0U2Vzc2lvbiIsImNvbnRpbnVlSW5OZXdDaGF0IiwibGF5b3V0TWVudVRvb2x0aXAiLCJsYXlvdXRTaWRlYmFyIiwibGF5b3V0RnVsbHNjcmVlbiIsImxheW91dEZsb2F0aW5nIiwiYWNjZXNzaWJpbGl0eVNlY3Rpb24iLCJ0aXRsZVRhYiIsInRpdGxlU2VjdGlvbiIsInN1YnRpdGxlU2VjdGlvbiIsImNvclBlcm1pc3Npb25zVGl0bGUiLCJjb3JQZXJtaXNzaW9uc1N1YnRpdGxlIiwidGFza0FjY2Vzc1RpdGxlIiwidGFza0FjY2Vzc0Rlc2NyaXB0aW9uIiwidmlzaWJpbGl0eVRpdGxlIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsImNsaWVudEluYWN0aXZlIiwiY2xpZW50RGVsZXRlZFRvb2x0aXAiLCJjbGllbnREZWxldGVkIiwicHJvamVjdFNlbGVjdG9yIiwibGFiZWxQcm9qZWN0IiwicmVjZW50UHJvamVjdHMiLCJlcnJvck1lc3NhZ2UiLCJlbXB0eVJlY2VudFByb2plY3RzIiwiZW1wdHlTdGF0ZSIsIndpdGhvdXRDbGllbnQiLCJ3aXRob3V0VGl0bGUiLCJsYWJlbENsaWVudCIsImNoYW5nZUNsaWVudCIsInJlY2VudENsaWVudHMiLCJzZWFyY2hpbmdDbGllbnRzIiwiZW1wdHlSZWNlbnRDbGllbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbmcvZnIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0VDVElPTlMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgUHJvamVjdFN1bW1hcnlDb25maWdLZXlzIH0gZnJvbSAnLi4vLi4vdHlwZXMvUHJvamVjdFN1bW1hcnlDb25maWdLZXlzJ1xuXG5jb25zdCBnbG9iYWxzID0ge1xuICBjbG9zZTogJ0Nsb3NlJyxcbiAgbWluaW1pemU6ICdSw6lkdWlyZScsXG4gIGhvd1dvcmtzOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICBicmFuZE5hbWU6ICdNQUlBJyxcbiAgZXhwYW5kOiAnRXhwYW5kJyxcbiAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gIGdvQmFjazogJ0dvIGJhY2sgdG8gdGhlIHN0YXJ0JyxcbiAgY29weTogJ0NvcHknLFxuICBjb3BpZWQ6ICdDb3BpZWQnLFxuICBzYXZlZDogJ1NhdmVkJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgc2F2ZTogJ1NhdmUnLFxuICBjYW5jZWw6ICdDYW5jZWwnLFxufVxuXG5jb25zdCBlcnJvciA9IHtcbiAgdGl0bGU6IFwiVW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZVwiLFxuICBkZXNjcmlwdGlvbjogJ05vdXMgcmVuY29udHJvbnMgYWN0dWVsbGVtZW50IHF1ZWxxdWVzIHByb2Jsw6htZXMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgZGFucyBxdWVscXVlcyBtaW51dGVzLicsXG4gIHRyeUFnYWluOiAnUsOpZXNzYXllcicsXG59XG5cbmNvbnN0IGdlbmVyaWNTZWN0aW9uID0ge1xuICBlcnJvcixcbiAgZ2xvYmFscyxcbn1cblxuY29uc3QgcHJvamVjdFN1bW1hcnlTZWN0aW9uID0ge1xuICByZXN1bWU6ICdSZXN1bWUnLFxuICBoZWxsbzogJ0hpLCB7e25hbWV9fSEnLFxuICB3ZWxjb21lOiBcIkknbSBNQUlBLCB5b3VyIGFzc2lzdGFudCBhdCBDT1JcIixcblxuICBmZWVkYmFjazoge1xuICAgIHRodW1ic1VwOiAnSXQgd2FzIGhlbHBmdWwnLFxuICAgIHRodW1ic0Rvd246IFwiSXQgd2Fzbid0IGhlbHBmdWxcIixcbiAgICBzb3VyY2VzOiAnU291cmNlcycsXG4gIH0sXG5cbiAgY29uZmlnOiB7XG4gICAgcHJvamVjdFN1bW1hcnk6ICdTdW1tYXJpemUgcHJvamVjdCcsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjdCBwcm9qZWN0JyxcbiAgICBjb25maWd1cmVSZXN1bWU6ICdBZHZhbmNlZCBzZXR0aW5ncycsXG4gICAgZ2VuZXJhdGluZ1Jlc3VtZTogJ0dlbmVyYXRpbmcgc3VtbWFyeScsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZW5lcmF0ZScsXG4gICAgaGlkZUNvbmZpZzogJ0hpZGUgc2V0dGluZ3MnLFxuICB9LFxuXG4gIGNvbmZpZ3VyZVNldHRpbmdzOiB7XG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5HRU5FUkFMX1NUQVRVU106ICdEYXRlcyBhbmQgZGVhZGxpbmVzJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLklOQ09NRV9DT1NUU106ICdQcm9maXRhYmlsaXR5JyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRJTUVfSE9VUlNdOiAnRXN0aW1hdGVkIGhvdXJzIGFuZCB1c2FnZScsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5UQVNLU19QUk9HUkVTU106ICdUYXNrcyBhbmQgcHJvZ3Jlc3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuUkVXT1JLU106ICdSZXdvcmsnLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1LDqXN1bcOpIGR1IHByb2pldCcsXG4gICAgZGVzY3JpcHRpb246IFwiR8OpbsOpcmV6IGRlcyByYXBwb3J0cyBhdmVjIGwnSUEgw6AgcGFydGlyIGRlIHZvdHJlIHByb2pldFwiLFxuICB9LFxuICBmYXE6IHtcbiAgICBzdGFydFRpdGxlOiAnVm91cyBwb3V2ZXogY29tbWVuY2VyIHBhci4uLicsXG4gICAgY2F0ZWdvcmllczoge1xuICAgICAgcmV3b3JrczogJ1Jld29yaycsXG4gICAgfSxcbiAgfSxcbiAgZnVhOiB7XG4gICAgdGl0bGU6ICdBY3Rpb25zIGZyw6lxdWVudGVzJyxcbiAgICBuZXdCYWRnZTogJ05vdXZlYXUnLFxuICAgIGVycm9yOlxuICAgICAgJ091cHMhIE5vdXMgYXZvbnMgZXUgdW4gcHJvYmzDqG1lIHBvdXIgY2hhcmdlciBsZXMgYWN0aW9ucyBmcsOpcXVlbnRlcy4gVmV1aWxsZXogcsOpZXNzYXllciBkYW5zIHF1ZWxxdWVzIG1pbnV0ZXMuJyxcbiAgfSxcbiAgcmVjZW50Q29udGV4dHM6IHtcbiAgICB0aXRsZTogJ0Nob2lzaXNzZXogdW4gY29udGV4dGUgcsOpY2VudCBwb3VyIHVuZSByw6lwb25zZSBwbHVzIHByw6ljaXNlIDonLFxuICAgIHR5cGVzOiB7XG4gICAgICBjbGllbnQ6ICdDbGllbnQnLFxuICAgICAgcHJvamVjdDogJ1Byb2pldCcsXG4gICAgICB0YXNrOiAnVMOiY2hlJyxcbiAgICB9LFxuICB9LFxuICBjb250ZXh0SG9tZToge1xuICAgIGdyZWV0aW5nOiAnQm9uam91ciwge3tuYW1lfX0g8J+RiycsXG4gICAgc3VidGl0bGU6XG4gICAgICAnSmUgc3VpcyBNQUlBLCB2b3RyZSBhc3Npc3RhbnRlIHBvdXIgbGVzIHTDomNoZXMsIGxlcyBwcm9qZXRzIGV0IGxlcyBjbGllbnRzLlxcbk9uIHJlcHJlbmQgcXVlbHF1ZSBjaG9zZSBkZSByw6ljZW50ID8nLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yOiAnSmUgc3VpcyBNQUlBLCB2b3RyZSBhc3Npc3RhbnRlIHBvdXIgbGVzIHTDomNoZXMuIE9uIHJlcHJlbmQgcXVlbHF1ZSBjaG9zZSBkZSByw6ljZW50ID8nLFxuICAgIHN1YnRpdGxlQ29sbGFib3JhdG9yV2l0aEhvdXJzOiAnU2Fpc2lzc2V6IHZvcyBoZXVyZXMgb3UgZMOpbWFycmV6IHVuIGNoYXQgc3VyIHVuZSB0w6JjaGUuJyxcbiAgICBzdWJ0aXRsZU1hbmFnZXJXaXRoSG91cnM6ICdQYXIgb8O5IHZvdWxlei12b3VzIGNvbW1lbmNlciA/JyxcbiAgICBob3Vyc1NlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnU2Fpc2lyIGRlcyBoZXVyZXMnLFxuICAgIH0sXG4gICAgcmVjZW50VGFza3NTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0NvbnN1bHRlciB1bmUgdMOiY2hlJyxcbiAgICAgIHN1YnRpdGxlOiAnQ2hvaXNpc3NleiB1bmUgdMOiY2hlIHLDqWNlbnRlIHBvdXIgbOKAmXV0aWxpc2VyIGNvbW1lIGNvbnRleHRlLicsXG4gICAgfSxcbiAgICByZWNlbnRDb250ZXh0c1NlY3Rpb25NYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ091IHJlcHJlbmV6IHF1ZWxxdWUgY2hvc2UgZGUgcsOpY2VudCcsXG4gICAgICBzdWJ0aXRsZTogJ0Nob2lzaXNzZXogdW5lIHTDomNoZSwgdW4gcHJvamV0IG91IHVuIGNsaWVudCBjb21tZSBjb250ZXh0ZScsXG4gICAgfSxcbiAgICBjb250ZXh0R3JlZXRpbmc6IHtcbiAgICAgIHByb2plY3Q6ICdRdWUgdm91bGV6LXZvdXMgYW5hbHlzZXIgPyBIZXVyZXMsIGVzdGltYXRpb25zLCByZXByaXNlcyA/IMOAIHZvdXMgZGUgY2hvaXNpciAhJyxcbiAgICAgIHRhc2s6IFwiSmUgc3VpcyBsw6AgcG91ciB2b3VzIGFpZGVyIGF2ZWMgY2V0dGUgdMOiY2hlLiBVdGlsaXNleiBsJ3VuZSBkZXMgYWN0aW9ucyBwb3VyIGNvbW1lbmNlci5cIixcbiAgICAgIGNsaWVudDogJ1F1ZSB2b3VsZXotdm91cyBhbmFseXNlciA/IFJlbnRhYmlsaXTDqSwgYXZhbmPDqWVzLCBkZWFkbGluZXMgPyDDgCB2b3VzIGRlIGNob2lzaXIgIScsXG4gICAgfSxcbiAgfSxcbiAgcGxhbm5lckhvbWU6IHtcbiAgICB0aXRsZTogJ0NvbW1lbsOnb25zIHBhciBzYWlzaXIgdm9zIGhldXJlcycsXG4gICAgc3VidGl0bGU6ICdQYXIgb8O5IGNvbW1lbmNlLXQtb24gPycsXG4gIH0sXG4gIGFjdGlvbjoge1xuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHRhc2tzOiAnQWN0aW9ucyBzdXIgbGVzIHTDomNoZXMnLFxuICAgICAgY29sbGFib3JhdG9yczogJ0NvbGxhYm9yYXRldXJzIGV0IHJlc3BvbnNhYmxlcycsXG4gICAgICBsYWJlbHM6ICfDiXRpcXVldHRlcyBldCB0eXBlcycsXG4gICAgICBjaGVja2xpc3RzOiAnQ2hlY2tsaXN0cycsXG4gICAgICBkZWxpdmVyYWJsZXM6ICdMaXZyYWJsZXMnLFxuICAgICAgcmV3b3JrczogJ1JlcHJpc2VzJyxcbiAgICAgIGhvdXJzOiAnU2Fpc2llIGRlcyBoZXVyZXMnLFxuICAgIH0sXG4gIH0sXG4gIGNyZWF0ZWRCeTogJ0NyZWF0ZWQgYnknLFxuICB0YXNrR3JlZXRpbmc6IFwiSmUgc3VpcyBsw6AgcG91ciB2b3VzIGFpZGVyIGF2ZWMgY2V0dGUgdMOiY2hlLiBVdGlsaXNleiBsJ3VuZSBkZXMgYWN0aW9ucyBwb3VyIGNvbW1lbmNlci5cIixcbiAgbWFpYWtlcjoge1xuICAgIHRpdGxlOiAnVHJhbnNmb3JtZXogbGVzIHByb2Nlc3N1cyByw6lww6l0aXRpZnMgZW4gYWdlbnRzIGludGVsbGlnZW50cycsXG4gICAgZGVzY3JpcHRpb246ICdDcsOpZXogZGVzIGFnZW50cyBxdWkgYW5hbHlzZW50IGV0IGfDqW7DqHJlbnQgZHUgY29udGVudSBzZWxvbiB2b3MgYmVzb2lucy4nLFxuICAgIGNyZWF0ZU1hbnVhbEFnZW50OiAnQ3LDqWVyIHVuIGFnZW50IG1hbnVlbGxlbWVudCcsXG4gICAgYmFkZ2VOZXc6ICdOb3V2ZWF1JyxcbiAgICBicmllZkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnQWdlbnQgc3DDqWNpYWxpc3RlIGVuIGJyaWVmJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3LDqWV6IGV0IGFtw6lsaW9yZXogZGVzIGJyaWVmcyBwb3VyIHF14oCZaWxzIHNvaWVudCBwcsOqdHMgw6Agw6p0cmUgdXRpbGlzw6lzIGRhbnMgZGVzIHTDomNoZXMuJyxcbiAgICAgIHByb21wdDogJ0plIHZldXggY3LDqWVyIHVuIGFnZW50IHNww6ljaWFsaXN0ZSBlbiBicmllZi4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnQmllbnTDtHQgZGlzcG9uaWJsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ05vdXMgdHJhdmFpbGxvbnMgcG91ciB2b3VzIHByb3Bvc2VyIGRhdmFudGFnZSBk4oCZYWdlbnRzJyxcbiAgICB9LFxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIFtTRUNUSU9OUy5wcm9qZWN0U3VtbWFyeV06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICAuLi5wcm9qZWN0U3VtbWFyeVNlY3Rpb24sXG4gIH0sXG4gIFtTRUNUSU9OUy5jaGF0QUldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICAgIGhvbWVNZW51LFxuXG4gICAgY29udGV4dE1lbnRpb246IHtcbiAgICAgIGtleWJvYXJkSGludDogJ05hdmlnYXRpb24gZW50cmUgbGVzIG9uZ2xldHMgOiBALCBAQOKApiBkYW5zIGzigJlvcmRyZS4gQXVzc2kgQWx0L0NtZCArIOKGkC/ihpInLFxuICAgICAgcmVjZW50c1RpdGxlOiAnUsOpY2VudHMnLFxuICAgICAgbWU6ICdNb2knLFxuICAgICAgdGFiczoge1xuICAgICAgICBjbGllbnQ6ICdDbGllbnQnLFxuICAgICAgICBwcm9qZWN0OiAnUHJvamV0JyxcbiAgICAgICAgdGFzazogJ1TDomNoZScsXG4gICAgICAgIHVzZXI6ICdVdGlsaXNhdGV1cicsXG4gICAgICAgIG1jcDogJ0Nvbm5lY3RldXJzJyxcbiAgICAgICAgc2tpbGw6ICdDb21ww6l0ZW5jZXMnLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmc6ICdSZWNoZXJjaGUuLi4nLFxuICAgICAgZXJyb3I6ICdVbiBwcm9ibMOobWUgZXN0IHN1cnZlbnUuIFLDqWVzc2F5ZXouJyxcbiAgICAgIHNraWxsUXVlcnlUb29TaG9ydDogJ1NhaXNpc3NleiBhdSBtb2lucyAzIGNhcmFjdMOocmVzIHBvdXIgcmVjaGVyY2hlcicsXG4gICAgICBlbXB0eToge1xuICAgICAgICByZWNlbnRzOiAnQ29tbWVuY2V6IMOgIMOpY3JpcmUgcG91ciByZWNoZXJjaGVyJyxcbiAgICAgICAgd2l0aFF1ZXJ5OiAnQXVjdW4gcsOpc3VsdGF0IHBvdXIgXCJ7e3F1ZXJ5fX1cIicsXG4gICAgICAgIHNraWxsTm9JdGVtczogXCJBdWN1bmUgY29tcMOpdGVuY2UgY3LDqcOpZSBwb3VyIGwnaW5zdGFudFwiLFxuICAgICAgICBza2lsbFdpdGhRdWVyeTogJ0F1Y3VuZSBjb21ww6l0ZW5jZSBjb3JyZXNwb25kYW50IMOgIFwie3txdWVyeX19XCInLFxuICAgICAgfSxcbiAgICAgIGNvdW50ZXJzOiB7XG4gICAgICAgIHByb2plY3RzOiAncHJvamV0cycsXG4gICAgICAgIHRhc2tzOiAndMOiY2hlcycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29udGV4dFBpbjoge1xuICAgICAgYWRkQ29udGV4dDogJ0NvbnRleHRlIGdsb2JhbCcsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1JlY2hlcmNoZXIgdW4gY29udGV4dGXigKYnLFxuICAgICAgcmVtb3ZlOiAnUmV0aXJlciBsZSBjb250ZXh0ZScsXG4gICAgfSxcbiAgICBidXR0b246ICdJQScsXG4gICAgdGl0bGU6ICdCb25qb3VyLCB7e25hbWV9fSEnLFxuICAgIGRlc2NyaXB0aW9uOiBcIkplIHN1aXMgTUFJQSwgdG9uIGFzc2lzdGFudGUsIGV0IGplIHN1aXMgbMOgIHBvdXIgdCdhaWRlciBhdmVjIHRlcyBxdWVzdGlvbnMuXCIsXG4gICAgbmV3Q2hhdDogJ05vdXZlYXUgY2hhdCcsXG4gICAgZ2VuZXJhdGluZzogJ0fDqW7DqXJhdGlvbiBkZSBsYSByw6lwb25zZScsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3RvcmlxdWUnLFxuICAgICAgdGl0bGU6ICdIaXN0b3JpcXVlIHZpZGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdBdWN1bmUgY29udmVyc2F0aW9uIHRyb3V2w6llJyxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgZGF0ZTogJ0Rlcm5pw6hyZSBtaXNlIMOgIGpvdXIge3tkYXRlfX0nLFxuICAgICAgfSxcbiAgICAgIG1lbnU6IHtcbiAgICAgICAgcmVuYW1lOiAnUmVub21tZXInLFxuICAgICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2hhcmdlbWVudCBkZXMgY29udmVyc2F0aW9ucycsXG4gICAgfSxcbiAgICBvbmJvYXJkaW5nOiB7XG4gICAgICBtYWlhOiAnTUFJQScsXG4gICAgICBhZ2VudEN1c3RvbTogJ0N1c3RvbSBhZ2VudHMnLFxuICAgICAgaG93Q3JlYXRlQWdlbnQ6ICdIb3cgdG8gY3JlYXRlIGFuIGFnZW50PycsXG4gICAgICB0b29sdGlwOiAnSG93IGRvZXMgaXQgd29yaz8nLFxuICAgIH0sXG4gICAgcWE6IHtcbiAgICAgIHRpdGxlOiAnUXVlc3Rpb25zIEZyw6lxdWVtbWVudCBQb3PDqWVzJyxcbiAgICAgIGl0ZW1zOiB7XG4gICAgICAgIHJlbnRhYmlsaWRhZF9wcm95ZWN0bzogJ1F1ZWxsZSBlc3QgbGEgcmVudGFiaWxpdMOpIGRlIGNlIHByb2pldCA/JyxcbiAgICAgICAgYXZhbmNlX3Byb3llY3RvOiAnUXVlbCBlc3QgbGUgcHJvZ3LDqHMgZGUgY2UgcHJvamV0ID8nLFxuICAgICAgICB0YXJlYXNfcHJveWVjdG86ICdRdWVsbGVzIHNvbnQgbGVzIHTDomNoZXMgw6AgdmVuaXIgw6AgdmVuaXIgPycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXR0YWNobWVudENhcmQ6IHtcbiAgICAgIGRvd25sb2FkOiAnVMOpbMOpY2hhcmdlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgY2hhdDoge1xuICAgICAgZ2VuZXJhdGluZzogJ0FuYWx5c2UgZHUgbWVzc2FnZScsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogXCJBbmFseXNlIGRlIGwnYXR0YWNoZW1lbnRcIixcbiAgICAgIHN1Z2dlc3Rpb25zVGl0bGU6ICdSw6lwb25zZXMgc3VnZ8OpcsOpZXMnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGU6ICfDiXRhcGUgc3VpdmFudGUnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25TdGFydENoYXQ6ICdEw6ltYXJyZXIgdW5lIGNvbnZlcnNhdGlvbiBhdmVjIGxlIG5vdXZlbCBhZ2VudCcsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvbktub3dsZWRnZTogJ1TDqWzDqXZlcnNlciBkZXMgZmljaGllcnMgZGFucyBsYSBiYXNlIGRlIGNvbm5haXNzYW5jZXMnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3I6IFwiSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGwnYWdlbnQuIFZldWlsbGV6IHLDqWVzc2F5ZXIuXCIsXG4gICAgICBleGVjdXRpbmdBY3Rpb246IFwiRXjDqWN1dGlvbiBkZSBsJ2FjdGlvblwiLFxuICAgICAgcHJvY2Vzc2luZzogJ1RyYWl0ZW1lbnQgZW4gY291cnMnLFxuICAgICAgYWN0aXZpdHk6IHtcbiAgICAgICAgZ2VuZXJhdGluZzoge1xuICAgICAgICAgIHByZXBhcmluZzogJ1Byw6lwYXJhdGlvbiBkZSB2b3RyZSByw6lwb25zZScsXG4gICAgICAgICAgY29uc2lkZXJpbmc6ICdBbmFseXNlIGRlIHZvdHJlIHF1ZXN0aW9uJyxcbiAgICAgICAgICBhbG1vc3RSZWFkeTogXCJEw6lmaW5pdGlvbiBkZSBsJ2FwcHJvY2hlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHRoaW5raW5nOiB7XG4gICAgICAgICAgYW5hbHl6aW5nOiAnQW5hbHlzZSBkZSB2b3RyZSBxdWVzdGlvbicsXG4gICAgICAgICAgcmV2aWV3aW5nOiAnRXhhbWVuIGR1IGNvbnRleHRlJyxcbiAgICAgICAgICBwbGFubmluZzogJ1N0cnVjdHVyYXRpb24gZGUgbGEgcsOpcG9uc2UnLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2g6IHtcbiAgICAgICAgICBzY2FubmluZzogJ1JlY2hlcmNoZSBzdXIgbGUgd2ViJyxcbiAgICAgICAgICBzdW1tYXJpemluZzogJ0FuYWx5c2UgZGVzIHLDqXN1bHRhdHMnLFxuICAgICAgICB9LFxuICAgICAgICBkZWVwU2VhcmNoOiB7XG4gICAgICAgICAgZXhwbG9yaW5nOiAnRXhwbG9yYXRpb24gZGVzIHNvdXJjZXMnLFxuICAgICAgICAgIGNyb3NzQ2hlY2tpbmc6ICdWw6lyaWZpY2F0aW9uIGRlcyBpbmZvcm1hdGlvbnMnLFxuICAgICAgICB9LFxuICAgICAgICBhdHRhY2htZW50OiB7XG4gICAgICAgICAgcmVhZGluZzogJ0xlY3R1cmUgZGUgbGEgcGnDqGNlIGpvaW50ZScsXG4gICAgICAgICAgZXh0cmFjdGluZzogJ0V4dHJhY3Rpb24gZGVzIMOpbMOpbWVudHMgcGVydGluZW50cycsXG4gICAgICAgICAgcmVhZGluZ1BsdXJhbDogJ0xlY3R1cmUgZGVzIHBpw6hjZXMgam9pbnRlcycsXG4gICAgICAgICAgZXh0cmFjdGluZ1BsdXJhbDogJ0V4dHJhY3Rpb24gZGVzIMOpbMOpbWVudHMgcGVydGluZW50cycsXG4gICAgICAgIH0sXG4gICAgICAgIHdyaXRpbmc6IHtcbiAgICAgICAgICBjb21wb3Npbmc6ICdSw6lkYWN0aW9uIGRlIGxhIHLDqXBvbnNlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZHluYW1pY0NvbnRleHRUb29sdGlwOiAnQ2UgY29udGV4dGUgYSDDqXTDqSBnw6luw6lyw6kgZHluYW1pcXVlbWVudCBldCBwZXV0IMOpdm9sdWVyIGF1IGZpbCBkZSBsYSBjb252ZXJzYXRpb24uJyxcbiAgICAgICAgY3JlYXRpbmdUYXNrOiAnQ3LDqWF0aW9uIGRlIHTDomNoZScsXG4gICAgICAgIGNyZWF0aW5nVGFza3NCYXRjaDogJ0Nyw6lhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgY3JlYXRpbmdBZ2VudDogXCJDcsOpYXRpb24gZCdhZ2VudFwiLFxuICAgICAgICBlZGl0aW5nQWdlbnQ6IFwiTW9kaWZpY2F0aW9uIGRlIGwnYWdlbnRcIixcbiAgICAgICAgZWRpdGluZ1Rhc2s6ICdNb2RpZmljYXRpb24gZGUgdMOiY2hlJyxcbiAgICAgICAgZWRpdGluZ1Rhc2tzQmF0Y2g6ICdNb2RpZmljYXRpb24gZGUgdMOiY2hlcycsXG4gICAgICAgIGRlbGV0aW5nVGFzazogJ1N1cHByZXNzaW9uIGRlIHTDomNoZScsXG4gICAgICAgIGRlbGV0aW5nVGFza3NCYXRjaDogJ1N1cHByZXNzaW9uIGRlIHTDomNoZXMnLFxuICAgICAgICBhc3NpZ25pbmdVc2VyOiBcIkF0dHJpYnV0aW9uIGQndXRpbGlzYXRldXJcIixcbiAgICAgICAgdW5hc3NpZ25pbmdVc2VyOiBcIlJldHJhaXQgZCd1dGlsaXNhdGV1clwiLFxuICAgICAgICBhc3NpZ25pbmdMYWJlbDogXCJBdHRyaWJ1dGlvbiBkJ8OpdGlxdWV0dGVcIixcbiAgICAgICAgdXBkYXRpbmdUYXNrVHlwZTogJ01pc2Ugw6Agam91ciBkdSB0eXBlIGRlIHTDomNoZScsXG4gICAgICAgIHVwZGF0aW5nRXN0aW1hdGVkSG91cnM6ICdNaXNlIMOgIGpvdXIgZGVzIGhldXJlcyBlc3RpbcOpZXMnLFxuICAgICAgICB1cGRhdGluZ0RlbGl2ZXJhYmxlOiAnTWlzZSDDoCBqb3VyIGR1IGxpdnJhYmxlJyxcbiAgICAgICAgbG9nZ2luZ0hvdXJzOiBcIlNhaXNpZSBkJ2hldXJlc1wiLFxuICAgICAgICBjcmVhdGluZ0NoZWNrbGlzdDogJ0Nyw6lhdGlvbiBkZSBjaGVja2xpc3QnLFxuICAgICAgICBjcmVhdGluZ0xhYmVsOiBcIkNyw6lhdGlvbiBkZSBsJ8OpdGlxdWV0dGVcIixcbiAgICAgICAgZWRpdGluZ1Byb2plY3Q6ICdNb2RpZmljYXRpb24gZHUgcHJvamV0JyxcbiAgICAgICAgY3JlYXRpbmdDaGVja2xpc3RJdGVtOiBcIkFqb3V0IGQndW4gw6lsw6ltZW50IMOgIGxhIGNoZWNrbGlzdFwiLFxuICAgICAgICBxdWVyeWluZ0hvdXJzOiAnQ29uc3VsdGF0aW9uIGRlcyBoZXVyZXMgcGFyIGRhdGUnLFxuICAgICAgICBjb25maWd1cmluZ0FnZW50QWNjZXNzOiBcIk1vZGlmaWNhdGlvbiBkZSBsYSB2aXNpYmlsaXTDqSBkZSBsJ2FnZW50XCIsXG4gICAgICAgIHNlbmRpbmdUYXNrTWVzc2FnZTogXCJFbnZvaSBkJ3VuIG1lc3NhZ2Ugc3VyIGxhIHTDomNoZVwiLFxuICAgICAgICBkZWxldGluZ0NoZWNrbGlzdEl0ZW06IFwiU3VwcHJlc3Npb24gZCd1biDDqWzDqW1lbnQgZGUgbGEgY2hlY2tsaXN0XCIsXG4gICAgICAgIHJlbW92aW5nVGFza1R5cGU6ICdTdXBwcmVzc2lvbiBkdSB0eXBlIGRlIHTDomNoZScsXG4gICAgICAgIHJlbW92aW5nTGFiZWw6IFwiU3VwcHJlc3Npb24gZGUgbCfDqXRpcXVldHRlXCIsXG4gICAgICAgIHVwZGF0aW5nRGVsaXZlcmFibGVDb3VudDogJ01pc2Ugw6Agam91ciBkdSBjb21wdGV1ciBkZSBsaXZyYWJsZXMnLFxuICAgICAgICBjcmVhdGluZ1Jld29yazogXCJDcsOpYXRpb24gZCd1bmUgcmVwcmlzZVwiLFxuICAgICAgICB1cGRhdGluZ1Jld29yazogJ01pc2Ugw6Agam91ciBkZSBsYSByZXByaXNlJyxcbiAgICAgICAgZ2VuZXJhdGluZ0ZpbGU6ICdHw6luw6lyYXRpb24gZHUgZmljaGllcicsXG4gICAgICAgIHJlc3VtaW5nQWN0aW9uOiBcIkV4w6ljdXRpb24gZGUgbCdhY3Rpb24gYXBwcm91dsOpZVwiLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2hhcmdlbWVudCBkZXMgbWVzc2FnZXMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBcIkNvbW1lbnQgcHVpcy1qZSB0J2FpZGVyIGF1am91cmQnaHVpID9cIixcbiAgICAgICAgY29yQWNjZXNzTGFiZWw6ICdBY2PDqHMgw6AgQ09SJyxcbiAgICAgICAgY29yQWNjZXNzVG9vbHRpcDogJ0FjY8OocyBhdXggZG9ubsOpZXMgQ09SJyxcbiAgICAgICAgb3JjaGVzdHJhdG9yUGxhY2Vob2xkZXI6ICdEZW1hbmRleiDDoCBNYWlhLCBAIHBvdXIgbWVudGlvbm5lciBvdSAvIHBvdXIgbGVzIGFjdGlvbnMgcmFwaWRlcycsXG4gICAgICB9LFxuICAgICAgZXJyb3I6ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGxhIGfDqW7DqXJhdGlvbiBkZSB2b3RyZSByw6lwb25zZSwgdmV1aWxsZXogcsOpZXNzYXllci4nLFxuICAgICAgcmV0cnk6ICdSw6llc3NheWVyJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICBcIllvdSBkb24ndCBoYXZlIGFjY2VzcyB0byBpbnRlcmFjdCB3aXRoIHRoaXMgYWdlbnQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgeW91ciBhY2Nlc3NpYmlsaXR5IHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gUGxlYXNlIGNvbnRhY3QgdGhlIHBlcnNvbiBpbiB5b3VyIG9yZ2FuaXphdGlvbiB3aG8gbWFuYWdlcyBhZ2VudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIsXG4gICAgICBlcnJvclByb21wdFRvb0xvbmc6XG4gICAgICAgICdWb3VzIGF2ZXogZMOpcGFzc8OpIGxhIGxpbWl0ZSBkZSBjb250ZXh0ZSB7e3VzZWR9fSB0b2tlbnMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgb3UgY29udGludWVyIGRhbnMgdW4gYXV0cmUgY2hhdCcsXG4gICAgICBjaGFuZ2VQcm9qZWN0OlxuICAgICAgICBcIkonYWkgZMOpdGVjdMOpIHF1ZSB2b3VzIHNvdWhhaXRleiBjaGFuZ2VyIGRlIFByb2pldC5cXG5cXG4qKlPDqWxlY3Rpb25uZXogbGUgcHJvamV0IHBvdXIgY29udGludWVyIDoqKlwiLFxuICAgICAgc2VhcmNoV2ViOiAnU2VhcmNoIHRoZSB3ZWInLFxuICAgICAgZGVlcFNlYXJjaDogJ0luLWRlcHRoIHJlc2VhcmNoJyxcbiAgICAgIGF0dGFjaEZpbGU6ICdBdHRhY2ggZmlsZScsXG4gICAgICBwbHVzTWVudUF0dGFjaDogJ0pvaW5kcmUgZGVzIGZpY2hpZXJzJyxcbiAgICAgIGRyb3BGaWxlc0hlcmU6ICdEw6lwb3NleiBsZXMgZmljaGllcnMgaWNpJyxcbiAgICAgIHBsdXNNZW51RGVlcEludmVzdGlnYXRpb246ICdSZWNoZXJjaGVyIGVuIHByb2ZvbmRldXInLFxuICAgICAgcGx1c01lbnVRdWlja0FjdGlvbnM6ICdBY3Rpb25zIHJhcGlkZXMnLFxuICAgICAgb3BlblBsdXNNZW51QXJpYTogJ1Bpw6hjZXMgam9pbnRlcyBldCBvcHRpb25zIGRlIHJlY2hlcmNoZScsXG4gICAgICBvcGVuTWVudGlvbkFyaWE6ICdNZW50aW9ubmVyJyxcbiAgICAgIHJlbW92ZUF0dGFjaG1lbnRBcmlhOiAnUmV0aXJlciBsZSBmaWNoaWVyJyxcbiAgICAgIHJlbW92ZUFjdGl2ZVRvb2xBcmlhOiAnUmV0aXJlciBsZSBtb2RlIHJlY2hlcmNoZScsXG4gICAgICBzZW5kOiAnU2VuZCcsXG4gICAgICBsaW1pdEZpbGVzOiAnWW91IGhhdmUgZXhjZWVkZWQgdGhlIGF0dGFjaG1lbnQgbGltaXQnLFxuICAgICAgc3RvcDogJ1N0b3AgZ2VuZXJhdGluZycsXG4gICAgICBjYW5jZWxsZWQ6ICdUaGUgc2VhcmNoIGhhcyBiZWVuIGNhbmNlbGxlZC4nLFxuICAgICAgdG9vTWFueUFjdGl2ZVNlc3Npb25zOlxuICAgICAgICAnVHJvcCBkZSBjb252ZXJzYXRpb25zIHNvbnQgZ8OpbsOpcsOpZXMgZW4gbcOqbWUgdGVtcHMuIEF0dGVuZGV6IHF14oCZdW5lIHNlIHRlcm1pbmUgYXZhbnQgZOKAmWVuIGTDqW1hcnJlciB1bmUgYXV0cmUuJyxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnVm91bGV6LXZvdXMgc3VwcHJpbWVyIGNldHRlIGNvbnZlcnNhdGlvbj8nLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgZGVsZXRlU2tpbGxNb2RhbDoge1xuICAgICAgdGl0bGU6ICdWb3VsZXotdm91cyBzdXBwcmltZXIgY2V0dGUgc2tpbGw/JyxcbiAgICAgIGZpcnN0UGFydDogJ1ZvdXMgZXRlcyBzdXIgbGUgcG9pbnQgZGUgc3VwcHJpbWVyJyxcbiAgICAgIHNlY29uZFBhcnQ6ICdDZXR0ZSBhY3Rpb24gZXN0IGlycmV2ZXJzaWJsZS4nLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOZXcgbmFtZScsXG4gICAgICB0aXRsZTogJ1JlbmFtZSBjb252ZXJzYXRpb24nLFxuICAgICAgcmVuYW1lOiAnUmVuYW1lJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBtYXhMZW5ndGg6ICdZb3UgY2Fubm90IGVudGVyIG1vcmUgdGhhbiAxNTAgY2hhcmFjdGVycy4nLFxuICAgIH0sXG4gICAgbW9kYWxGaWxlRXhjZWVkczoge1xuICAgICAgbGltaXRGaWxlc1RpdGxlOiAnTWF4aW11bSBhdHRhY2htZW50cyBleGNlZWRlZC4nLFxuICAgICAgbGltaXRTaXplVGl0bGU6IFwiWW91J3ZlIGV4Y2VlZGVkIHRoZSBhbGxvd2VkIGZpbGUgc2l6ZSBsaW1pdFwiLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnWW91IGNhbiBhdHRhY2ggYSBtYXhpbXVtIG9mIDUgZmlsZXMgcGVyIG1lc3NhZ2UuIFRoZSBmb2xsb3dpbmcgZmlsZXMgY291bGQgbm90IGJlIGF0dGFjaGVkOicsXG4gICAgICBsaW1pdFNpemVEZXNjcmlwdGlvbjpcbiAgICAgICAgJ09uZSBvciBtb3JlIGZpbGVzIGV4Y2VlZCB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgYnkgdHlwZS4gVGhlIGZvbGxvd2luZyBmaWxlcyBjb3VsZCBub3QgYmUgYXR0YWNoZWQ6JyxcbiAgICAgIGFjY2VwdDogJ0FjY2VwdCcsXG4gICAgICBsaW1pdDogJ2xpbWl0JyxcbiAgICAgIHN0b3A6ICdDYW5jZWwgc2VhcmNoJyxcbiAgICB9LFxuICAgIHNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsOiB7XG4gICAgICB0aXRsZTogJ1NvdXJjZXM6JyxcbiAgICB9LFxuICAgIGFnZW50czoge1xuICAgICAgdGl0bGU6ICdBZ2VudHMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3V2ZWwgYWdlbnQnLFxuICAgICAgZWRpdDogJ8OJZGl0ZXInLFxuICAgICAgbWFpYTogJyhTcMOpY2lhbGlzdGUgZGUgcHJvamV0KScsXG4gICAgICBhZGRGYXZvcml0ZTogJ0FkZCB0byBmYXZvcml0ZXMnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmUgZnJvbSBmYXZvcml0ZXMnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnQgYWRkZWQgdG8gZmF2b3JpdGVzJyxcbiAgICAgIGZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRTdWNjZXNzOiAnQWdlbnQgcmVtb3ZlZCBmcm9tIGZhdm9yaXRlcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRFcnJvcjogJ0NvdWxkIG5vdCBzYXZlIHlvdXIgZmF2b3JpdGUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnTWVzIGNvbnZlcnNhdGlvbnMnLFxuICAgICAgYWdlbnRzU2VjdGlvblRpdGxlOiAnQWdlbnRzJyxcbiAgICAgIG1haWFrZXJOYXY6IFwiQ3LDqWF0ZXVyIGQnYWdlbnRzXCIsXG4gICAgICBteUFnZW50c05hdjogJ01lcyBhZ2VudHMnLFxuICAgICAgbXlTa2lsbHNOYXY6ICdNZXMgc2tpbGxzJyxcbiAgICAgIGVycm9yOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgbG9hZGluZyB0aGUgY29udmVyc2F0aW9uIGhpc3RvcnknLFxuICAgICAgZW1wdHk6IFwiWW91IGhhdmVuJ3Qgc3RhcnRlZCBhbnkgY29udmVyc2F0aW9ucyB5ZXRcIixcbiAgICAgIGVtcHR5TGFiZWw6ICdNZXNzYWdlIHdpdGggYXR0YWNobWVudHMnLFxuICAgICAgdW5yZWFkTGFiZWw6ICdOb24gbHUnLFxuICAgICAgbWluaW1pemVkT3BlbjogJ091dnJpciBNQUlBJyxcbiAgICAgIG1pbmltaXplZFNlZUFuc3dlcjogJ1ZvaXIgbGEgcsOpcG9uc2UnLFxuICAgICAgY29sbGFwc2U6ICdDb2xsYXBzZScsXG4gICAgICBleHBhbmQ6ICdFeHBhbmQnLFxuICAgICAgbmV3Q2hhdDogJ05ldyBjaGF0JyxcbiAgICAgIGdlbmVyYXRpbmc6ICdHw6luw6lyYXRpb24gZGUgbGEgcsOpcG9uc2UnLFxuICAgICAgc2Vzc2lvbkZpbmlzaGVkOiAne3t0aXRsZX19IGEgdGVybWluw6kgZGUgcsOpcG9uZHJlJyxcbiAgICAgIHNlc3Npb25GaW5pc2hlZEFwcHJvdmFsOiAne3t0aXRsZX19IHJlcXVpZXJ0IHZvdHJlIGFwcHJvYmF0aW9uJyxcbiAgICAgIHNlc3Npb25GaW5pc2hlZEVycm9yOiAne3t0aXRsZX19IGEgcmVuY29udHLDqSB1bmUgZXJyZXVyJyxcbiAgICAgIG9wZW5BZ2VudENyZWF0b3I6ICdDcsOpZXIgdW4gYWdlbnQnLFxuICAgICAgb3Blbk1hcmtldHBsYWNlOiBcIk1hcmtldHBsYWNlIGQnYWdlbnRzXCIsXG4gICAgfSxcbiAgICBtYXJrZXRwbGFjZToge1xuICAgICAgYmFjazogJ1JldG91cicsXG4gICAgICB0aXRsZTogJ0lkZWVzIHBvdXIgY3JlZXIgZGVzIGFnZW50cycsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDaG9pc2lzc2V6IHVuZSBzdWdnZXN0aW9uIGJpZW4gY29uc3RydWl0ZSBldCBvdXZyZXogbCdlZGl0ZXVyIGF2ZWMgbCdhZ2VudCBkZWphIHByZS1yZW1wbGkgcG91ciBsJ2FkYXB0ZXIgYSB2b3RyZSBjYXMuXCIsXG4gICAgICBteUFnZW50c1RpdGxlOiAnTWVzIGFnZW50cycsXG4gICAgICBteUFnZW50c1JlYWR5VGl0bGU6ICdWb3MgYWdlbnRzIHNvbnQgcHJldHMgYSB2b3VzIGFpZGVyIGF2ZWMgZGVzIHRhY2hlcycsXG4gICAgICBteUFnZW50c0Rlc2NyaXB0aW9uOiAnVm9pY2kgdm9zIGFnZW50cyBjdXN0b20uIFNlbGVjdGlvbm5lei1lbiB1biBwb3VyIGNvbW1lbmNlciBhIGRpc2N1dGVyIGF2ZWMgY2UgcHJvZmlsLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVUaXRsZTogXCJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIGQnYWdlbnRzIGNyZWVzXCIsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0NsaXF1ZXogc3VyIGxlIGJvdXRvbiBjaS1kZXNzb3VzIHBvdXIgY29tbWVuY2VyIGEgY3JlZXIgZGVzIGFnZW50cyBzdXIgbWVzdXJlLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgXCJMb3JzcXUndW5lIHBlcnNvbm5lIGhhYmlsaXRlZSBsZXMgYXVyYSBjb25maWd1cmVzLCB2b3VzIHBvdXJyZXogeSBhY2NlZGVyIGRlcHVpcyBpY2kuXCIsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVCdXR0b246ICdDcmVlciB1biBhZ2VudCcsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrSW50cm86ICdBZ2VudCBwZXJzb25uYWxpc2UgcHJldCBhIHZvdXMgYWlkZXIgZGFucyB2b3RyZSBmbHV4IGRlIHRyYXZhaWwuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEZXNjcmlwdGlvbjogJ0NsaXF1ZXogc3VyIHV0aWxpc2VyIGFnZW50IHBvdXIgZGVtYXJyZXIgdW5lIGNvbnZlcnNhdGlvbiBhdmVjIGNldCBhZ2VudC4nLFxuICAgICAgbXlBZ2VudHNGYWxsYmFja0RhdGU6ICdJbCB5IGEgcXVlbHF1ZXMgam91cnMnLFxuICAgICAgbXlBZ2VudHNUb2RheTogXCJBdWpvdXJkJ2h1aVwiLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICdJbCB5IGEgMSBqb3VyJyxcbiAgICAgIG15QWdlbnRzRGF5c0FnbzogJ0lsIHkgYSB7e2RheXN9fSBqb3VycycsXG4gICAgICBjYXJkTWVudUFyaWFMYWJlbDogXCJNZW51IGQnYWN0aW9ucyBkZSBsJ2FnZW50XCIsXG4gICAgICB1c2U6ICdVdGlsaXNlcicsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyZWVyIHVuIGFnZW50IG1hbnVlbGxlbWVudCcsXG4gICAgICBzZWFyY2hBZ2VudFBsYWNlaG9sZGVyOiAnUmVjaGVyY2hlciB1biBhZ2VudC4uLicsXG4gICAgICBzZWFyY2hNaW5MZW5ndGg6ICdtaW4uIDMgY2FyYWN0w6hyZXMnLFxuICAgICAgc2VhcmNoTm9SZXN1bHRzOiAnQXVjdW4gcsOpc3VsdGF0IHRyb3V2w6kuJyxcbiAgICAgIHNlYXJjaE5vUmVzdWx0c1N1YnRpdGxlOiAnQ3LDqWV6IHVuIGFnZW50IElBIGNhcGFibGUgZGUgcGVuc2VyLCBk4oCZYWdpciBldCBk4oCZYXV0b21hdGlzZXIgbGUgdHJhdmFpbCBwb3VyIHZvdXMnLFxuICAgICAgdXNlVGVtcGxhdGU6ICdDcmVlciBhIHBhcnRpciBkZSBjZXR0ZSBpZGVlJyxcbiAgICAgIHVzZU15QWdlbnQ6ICdVdGlsaXNlciBhZ2VudCcsXG4gICAgICBiYWRnZXM6IHtcbiAgICAgICAgYnJhbmRpbmc6ICdCcmFuZGluZycsXG4gICAgICAgIGxpbmtlZGluOiAnTGlua2VkSW4nLFxuICAgICAgICBtYXJrZXRpbmc6ICdNYXJrZXRpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG15U2tpbGxzOiB7XG4gICAgICB0aXRsZTogJ1ZvcyBza2lsbHMgcHJldGVzIGEgcmVuZm9yY2VyIHZvcyBhZ2VudHMnLFxuICAgICAgc3VidGl0bGU6ICdMZXMgc2tpbGxzIHNvbnQgZ2xvYmFsZXMgOiBlbGxlcyBzb250IGRpc3BvbmlibGVzIHBvdXIgdG91cyB2b3MgYWdlbnRzLicsXG4gICAgICBjcmVhdGVTa2lsbDogJ0NyZWVyIHVuZSBza2lsbCcsXG4gICAgICBwcmV2aWV3OiAnQXBlcmN1JyxcbiAgICAgIHByZXZpZXdFbXB0eTogJ1JpZW4gYSBwcmV2aXN1YWxpc2VyIHBvdXIgbGUgbW9tZW50LicsXG4gICAgICB1cGxvYWRNZDogJ0ltcG9ydGVyIC5tZCcsXG4gICAgICB1cGxvYWRFcnJvcjogJ1NldWxzIGxlcyBmaWNoaWVycyAubWQgc29udCBhdXRvcmlzZXMnLFxuICAgICAgY3JlYXRlV2l0aE1haWE6ICdDcmVlciBhdmVjIE1haWEnLFxuICAgICAgd3JpdGVJbnN0cnVjdGlvbnM6ICdFY3JpcmUgbGVzIGluc3RydWN0aW9ucycsXG4gICAgICB1cGxvYWRTa2lsbDogJ0ltcG9ydGVyIHVuZSBza2lsbCcsXG4gICAgICBnZW5lcmF0ZVBsYWNlaG9sZGVyOiAnSmUgdmV1eCB1bmUgU2tpbGwgcG91ciBjcmVlciBtZXMgcHJvamV0cycsXG4gICAgICBnZW5lcmF0ZVdpdGhNYWlhOiAnQ3JlZXIgbGEgU2tpbGwgYXZlYyBNYWlhJyxcbiAgICAgIGdlbmVyYXRlTmVlZHNOYW1lOiAnU2Fpc2lzc2V6IGQgYWJvcmQgdW4gbm9tIHBvdXIgZGVjcmlyZSBsYSBza2lsbCcsXG4gICAgICBnZW5lcmF0ZVN1Y2Nlc3M6ICdTa2lsbCBnZW5lcmVlIGF2ZWMgTWFpYScsXG4gICAgICBnZW5lcmF0ZUVycm9yOiAnTGEgc2tpbGwgbiBhIHBhcyBwdSBldHJlIGdlbmVyZWUuIFZldWlsbGV6IHJlZXNzYXllci4nLFxuICAgICAgY2FyZE1lbnVBcmlhTGFiZWw6IFwiTWVudSBkJ2FjdGlvbnMgZGUgbGEgc2tpbGxcIixcbiAgICAgIGVkaXQ6ICdNb2RpZmllcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICBzYXZlOiAnRW5yZWdpc3RyZXInLFxuICAgICAgY2xvc2U6ICdGZXJtZXInLFxuICAgICAgY3JlYXRlVGl0bGU6ICdOb3V2ZWxsZSBza2lsbCcsXG4gICAgICBlZGl0VGl0bGU6ICdNb2RpZmllciBsYSBza2lsbCcsXG4gICAgICBuYW1lTGFiZWw6ICdOb20nLFxuICAgICAgbmFtZVBsYWNlaG9sZGVyOiAnTm9tIGRlIGxhIHNraWxsJyxcbiAgICAgIGNvbnRlbnRMYWJlbDogJ1NraWxsJyxcbiAgICAgIGNvbnRlbnRQbGFjZWhvbGRlcjogJ0Vjcml2ZXogbGEgc2tpbGwuLi4nLFxuICAgICAgZW1wdHlTdGF0ZVRpdGxlOiBcIlZvdXMgbidhdmV6IHBhcyBlbmNvcmUgZGUgc2tpbGxzXCIsXG4gICAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb246ICdDbGlxdWV6IHN1ciBsZSBib3V0b24gY2ktZGVzc291cyBwb3VyIGNvbW1lbmNlciBhIGNyZWVyIHZvcyBza2lsbHMuJyxcbiAgICAgIGVtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ0xvcnNxdXVuZSBwZXJzb25uZSBoYWJpbGl0ZWUgbGVzIGF1cmEgY29uZmlndXJlZXMsIHZvdXMgcG91cnJleiB5IGFjY2VkZXIgZGVwdWlzIGljaS4nLFxuICAgICAgZW1wdHlTdGF0ZUJ1dHRvbjogJ0NyZWVyIHVuZSBza2lsbCcsXG4gICAgICBjcmVhdGVTdWNjZXNzOiAnU2tpbGwgY3JlZWUgYXZlYyBzdWNjZXMnLFxuICAgICAgY3JlYXRlRXJyb3I6IFwiTGEgc2tpbGwgbidhIHBhcyBwdSBldHJlIGNyZWVlLiBWZXVpbGxleiByZWVzc2F5ZXIuXCIsXG4gICAgICB1cGRhdGVTdWNjZXNzOiAnU2tpbGwgbWlzZSBhIGpvdXIgYXZlYyBzdWNjZXMnLFxuICAgICAgdXBkYXRlRXJyb3I6IFwiTGEgc2tpbGwgbidhIHBhcyBwdSBldHJlIG1pc2UgYSBqb3VyLiBWZXVpbGxleiByZWVzc2F5ZXIuXCIsXG4gICAgICBkZWxldGVTdWNjZXNzOiAnU2tpbGwgc3VwcHJpbWVlIGF2ZWMgc3VjY2VzJyxcbiAgICAgIGRlbGV0ZUVycm9yOiBcIkxhIHNraWxsIG4nYSBwYXMgcHUgZXRyZSBzdXBwcmltZWUuIFZldWlsbGV6IHJlZXNzYXllci5cIixcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDaGF0IGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICAgIHJlbmFtZWRDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdDb252ZXJzYXRpb24gcmVuYW1lZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBlcnJvcjogJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSwgdHJ5IGFnYWluLicsXG4gICAgICB9LFxuICAgICAgbG9hZE1vcmVBZ2VudHM6IHtcbiAgICAgICAgZXJyb3I6ICdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UsIHRyeSBhZ2Fpbi4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFwcHJvdmFsQm94OiB7XG4gICAgICB1bnRpdGxlZEFnZW50OiAnQWdlbnQgc2FucyB0aXRyZScsXG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIGNyZWF0ZV90YXNrOiAnQ3LDqWF0aW9uIGRlIHTDomNoZScsXG4gICAgICAgIGNyZWF0ZV90YXNrc19iYXRjaDogJ0Nyw6lhdGlvbiBkZSB0w6JjaGVzJyxcbiAgICAgICAgY3JlYXRlX2FnZW50OiAnQ3LDqWF0aW9uIGTigJlhZ2VudCcsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdNb2RpZmljYXRpb24gZGUgbOKAmWFnZW50JyxcbiAgICAgICAgZWRpdF9wcm9qZWN0OiAnTW9kaWZpY2F0aW9uIGR1IHByb2pldCcsXG4gICAgICAgIGVkaXRfdGFzazogJ01vZGlmaWNhdGlvbiBkZSB0w6JjaGUnLFxuICAgICAgICBlZGl0X3Rhc2tzX2JhdGNoOiAnTW9kaWZpY2F0aW9uIGRlIHTDomNoZXMnLFxuICAgICAgICBkZWxldGVfdGFzazogJ1N1cHByZXNzaW9uIGRlIHTDomNoZScsXG4gICAgICAgIGRlbGV0ZV90YXNrc19iYXRjaDogJ1N1cHByZXNzaW9uIGRlIHTDomNoZXMnLFxuICAgICAgICB0YXNrX2Fzc2lnbjogJ0F0dHJpYnV0aW9uIGTigJl1dGlsaXNhdGV1cicsXG4gICAgICAgIHRhc2tfdW5hc3NpZ246ICdSZXRyYWl0IGTigJl1dGlsaXNhdGV1cicsXG4gICAgICAgIGFzc2lnbl90YXNrX2xhYmVsOiAnQXR0cmlidXRpb24gZOKAmcOpdGlxdWV0dGUnLFxuICAgICAgICBjcmVhdGVfbGFiZWxzOiAnQ3LDqWF0aW9uIGTigJnDqXRpcXVldHRlJyxcbiAgICAgICAgdXBkYXRlX3Rhc2tfdHlwZTogJ01pc2Ugw6Agam91ciBkdSB0eXBlIGRlIHTDomNoZScsXG4gICAgICAgIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdNaXNlIMOgIGpvdXIgZGVzIGhldXJlcyBlc3RpbcOpZXMnLFxuICAgICAgICB1cGRhdGVfZGVsaXZlcmFibGU6ICdNaXNlIMOgIGpvdXIgZHUgbGl2cmFibGUnLFxuICAgICAgICBjcmVhdGVfaG91cjogJ1NhaXNpZSBk4oCZaGV1cmVzJyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdDogJ0Nyw6lhdGlvbiBkZSBjaGVja2xpc3QnLFxuICAgICAgICBjcmVhdGVfY2hlY2tsaXN0X2l0ZW06ICdBam91dCBk4oCZdW4gw6lsw6ltZW50IMOgIGxhIGNoZWNrbGlzdCcsXG4gICAgICAgIGNsb25lX3Rhc2s6ICdEdXBsaXF1ZXIgbGEgdMOiY2hlJyxcbiAgICAgICAgZ2V0X3Rhc2tfZGF0ZV9ob3VyczogJ0NvbnN1bHRhdGlvbiBkZXMgaGV1cmVzIHBhciBkYXRlJyxcbiAgICAgICAgY29uZmlndXJlX2FnZW50X2FjY2VzczogXCJNb2RpZmllciBsYSB2aXNpYmlsaXTDqSBkZSBsJ2FnZW50XCIsXG4gICAgICAgIHNlbmRfdGFza19tZXNzYWdlOiAnRW52b2kgZOKAmXVuIG1lc3NhZ2Ugc3VyIGxhIHTDomNoZScsXG4gICAgICAgIGRlbGV0ZV9jaGVja2xpc3RfaXRlbTogJ1N1cHByZXNzaW9uIGTigJl1biDDqWzDqW1lbnQgZGUgbGEgY2hlY2tsaXN0JyxcbiAgICAgICAgcmVtb3ZlX3Rhc2tfdHlwZTogJ1N1cHByZXNzaW9uIGR1IHR5cGUgZGUgdMOiY2hlJyxcbiAgICAgICAgcmVtb3ZlX3Rhc2tfbGFiZWw6ICdTdXBwcmVzc2lvbiBkZSBs4oCZw6l0aXF1ZXR0ZScsXG4gICAgICAgIGNvdW50X2RlbGl2ZXJhYmxlOiAnTWlzZSDDoCBqb3VyIGR1IGNvbXB0ZXVyIGRlIGxpdnJhYmxlcycsXG4gICAgICAgIGNyZWF0ZV9yZXdvcms6ICdDcsOpYXRpb24gZOKAmXVuZSByZXByaXNlJyxcbiAgICAgICAgdXBkYXRlX3Jld29yazogJ01pc2Ugw6Agam91ciBkZSBsYSByZXByaXNlJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnU3VwcHJlc3Npb24gZGUgbOKAmWFnZW50JyxcbiAgICAgICAgdW5rbm93bjogJ0FjdGlvbiBpbmNvbm51ZScsXG4gICAgICB9LFxuICAgICAgc3BlY2lhbDoge1xuICAgICAgICBjcmVhdGVSZXdvcms6IHtcbiAgICAgICAgICB0aXRsZTogJ0Nyw6llciB1bmUgcmVwcmlzZScsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdVbmUgZGVtYW5kZSBkZSByZXByaXNlIHNlcmEgY3LDqcOpZSBzdXIgbGEgdMOiY2hlIGF2ZWMgbGVzIGluZm9ybWF0aW9ucyBjaS1kZXNzb3VzLicsXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW46IHtcbiAgICAgICAgICB0aXRsZTogJ01ldHRyZSDDoCBqb3VyIGzigJlhdmFuY2VtZW50IGRlcyBsaXZyYWJsZXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTOKAmWF2YW5jZW1lbnQgZGVzIHNvdXMtbGl2cmFibGVzIGxpw6lzIMOgIGNldHRlIHTDomNoZSBzZXJhIG1pcyDDoCBqb3VyLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgICBlbW9qaTogJ0Vtb2ppJyxcbiAgICAgICAgaW50cm9kdWN0aW9uOiAnSW50cm9kdWN0aW9uJyxcbiAgICAgICAgaW5wdXRfcGxhY2Vob2xkZXI6ICdQbGFjZWhvbGRlcicsXG4gICAgICAgIHVzZXJfcHJvbXB0OiAnUHJvbXB0IHByaW5jaXBhbCcsXG4gICAgICAgIGxhbmd1YWdlOiAnTGFuZ3VlJyxcbiAgICAgICAgcHJvdmlkZXI6ICdQcm92aWRlcicsXG4gICAgICAgIG1vZGVsX25hbWU6ICdNb2TDqGxlJyxcbiAgICAgICAgYXBpX2tleTogJ0FQSSBrZXknLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiAnQ29uZmlybWF0aW9uIHJlcXVpc2UnLFxuICAgICAgZGVzY3JpcHRpb246ICdWb3RyZSBhcHByb2JhdGlvbiBlc3QgbsOpY2Vzc2FpcmUgcG91ciBleMOpY3V0ZXIgbOKAmWFjdGlvbiBzdWl2YW50ZSA6JyxcbiAgICAgIGFwcHJvdmU6ICdBcHByb3V2ZXInLFxuICAgICAgZGVueTogJ1JlZnVzZXInLFxuICAgICAgbWFudWFsQXBwcm92YWxXYXJuaW5nOiAnTWFpYSBhIGTDqXRlY3TDqSBxdWUgbGEgZGVtYW5kZSBhIMOpdMOpIGFwcHJvdXbDqWUgbWFudWVsbGVtZW50JyxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBhcHByb3ZlZDogJ0RlbWFuZGUgYXBwcm91dsOpZScsXG4gICAgICAgIGRlbmllZDogJ0RlbWFuZGUgcmVmdXPDqWUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoaXBMbG06IHtcbiAgICAgIHRvb2x0aXA6ICdNb2TDqGxlIDoge3ttb2RlbH19JyxcbiAgICB9LFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICBwcm9qZWN0OiAncHJvamV0JyxcbiAgICAgIHByb2plY3RzOiAncHJvamV0cycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGxlZ2VuZExlZ2FjeUNvbnRleHRTZXNzaW9uOlxuICAgICAgJ0NldHRlIGNvbnZlcnNhdGlvbiBhcHBhcnRpZW50IMOgIHVuIGNvbnRleHRlIHByw6ljw6lkZW50LiBWb3VzIHBvdXZleiBjb250aW51ZXIgYXZlYyB7e25hbWV9fSBkYW5zIHVuIG5vdXZlYXUgY2hhdC4nLFxuICAgIGNvbnRpbnVlSW5OZXdDaGF0OiAnQ29udGludWVyIGRhbnMgdW4gbm91dmVhdSBjaGF0JyxcbiAgICBsYXlvdXRNZW51VG9vbHRpcDogJ0Rpc3Bvc2l0aW9uIGR1IGNoYXQnLFxuICAgIGxheW91dFNpZGViYXI6ICdCYXJyZSBsYXTDqXJhbGUnLFxuICAgIGxheW91dEZ1bGxzY3JlZW46ICdQbGVpbiDDqWNyYW4nLFxuICAgIGxheW91dEZsb2F0aW5nOiAnRmVuw6p0cmUgZmxvdHRhbnRlJyxcbiAgICBiYWNrOiAnUmV0b3VyJyxcbiAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3LDqWVyIHVuIGFnZW50JyxcbiAgICBhY2Nlc3NpYmlsaXR5U2VjdGlvbjoge1xuICAgICAgdGl0bGVUYWI6ICdQZXJtaXNzaW9ucycsXG4gICAgICB0aXRsZVNlY3Rpb246IFwiVmlzaWJpbGl0w6kgZXQgcGVybWlzc2lvbnMgZGUgbCdhZ2VudFwiLFxuICAgICAgc3VidGl0bGVTZWN0aW9uOiBcIkTDqWZpbmlzc2V6IHF1aSBwZXV0IHV0aWxpc2VyIGNldCBhZ2VudCBldCBzJ2lsIHBldXQgYWNjw6lkZXIgYXV4IGRvbm7DqWVzIENPUi5cIixcbiAgICAgIGNvclBlcm1pc3Npb25zVGl0bGU6IFwiUGVybWlzc2lvbnMgZCdhY2PDqHMgYXV4IGRvbm7DqWVzIENPUlwiLFxuICAgICAgY29yUGVybWlzc2lvbnNTdWJ0aXRsZTogJ8OAIHF1b2kgY2V0IGFnZW50IGEtdC1pbCBhY2PDqHMgPycsXG4gICAgICB0YXNrQWNjZXNzVGl0bGU6ICdBY2PDqHMgYXV4IHTDomNoZXMnLFxuICAgICAgdGFza0FjY2Vzc0Rlc2NyaXB0aW9uOlxuICAgICAgICBcIkwnYWdlbnQgcG91cnJhIGxpcmUsIGNyw6llciwgbW9kaWZpZXIgZXQgc3VwcHJpbWVyIGRlcyB0w6JjaGVzIHNlbG9uIGxlcyBwZXJtaXNzaW9ucyBkZSBsJ3V0aWxpc2F0ZXVyLlwiLFxuICAgICAgdmlzaWJpbGl0eVRpdGxlOiBcIlZpc2liaWxpdMOpIGRlIGwnYWdlbnRcIixcbiAgICAgIHdob0NhbkFjY2VzczogJ1F1aSBwZXV0IHV0aWxpc2VyIGNldCBhZ2VudCA/JyxcbiAgICAgIGFsbENvbXBhbnlUaXRsZTogXCJUb3V0ZSBsJ2VudHJlcHJpc2VcIixcbiAgICAgIGFsbENvbXBhbnlEZXNjcmlwdGlvbjogJ1RvdXMgbGVzIHV0aWxpc2F0ZXVycyBkZSB2b3RyZSBvcmdhbmlzYXRpb24gcG91cnJvbnQgdm9pciBldCB1dGlsaXNlciBjZXQgYWdlbnQuJyxcbiAgICAgIGNsaWVudFRpdGxlOiAnUG91ciBkZXMgY2xpZW50cyBzcMOpY2lmaXF1ZXMnLFxuICAgICAgY2xpZW50RGVzY3JpcHRpb246XG4gICAgICAgICdBc3NvY2lleiBjZXQgYWdlbnQgw6AgdW4gb3UgcGx1c2lldXJzIGNsaWVudHMuIFRvdXMgbGVzIHV0aWxpc2F0ZXVycyBwb3Vycm9udCB2b2lyIMOgIHF1ZWxzIGNsaWVudHMgaWwgZXN0IGxpw6kuJyxcbiAgICAgIG93blRpdGxlOiAnTW9pIHVuaXF1ZW1lbnQnLFxuICAgICAgb3duRGVzY3JpcHRpb246ICdDZXQgYWdlbnQgc2VyYSBwcml2w6kgZXQgbmUgc2VyYSBwYXMgZGlzcG9uaWJsZSBwb3VyIGxlcyBhdXRyZXMgdXRpbGlzYXRldXJzLicsXG4gICAgICBjbGllbnRzU2VsZWN0ZWQ6ICdDbGllbnRzIHNlbGVjdGVkOicsXG4gICAgICBzZWFyY2hFcnJvcjogJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGhlIGxpc3Qgb2YgY2xpZW50cywgcGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLicsXG4gICAgICBzZWFyY2hFbXB0eTogJ09vcHMhIE5vIGNsaWVudHMgd2VyZSBmb3VuZCB0aGF0IG1hdGNoIHlvdXIgc2VhcmNoLicsXG4gICAgICBzZWFyY2hJbml0aWFsOiAnV3JpdGUgYSB3b3JkIHRvIHN0YXJ0IHlvdXIgc2VhcmNoJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIGNsaWVudCcsXG4gICAgICBjbGllbnRJbmFjdGl2ZTogJ1RoaXMgY2xpZW50IGlzIGluYWN0aXZlLiBXZSByZWNvbW1lbmQgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgbGlzdC4nLFxuICAgICAgY2xpZW50RGVsZXRlZFRvb2x0aXA6ICdUaGlzIGNsaWVudCB3YXMgZGVsZXRlZC4gV2UgcmVjb21tZW5kIHJlbW92aW5nIGl0IGZyb20gdGhlIGxpc3QuJyxcbiAgICAgIGNsaWVudERlbGV0ZWQ6ICdDbGllbnQgZGVsZXRlZCcsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLnByb2plY3RTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBwcm9qZWN0U2VsZWN0b3I6IHtcbiAgICAgIHRpdGxlOiAnV2hpY2ggcHJvamVjdCB3b3VsZCB5b3UgbGlrZSBoZWxwIHdpdGg/JyxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWN0IGEgcHJvamVjdCBzbyBNQUlBIGNhbiByZXNwb25kIGluIGNvbnRleHQuJyxcbiAgICAgIGxhYmVsUHJvamVjdDogJ1NFTEVDVCBQUk9KRUNUJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdDaGFuZ2UgcHJvamVjdCcsXG4gICAgICByZWNlbnRQcm9qZWN0czogJ1JlY2VudCBwcm9qZWN0cycsXG4gICAgICBlcnJvck1lc3NhZ2U6ICdTZWFyY2ggZXJyb3IhIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbW9tZW50cy4nLFxuICAgICAgZW1wdHlSZWNlbnRQcm9qZWN0czogJ05vIHJlY2VudCBwcm9qZWN0cy4gRW50ZXIgdGhlIG5hbWUgaW4gdGhlIHNlYXJjaCBiYXIgdG8gZ2V0IHJlc3VsdHMuJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdPb3BzISB0aGVyZSBhcmUgbm8gcmVzdWx0cyBmb3IgeW91ciBzZWFyY2gnLFxuICAgICAgd2l0aG91dENsaWVudDogJ05vIGNsaWVudCcsXG4gICAgICB3aXRob3V0VGl0bGU6ICdObyB0aXRsZScsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmNsaWVudFNlbGVjdG9yXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ1doaWNoIGNsaWVudCB3b3VsZCB5b3UgbGlrZSBoZWxwIHdpdGg/JyxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWN0IGEgY2xpZW50IHNvIE1BSUEgY2FuIHJlc3BvbmQgaW4gY29udGV4dC4nLFxuICAgICAgbGFiZWxDbGllbnQ6ICdTRUxFQ1QgQ0xJRU5UJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoJyxcbiAgICAgIGNoYW5nZUNsaWVudDogJ0NoYW5nZSBjbGllbnQnLFxuICAgICAgcmVjZW50Q2xpZW50czogJ1JlY2VudCBjbGllbnRzJyxcbiAgICAgIHNlYXJjaGluZ0NsaWVudHM6ICdTZWFyY2hpbmcgeW91ciBjbGllbnRzLi4uJyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ1NlYXJjaCBlcnJvciEgUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtb21lbnRzLicsXG4gICAgICBlbXB0eVJlY2VudENsaWVudHM6ICdObyByZWNlbnQgY2xpZW50cy4gRW50ZXIgdGhlIG5hbWUgaW4gdGhlIHNlYXJjaCBiYXIgdG8gZ2V0IHJlc3VsdHMuJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdPb3BzISB0aGVyZSBhcmUgbm8gcmVzdWx0cyBmb3IgeW91ciBzZWFyY2gnLFxuICAgICAgcHJvamVjdDogJ3Byb2pldCcsXG4gICAgICBwcm9qZWN0czogJ3Byb2pldHMnLFxuICAgIH0sXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx3QkFBd0I7QUFDakQsU0FBU0Msd0JBQXdCLFFBQVEsc0NBQXNDO0FBRS9FLElBQU1DLE9BQU8sR0FBRztFQUNkQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxRQUFRLEVBQUUsU0FBUztFQUNuQkMsUUFBUSxFQUFFLG1CQUFtQjtFQUM3QkMsU0FBUyxFQUFFLE1BQU07RUFDakJDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsTUFBTSxFQUFFLHNCQUFzQjtFQUM5QkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsTUFBTSxFQUFFLFFBQVE7RUFDaEJDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLGFBQWEsRUFBRSxnQkFBZ0I7RUFDL0JDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE1BQU0sRUFBRTtBQUNWLENBQUM7QUFFRCxJQUFNQyxLQUFLLEdBQUc7RUFDWkMsS0FBSyxFQUFFLDJCQUEyQjtFQUNsQ0MsV0FBVyxFQUFFLDZGQUE2RjtFQUMxR0MsUUFBUSxFQUFFO0FBQ1osQ0FBQztBQUVELElBQU1DLGNBQWMsR0FBRztFQUNyQkosS0FBSyxFQUFMQSxLQUFLO0VBQ0xkLE9BQU8sRUFBUEE7QUFDRixDQUFDO0FBRUQsSUFBTW1CLHFCQUFxQixHQUFHO0VBQzVCQyxNQUFNLEVBQUUsUUFB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SUFDeENDLFlBQVksRUFBRSwrQkFBK0I7SUFDN0NDLGVBQWUsRUFBRSxvQkFBb0I7SUFDckNDLHFCQUFxQixFQUFFLGtGQUFrRjtJQUN6R0MsV0FBVyxFQUFFLDhCQUE4QjtJQUMzQ0MsaUJBQWlCLEVBQ2YsK0dBQStHO0lBQ2pIQyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCQyxjQUFjLEVBQUUsOEVBQThFO0lBQzlGQyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDQyxXQUFXLEVBQUUseUZBQXlGO0lBQ3RHQyxXQUFXLEVBQUUscURBQXFEO0lBQ2xFQyxhQUFhLEVBQUUsbUNBQW1DO0lBQ2xEalMsaUJBQWlCLEVBQUUsZUFBZTtJQUNsQ2tTLGNBQWMsRUFBRSxrRUFBa0U7SUFDbEZDLG9CQUFvQixFQUFFLGtFQUFrRTtJQUN4RkMsYUFBYSxFQUFFO0VBQ2pCO0FBQUMsS0FFRnpZLFFBQVEsQ0FBQzBZLGVBQWUsRUFBQTFULGFBQUEsQ0FBQUEsYUFBQSxLQUNwQjVELGNBQWM7RUFDakJzWCxlQUFlLEVBQUU7SUFDZnpYLEtBQUssRUFBRSx5Q0FBeUM7SUFDaER1QyxRQUFRLEVBQUUsa0RBQWtEO0lBQzVEbVYsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QmpOLFdBQVcsRUFBRSxRQUFRO0lBQ3JCTyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CMk0sY0FBYyxFQUFFLGlCQUFpQjtJQUNqQ0MsWUFBWSxFQUFFLGtEQUFrRDtJQUNoRUMsbUJBQW1CLEVBQUUsc0VBQXNFO0lBQzNGQyxVQUFVLEVBQUUsNENBQTRDO0lBQ3hEQyxhQUFhLEVBQUUsV0FBVztJQUMxQkMsWUFBWSxFQUFFO0VBQ2hCO0FBQUMsS0FFRmpaLFFBQVEsQ0FBQzJXLGNBQWMsRUFBQTNSLGFBQUEsQ0FBQUEsYUFBQSxLQUNuQjVELGNBQWM7RUFDakJ1VixjQUFjLEVBQUU7SUFDZDFWLEtBQUssRUFBRSx3Q0FBd0M7SUFDL0N1QyxRQUFRLEVBQUUsaURBQWlEO0lBQzNEMFYsV0FBVyxFQUFFLGVBQWU7SUFDNUJ4TixXQUFXLEVBQUUsUUFBUTtJQUNyQnlOLFlBQVksRUFBRSxlQUFlO0lBQzdCQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CQyxnQkFBZ0IsRUFBRSwyQkFBMkI7SUFDN0NSLFlBQVksRUFBRSxrREFBa0Q7SUFDaEVTLGtCQUFrQixFQUFFLHFFQUFxRTtJQUN6RlAsVUFBVSxFQUFFLDRDQUE0QztJQUN4RDNWLE9BQU8sRUFBRSxRQUFRO0lBQ2pCOEMsUUFBUSxFQUFFO0VBQ1o7QUFBQyIsImlnbm9yZUxpc3QiOltdfQ==