@comet/cms-admin 9.0.0-beta.2 → 9.0.0-beta.4

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 (653) hide show
  1. package/lib/blocks/AnchorBlock.d.ts +1 -1
  2. package/lib/blocks/AnchorBlock.d.ts.map +1 -1
  3. package/lib/blocks/DamVideoBlock.d.ts +1 -1
  4. package/lib/blocks/DamVideoBlock.d.ts.map +1 -1
  5. package/lib/blocks/DamVideoBlock.js +6 -2
  6. package/lib/blocks/EmailLinkBlock.d.ts +1 -1
  7. package/lib/blocks/EmailLinkBlock.d.ts.map +1 -1
  8. package/lib/blocks/ExternalLinkBlock.d.ts +1 -1
  9. package/lib/blocks/ExternalLinkBlock.d.ts.map +1 -1
  10. package/lib/blocks/InternalLinkBlock.d.ts +1 -1
  11. package/lib/blocks/InternalLinkBlock.d.ts.map +1 -1
  12. package/lib/blocks/PhoneLinkBlock.d.ts +1 -1
  13. package/lib/blocks/PhoneLinkBlock.d.ts.map +1 -1
  14. package/lib/blocks/PixelImageBlock.d.ts +1 -1
  15. package/lib/blocks/PixelImageBlock.d.ts.map +1 -1
  16. package/lib/blocks/PixelImageBlock.fragment.d.ts +2 -0
  17. package/lib/blocks/PixelImageBlock.fragment.d.ts.map +1 -0
  18. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts +20 -0
  19. package/lib/blocks/PixelImageBlock.fragment.generated.d.ts.map +1 -0
  20. package/lib/blocks/PixelImageBlock.fragment.generated.js +5 -0
  21. package/lib/blocks/PixelImageBlock.fragment.js +4 -0
  22. package/lib/blocks/PixelImageBlock.js +12 -5
  23. package/lib/blocks/SpaceBlock.d.ts +1 -1
  24. package/lib/blocks/SpaceBlock.d.ts.map +1 -1
  25. package/lib/blocks/SvgImageBlock.d.ts +1 -1
  26. package/lib/blocks/SvgImageBlock.d.ts.map +1 -1
  27. package/lib/blocks/SvgImageBlock.js +9 -3
  28. package/lib/blocks/VimeoVideoBlock.d.ts +1 -1
  29. package/lib/blocks/VimeoVideoBlock.d.ts.map +1 -1
  30. package/lib/blocks/VimeoVideoBlock.js +9 -3
  31. package/lib/blocks/YouTubeVideoBlock.d.ts +1 -1
  32. package/lib/blocks/YouTubeVideoBlock.d.ts.map +1 -1
  33. package/lib/blocks/YouTubeVideoBlock.js +9 -3
  34. package/lib/blocks/__stories__/RichTextBlock.stories.js +53 -0
  35. package/lib/blocks/clipboard/CannotPasteBlockDialog.d.ts +1 -1
  36. package/lib/blocks/clipboard/CannotPasteBlockDialog.d.ts.map +1 -1
  37. package/lib/blocks/clipboard/useBlockClipboard.d.ts +2 -2
  38. package/lib/blocks/clipboard/useBlockClipboard.d.ts.map +1 -1
  39. package/lib/blocks/common/AdminTabsTabContent.d.ts +1 -1
  40. package/lib/blocks/common/AdminTabsTabContent.d.ts.map +1 -1
  41. package/lib/blocks/common/AdminTabsTabContent.js +2 -2
  42. package/lib/blocks/common/BlockAdminComponentButton.d.ts +1 -1
  43. package/lib/blocks/common/BlockAdminComponentButton.d.ts.map +1 -1
  44. package/lib/blocks/common/BlockAdminComponentNestedButton.d.ts +1 -1
  45. package/lib/blocks/common/BlockAdminComponentNestedButton.d.ts.map +1 -1
  46. package/lib/blocks/common/BlockAdminComponentNestedButton.js +1 -1
  47. package/lib/blocks/common/BlockAdminComponentRoot.d.ts +1 -1
  48. package/lib/blocks/common/BlockAdminComponentRoot.d.ts.map +1 -1
  49. package/lib/blocks/common/BlockAdminComponentRoot.js +1 -1
  50. package/lib/blocks/common/BlockAdminComponentSection.d.ts +1 -1
  51. package/lib/blocks/common/BlockAdminComponentSection.d.ts.map +1 -1
  52. package/lib/blocks/common/BlockAdminComponentSection.js +2 -2
  53. package/lib/blocks/common/BlockAdminComponentSectionGroup.d.ts +1 -1
  54. package/lib/blocks/common/BlockAdminComponentSectionGroup.d.ts.map +1 -1
  55. package/lib/blocks/common/BlockAdminComponentSectionGroup.js +1 -1
  56. package/lib/blocks/common/BlockAdminTabLabel.d.ts +1 -1
  57. package/lib/blocks/common/BlockAdminTabLabel.d.ts.map +1 -1
  58. package/lib/blocks/common/BlockAdminTabLabel.js +1 -1
  59. package/lib/blocks/common/BlockAdminTabs.d.ts +1 -1
  60. package/lib/blocks/common/BlockAdminTabs.d.ts.map +1 -1
  61. package/lib/blocks/common/BlockAdminTabs.js +3 -3
  62. package/lib/blocks/common/Collapsible.d.ts +1 -1
  63. package/lib/blocks/common/Collapsible.d.ts.map +1 -1
  64. package/lib/blocks/common/CollapsibleSwitchButtonHeader.d.ts +1 -1
  65. package/lib/blocks/common/CollapsibleSwitchButtonHeader.d.ts.map +1 -1
  66. package/lib/blocks/common/CollapsibleSwitchButtonHeader.js +1 -1
  67. package/lib/blocks/common/HiddenInSubroute.d.ts +1 -1
  68. package/lib/blocks/common/HiddenInSubroute.d.ts.map +1 -1
  69. package/lib/blocks/common/blockRow/BlockPreviewContent.d.ts +1 -1
  70. package/lib/blocks/common/blockRow/BlockPreviewContent.d.ts.map +1 -1
  71. package/lib/blocks/common/blockRow/BlockRow.d.ts.map +1 -1
  72. package/lib/blocks/common/blockRow/BlockRow.js +3 -1
  73. package/lib/blocks/common/blockRow/image/StackedImages.d.ts +1 -1
  74. package/lib/blocks/common/blockRow/image/StackedImages.d.ts.map +1 -1
  75. package/lib/blocks/config/BlocksConfigContext.d.ts +2 -2
  76. package/lib/blocks/config/BlocksConfigContext.d.ts.map +1 -1
  77. package/lib/blocks/context/BlockContext.d.ts +2 -2
  78. package/lib/blocks/context/BlockContext.d.ts.map +1 -1
  79. package/lib/blocks/context/BlockContextProvider.d.ts +1 -1
  80. package/lib/blocks/context/BlockContextProvider.d.ts.map +1 -1
  81. package/lib/blocks/createImageLinkBlock.d.ts +1 -1
  82. package/lib/blocks/createImageLinkBlock.d.ts.map +1 -1
  83. package/lib/blocks/createLinkBlock.d.ts +1 -1
  84. package/lib/blocks/createLinkBlock.d.ts.map +1 -1
  85. package/lib/blocks/createLinkBlock.js +50 -1
  86. package/lib/blocks/createRichTextBlock.d.ts +1 -1
  87. package/lib/blocks/createRichTextBlock.d.ts.map +1 -1
  88. package/lib/blocks/createRichTextBlock.js +56 -20
  89. package/lib/blocks/createSeoBlock.d.ts +1 -1
  90. package/lib/blocks/createSeoBlock.d.ts.map +1 -1
  91. package/lib/blocks/createSeoBlock.js +6 -4
  92. package/lib/blocks/createTableBlock.d.ts +2 -2
  93. package/lib/blocks/createTableBlock.d.ts.map +1 -1
  94. package/lib/blocks/createTextImageBlock.d.ts +2 -2
  95. package/lib/blocks/createTextImageBlock.d.ts.map +1 -1
  96. package/lib/blocks/createTextLinkBlock.d.ts +1 -1
  97. package/lib/blocks/createTextLinkBlock.d.ts.map +1 -1
  98. package/lib/blocks/createTextLinkBlock.js +36 -1
  99. package/lib/blocks/factories/columnsBlock/FinalFormColumnsSelect.d.ts +1 -1
  100. package/lib/blocks/factories/columnsBlock/FinalFormColumnsSelect.d.ts.map +1 -1
  101. package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.d.ts +2 -2
  102. package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.d.ts.map +1 -1
  103. package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.js +6 -6
  104. package/lib/blocks/factories/createBlocksBlock.d.ts +1 -1
  105. package/lib/blocks/factories/createBlocksBlock.d.ts.map +1 -1
  106. package/lib/blocks/factories/createBlocksBlock.js +70 -13
  107. package/lib/blocks/factories/createColumnsBlock.d.ts +2 -2
  108. package/lib/blocks/factories/createColumnsBlock.d.ts.map +1 -1
  109. package/lib/blocks/factories/createColumnsBlock.js +56 -6
  110. package/lib/blocks/factories/createCompositeBlock.d.ts +1 -1
  111. package/lib/blocks/factories/createCompositeBlock.d.ts.map +1 -1
  112. package/lib/blocks/factories/createCompositeBlock.js +3 -1
  113. package/lib/blocks/factories/createListBlock.d.ts +2 -2
  114. package/lib/blocks/factories/createListBlock.d.ts.map +1 -1
  115. package/lib/blocks/factories/createListBlock.js +59 -7
  116. package/lib/blocks/factories/createOneOfBlock.d.ts.map +1 -1
  117. package/lib/blocks/factories/createOneOfBlock.js +62 -5
  118. package/lib/blocks/factories/createOptionalBlock.d.ts +3 -3
  119. package/lib/blocks/factories/createOptionalBlock.d.ts.map +1 -1
  120. package/lib/blocks/factories/createOptionalBlock.js +38 -1
  121. package/lib/blocks/factories/listBlock/createUseAdminComponent.d.ts +2 -2
  122. package/lib/blocks/factories/listBlock/createUseAdminComponent.d.ts.map +1 -1
  123. package/lib/blocks/factories/spaceBlock/createSpaceBlock.d.ts +1 -1
  124. package/lib/blocks/factories/spaceBlock/createSpaceBlock.d.ts.map +1 -1
  125. package/lib/blocks/form/createFinalFormBlock.d.ts +2 -2
  126. package/lib/blocks/form/createFinalFormBlock.d.ts.map +1 -1
  127. package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts +4 -4
  128. package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts.map +1 -1
  129. package/lib/blocks/helpers/composeBlocks/composeBlocks.js +52 -16
  130. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts +3 -2
  131. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts.map +1 -1
  132. package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.js +4 -2
  133. package/lib/blocks/helpers/composeBlocks/createCompositeBlockFields.d.ts +1 -1
  134. package/lib/blocks/helpers/composeBlocks/createCompositeBlockFields.d.ts.map +1 -1
  135. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts +3 -2
  136. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts.map +1 -1
  137. package/lib/blocks/helpers/composeBlocks/createSettingsBlock.js +5 -1
  138. package/lib/blocks/helpers/composeBlocks/types.d.ts +3 -3
  139. package/lib/blocks/helpers/composeBlocks/types.d.ts.map +1 -1
  140. package/lib/blocks/helpers/composeBlocks/utils.d.ts +2 -2
  141. package/lib/blocks/helpers/composeBlocks/utils.d.ts.map +1 -1
  142. package/lib/blocks/helpers/createBlockSkeleton.js +15 -1
  143. package/lib/blocks/helpers/createCompositeBlockSelectField.d.ts +1 -1
  144. package/lib/blocks/helpers/createCompositeBlockSelectField.d.ts.map +1 -1
  145. package/lib/blocks/helpers/createCompositeBlockSwitchField.d.ts +1 -1
  146. package/lib/blocks/helpers/createCompositeBlockSwitchField.d.ts.map +1 -1
  147. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts +3 -2
  148. package/lib/blocks/helpers/createCompositeBlockTextField.d.ts.map +1 -1
  149. package/lib/blocks/helpers/createCompositeBlockTextField.js +20 -2
  150. package/lib/blocks/helpers/decomposeUpdateStateAction.d.ts +1 -1
  151. package/lib/blocks/helpers/decomposeUpdateStateAction.d.ts.map +1 -1
  152. package/lib/blocks/helpers/deduplicateBlockDependencies.d.ts +1 -1
  153. package/lib/blocks/helpers/deduplicateBlockDependencies.d.ts.map +1 -1
  154. package/lib/blocks/helpers/isBlockInterface.d.ts +1 -1
  155. package/lib/blocks/helpers/isBlockInterface.d.ts.map +1 -1
  156. package/lib/blocks/helpers/withAdditionalBlockAttributes.d.ts +1 -1
  157. package/lib/blocks/helpers/withAdditionalBlockAttributes.d.ts.map +1 -1
  158. package/lib/blocks/iframebridge/IFrameMessage.d.ts +1 -1
  159. package/lib/blocks/iframebridge/IFrameMessage.d.ts.map +1 -1
  160. package/lib/blocks/image/EditImageDialog.d.ts +1 -1
  161. package/lib/blocks/image/EditImageDialog.d.ts.map +1 -1
  162. package/lib/blocks/image/EditImageDialog.js +2 -2
  163. package/lib/blocks/rte/extension/CmsLink/Decorator.d.ts +1 -1
  164. package/lib/blocks/rte/extension/CmsLink/Decorator.d.ts.map +1 -1
  165. package/lib/blocks/rte/extension/CmsLink/EditorComponent.d.ts +2 -2
  166. package/lib/blocks/rte/extension/CmsLink/EditorComponent.d.ts.map +1 -1
  167. package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.d.ts +1 -1
  168. package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.d.ts.map +1 -1
  169. package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.js +2 -2
  170. package/lib/blocks/table/CellValue.d.ts +1 -1
  171. package/lib/blocks/table/CellValue.d.ts.map +1 -1
  172. package/lib/blocks/table/CellValue.js +6 -6
  173. package/lib/blocks/table/ColumnHeader.d.ts +4 -4
  174. package/lib/blocks/table/ColumnHeader.d.ts.map +1 -1
  175. package/lib/blocks/table/ColumnHeader.js +1 -1
  176. package/lib/blocks/table/EditCell.js +4 -4
  177. package/lib/blocks/table/RowActionsCell.d.ts +2 -2
  178. package/lib/blocks/table/RowActionsCell.d.ts.map +1 -1
  179. package/lib/blocks/table/TableBlockContext.d.ts +1 -1
  180. package/lib/blocks/table/TableBlockContext.d.ts.map +1 -1
  181. package/lib/blocks/table/TableBlockContext.js +3 -1
  182. package/lib/blocks/table/TableBlockGrid.d.ts +1 -1
  183. package/lib/blocks/table/TableBlockGrid.d.ts.map +1 -1
  184. package/lib/blocks/table/dataGridStyles.d.ts +1 -1
  185. package/lib/blocks/table/dataGridStyles.d.ts.map +1 -1
  186. package/lib/blocks/table/utils/column.d.ts +3 -3
  187. package/lib/blocks/table/utils/column.d.ts.map +1 -1
  188. package/lib/blocks/table/utils/ensureMinimumTableState.d.ts +2 -2
  189. package/lib/blocks/table/utils/ensureMinimumTableState.d.ts.map +1 -1
  190. package/lib/blocks/table/utils/getClipboardValueForSchema.d.ts +1 -1
  191. package/lib/blocks/table/utils/getClipboardValueForSchema.d.ts.map +1 -1
  192. package/lib/blocks/table/utils/row.d.ts +2 -2
  193. package/lib/blocks/table/utils/row.d.ts.map +1 -1
  194. package/lib/blocks/tipTap/BlockStyleContext.d.ts +3 -0
  195. package/lib/blocks/tipTap/BlockStyleContext.d.ts.map +1 -0
  196. package/lib/blocks/tipTap/BlockStyleContext.js +2 -0
  197. package/lib/blocks/tipTap/InlineStyleContext.d.ts +3 -0
  198. package/lib/blocks/tipTap/InlineStyleContext.d.ts.map +1 -0
  199. package/lib/blocks/tipTap/InlineStyleContext.js +2 -0
  200. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts +10 -0
  201. package/lib/blocks/tipTap/TipTapLinkDialog.d.ts.map +1 -0
  202. package/lib/blocks/tipTap/TipTapLinkDialog.js +105 -0
  203. package/lib/blocks/tipTap/TipTapToolbar.d.ts +12 -0
  204. package/lib/blocks/tipTap/TipTapToolbar.d.ts.map +1 -0
  205. package/lib/blocks/tipTap/TipTapToolbar.js +611 -0
  206. package/lib/blocks/tipTap/__stories__/TipTapRichTextBlock.stories.js +1566 -0
  207. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts +56 -0
  208. package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts.map +1 -0
  209. package/lib/blocks/tipTap/createTipTapRichTextBlock.js +418 -0
  210. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts +2 -0
  211. package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts.map +1 -0
  212. package/lib/blocks/tipTap/extensions/BlockStyleHeading.js +57 -0
  213. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts +2 -0
  214. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts.map +1 -0
  215. package/lib/blocks/tipTap/extensions/BlockStyleParagraph.js +56 -0
  216. package/lib/blocks/tipTap/extensions/CmsLink.d.ts +13 -0
  217. package/lib/blocks/tipTap/extensions/CmsLink.d.ts.map +1 -0
  218. package/lib/blocks/tipTap/extensions/CmsLink.js +42 -0
  219. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts +13 -0
  220. package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts.map +1 -0
  221. package/lib/blocks/tipTap/extensions/InlineStyleMark.js +71 -0
  222. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts +10 -0
  223. package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts.map +1 -0
  224. package/lib/blocks/tipTap/extensions/NonBreakingSpace.js +57 -0
  225. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts +10 -0
  226. package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts.map +1 -0
  227. package/lib/blocks/tipTap/extensions/SoftHyphen.js +51 -0
  228. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts +6 -0
  229. package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts.map +1 -0
  230. package/lib/blocks/tipTap/listLevelMaxHelpers.js +108 -0
  231. package/lib/blocks/types.d.ts +9 -2
  232. package/lib/blocks/types.d.ts.map +1 -1
  233. package/lib/blocks/utils.d.ts +1 -1
  234. package/lib/blocks/utils.d.ts.map +1 -1
  235. package/lib/builds/BuildEntry.js +1 -1
  236. package/lib/builds/PublisherPage.js +1 -1
  237. package/lib/common/InsertInBetweenAction.d.ts +1 -1
  238. package/lib/common/InsertInBetweenAction.d.ts.map +1 -1
  239. package/lib/common/InsertInBetweenAction.js +3 -3
  240. package/lib/common/MasterMenuRoutes.d.ts +1 -1
  241. package/lib/common/MasterMenuRoutes.d.ts.map +1 -1
  242. package/lib/common/PageName.js +1 -1
  243. package/lib/common/errors/errorMessages.d.ts +1 -1
  244. package/lib/common/errors/errorMessages.d.ts.map +1 -1
  245. package/lib/common/header/Header.d.ts +1 -1
  246. package/lib/common/header/Header.d.ts.map +1 -1
  247. package/lib/common/header/Header.js +1 -1
  248. package/lib/common/header/about/AboutModal.d.ts +1 -1
  249. package/lib/common/header/about/AboutModal.d.ts.map +1 -1
  250. package/lib/common/header/about/AboutModal.js +6 -6
  251. package/lib/common/header/about/build-information/useBuildInformation.d.ts +1 -1
  252. package/lib/common/header/about/build-information/useBuildInformation.d.ts.map +1 -1
  253. package/lib/common/image/ChooseFocalPoint.d.ts +1 -1
  254. package/lib/common/image/ChooseFocalPoint.d.ts.map +1 -1
  255. package/lib/common/image/ImageCrop.sc.d.ts +1 -1
  256. package/lib/common/image/ImageCrop.sc.d.ts.map +1 -1
  257. package/lib/common/image/ImageCrop.sc.js +2 -2
  258. package/lib/common/signOutButton/SignOutButton.d.ts +1 -1
  259. package/lib/common/signOutButton/SignOutButton.d.ts.map +1 -1
  260. package/lib/common/useEditState.d.ts +1 -1
  261. package/lib/common/useEditState.d.ts.map +1 -1
  262. package/lib/config/CometConfigContext.d.ts +11 -10
  263. package/lib/config/CometConfigContext.d.ts.map +1 -1
  264. package/lib/config/CometConfigContext.js +9 -5
  265. package/lib/contentLanguage/contentLanguageConfig.d.ts +1 -1
  266. package/lib/contentLanguage/contentLanguageConfig.d.ts.map +1 -1
  267. package/lib/contentLanguage/useContentLanguage.d.ts +1 -1
  268. package/lib/contentLanguage/useContentLanguage.d.ts.map +1 -1
  269. package/lib/contentScope/ContentScopeIndicator.d.ts +1 -1
  270. package/lib/contentScope/ContentScopeIndicator.d.ts.map +1 -1
  271. package/lib/contentScope/ContentScopeIndicator.js +4 -4
  272. package/lib/contentScope/ContentScopeSelect.d.ts +1 -1
  273. package/lib/contentScope/ContentScopeSelect.d.ts.map +1 -1
  274. package/lib/contentScope/ContentScopeSelect.js +2 -3
  275. package/lib/contentScope/Controls.d.ts +1 -1
  276. package/lib/contentScope/Controls.d.ts.map +1 -1
  277. package/lib/contentScope/__stories__/ContentScopeProvider.stories.js +85 -0
  278. package/lib/contentScope/__stories__/ContentScopeSelect.stories.js +655 -0
  279. package/lib/contentScope/noContentScopeFallback/NoContentScopeFallback.d.ts +1 -1
  280. package/lib/contentScope/noContentScopeFallback/NoContentScopeFallback.d.ts.map +1 -1
  281. package/lib/contentScope/noContentScopeFallback/__stories__/NoContentScopeFallback.stories.js +7 -0
  282. package/lib/contentScope/utils/defaultCreatePath.d.ts +1 -1
  283. package/lib/contentScope/utils/defaultCreatePath.d.ts.map +1 -1
  284. package/lib/contentScope/utils/groupObjectsIntoArrays.d.ts +1 -1
  285. package/lib/contentScope/utils/groupObjectsIntoArrays.d.ts.map +1 -1
  286. package/lib/cronJobs/JobLogs.js +1 -1
  287. package/lib/cronJobs/JobStatus.d.ts +1 -1
  288. package/lib/cronJobs/JobStatus.d.ts.map +1 -1
  289. package/lib/cronJobs/JobStatus.js +1 -1
  290. package/lib/dam/DamPage.d.ts +1 -1
  291. package/lib/dam/DamPage.d.ts.map +1 -1
  292. package/lib/dam/DamTable.d.ts +9 -4
  293. package/lib/dam/DamTable.d.ts.map +1 -1
  294. package/lib/dam/DamTable.js +8 -18
  295. package/lib/dam/DataGrid/DamContextMenu.d.ts +1 -1
  296. package/lib/dam/DataGrid/DamContextMenu.d.ts.map +1 -1
  297. package/lib/dam/DataGrid/FolderDataGrid.d.ts +2 -2
  298. package/lib/dam/DataGrid/FolderDataGrid.d.ts.map +1 -1
  299. package/lib/dam/DataGrid/FolderDataGrid.js +285 -276
  300. package/lib/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.d.ts +1 -1
  301. package/lib/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.d.ts.map +1 -1
  302. package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.d.ts +1 -1
  303. package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.d.ts.map +1 -1
  304. package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.js +2 -2
  305. package/lib/dam/DataGrid/fileUpload/FileUploadContext.d.ts +1 -1
  306. package/lib/dam/DataGrid/fileUpload/FileUploadContext.d.ts.map +1 -1
  307. package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.d.ts +1 -1
  308. package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.d.ts.map +1 -1
  309. package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.js +2 -2
  310. package/lib/dam/DataGrid/fileUpload/fileUpload.utils.d.ts +1 -1
  311. package/lib/dam/DataGrid/fileUpload/fileUpload.utils.d.ts.map +1 -1
  312. package/lib/dam/DataGrid/fileUpload/useDamFileUpload.d.ts +2 -2
  313. package/lib/dam/DataGrid/fileUpload/useDamFileUpload.d.ts.map +1 -1
  314. package/lib/dam/DataGrid/filter/DamTableFilter.d.ts +1 -1
  315. package/lib/dam/DataGrid/filter/DamTableFilter.d.ts.map +1 -1
  316. package/lib/dam/DataGrid/filter/DamTableFilter.js +0 -10
  317. package/lib/dam/DataGrid/footer/DamFooter.d.ts +1 -1
  318. package/lib/dam/DataGrid/footer/DamFooter.d.ts.map +1 -1
  319. package/lib/dam/DataGrid/footer/DamFooter.js +1 -1
  320. package/lib/dam/DataGrid/label/DamItemLabel.d.ts +1 -1
  321. package/lib/dam/DataGrid/label/DamItemLabel.d.ts.map +1 -1
  322. package/lib/dam/DataGrid/label/DamItemLabel.js +3 -3
  323. package/lib/dam/DataGrid/label/DamItemLabelColumn.d.ts +5 -5
  324. package/lib/dam/DataGrid/label/DamItemLabelColumn.d.ts.map +1 -1
  325. package/lib/dam/DataGrid/label/DamItemLabelColumn.js +2 -2
  326. package/lib/dam/DataGrid/selection/DamMoreActions.d.ts +2 -1
  327. package/lib/dam/DataGrid/selection/DamMoreActions.d.ts.map +1 -1
  328. package/lib/dam/DataGrid/selection/DamMoreActions.js +4 -3
  329. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts +8 -5
  330. package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts.map +1 -1
  331. package/lib/dam/DataGrid/selection/DamSelectionContext.js +11 -3
  332. package/lib/dam/DataGrid/thumbnail/DamThumbnail.d.ts +2 -2
  333. package/lib/dam/DataGrid/thumbnail/DamThumbnail.d.ts.map +1 -1
  334. package/lib/dam/DataGrid/thumbnail/DamThumbnail.js +4 -4
  335. package/lib/dam/DataGrid/useDamSearchHighlighting.d.ts +1 -1
  336. package/lib/dam/DataGrid/useDamSearchHighlighting.d.ts.map +1 -1
  337. package/lib/dam/FileForm/CropSettingsFields.d.ts +1 -1
  338. package/lib/dam/FileForm/CropSettingsFields.d.ts.map +1 -1
  339. package/lib/dam/FileForm/CropSettingsFields.js +1 -1
  340. package/lib/dam/FileForm/Duplicates.js +5 -5
  341. package/lib/dam/FileForm/EditFile.d.ts +3 -3
  342. package/lib/dam/FileForm/EditFile.d.ts.map +1 -1
  343. package/lib/dam/FileForm/EditFile.js +2 -2
  344. package/lib/dam/FileForm/FilePreview.d.ts +1 -1
  345. package/lib/dam/FileForm/FilePreview.d.ts.map +1 -1
  346. package/lib/dam/FileForm/FilePreview.js +4 -4
  347. package/lib/dam/FileForm/FileSettingsFields.d.ts +1 -1
  348. package/lib/dam/FileForm/FileSettingsFields.d.ts.map +1 -1
  349. package/lib/dam/FileForm/FileSettingsFields.js +1 -1
  350. package/lib/dam/FileForm/ReplaceFileButton.d.ts +1 -1
  351. package/lib/dam/FileForm/ReplaceFileButton.d.ts.map +1 -1
  352. package/lib/dam/FileForm/licenseType.d.ts +2 -2
  353. package/lib/dam/FileForm/licenseType.d.ts.map +1 -1
  354. package/lib/dam/FileForm/previews/AudioPreview.d.ts +1 -1
  355. package/lib/dam/FileForm/previews/AudioPreview.d.ts.map +1 -1
  356. package/lib/dam/FileForm/previews/AudioPreview.js +5 -5
  357. package/lib/dam/FileForm/previews/DefaultFilePreview.d.ts +1 -1
  358. package/lib/dam/FileForm/previews/DefaultFilePreview.d.ts.map +1 -1
  359. package/lib/dam/FileForm/previews/DefaultFilePreview.js +3 -3
  360. package/lib/dam/FileForm/previews/ImagePreview.d.ts +1 -1
  361. package/lib/dam/FileForm/previews/ImagePreview.d.ts.map +1 -1
  362. package/lib/dam/FileForm/previews/PdfPreview.d.ts +1 -1
  363. package/lib/dam/FileForm/previews/PdfPreview.d.ts.map +1 -1
  364. package/lib/dam/FileForm/previews/PdfPreview.js +2 -2
  365. package/lib/dam/FileForm/previews/VideoPreview.d.ts +1 -1
  366. package/lib/dam/FileForm/previews/VideoPreview.d.ts.map +1 -1
  367. package/lib/dam/FileForm/previews/VideoPreview.js +2 -2
  368. package/lib/dam/MoveDamItemDialog/ChooseFolder.d.ts +2 -2
  369. package/lib/dam/MoveDamItemDialog/ChooseFolder.d.ts.map +1 -1
  370. package/lib/dam/MoveDamItemDialog/ChooseFolder.js +1 -1
  371. package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.d.ts +1 -1
  372. package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.d.ts.map +1 -1
  373. package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.js +1 -1
  374. package/lib/dam/MoveDamItemDialog/useFolderTree.d.ts +1 -1
  375. package/lib/dam/MoveDamItemDialog/useFolderTree.d.ts.map +1 -1
  376. package/lib/dam/MoveDamItemDialog/useFolderTreeSearch.d.ts +2 -2
  377. package/lib/dam/MoveDamItemDialog/useFolderTreeSearch.d.ts.map +1 -1
  378. package/lib/dam/blocks/DamFileDownloadLinkBlock.d.ts +1 -1
  379. package/lib/dam/blocks/DamFileDownloadLinkBlock.d.ts.map +1 -1
  380. package/lib/dam/blocks/DamFileDownloadLinkBlock.js +6 -2
  381. package/lib/dam/config/DamScopeProvider.d.ts +1 -1
  382. package/lib/dam/config/DamScopeProvider.d.ts.map +1 -1
  383. package/lib/dam/config/damConfig.d.ts +1 -1
  384. package/lib/dam/config/damConfig.d.ts.map +1 -1
  385. package/lib/dam/dependencies/createDamFileDependency.d.ts +1 -1
  386. package/lib/dam/dependencies/createDamFileDependency.d.ts.map +1 -1
  387. package/lib/dam/helpers/clearDamItemCache.d.ts +1 -1
  388. package/lib/dam/helpers/clearDamItemCache.d.ts.map +1 -1
  389. package/lib/dam/helpers/isFile.d.ts +1 -1
  390. package/lib/dam/helpers/isFile.d.ts.map +1 -1
  391. package/lib/dam/helpers/isFolder.d.ts +1 -1
  392. package/lib/dam/helpers/isFolder.d.ts.map +1 -1
  393. package/lib/dam/mediaAlternatives/MediaAlternativeForm.d.ts +1 -1
  394. package/lib/dam/mediaAlternatives/MediaAlternativeForm.d.ts.map +1 -1
  395. package/lib/dam/mediaAlternatives/MediaAlternativesGrid.d.ts +1 -1
  396. package/lib/dam/mediaAlternatives/MediaAlternativesGrid.d.ts.map +1 -1
  397. package/lib/dam/mediaAlternatives/MediaAlternativesGrid.js +3 -1
  398. package/lib/dashboard/DashboardHeader.d.ts +1 -1
  399. package/lib/dashboard/DashboardHeader.d.ts.map +1 -1
  400. package/lib/dashboard/DashboardHeader.js +2 -2
  401. package/lib/dashboard/__stories__/DateTime.stories.js +7 -0
  402. package/lib/dashboard/widgets/DashboardWidgetRoot.d.ts +1 -1
  403. package/lib/dashboard/widgets/DashboardWidgetRoot.d.ts.map +1 -1
  404. package/lib/dashboard/widgets/DashboardWidgetRoot.js +1 -1
  405. package/lib/dependencies/DependenciesList.d.ts +1 -1
  406. package/lib/dependencies/DependenciesList.d.ts.map +1 -1
  407. package/lib/dependencies/DependenciesList.js +3 -1
  408. package/lib/dependencies/DependentsList.d.ts +1 -1
  409. package/lib/dependencies/DependentsList.d.ts.map +1 -1
  410. package/lib/dependencies/DependentsList.js +3 -1
  411. package/lib/dependencies/createDependencyMethods.d.ts +3 -3
  412. package/lib/dependencies/createDependencyMethods.d.ts.map +1 -1
  413. package/lib/dependencies/createDocumentDependencyMethods.d.ts +3 -3
  414. package/lib/dependencies/createDocumentDependencyMethods.d.ts.map +1 -1
  415. package/lib/dependencies/dependenciesConfig.d.ts +1 -1
  416. package/lib/dependencies/dependenciesConfig.d.ts.map +1 -1
  417. package/lib/dependencies/getDisplayNameString.d.ts.map +1 -1
  418. package/lib/dependencies/getDisplayNameString.js +3 -1
  419. package/lib/dependencies/types.d.ts +2 -2
  420. package/lib/dependencies/types.d.ts.map +1 -1
  421. package/lib/documents/createDocumentRootBlocksMethods.d.ts +2 -2
  422. package/lib/documents/createDocumentRootBlocksMethods.d.ts.map +1 -1
  423. package/lib/documents/types.d.ts +10 -6
  424. package/lib/documents/types.d.ts.map +1 -1
  425. package/lib/form/file/FileField.d.ts +17 -14
  426. package/lib/form/file/FileField.d.ts.map +1 -1
  427. package/lib/form/file/FileField.gql.d.ts +2 -0
  428. package/lib/form/file/FileField.gql.d.ts.map +1 -1
  429. package/lib/form/file/FileField.gql.generated.d.ts +40 -0
  430. package/lib/form/file/FileField.gql.generated.d.ts.map +1 -1
  431. package/lib/form/file/FileField.gql.generated.js +2 -1
  432. package/lib/form/file/FileField.gql.js +6 -3
  433. package/lib/form/file/FileField.js +172 -86
  434. package/lib/form/file/FileFieldMenu.d.ts +17 -0
  435. package/lib/form/file/FileFieldMenu.d.ts.map +1 -0
  436. package/lib/form/file/FileFieldMenu.js +91 -0
  437. package/lib/form/file/FileFieldRow.d.ts +12 -0
  438. package/lib/form/file/FileFieldRow.d.ts.map +1 -0
  439. package/lib/form/file/FileFieldRow.js +96 -0
  440. package/lib/form/file/FileUploadField.d.ts +1 -1
  441. package/lib/form/file/FileUploadField.d.ts.map +1 -1
  442. package/lib/form/file/FinalFormFileUpload.d.ts +2 -2
  443. package/lib/form/file/FinalFormFileUpload.d.ts.map +1 -1
  444. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts +20 -0
  445. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts.map +1 -0
  446. package/lib/form/file/chooseFile/BaseChooseDamFileDialog.js +106 -0
  447. package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts +10 -0
  448. package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts.map +1 -0
  449. package/lib/form/file/chooseFile/ChooseDamFileDialog.js +63 -0
  450. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts +9 -0
  451. package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts.map +1 -0
  452. package/lib/form/file/chooseFile/ChooseDamFilesDialog.js +117 -0
  453. package/lib/form/file/upload.d.ts +1 -1
  454. package/lib/form/file/upload.d.ts.map +1 -1
  455. package/lib/form/queryUpdatedAt.d.ts.map +1 -1
  456. package/lib/form/useFormSaveConflict.d.ts +2 -2
  457. package/lib/form/useFormSaveConflict.d.ts.map +1 -1
  458. package/lib/graphql.generated.d.ts +19 -14
  459. package/lib/graphql.generated.d.ts.map +1 -1
  460. package/lib/index.d.ts +12 -3
  461. package/lib/index.d.ts.map +1 -1
  462. package/lib/index.js +8 -1
  463. package/lib/pages/createEditPageNode.d.ts +2 -2
  464. package/lib/pages/createEditPageNode.d.ts.map +1 -1
  465. package/lib/pages/createEditPageNode.js +1 -12
  466. package/lib/pages/createUsePage.d.ts +3 -2
  467. package/lib/pages/createUsePage.d.ts.map +1 -1
  468. package/lib/pages/createUsePage.js +135 -6
  469. package/lib/pages/pageSearch/PageSearch.d.ts +1 -1
  470. package/lib/pages/pageSearch/PageSearch.d.ts.map +1 -1
  471. package/lib/pages/pageSearch/usePageSearch.d.ts +3 -3
  472. package/lib/pages/pageSearch/usePageSearch.d.ts.map +1 -1
  473. package/lib/pages/pageTree/CopyPasteMenuItem.d.ts +1 -1
  474. package/lib/pages/pageTree/CopyPasteMenuItem.d.ts.map +1 -1
  475. package/lib/pages/pageTree/MovePageMenuItem.d.ts +1 -1
  476. package/lib/pages/pageTree/MovePageMenuItem.d.ts.map +1 -1
  477. package/lib/pages/pageTree/PageActions.d.ts +1 -1
  478. package/lib/pages/pageTree/PageActions.d.ts.map +1 -1
  479. package/lib/pages/pageTree/PageActions.js +24 -4
  480. package/lib/pages/pageTree/PageDeleteDialog.d.ts +1 -1
  481. package/lib/pages/pageTree/PageDeleteDialog.d.ts.map +1 -1
  482. package/lib/pages/pageTree/PageInfo.d.ts +2 -2
  483. package/lib/pages/pageTree/PageInfo.d.ts.map +1 -1
  484. package/lib/pages/pageTree/PageInfo.js +3 -3
  485. package/lib/pages/pageTree/PageLabel.d.ts +2 -2
  486. package/lib/pages/pageTree/PageLabel.d.ts.map +1 -1
  487. package/lib/pages/pageTree/PageLabel.js +5 -5
  488. package/lib/pages/pageTree/PageTree.d.ts +1 -1
  489. package/lib/pages/pageTree/PageTree.d.ts.map +1 -1
  490. package/lib/pages/pageTree/PageTree.js +2 -2
  491. package/lib/pages/pageTree/PageTreeContext.d.ts +4 -4
  492. package/lib/pages/pageTree/PageTreeContext.d.ts.map +1 -1
  493. package/lib/pages/pageTree/PageTreeRow.d.ts +3 -3
  494. package/lib/pages/pageTree/PageTreeRow.d.ts.map +1 -1
  495. package/lib/pages/pageTree/PageTreeService.d.ts +2 -2
  496. package/lib/pages/pageTree/PageTreeService.d.ts.map +1 -1
  497. package/lib/pages/pageTree/PageTypeIcon.d.ts +2 -2
  498. package/lib/pages/pageTree/PageTypeIcon.d.ts.map +1 -1
  499. package/lib/pages/pageTree/PageVisibility.d.ts +1 -1
  500. package/lib/pages/pageTree/PageVisibility.d.ts.map +1 -1
  501. package/lib/pages/pageTree/PageVisibilityIcon.d.ts +1 -1
  502. package/lib/pages/pageTree/PageVisibilityIcon.d.ts.map +1 -1
  503. package/lib/pages/pageTree/common/PageTreeTableRow.d.ts +1 -1
  504. package/lib/pages/pageTree/common/PageTreeTableRow.d.ts.map +1 -1
  505. package/lib/pages/pageTree/common/PageTreeTableRow.js +2 -2
  506. package/lib/pages/pageTree/findAvailableSlug.d.ts +11 -0
  507. package/lib/pages/pageTree/findAvailableSlug.d.ts.map +1 -0
  508. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts +16 -0
  509. package/lib/pages/pageTree/findAvailableSlug.generated.d.ts.map +1 -0
  510. package/lib/pages/pageTree/findAvailableSlug.generated.js +5 -0
  511. package/lib/pages/pageTree/findAvailableSlug.js +62 -0
  512. package/lib/pages/pageTree/transformToSlug.d.ts +2 -0
  513. package/lib/pages/pageTree/transformToSlug.d.ts.map +1 -0
  514. package/lib/pages/pageTree/transformToSlug.js +12 -0
  515. package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts +4 -4
  516. package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts.map +1 -1
  517. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts +0 -10
  518. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts.map +1 -1
  519. package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.js +0 -1
  520. package/lib/pages/pageTree/useCopyPastePages/sendPages.js +19 -40
  521. package/lib/pages/pageTree/useCopyPastePages.d.ts +3 -3
  522. package/lib/pages/pageTree/useCopyPastePages.d.ts.map +1 -1
  523. package/lib/pages/pageTree/useCopyPastePages.js +1 -1
  524. package/lib/pages/pageTree/useDndWindowScroll/useDndWindowScroll.d.ts +1 -1
  525. package/lib/pages/pageTree/useDndWindowScroll/useDndWindowScroll.d.ts.map +1 -1
  526. package/lib/pages/pageTree/usePageTree.d.ts +2 -2
  527. package/lib/pages/pageTree/usePageTree.d.ts.map +1 -1
  528. package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.d.ts → useProgressDialog.d.ts} +1 -1
  529. package/lib/pages/pageTree/useProgressDialog.d.ts.map +1 -0
  530. package/lib/pages/pageTree/useTranslatePagesAction.d.ts +16 -0
  531. package/lib/pages/pageTree/useTranslatePagesAction.d.ts.map +1 -0
  532. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts +20 -0
  533. package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts.map +1 -0
  534. package/lib/pages/pageTree/useTranslatePagesAction.generated.js +5 -0
  535. package/lib/pages/pageTree/useTranslatePagesAction.js +339 -0
  536. package/lib/pages/pageTreeConfig.d.ts +3 -3
  537. package/lib/pages/pageTreeConfig.d.ts.map +1 -1
  538. package/lib/pages/pageTreeSelect/FinalFormPageTreeSelect.d.ts +2 -2
  539. package/lib/pages/pageTreeSelect/FinalFormPageTreeSelect.d.ts.map +1 -1
  540. package/lib/pages/pageTreeSelect/PageTreeSelectDialog.d.ts +2 -2
  541. package/lib/pages/pageTreeSelect/PageTreeSelectDialog.d.ts.map +1 -1
  542. package/lib/pages/pageTreeSelect/PageTreeSelectDialog.js +5 -5
  543. package/lib/pages/pagesPage/ConfirmPageActionDialog.d.ts +1 -1
  544. package/lib/pages/pagesPage/ConfirmPageActionDialog.d.ts.map +1 -1
  545. package/lib/pages/pagesPage/PagesPage.d.ts +2 -2
  546. package/lib/pages/pagesPage/PagesPage.d.ts.map +1 -1
  547. package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts +1 -1
  548. package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts.map +1 -1
  549. package/lib/pages/pagesPage/PagesPageActionToolbar.js +29 -2
  550. package/lib/pages/pagesPage/PagesPageActionToolbar.sc.d.ts +2 -2
  551. package/lib/pages/pagesPage/PagesPageActionToolbarBatchUpdateHelper.d.ts +3 -3
  552. package/lib/pages/pagesPage/PagesPageActionToolbarBatchUpdateHelper.d.ts.map +1 -1
  553. package/lib/pages/pagesPage/createPagesQuery.d.ts +1 -1
  554. package/lib/pages/pagesPage/createPagesQuery.d.ts.map +1 -1
  555. package/lib/pages/useSaveConflictQuery.d.ts.map +1 -1
  556. package/lib/preview/block/BlockPreview.d.ts +1 -1
  557. package/lib/preview/block/BlockPreview.d.ts.map +1 -1
  558. package/lib/preview/block/BlockPreview.js +6 -4
  559. package/lib/preview/block/BlockPreviewWithTabs.d.ts +2 -2
  560. package/lib/preview/block/BlockPreviewWithTabs.d.ts.map +1 -1
  561. package/lib/preview/block/SplitPreview.d.ts +1 -1
  562. package/lib/preview/block/SplitPreview.d.ts.map +1 -1
  563. package/lib/preview/block/useBlockPreview.d.ts +1 -1
  564. package/lib/preview/block/useBlockPreview.d.ts.map +1 -1
  565. package/lib/preview/common/DeviceToggle.js +1 -1
  566. package/lib/preview/site/OpenLinkDialog.d.ts +1 -1
  567. package/lib/preview/site/OpenLinkDialog.d.ts.map +1 -1
  568. package/lib/preview/site/OpenLinkDialog.js +1 -1
  569. package/lib/preview/site/SitePreview.d.ts.map +1 -1
  570. package/lib/preview/site/SitePreview.js +9 -3
  571. package/lib/preview/site/iframebridge/SitePreviewIFrameMessage.d.ts +1 -1
  572. package/lib/preview/site/iframebridge/SitePreviewIFrameMessage.d.ts.map +1 -1
  573. package/lib/redirects/RedirectActiveness.d.ts +1 -1
  574. package/lib/redirects/RedirectActiveness.d.ts.map +1 -1
  575. package/lib/redirects/RedirectForm.d.ts +3 -3
  576. package/lib/redirects/RedirectForm.d.ts.map +1 -1
  577. package/lib/redirects/RedirectForm.gql.generated.d.ts +4 -4
  578. package/lib/redirects/RedirectForm.gql.generated.d.ts.map +1 -1
  579. package/lib/redirects/RedirectsGrid.d.ts +1 -1
  580. package/lib/redirects/RedirectsGrid.d.ts.map +1 -1
  581. package/lib/redirects/RedirectsGrid.gql.generated.d.ts +2 -2
  582. package/lib/redirects/RedirectsGrid.gql.generated.d.ts.map +1 -1
  583. package/lib/redirects/RedirectsGrid.js +2 -2
  584. package/lib/redirects/createRedirectsPage.d.ts +2 -2
  585. package/lib/redirects/createRedirectsPage.d.ts.map +1 -1
  586. package/lib/redirects/submitMutation.d.ts +3 -3
  587. package/lib/redirects/submitMutation.d.ts.map +1 -1
  588. package/lib/siteConfigs/siteConfigsConfig.d.ts +1 -1
  589. package/lib/siteConfigs/siteConfigsConfig.d.ts.map +1 -1
  590. package/lib/siteConfigs/useSiteConfig.d.ts +2 -2
  591. package/lib/siteConfigs/useSiteConfig.d.ts.map +1 -1
  592. package/lib/siteConfigs/useSiteConfigs.d.ts +1 -1
  593. package/lib/siteConfigs/useSiteConfigs.d.ts.map +1 -1
  594. package/lib/testing/test-utils.d.ts +1 -1
  595. package/lib/testing/test-utils.d.ts.map +1 -1
  596. package/lib/translation/AzureAiTranslatorProvider.d.ts +2 -2
  597. package/lib/translation/AzureAiTranslatorProvider.d.ts.map +1 -1
  598. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts +8 -0
  599. package/lib/translation/AzureAiTranslatorProvider.generated.d.ts.map +1 -1
  600. package/lib/translation/AzureAiTranslatorProvider.generated.js +2 -1
  601. package/lib/translation/AzureAiTranslatorProvider.js +31 -2
  602. package/lib/translation/TranslatableInterface.d.ts +4 -0
  603. package/lib/translation/TranslatableInterface.d.ts.map +1 -0
  604. package/lib/translation/TranslatableInterface.js +1 -0
  605. package/lib/translation/TranslateContentMenuItem.d.ts +7 -0
  606. package/lib/translation/TranslateContentMenuItem.d.ts.map +1 -0
  607. package/lib/translation/TranslateContentMenuItem.js +99 -0
  608. package/lib/translation/createDocumentTranslationMethods.d.ts +4 -0
  609. package/lib/translation/createDocumentTranslationMethods.d.ts.map +1 -0
  610. package/lib/translation/createDocumentTranslationMethods.js +62 -0
  611. package/lib/userPermissions/UserGrid.d.ts +1 -1
  612. package/lib/userPermissions/UserGrid.d.ts.map +1 -1
  613. package/lib/userPermissions/UserGrid.js +4 -2
  614. package/lib/userPermissions/hooks/currentUser.d.ts +1 -1
  615. package/lib/userPermissions/hooks/currentUser.d.ts.map +1 -1
  616. package/lib/userPermissions/hooks/currentUser.js +14 -6
  617. package/lib/userPermissions/user/ImpersonationButtons.d.ts.map +1 -1
  618. package/lib/userPermissions/user/ImpersonationButtons.js +3 -1
  619. package/lib/userPermissions/user/UserPageToolbar.js +2 -2
  620. package/lib/userPermissions/user/basicData/UserBasicData.js +1 -1
  621. package/lib/userPermissions/user/permissions/ContentScopeGrid.d.ts +1 -1
  622. package/lib/userPermissions/user/permissions/ContentScopeGrid.d.ts.map +1 -1
  623. package/lib/userPermissions/user/permissions/ContentScopeGrid.js +3 -1
  624. package/lib/userPermissions/user/permissions/PermissionGrid.d.ts.map +1 -1
  625. package/lib/userPermissions/user/permissions/PermissionGrid.js +3 -1
  626. package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.d.ts +2 -2
  627. package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.d.ts.map +1 -1
  628. package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.js +3 -1
  629. package/lib/validation/validateJson.d.ts +2 -0
  630. package/lib/validation/validateJson.d.ts.map +1 -0
  631. package/lib/validation/validateJson.js +15 -0
  632. package/lib/warnings/WarningActions.d.ts.map +1 -1
  633. package/lib/warnings/WarningActions.js +3 -1
  634. package/lib/warnings/WarningMessage.d.ts +1 -1
  635. package/lib/warnings/WarningMessage.d.ts.map +1 -1
  636. package/lib/warnings/WarningSeverity.d.ts +1 -1
  637. package/lib/warnings/WarningSeverity.d.ts.map +1 -1
  638. package/lib/warnings/WarningsGrid.d.ts.map +1 -1
  639. package/lib/warnings/WarningsGrid.js +3 -1
  640. package/lib/warnings/warningsConfig.d.ts +1 -1
  641. package/lib/warnings/warningsConfig.d.ts.map +1 -1
  642. package/package.json +40 -23
  643. package/lib/dam/DataGrid/filter/DamSortPopover.d.ts +0 -8
  644. package/lib/dam/DataGrid/filter/DamSortPopover.d.ts.map +0 -1
  645. package/lib/dam/DataGrid/filter/DamSortPopover.js +0 -124
  646. package/lib/dam/DataGrid/filter/DamSortPopover.sc.d.ts +0 -20
  647. package/lib/dam/DataGrid/filter/DamSortPopover.sc.d.ts.map +0 -1
  648. package/lib/dam/DataGrid/filter/DamSortPopover.sc.js +0 -71
  649. package/lib/form/file/chooseFile/ChooseFileDialog.d.ts +0 -10
  650. package/lib/form/file/chooseFile/ChooseFileDialog.d.ts.map +0 -1
  651. package/lib/form/file/chooseFile/ChooseFileDialog.js +0 -115
  652. package/lib/pages/pageTree/useCopyPastePages/ProgressDialog.d.ts.map +0 -1
  653. /package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.js → useProgressDialog.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAwajG,CAAC"}
1
+ {"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAsbjG,CAAC"}
@@ -556,7 +556,64 @@ export var createOneOfBlock = function createOneOfBlock(_ref, override) {
556
556
  return [].concat(_toConsumableArray(content), _toConsumableArray((_block$extractTextCon = (_block$extractTextCon2 = block.extractTextContents) === null || _block$extractTextCon2 === void 0 ? void 0 : _block$extractTextCon2.call(block, child.props, options)) !== null && _block$extractTextCon !== void 0 ? _block$extractTextCon : []));
557
557
  }, []);
558
558
  return content;
559
- }
559
+ },
560
+ translateContent: function () {
561
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(state, translate) {
562
+ var translatedAttachedBlocks;
563
+ return _regenerator().w(function (_context5) {
564
+ while (1) switch (_context5.n) {
565
+ case 0:
566
+ _context5.n = 1;
567
+ return Promise.all(state.attachedBlocks.map(/*#__PURE__*/function () {
568
+ var _ref11 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(child) {
569
+ var block, translatedProps, _t7;
570
+ return _regenerator().w(function (_context4) {
571
+ while (1) switch (_context4.n) {
572
+ case 0:
573
+ block = blockForType(child.type);
574
+ if (block) {
575
+ _context4.n = 1;
576
+ break;
577
+ }
578
+ throw new Error("No Block found for type ".concat(child.type));
579
+ case 1:
580
+ if (!block.translateContent) {
581
+ _context4.n = 3;
582
+ break;
583
+ }
584
+ _context4.n = 2;
585
+ return block.translateContent(child.props, translate);
586
+ case 2:
587
+ _t7 = _context4.v;
588
+ _context4.n = 4;
589
+ break;
590
+ case 3:
591
+ _t7 = child.props;
592
+ case 4:
593
+ translatedProps = _t7;
594
+ return _context4.a(2, _objectSpread(_objectSpread({}, child), {}, {
595
+ props: translatedProps
596
+ }));
597
+ }
598
+ }, _callee4);
599
+ }));
600
+ return function (_x7) {
601
+ return _ref11.apply(this, arguments);
602
+ };
603
+ }()));
604
+ case 1:
605
+ translatedAttachedBlocks = _context5.v;
606
+ return _context5.a(2, _objectSpread(_objectSpread({}, state), {}, {
607
+ attachedBlocks: translatedAttachedBlocks
608
+ }));
609
+ }
610
+ }, _callee5);
611
+ }));
612
+ function translateContent(_x5, _x6) {
613
+ return _translateContent.apply(this, arguments);
614
+ }
615
+ return translateContent;
616
+ }()
560
617
  });
561
618
  if (override) {
562
619
  return override(OneOfBlock);
@@ -573,7 +630,7 @@ var ToggleButtonGroup = /*#__PURE__*/styled(MuiToggleButtonGroup, process.env.NO
573
630
  styles: "display:flex"
574
631
  } : {
575
632
  name: "zjik7",
576
- styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStmc0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2Jsb2Nrcy9mYWN0b3JpZXMvY3JlYXRlT25lT2ZCbG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCwgUmFkaW9Hcm91cEZpZWxkLCBTZWxlY3RGaWVsZCB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IEJveCwgRGl2aWRlciwgVG9nZ2xlQnV0dG9uIGFzIE11aVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9uR3JvdXAgYXMgTXVpVG9nZ2xlQnV0dG9uR3JvdXAgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLmlzZXF1YWxcIjtcbmltcG9ydCB7IHR5cGUgRGlzcGF0Y2gsIHR5cGUgUmVhY3ROb2RlLCB0eXBlIFNldFN0YXRlQWN0aW9uLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdHlwZSBNZXNzYWdlRGVzY3JpcHRvciB9IGZyb20gXCJyZWFjdC1pbnRsXCI7XG5cbmltcG9ydCB7IHVzZUNvbnRlbnRTY29wZSB9IGZyb20gXCIuLi8uLi9jb250ZW50U2NvcGUvUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUJsb2NrQWRtaW5Db21wb25lbnRQYXBlciB9IGZyb20gXCIuLi9jb21tb24vQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyXCI7XG5pbXBvcnQgeyBIaWRkZW5JblN1YnJvdXRlIH0gZnJvbSBcIi4uL2NvbW1vbi9IaWRkZW5JblN1YnJvdXRlXCI7XG5pbXBvcnQgeyB1c2VCbG9ja3NDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL0Jsb2Nrc0NvbmZpZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJsb2Nrc0ZpbmFsRm9ybSB9IGZyb20gXCIuLi9mb3JtL0Jsb2Nrc0ZpbmFsRm9ybVwiO1xuaW1wb3J0IHsgY3JlYXRlQmxvY2tTa2VsZXRvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2NyZWF0ZUJsb2NrU2tlbGV0b25cIjtcbmltcG9ydCB7IEhvdmVyUHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvSG92ZXJQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWxlY3RQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL2lmcmFtZWJyaWRnZS9TZWxlY3RQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBCbG9ja0NhdGVnb3J5LCB0eXBlIEJsb2NrSW50ZXJmYWNlLCB0eXBlIEJsb2NrUHJldmlld1N0YXRlSW50ZXJmYWNlLCB0eXBlIEJsb2NrU3RhdGUsIHR5cGUgQ3VzdG9tQmxvY2tDYXRlZ29yeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZU5ld1N0YXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBwYXJhbGxlbEFzeW5jRXZlcnkgfSBmcm9tIFwiLi4vdXRpbHMvcGFyYWxsZWxBc3luY0V2ZXJ5XCI7XG5cbmludGVyZmFjZSBPbmVPZkJsb2NrSXRlbTxUIGV4dGVuZHMgQmxvY2tJbnRlcmZhY2UgPSBCbG9ja0ludGVyZmFjZT4ge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwcm9wczogQmxvY2tTdGF0ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrU3RhdGUge1xuICAgIGF0dGFjaGVkQmxvY2tzOiBPbmVPZkJsb2NrSXRlbVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja0ZyYWdtZW50IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGUgZXh0ZW5kcyBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSB7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG50eXBlIEFjdGl2ZVR5cGU8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSBDb25maWcgZXh0ZW5kcyBmYWxzZSA/IHsgYWN0aXZlVHlwZTogc3RyaW5nIH0gOiB7IGFjdGl2ZVR5cGU/OiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgT25lT2ZCbG9ja091dHB1dDxDb25maWcgZXh0ZW5kcyBib29sZWFuPiA9IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xufSAmIEFjdGl2ZVR5cGU8Q29uZmlnPjtcblxudHlwZSBCbG9ja1R5cGUgPSBzdHJpbmc7XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9uZU9mQmxvY2tPcHRpb25zPFQgZXh0ZW5kcyBib29sZWFuPiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lPzogUmVhY3ROb2RlO1xuICAgIHN1cHBvcnRlZEJsb2NrczogUmVjb3JkPEJsb2NrVHlwZSwgQmxvY2tJbnRlcmZhY2U+O1xuICAgIGNhdGVnb3J5PzogQmxvY2tDYXRlZ29yeSB8IEN1c3RvbUJsb2NrQ2F0ZWdvcnk7XG4gICAgdmFyaWFudD86IFwic2VsZWN0XCIgfCBcInJhZGlvXCIgfCBcInRvZ2dsZVwiO1xuICAgIGFsbG93RW1wdHk/OiBUO1xuICAgIHRhZ3M/OiBBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPbmVPZkJsb2NrID0gPFQgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbj4oXG4gICAge1xuICAgICAgICBzdXBwb3J0ZWRCbG9ja3MsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lID0gXCJTd2l0Y2hcIixcbiAgICAgICAgY2F0ZWdvcnkgPSBCbG9ja0NhdGVnb3J5Lk90aGVyLFxuICAgICAgICB2YXJpYW50ID0gXCJzZWxlY3RcIixcbiAgICAgICAgYWxsb3dFbXB0eTogcGFzc2VkQWxsb3dFbXB0eSxcbiAgICAgICAgdGFncyxcbiAgICB9OiBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUPixcbiAgICBvdmVycmlkZT86IChcbiAgICAgICAgYmxvY2s6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbiAgICApID0+IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbik6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPiA9PiB7XG4gICAgLy8gYWxsb3dFbXB0eSBjYW4ndCBoYXZlIGEgZGVmYXVsdCB0eXBlIGJlY2F1c2UgaXQncyB0eXBlZCBieSBhIGdlbmVyaWNcbiAgICBjb25zdCBhbGxvd0VtcHR5ID0gKHBhc3NlZEFsbG93RW1wdHkgPz8gdHJ1ZSkgc2F0aXNmaWVzIGJvb2xlYW47XG5cbiAgICBmdW5jdGlvbiBibG9ja0ZvclR5cGUodHlwZTogc3RyaW5nKTogQmxvY2tJbnRlcmZhY2UgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZEJsb2Nrc1t0eXBlXSA/PyBudWxsO1xuICAgIH1cbiAgICAvLyBoZWxwZXIgdG8gZ2V0IGNvbW1vbiB2YWx1ZXMgb2YgdGhlIHNlbGVjdGVkIGJsb2NrIGJ5IFN0YXRlXG4gICAgZnVuY3Rpb24gZ2V0QWN0aXZlQmxvY2soczogT25lT2ZCbG9ja1N0YXRlKSB7XG4gICAgICAgIGlmICghcy5hY3RpdmVUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUJsb2NrU3RhdGUgPSBzLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gcy5hY3RpdmVUeXBlKTtcbiAgICAgICAgaWYgKCFhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGBDYW4ndCBmaW5kIHJlZmVyZW5jZSB0byBhY3RpdmUgYmxvY2sgb2YgdHlwZSBcIiR7cy5hY3RpdmVUeXBlfVwiLmA7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgIFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIGEgbWlzc2luZyBcIngtaW5jbHVkZS1pbnZpc2libGUtY29udGVudFwiIEhUVFAgaGVhZGVyLiBQbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIGhlYWRlciB3aGVuIGZldGNoaW5nIHRoZSBibG9jay5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBhY3RpdmVCbG9ja1N0YXRlID8gYmxvY2tGb3JUeXBlKGFjdGl2ZUJsb2NrU3RhdGUudHlwZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlLFxuICAgICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgICB0eXBlOiBhY3RpdmVCbG9ja1N0YXRlLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRUYWdzID0gT2JqZWN0LnZhbHVlcyhzdXBwb3J0ZWRCbG9ja3MpLnJlZHVjZTxBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz4+KChhY2MsIGJsb2NrKSA9PiB7XG4gICAgICAgIGlmIChibG9jay50YWdzKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmxvY2sudGFnc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBPbmVPZkJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPSB7XG4gICAgICAgIC4uLmNyZWF0ZUJsb2NrU2tlbGV0b24oKSxcblxuICAgICAgICBuYW1lLFxuXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuXG4gICAgICAgIHRhZ3M6IHRhZ3MgPyB0YWdzIDogY2hpbGRUYWdzLFxuXG4gICAgICAgIGNhdGVnb3J5LFxuXG4gICAgICAgIGRlZmF1bHRWYWx1ZXM6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbGxvd0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Jsb2NrVHlwZSwgYmxvY2tdID0gT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKVswXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbeyB0eXBlOiBibG9ja1R5cGUsIHByb3BzOiBibG9jay5kZWZhdWx0VmFsdWVzKCkgfV0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGlucHV0MlN0YXRlOiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgYmxvY2ssIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBhY3RpdmVUeXBlICYmIHN1cHBvcnRlZEJsb2Nrc1thY3RpdmVUeXBlXSA/IGFjdGl2ZVR5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gYmxvY2sgdHlwZSBcIiR7aXRlbS50eXBlfVwiYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goeyAuLi5pdGVtLCBwcm9wczogYmxvY2suaW5wdXQyU3RhdGUoaXRlbS5wcm9wcykgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGUyT3V0cHV0OiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgLi4uYWRkaXRpb25hbEZpZWxkcyB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IGF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYy50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnN0YXRlMk91dHB1dChjLnByb3BzKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlLFxuICAgICAgICAgICAgfSBhcyBPbmVPZkJsb2NrT3V0cHV0PFQ+O1xuICAgICAgICB9LFxuXG4gICAgICAgIG91dHB1dDJTdGF0ZTogYXN5bmMgKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhdHRhY2hlZEJsb2Nrcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGl0ZW0udHlwZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3RhdGUuYXR0YWNoZWRCbG9ja3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiBhd2FpdCBibG9jay5vdXRwdXQyU3RhdGUoaXRlbS5wcm9wcywgY29udGV4dCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcblxuICAgICAgICBjcmVhdGVQcmV2aWV3U3RhdGU6IChzdGF0ZSwgcHJldmlld0N0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSA9IHN0YXRlO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYmxvY2s6IGJsb2NrU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJsb2NrU3RhdGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJsb2NrPy5jcmVhdGVQcmV2aWV3U3RhdGUoYmxvY2tTdGF0ZS5wcm9wcywgcHJldmlld0N0eCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbk1ldGE6IHsgcm91dGU6IGAke3ByZXZpZXdDdHgucGFyZW50VXJsfSMke2Jsb2NrU3RhdGUudHlwZX1gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG5cbiAgICAgICAgaXNWYWxpZDogYXN5bmMgKHN0YXRlKSA9PlxuICAgICAgICAgICAgcGFyYWxsZWxBc3luY0V2ZXJ5KHN0YXRlLmF0dGFjaGVkQmxvY2tzLCBhc3luYyAoYykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGMudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmlzVmFsaWQoYy5wcm9wcyk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICBhbmNob3JzOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9ja1N0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBibG9jaz8uYW5jaG9ycz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlcGVuZGVuY2llczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmRlcGVuZGVuY2llcz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dDogKG91dHB1dCwgcmVwbGFjZW1lbnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdPdXRwdXQ6IE9uZU9mQmxvY2tPdXRwdXQ8VD4gPSB7IC4uLm91dHB1dCwgYXR0YWNoZWRCbG9ja3M6IFtdIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiBvdXRwdXQuYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV3T3V0cHV0LmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2sucmVwbGFjZURlcGVuZGVuY2llc0luT3V0cHV0KGMucHJvcHMsIHJlcGxhY2VtZW50cyksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdPdXRwdXQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGVmaW5lc093blBhZGRpbmc6IHRydWUsXG5cbiAgICAgICAgQWRtaW5Db21wb25lbnQ6ICh7IHN0YXRlLCB1cGRhdGVTdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0luUGFwZXIgPSB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIoKTtcblxuICAgICAgICAgICAgY29uc3QgeyBzY29wZSB9ID0gdXNlQ29udGVudFNjb3BlKCk7XG4gICAgICAgICAgICBjb25zdCB7IGlzQmxvY2tTdXBwb3J0ZWQgfSA9IHVzZUJsb2Nrc0NvbmZpZygpO1xuXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRTdXBwb3J0ZWRCbG9ja3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzdXBwb3J0ZWRCbG9ja3MpLmZpbHRlcigoWywgYmxvY2tdKSA9PiBpc0Jsb2NrU3VwcG9ydGVkKGJsb2NrLCBzY29wZSkpLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gc3VwcG9ydGVkQmxvY2tzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IEFycmF5PHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IFJlYWN0Tm9kZSB9PiA9IGFsbG93RW1wdHlcbiAgICAgICAgICAgICAgICAgICAgPyBbeyB2YWx1ZTogXCJub25lXCIsIGxhYmVsOiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0LmJsb2Nrcy5vbmVPZkJsb2NrLmVtcHR5XCIgZGVmYXVsdE1lc3NhZ2U9XCJOb25lXCIgLz4gfV1cbiAgICAgICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzKS5mb3JFYWNoKChbYmxvY2tUeXBlLCBibG9ja10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYmxvY2suZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgICAgICB9LCBbc2NvcGUsIGlzQmxvY2tTdXBwb3J0ZWRdKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQmxvY2tTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1N0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSBwcmV2U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlID09PSBcIm5vbmVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuc2VsZWN0LCBubyBibG9jayBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0geyAuLi5wcmV2U3RhdGUsIGFjdGl2ZVR5cGU6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIGEgYmxvY2sgb2YgdGhlIHNhbWUgdHlwZSBhbHJlYWR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBwcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmluZCgoYykgPT4gYy50eXBlID09PSBibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGFuIGV4aXN0aW5nIGJsb2NrIHdpdGggc2FtZSB0eXBlLCBzbyBzZWxlY3QgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBubyBleGlzdGluZyBibG9jaywgd2UgbmVlZCB0byBjcmVhdGUgYW5kIHNlbGVjdCBhIG5ldyBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7YmxvY2tUeXBlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbTogT25lT2ZCbG9ja0l0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFsuLi5wcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MsIG5ld0l0ZW1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFuIHVwIHRoZSBwcmV2aW91cyBzZWxlY3RlZCBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBwcmV2aW91cyBibG9jayBoYXMgbm8gdmFsdWVzICh2YWx1ZXMgYXJlIGVxdWFsIHRvIGRlZmF1bHQgdmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSByZW1vdmUgdGhlIGJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIGZyb20gc2F2aW5nIHBvc3NpYmx5IGludmFsaWQgYmxvY2tzIGZvciBpcnJlbGV2YW50IChub3Qgc2VsZWN0ZWQpIGJsb2Nrc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2socHJldlN0YXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhuZXdTdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2sgJiYgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlICYmIG5ld1NlbGVjdGVkQmxvY2sudHlwZSAhPT0gcHJldmlvdXNTZWxlY3RlZEJsb2NrLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFcXVhbChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2suZGVmYXVsdFZhbHVlcygpLCBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUucHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogbmV3U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmlsdGVyKChjKSA9PiBjLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgY3JlYXRlVXBkYXRlU3ViQmxvY2tzRm4gPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU3ViQmxvY2tzRm46IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPGFueT4+ID0gKHNldFN0YXRlQWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy50eXBlID09PSBibG9ja1R5cGUgPyB7IC4uLmMsIHByb3BzOiByZXNvbHZlTmV3U3RhdGUoeyBwcmV2U3RhdGU6IGMucHJvcHMsIHNldFN0YXRlQWN0aW9uIH0pIH0gOiBjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdWJCbG9ja3NGbjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFt1cGRhdGVTdGF0ZV0sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQmxvY2tUeXBlID0gYWN0aXZlQmxvY2suYmxvY2sgPyBhY3RpdmVCbG9jay5zdGF0ZS50eXBlIDogXCJub25lXCI7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxIaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nQm90dG9tPXtpc0luUGFwZXIgPyAwIDogM30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJsb2Nrc0ZpbmFsRm9ybTx7IGJsb2NrVHlwZTogc3RyaW5nIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXsoeyBibG9ja1R5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmxvY2tTZWxlY3QoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tUeXBlOiBzZWxlY3RlZEJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInNlbGVjdFwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgb3B0aW9ucz17b3B0aW9uc30gZnVsbFdpZHRoIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzSW5QYXBlciAmJiBhY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJyYWRpb1wiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBkaXNwbGF5PVwiZmxleFwiIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nPXszfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoIG9wdGlvbnM9e29wdGlvbnN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInRvZ2dsZVwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlucHV0OiB7IHZhbHVlLCBvbkNoYW5nZSB9IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50LCBibG9ja1R5cGU6IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uIHZhbHVlPXtvcHRpb24udmFsdWV9IGtleT17b3B0aW9uLnZhbHVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub2dnbGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uR3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Jsb2Nrc0ZpbmFsRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8L0hpZGRlbkluU3Vicm91dGU+XG4gICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiBhY3RpdmVCbG9jay5zdGF0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyICYmICFhY3RpdmVCbG9jay5ibG9jay5kZWZpbmVzT3duUGFkZGluZyA/IDMgOiAwfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SG92ZXJQcmV2aWV3Q29tcG9uZW50IGtleT17YWN0aXZlQmxvY2sudHlwZX0gY29tcG9uZW50U2x1Zz17YCMke2FjdGl2ZUJsb2NrLnR5cGV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3RpdmVCbG9jay5ibG9jay5BZG1pbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU9e2FjdGl2ZUJsb2NrLnN0YXRlLnByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGU9e2NyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuKGFjdGl2ZUJsb2NrLnN0YXRlLnR5cGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSG92ZXJQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0UHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZXZpZXdDb250ZW50OiAoc3RhdGUsIGN0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGFjdGl2ZUJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICYmIGFjdGl2ZUJsb2NrU3RhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2sucHJldmlld0NvbnRlbnQoYWN0aXZlQmxvY2tTdGF0ZS5wcm9wcywgY3R4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGR5bmFtaWNEaXNwbGF5TmFtZTogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGJsb2NrLCBzdGF0ZTogYmxvY2tTdGF0ZSB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2sgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5keW5hbWljRGlzcGxheU5hbWU/LihibG9ja1N0YXRlLnByb3BzKSA/PyBibG9jay5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGljb246IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suaWNvbj8uKGJsb2NrU3RhdGUucHJvcHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGV4dHJhY3RUZXh0Q29udGVudHM6IChzdGF0ZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPSBvcHRpb25zPy5pbmNsdWRlSW52aXNpYmxlQ29udGVudCA/PyBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHN0YXRlLmF0dGFjaGVkQmxvY2tzLnJlZHVjZTxzdHJpbmdbXT4oKGNvbnRlbnQsIGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Y2hpbGQudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLnR5cGUgIT09IHN0YXRlLmFjdGl2ZVR5cGUgJiYgIWluY2x1ZGVJbnZpc2libGVDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbLi4uY29udGVudCwgLi4uKGJsb2NrLmV4dHJhY3RUZXh0Q29udGVudHM/LihjaGlsZC5wcm9wcywgb3B0aW9ucykgPz8gW10pXTtcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
633
+ styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZnQnNEIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
577
634
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
578
635
  });
579
636
  var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV === "production" ? {
@@ -581,7 +638,7 @@ var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV ===
581
638
  } : {
582
639
  target: "en4ucky0",
583
640
  label: "ToggleButton"
584
- })("flex:1;color:", function (_ref11) {
585
- var theme = _ref11.theme;
641
+ })("flex:1;color:", function (_ref12) {
642
+ var theme = _ref12.theme;
586
643
  return theme.palette.text.primary;
587
- }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1nQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICByZXR1cm4gb3ZlcnJpZGUoT25lT2ZCbG9jayk7XG4gICAgfVxuICAgIHJldHVybiBPbmVPZkJsb2NrO1xufTtcblxuY29uc3QgVG9nZ2xlQnV0dG9uR3JvdXAgPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uR3JvdXApYFxuICAgIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBUb2dnbGVCdXR0b24gPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uKWBcbiAgICBmbGV4OiAxO1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbmA7XG4iXX0= */"));
644
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWloQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */"));
@@ -1,6 +1,6 @@
1
- import { type ReactNode } from "react";
2
- import { type MessageDescriptor } from "react-intl";
3
- import { type BlockInputApi, type BlockInterface, type BlockOutputApi, type BlockState } from "../types";
1
+ import type { ReactNode } from "react";
2
+ import type { MessageDescriptor } from "react-intl";
3
+ import type { BlockInputApi, BlockInterface, BlockOutputApi, BlockState } from "../types";
4
4
  export interface OptionalBlockState<DecoratedBlock extends BlockInterface> {
5
5
  block?: BlockState<DecoratedBlock>;
6
6
  visible: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAMzG,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,cAAc;IACrE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,cAAc,SAAS,cAAc;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,cAAc,SAAS,cAAc;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EACxD,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;CAAE,EACxF,QAAQ,CAAC,EAAE,CACP,KAAK,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiKlG"}
1
+ {"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAkB,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM1F,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,cAAc;IACrE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,cAAc,SAAS,cAAc;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,cAAc,SAAS,cAAc;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EACxD,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;CAAE,EACxF,QAAQ,CAAC,EAAE,CACP,KAAK,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAyKlG"}
@@ -207,7 +207,44 @@ export function createOptionalBlock(decoratedBlock, options, override) {
207
207
  return (_decoratedBlock$extra = (_decoratedBlock$extra2 = decoratedBlock.extractTextContents) === null || _decoratedBlock$extra2 === void 0 ? void 0 : _decoratedBlock$extra2.call(decoratedBlock, state.block, options)) !== null && _decoratedBlock$extra !== void 0 ? _decoratedBlock$extra : [];
208
208
  }
209
209
  return [];
210
- }
210
+ },
211
+ translateContent: function () {
212
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
213
+ var translatedBlock, _t6;
214
+ return _regenerator().w(function (_context3) {
215
+ while (1) switch (_context3.n) {
216
+ case 0:
217
+ if (!(state.block === undefined)) {
218
+ _context3.n = 1;
219
+ break;
220
+ }
221
+ return _context3.a(2, state);
222
+ case 1:
223
+ if (!decoratedBlock.translateContent) {
224
+ _context3.n = 3;
225
+ break;
226
+ }
227
+ _context3.n = 2;
228
+ return decoratedBlock.translateContent(state.block, translate);
229
+ case 2:
230
+ _t6 = _context3.v;
231
+ _context3.n = 4;
232
+ break;
233
+ case 3:
234
+ _t6 = state.block;
235
+ case 4:
236
+ translatedBlock = _t6;
237
+ return _context3.a(2, _objectSpread(_objectSpread({}, state), {}, {
238
+ block: translatedBlock
239
+ }));
240
+ }
241
+ }, _callee3);
242
+ }));
243
+ function translateContent(_x4, _x5) {
244
+ return _translateContent.apply(this, arguments);
245
+ }
246
+ return translateContent;
247
+ }()
211
248
  });
212
249
  if (override) {
213
250
  return override(OptionalBlock);
@@ -1,7 +1,7 @@
1
1
  import { type ChangeEvent, type Dispatch, type ReactNode, type SetStateAction } from "react";
2
2
  import { type ClipboardContent } from "../../clipboard/useBlockClipboard";
3
- import { type BlockAdminComponentProps, type BlockInterface, type BlockState } from "../../types";
4
- import { type ListBlockAdditionalItemField, type ListBlockState } from "../createListBlock";
3
+ import type { BlockAdminComponentProps, BlockInterface, BlockState } from "../../types";
4
+ import type { ListBlockAdditionalItemField, ListBlockState } from "../createListBlock";
5
5
  interface CreateListBlockUseAdminComponentOptions<T extends BlockInterface> {
6
6
  block: T;
7
7
  maxVisibleBlocks?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"createUseAdminComponent.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/listBlock/createUseAdminComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAA6C,MAAM,OAAO,CAAC;AAKxI,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAElG,OAAO,EAAE,KAAK,4BAA4B,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5F,UAAU,uCAAuC,CAAC,CAAC,SAAS,cAAc;IACtE,KAAK,EAAE,CAAC,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACvE;AAED,KAAK,+BAA+B,CAAC,CAAC,SAAS,cAAc,IAAI,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7G,UAAU,6BAA6B,CAAC,CAAC,SAAS,cAAc;IAC5D,2BAA2B,EAAE,SAAS,CAAC;IACvC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IAC1D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qBAAqB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtE,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAG9E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC9D,KAAK,EACL,gBAAgB,EAChB,oBAAyB,GAC5B,EAAE,uCAAuC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC,CAAC,CAAC,CA6O9H"}
1
+ {"version":3,"file":"createUseAdminComponent.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/listBlock/createUseAdminComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAA6C,MAAM,OAAO,CAAC;AAKxI,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,KAAK,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvF,UAAU,uCAAuC,CAAC,CAAC,SAAS,cAAc;IACtE,KAAK,EAAE,CAAC,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACvE;AAED,KAAK,+BAA+B,CAAC,CAAC,SAAS,cAAc,IAAI,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7G,UAAU,6BAA6B,CAAC,CAAC,SAAS,cAAc;IAC5D,2BAA2B,EAAE,SAAS,CAAC;IACvC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IAC1D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qBAAqB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtE,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAG9E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC9D,KAAK,EACL,gBAAgB,EAChB,oBAAyB,GAC5B,EAAE,uCAAuC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC,CAAC,CAAC,CA6O9H"}
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from "react";
1
+ import type { ReactNode } from "react";
2
2
  import { type MessageDescriptor } from "react-intl";
3
3
  import { type BlockInterface } from "../../types";
4
4
  interface SpaceBlockFactoryOptions<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"createSpaceBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/spaceBlock/createSpaceBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKtE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,UAAU,wBAAwB,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,wCAKzD,wBAAwB,CAAC,CAAC,CAAC,KAAG,cAsChC,CAAC"}
1
+ {"version":3,"file":"createSpaceBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/spaceBlock/createSpaceBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKtE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,UAAU,wBAAwB,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,wCAKzD,wBAAwB,CAAC,CAAC,CAAC,KAAG,cAsChC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type FieldRenderProps } from "react-final-form";
2
- import { type BlockInterface } from "../types";
1
+ import type { FieldRenderProps } from "react-final-form";
2
+ import type { BlockInterface } from "../types";
3
3
  declare const createFinalFormBlock: (block: BlockInterface) => ({ input: { value, onChange } }: FieldRenderProps<unknown>) => import("react/jsx-runtime").JSX.Element;
4
4
  export { createFinalFormBlock };
5
5
  //# sourceMappingURL=createFinalFormBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createFinalFormBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/form/createFinalFormBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,QAAA,MAAM,oBAAoB,GAAI,OAAO,cAAc,MACvC,gCAAgC,gBAAgB,CAAC,OAAO,CAAC,4CAGpE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"createFinalFormBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/form/createFinalFormBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,QAAA,MAAM,oBAAoB,GAAI,OAAO,cAAc,MACvC,gCAAgC,gBAAgB,CAAC,OAAO,CAAC,4CAGpE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type Dispatch, type SetStateAction } from "react";
2
- import { type BlockContext } from "../../context/BlockContext";
3
- import { type BlockInterface, type BlockMethods } from "../../types";
4
- import { type AdminComponentPropsMap, type AdminComponentsMap, type ChildBlockCountMap, type CompositeBlocksConfig, type DataMapInputApi, type DataMapOutputApi, type DataMapState, type IsValidMap, type PreviewMap } from "./types";
1
+ import type { Dispatch, SetStateAction } from "react";
2
+ import type { BlockContext } from "../../context/BlockContext";
3
+ import type { BlockInterface, BlockMethods } from "../../types";
4
+ import type { AdminComponentPropsMap, AdminComponentsMap, ChildBlockCountMap, CompositeBlocksConfig, DataMapInputApi, DataMapOutputApi, DataMapState, IsValidMap, PreviewMap } from "./types";
5
5
  export type CompositeBlockInterface<C extends CompositeBlocksConfig> = BlockInterface<DataMapInputApi<C>, DataMapState<C>, DataMapOutputApi<C>>;
6
6
  export type ComposeBlocksApi<C extends CompositeBlocksConfig> = {
7
7
  block: BlockMethods<DataMapInputApi<C>, DataMapState<C>, DataMapOutputApi<C>>;
@@ -1 +1 @@
1
- {"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAuB,MAAM,aAAa,CAAC;AAIhH,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EAElB,MAAM,SAAS,CAAC;AAKjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhJ,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC5D,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,GAAG,EAAE;QACD,mBAAmB,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9I,eAAe,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtI,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAIF,wBAAgB,aAAa,CAAC,CAAC,SAAS,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAmNtG"}
1
+ {"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAmB,cAAc,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAIjG,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EAEb,MAAM,SAAS,CAAC;AAKjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhJ,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC5D,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,GAAG,EAAE;QACD,mBAAmB,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9I,eAAe,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtI,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAIF,wBAAgB,aAAa,CAAC,CAAC,SAAS,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA8NtG"}
@@ -268,22 +268,58 @@ export function composeBlocks(compositeBlocks) {
268
268
  return Object.values(contentsPerBlock).reduce(function (contents, blockContents) {
269
269
  return [].concat(_toConsumableArray(contents), _toConsumableArray(blockContents));
270
270
  }, []);
271
- }
271
+ },
272
+ translateContent: function () {
273
+ var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
274
+ var translatedState;
275
+ return _regenerator().w(function (_context3) {
276
+ while (1) switch (_context3.n) {
277
+ case 0:
278
+ _context3.n = 1;
279
+ return applyToCompositeBlocksAsync(compositeBlocks, /*#__PURE__*/function () {
280
+ var _ref31 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref30, attr) {
281
+ var _ref32, block, options, extractedData;
282
+ return _regenerator().w(function (_context2) {
283
+ while (1) switch (_context2.n) {
284
+ case 0:
285
+ _ref32 = _slicedToArray(_ref30, 2), block = _ref32[0], options = _ref32[1];
286
+ extractedData = extractData([block, options], attr, state);
287
+ return _context2.a(2, block.translateContent ? block.translateContent(extractedData, translate) : extractedData);
288
+ }
289
+ }, _callee2);
290
+ }));
291
+ return function (_x4, _x5) {
292
+ return _ref31.apply(this, arguments);
293
+ };
294
+ }(), {
295
+ flatten: true
296
+ });
297
+ case 1:
298
+ translatedState = _context3.v;
299
+ return _context3.a(2, _objectSpread(_objectSpread({}, state), translatedState));
300
+ }
301
+ }, _callee3);
302
+ }));
303
+ function translateContent(_x2, _x3) {
304
+ return _translateContent.apply(this, arguments);
305
+ }
306
+ return translateContent;
307
+ }()
272
308
  },
273
309
  api: {
274
310
  adminComponentProps: adminComponentProps,
275
311
  adminComponents: function adminComponents(props) {
276
- return applyToCompositeBlocks(compositeBlocks, function (_ref30, attr) {
277
- var _ref31 = _slicedToArray(_ref30, 1),
278
- block = _ref31[0];
312
+ return applyToCompositeBlocks(compositeBlocks, function (_ref33, attr) {
313
+ var _ref34 = _slicedToArray(_ref33, 1),
314
+ block = _ref34[0];
279
315
  return /*#__PURE__*/_jsx(block.AdminComponent, _objectSpread({}, adminComponentProps(props)[attr]));
280
316
  });
281
317
  },
282
318
  previews: function previews(state, ctx) {
283
- return applyToCompositeBlocks(compositeBlocks, function (_ref32, attr) {
284
- var _ref33 = _slicedToArray(_ref32, 2),
285
- block = _ref33[0],
286
- options = _ref33[1];
319
+ return applyToCompositeBlocks(compositeBlocks, function (_ref35, attr) {
320
+ var _ref36 = _slicedToArray(_ref35, 2),
321
+ block = _ref36[0],
322
+ options = _ref36[1];
287
323
  if (isBlockInterface(block)) {
288
324
  var extractedData = extractData([block, options], attr, state);
289
325
  return /*#__PURE__*/_jsx(BlockPreviewContent, {
@@ -297,10 +333,10 @@ export function composeBlocks(compositeBlocks) {
297
333
  });
298
334
  },
299
335
  childBlockCounts: function childBlockCounts(state) {
300
- return applyToCompositeBlocks(compositeBlocks, function (_ref34, attr) {
301
- var _ref35 = _slicedToArray(_ref34, 2),
302
- block = _ref35[0],
303
- options = _ref35[1];
336
+ return applyToCompositeBlocks(compositeBlocks, function (_ref37, attr) {
337
+ var _ref38 = _slicedToArray(_ref37, 2),
338
+ block = _ref38[0],
339
+ options = _ref38[1];
304
340
  if (isBlockInterface(block)) {
305
341
  var _block$childBlockCoun, _block$childBlockCoun2;
306
342
  var extractedData = extractData([block, options], attr, state);
@@ -312,10 +348,10 @@ export function composeBlocks(compositeBlocks) {
312
348
  },
313
349
  // A map of isValid-fns for each block, the partial state is bound to the fn, so it takes no arguments
314
350
  isValids: function isValids(state) {
315
- return applyToCompositeBlocks(compositeBlocks, function (_ref36, attr) {
316
- var _ref37 = _slicedToArray(_ref36, 2),
317
- block = _ref37[0],
318
- options = _ref37[1];
351
+ return applyToCompositeBlocks(compositeBlocks, function (_ref39, attr) {
352
+ var _ref40 = _slicedToArray(_ref39, 2),
353
+ block = _ref40[0],
354
+ options = _ref40[1];
319
355
  var extractedData = extractData([block, options], attr, state);
320
356
  return function () {
321
357
  var _block$isValid;