@alfresco/aca-content 4.4.1 → 4.5.0-10004013253

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 (288) hide show
  1. package/about/about.component.d.ts +2 -2
  2. package/about/dev-mode.tokens.d.ts +1 -1
  3. package/about/package-json.token.d.ts +1 -1
  4. package/about/public-api.d.ts +1 -1
  5. package/assets/app.extensions.json +13 -19
  6. package/assets/i18n/ar.json +1 -1
  7. package/assets/i18n/cs.json +1 -1
  8. package/assets/i18n/da.json +1 -1
  9. package/assets/i18n/de.json +1 -1
  10. package/assets/i18n/en.json +1 -1
  11. package/assets/i18n/es.json +1 -1
  12. package/assets/i18n/fi.json +1 -1
  13. package/assets/i18n/fr.json +1 -1
  14. package/assets/i18n/it.json +1 -1
  15. package/assets/i18n/ja.json +1 -1
  16. package/assets/i18n/nb.json +1 -1
  17. package/assets/i18n/nl.json +1 -1
  18. package/assets/i18n/pl.json +1 -1
  19. package/assets/i18n/pt-BR.json +1 -1
  20. package/assets/i18n/ru.json +1 -1
  21. package/assets/i18n/sv.json +1 -1
  22. package/assets/i18n/zh-CN.json +1 -1
  23. package/esm2020/about/about.component.mjs +7 -7
  24. package/esm2020/about/aca-about.module.mjs +2 -2
  25. package/esm2020/about/dev-mode.tokens.mjs +2 -2
  26. package/esm2020/about/package-json.token.mjs +2 -2
  27. package/esm2020/about/public-api.mjs +2 -2
  28. package/esm2020/folder-rules/folder-rules.module.mjs +8 -3
  29. package/esm2020/folder-rules/folder-rules.rules.mjs +2 -2
  30. package/esm2020/folder-rules/manage-rules/manage-rules.smart-component.mjs +6 -5
  31. package/esm2020/folder-rules/model/action-parameter-constraint.model.mjs +2 -2
  32. package/esm2020/folder-rules/model/rule-action.model.mjs +2 -2
  33. package/esm2020/folder-rules/model/rule-composite-condition.model.mjs +2 -2
  34. package/esm2020/folder-rules/model/rule-grouping-item.model.mjs +2 -2
  35. package/esm2020/folder-rules/model/rule-set.model.mjs +2 -2
  36. package/esm2020/folder-rules/model/rule-simple-condition.model.mjs +2 -2
  37. package/esm2020/folder-rules/model/rule.model.mjs +2 -2
  38. package/esm2020/folder-rules/public-api.mjs +2 -2
  39. package/esm2020/folder-rules/rule-details/actions/rule-action-list.ui-component.mjs +2 -2
  40. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +77 -10
  41. package/esm2020/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.mjs +2 -2
  42. package/esm2020/folder-rules/rule-details/conditions/rule-condition-comparators.mjs +2 -2
  43. package/esm2020/folder-rules/rule-details/conditions/rule-condition-fields.mjs +2 -2
  44. package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +21 -22
  45. package/esm2020/folder-rules/rule-details/edit-rule-dialog.ui-component.mjs +2 -2
  46. package/esm2020/folder-rules/rule-details/options/rule-options.ui-component.mjs +2 -2
  47. package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +2 -2
  48. package/esm2020/folder-rules/rule-details/triggers/rule-triggers.ui-component.mjs +2 -2
  49. package/esm2020/folder-rules/rule-details/validators/rule-actions.validator.mjs +2 -2
  50. package/esm2020/folder-rules/rule-details/validators/rule-composite-condition.validator.mjs +2 -2
  51. package/esm2020/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +25 -19
  52. package/esm2020/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.mjs +2 -2
  53. package/esm2020/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.mjs +2 -2
  54. package/esm2020/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +2 -2
  55. package/esm2020/folder-rules/services/actions.service.mjs +2 -2
  56. package/esm2020/folder-rules/services/folder-rule-sets.service.mjs +7 -3
  57. package/esm2020/folder-rules/services/folder-rules.service.mjs +2 -2
  58. package/esm2020/lib/aca-content.module.mjs +39 -87
  59. package/esm2020/lib/aca-content.routes.mjs +2 -2
  60. package/esm2020/lib/components/common/index.mjs +2 -2
  61. package/esm2020/lib/components/common/language-picker/language-picker.component.mjs +2 -2
  62. package/esm2020/lib/components/common/location-link/location-link.component.mjs +2 -2
  63. package/esm2020/lib/components/common/logout/logout.component.mjs +5 -6
  64. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +2 -2
  65. package/esm2020/lib/components/common/user-info/user-info.component.mjs +2 -2
  66. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +7 -9
  67. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +2 -2
  68. package/esm2020/lib/components/context-menu/context-menu-overlay.mjs +2 -2
  69. package/esm2020/lib/components/context-menu/context-menu.component.mjs +8 -10
  70. package/esm2020/lib/components/context-menu/context-menu.service.mjs +2 -2
  71. package/esm2020/lib/components/context-menu/direction.token.mjs +2 -2
  72. package/esm2020/lib/components/context-menu/interfaces.mjs +2 -2
  73. package/esm2020/lib/components/details/details.component.mjs +2 -2
  74. package/esm2020/lib/components/dl-custom-components/name-column/name-column.component.mjs +7 -9
  75. package/esm2020/lib/components/dl-custom-components/tags-column/tags-column.component.mjs +2 -2
  76. package/esm2020/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.mjs +2 -2
  77. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +11 -12
  78. package/esm2020/lib/components/favorites/favorites.component.mjs +11 -12
  79. package/esm2020/lib/components/files/files.component.mjs +29 -27
  80. package/esm2020/lib/components/home/home.component.mjs +10 -14
  81. package/esm2020/lib/components/info-drawer/comments-tab/comments-tab.component.mjs +2 -2
  82. package/esm2020/lib/components/info-drawer/info.drawer.module.mjs +2 -2
  83. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +2 -2
  84. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-tab.component.mjs +2 -2
  85. package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +2 -2
  86. package/esm2020/lib/components/info-drawer/versions-tab/versions-tab.component.mjs +7 -8
  87. package/esm2020/lib/components/libraries/libraries.component.mjs +11 -12
  88. package/esm2020/lib/components/recent-files/recent-files.component.mjs +11 -12
  89. package/esm2020/lib/components/search/index.mjs +2 -2
  90. package/esm2020/lib/components/search/search-action-menu/search-action-menu.component.mjs +2 -2
  91. package/esm2020/lib/components/search/search-input/search-input.component.mjs +2 -2
  92. package/esm2020/lib/components/search/search-input-control/search-input-control.component.mjs +2 -2
  93. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +2 -2
  94. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +9 -10
  95. package/esm2020/lib/components/search/search-navigation.service.mjs +2 -2
  96. package/esm2020/lib/components/search/search-results/search-results.component.mjs +17 -22
  97. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +2 -2
  98. package/esm2020/lib/components/shared-files/shared-files.component.mjs +11 -12
  99. package/esm2020/lib/components/shared-link-view/shared-link-view.component.mjs +2 -2
  100. package/esm2020/lib/components/sidenav/components/button-menu.component.mjs +2 -2
  101. package/esm2020/lib/components/sidenav/components/expand-menu.component.mjs +2 -2
  102. package/esm2020/lib/components/sidenav/components/sidenav-header.component.mjs +11 -16
  103. package/esm2020/lib/components/sidenav/directives/action.directive.mjs +2 -2
  104. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +2 -2
  105. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +2 -2
  106. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +2 -2
  107. package/esm2020/lib/components/sidenav/index.mjs +2 -2
  108. package/esm2020/lib/components/sidenav/sidenav.component.mjs +5 -6
  109. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +2 -2
  110. package/esm2020/lib/components/toolbar/index.mjs +2 -2
  111. package/esm2020/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.mjs +2 -2
  112. package/esm2020/lib/components/toolbar/toggle-favorite/toggle-favorite.component.mjs +7 -8
  113. package/esm2020/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +7 -8
  114. package/esm2020/lib/components/toolbar/toggle-info-drawer/toggle-info-drawer.component.mjs +2 -2
  115. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.mjs +6 -7
  116. package/esm2020/lib/components/toolbar/toggle-join-library/toggle-join-library-menu.component.mjs +7 -8
  117. package/esm2020/lib/components/toolbar/view-node/view-node.component.mjs +2 -2
  118. package/esm2020/lib/components/trashcan/trashcan.component.mjs +10 -11
  119. package/esm2020/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +2 -2
  120. package/esm2020/lib/components/view-profile/view-profile.component.mjs +2 -2
  121. package/esm2020/lib/components/view-profile/view-profile.guard.mjs +2 -2
  122. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +2 -2
  123. package/esm2020/lib/directives/document-list.directive.mjs +44 -16
  124. package/esm2020/lib/extensions/core.extensions.module.mjs +2 -7
  125. package/esm2020/lib/services/content-management.service.mjs +26 -28
  126. package/esm2020/lib/services/content-url.service.mjs +2 -2
  127. package/esm2020/lib/services/node-actions.service.mjs +2 -2
  128. package/esm2020/lib/services/node-template.service.mjs +2 -2
  129. package/esm2020/lib/store/app-store.module.mjs +2 -2
  130. package/esm2020/lib/store/effects/app.effects.mjs +2 -2
  131. package/esm2020/lib/store/effects/contextmenu.effects.mjs +2 -2
  132. package/esm2020/lib/store/effects/download.effects.mjs +2 -2
  133. package/esm2020/lib/store/effects/favorite.effects.mjs +2 -2
  134. package/esm2020/lib/store/effects/library.effects.mjs +2 -2
  135. package/esm2020/lib/store/effects/node.effects.mjs +2 -2
  136. package/esm2020/lib/store/effects/search.effects.mjs +3 -3
  137. package/esm2020/lib/store/effects/template.effects.mjs +2 -2
  138. package/esm2020/lib/store/effects/upload.effects.mjs +2 -2
  139. package/esm2020/lib/store/effects/viewer.effects.mjs +2 -2
  140. package/esm2020/lib/store/effects.mjs +2 -2
  141. package/esm2020/lib/store/initial-state.mjs +3 -39
  142. package/esm2020/lib/store/reducers/app.reducer.mjs +3 -7
  143. package/esm2020/ms-office/actions/aos.actions.mjs +2 -2
  144. package/esm2020/ms-office/aos-extension.module.mjs +2 -2
  145. package/esm2020/ms-office/aos-extension.service.mjs +10 -12
  146. package/esm2020/ms-office/effects/aos.effects.mjs +2 -2
  147. package/esm2020/ms-office/public-api.mjs +2 -2
  148. package/esm2020/public-api.mjs +2 -2
  149. package/esm2020/viewer/lib/components/preview/preview.component.mjs +236 -0
  150. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +42 -203
  151. package/esm2020/viewer/lib/services/viewer.service.mjs +215 -0
  152. package/esm2020/viewer/lib/viewer.module.mjs +7 -6
  153. package/esm2020/viewer/public-api.mjs +3 -2
  154. package/fesm2015/alfresco-aca-content-about.mjs +10 -10
  155. package/fesm2015/alfresco-aca-content-about.mjs.map +1 -1
  156. package/fesm2015/alfresco-aca-content-folder-rules.mjs +167 -93
  157. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -1
  158. package/fesm2015/alfresco-aca-content-ms-office.mjs +10 -13
  159. package/fesm2015/alfresco-aca-content-ms-office.mjs.map +1 -1
  160. package/fesm2015/alfresco-aca-content-viewer.mjs +414 -195
  161. package/fesm2015/alfresco-aca-content-viewer.mjs.map +1 -1
  162. package/fesm2015/alfresco-aca-content.mjs +5995 -6053
  163. package/fesm2015/alfresco-aca-content.mjs.map +1 -1
  164. package/fesm2020/alfresco-aca-content-about.mjs +10 -10
  165. package/fesm2020/alfresco-aca-content-about.mjs.map +1 -1
  166. package/fesm2020/alfresco-aca-content-folder-rules.mjs +178 -96
  167. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -1
  168. package/fesm2020/alfresco-aca-content-ms-office.mjs +11 -14
  169. package/fesm2020/alfresco-aca-content-ms-office.mjs.map +1 -1
  170. package/fesm2020/alfresco-aca-content-viewer.mjs +449 -186
  171. package/fesm2020/alfresco-aca-content-viewer.mjs.map +1 -1
  172. package/fesm2020/alfresco-aca-content.mjs +4935 -4993
  173. package/fesm2020/alfresco-aca-content.mjs.map +1 -1
  174. package/folder-rules/folder-rules.module.d.ts +1 -1
  175. package/folder-rules/folder-rules.rules.d.ts +1 -1
  176. package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +1 -1
  177. package/folder-rules/model/action-parameter-constraint.model.d.ts +1 -1
  178. package/folder-rules/model/rule-action.model.d.ts +1 -1
  179. package/folder-rules/model/rule-composite-condition.model.d.ts +1 -1
  180. package/folder-rules/model/rule-grouping-item.model.d.ts +1 -1
  181. package/folder-rules/model/rule-set.model.d.ts +1 -1
  182. package/folder-rules/model/rule-simple-condition.model.d.ts +1 -1
  183. package/folder-rules/model/rule.model.d.ts +1 -1
  184. package/folder-rules/public-api.d.ts +1 -1
  185. package/folder-rules/rule-details/actions/rule-action-list.ui-component.d.ts +1 -1
  186. package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +10 -5
  187. package/folder-rules/rule-details/conditions/rule-composite-condition.ui-component.d.ts +1 -1
  188. package/folder-rules/rule-details/conditions/rule-condition-comparators.d.ts +1 -1
  189. package/folder-rules/rule-details/conditions/rule-condition-fields.d.ts +1 -1
  190. package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +5 -6
  191. package/folder-rules/rule-details/edit-rule-dialog.ui-component.d.ts +1 -1
  192. package/folder-rules/rule-details/options/rule-options.ui-component.d.ts +1 -1
  193. package/folder-rules/rule-details/rule-details.ui-component.d.ts +1 -1
  194. package/folder-rules/rule-details/triggers/rule-triggers.ui-component.d.ts +1 -1
  195. package/folder-rules/rule-details/validators/rule-actions.validator.d.ts +1 -1
  196. package/folder-rules/rule-details/validators/rule-composite-condition.validator.d.ts +1 -1
  197. package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +14 -9
  198. package/folder-rules/rule-list/rule-list-grouping/rule-list-grouping.ui-component.d.ts +1 -1
  199. package/folder-rules/rule-list/rule-list-item/rule-list-item.ui-component.d.ts +1 -1
  200. package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +1 -1
  201. package/lib/aca-content.module.d.ts +5 -16
  202. package/lib/aca-content.routes.d.ts +1 -1
  203. package/lib/components/common/index.d.ts +1 -1
  204. package/lib/components/common/location-link/location-link.component.d.ts +1 -1
  205. package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +1 -1
  206. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +1 -1
  207. package/lib/components/context-menu/context-menu-overlay.d.ts +1 -1
  208. package/lib/components/context-menu/context-menu.component.d.ts +1 -1
  209. package/lib/components/context-menu/context-menu.service.d.ts +1 -1
  210. package/lib/components/context-menu/direction.token.d.ts +1 -1
  211. package/lib/components/context-menu/interfaces.d.ts +1 -1
  212. package/lib/components/details/details.component.d.ts +1 -1
  213. package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +1 -1
  214. package/lib/components/dl-custom-components/thumbnail-column/thumbnail-column.component.d.ts +1 -1
  215. package/lib/components/favorite-libraries/favorite-libraries.component.d.ts +1 -1
  216. package/lib/components/favorites/favorites.component.d.ts +1 -1
  217. package/lib/components/files/files.component.d.ts +3 -3
  218. package/lib/components/home/home.component.d.ts +2 -6
  219. package/lib/components/info-drawer/comments-tab/comments-tab.component.d.ts +1 -1
  220. package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +1 -1
  221. package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +1 -1
  222. package/lib/components/info-drawer/versions-tab/versions-tab.component.d.ts +1 -1
  223. package/lib/components/recent-files/recent-files.component.d.ts +1 -1
  224. package/lib/components/search/index.d.ts +1 -1
  225. package/lib/components/search/search-action-menu/search-action-menu.component.d.ts +1 -1
  226. package/lib/components/search/search-input/search-input.component.d.ts +1 -1
  227. package/lib/components/search/search-input-control/search-input-control.component.d.ts +1 -1
  228. package/lib/components/search/search-libraries-results/search-libraries-query-builder.service.d.ts +1 -1
  229. package/lib/components/search/search-results/search-results.component.d.ts +1 -2
  230. package/lib/components/search/search-results-row/search-results-row.component.d.ts +1 -1
  231. package/lib/components/shared-files/shared-files.component.d.ts +1 -1
  232. package/lib/components/shared-link-view/shared-link-view.component.d.ts +1 -1
  233. package/lib/components/sidenav/components/button-menu.component.d.ts +1 -1
  234. package/lib/components/sidenav/components/expand-menu.component.d.ts +1 -1
  235. package/lib/components/sidenav/components/sidenav-header.component.d.ts +4 -5
  236. package/lib/components/sidenav/directives/active-link.directive.d.ts +1 -1
  237. package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +1 -1
  238. package/lib/components/sidenav/directives/menu-panel.directive.d.ts +1 -1
  239. package/lib/components/sidenav/index.d.ts +1 -1
  240. package/lib/components/sidenav/sidenav.component.d.ts +1 -1
  241. package/lib/components/sidenav/user-menu/user-menu.component.d.ts +1 -1
  242. package/lib/components/toolbar/index.d.ts +1 -1
  243. package/lib/components/toolbar/toggle-edit-offline/toggle-edit-offline.component.d.ts +1 -1
  244. package/lib/components/toolbar/toggle-favorite/toggle-favorite.component.d.ts +1 -1
  245. package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +1 -1
  246. package/lib/components/toolbar/toggle-join-library/toggle-join-library-button.component.d.ts +1 -1
  247. package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +1 -1
  248. package/lib/components/view-profile/view-profile.component.d.ts +1 -1
  249. package/lib/dialogs/node-template/create-from-template.dialog.d.ts +1 -1
  250. package/lib/directives/document-list.directive.d.ts +4 -1
  251. package/lib/extensions/core.extensions.module.d.ts +1 -2
  252. package/lib/services/content-management.service.d.ts +4 -3
  253. package/lib/store/effects/app.effects.d.ts +1 -1
  254. package/lib/store/effects/download.effects.d.ts +1 -1
  255. package/lib/store/effects/favorite.effects.d.ts +1 -1
  256. package/lib/store/effects/library.effects.d.ts +1 -1
  257. package/lib/store/effects/node.effects.d.ts +1 -1
  258. package/lib/store/effects/search.effects.d.ts +1 -1
  259. package/lib/store/effects/template.effects.d.ts +1 -1
  260. package/lib/store/effects/upload.effects.d.ts +1 -1
  261. package/lib/store/effects/viewer.effects.d.ts +1 -1
  262. package/lib/store/effects.d.ts +1 -1
  263. package/lib/store/initial-state.d.ts +2 -4
  264. package/lib/store/reducers/app.reducer.d.ts +1 -1
  265. package/ms-office/actions/aos.actions.d.ts +1 -1
  266. package/ms-office/aos-extension.module.d.ts +1 -1
  267. package/ms-office/aos-extension.service.d.ts +5 -5
  268. package/ms-office/public-api.d.ts +1 -1
  269. package/package.json +5 -13
  270. package/public-api.d.ts +1 -1
  271. package/{preview/lib/components → viewer/lib/components/preview}/preview.component.d.ts +16 -43
  272. package/viewer/lib/components/viewer/viewer.component.d.ts +20 -46
  273. package/viewer/lib/services/viewer.service.d.ts +65 -0
  274. package/viewer/lib/viewer.module.d.ts +2 -1
  275. package/viewer/public-api.d.ts +2 -1
  276. package/esm2020/folder-rules/rule-details/conditions/rule-mime-types.mjs +0 -25
  277. package/esm2020/preview/alfresco-aca-content-preview.mjs +0 -5
  278. package/esm2020/preview/lib/components/preview.component.mjs +0 -394
  279. package/esm2020/preview/lib/preview.module.mjs +0 -39
  280. package/esm2020/preview/public-api.mjs +0 -29
  281. package/fesm2015/alfresco-aca-content-preview.mjs +0 -447
  282. package/fesm2015/alfresco-aca-content-preview.mjs.map +0 -1
  283. package/fesm2020/alfresco-aca-content-preview.mjs +0 -461
  284. package/fesm2020/alfresco-aca-content-preview.mjs.map +0 -1
  285. package/folder-rules/rule-details/conditions/rule-mime-types.d.ts +0 -27
  286. package/preview/index.d.ts +0 -5
  287. package/preview/lib/preview.module.d.ts +0 -7
  288. package/preview/public-api.d.ts +0 -25
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
3
  *
4
4
  * Alfresco Example Content Application
5
5
  *
@@ -168,8 +168,8 @@ export class FolderRuleSetsService {
168
168
  }
169
169
  else {
170
170
  this.mainRuleSet = null;
171
- this.mainRuleSetSource.next(this.mainRuleSet);
172
171
  }
172
+ this.mainRuleSetSource.next(this.mainRuleSet);
173
173
  this.folderRulesService.selectRule(this.mainRuleSet?.rules[0] ?? this.inheritedRuleSets[0]?.rules[0] ?? null);
174
174
  }
175
175
  }
@@ -183,6 +183,7 @@ export class FolderRuleSetsService {
183
183
  else {
184
184
  this.mainRuleSet.rules.push(newRule);
185
185
  }
186
+ this.mainRuleSetSource.next(this.mainRuleSet);
186
187
  this.folderRulesService.selectRule(newRule);
187
188
  }
188
189
  else {
@@ -192,6 +193,9 @@ export class FolderRuleSetsService {
192
193
  refreshMainRuleSet(ruleToSelect = null) {
193
194
  this.getMainRuleSet(this.currentFolder.id).subscribe((mainRuleSet) => {
194
195
  this.mainRuleSet = { ...mainRuleSet };
196
+ if (!this.mainRuleSet.rules) {
197
+ this.mainRuleSet = null;
198
+ }
195
199
  this.mainRuleSetSource.next(this.mainRuleSet);
196
200
  if (mainRuleSet) {
197
201
  const ruleToSelectInRuleSet = ruleToSelect ? mainRuleSet.rules.find((rule) => rule.id === ruleToSelect.id) : mainRuleSet.rules[0];
@@ -218,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
218
222
  providedIn: 'root'
219
223
  }]
220
224
  }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.ContentApiService }, { type: i3.FolderRulesService }]; } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGUtc2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9zZXJ2aWNlcy9mb2xkZXItcnVsZS1zZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLHFCQUFxQjtJQTZDaEMsWUFBb0IsVUFBOEIsRUFBVSxVQUE2QixFQUFVLGtCQUFzQztRQUFySCxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQTdCakksa0JBQWEsR0FBYSxJQUFJLENBQUM7UUFDL0IsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDNUIsc0JBQWlCLEdBQWMsRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3ZELDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFZ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aUJBQWlCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsb0JBQTRCLEVBQUUsaUJBQXlCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLG9CQUFvQixtQkFBbUIsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0RyxDQUFDOztBQXROYSwyQ0FBcUIsR0FBRyxHQUFJLENBQUE7a0hBRC9CLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm9kZUluZm8gfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bGVTZXQgfSBmcm9tICcuLi9tb2RlbC9ydWxlLXNldC5tb2RlbCc7XG5pbXBvcnQgeyBDb250ZW50QXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkJztcbmltcG9ydCB7IE5vZGVFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgRm9sZGVyUnVsZXNTZXJ2aWNlIH0gZnJvbSAnLi9mb2xkZXItcnVsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvbGRlclJ1bGVTZXRzU2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgTUFYX1JVTEVfU0VUU19QRVJfR0VUID0gMTAwO1xuXG4gIHN0YXRpYyBpc093bmVkUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBydWxlU2V0Py5vd25pbmdGb2xkZXI/LmlkID09PSBub2RlSWQ7XG4gIH1cbiAgc3RhdGljIGlzTGlua2VkUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBydWxlU2V0Py5saW5rZWRUb0J5LmluZGV4T2Yobm9kZUlkKSA+IC0xO1xuICB9XG4gIHN0YXRpYyBpc01haW5SdWxlU2V0KHJ1bGVTZXQ6IFJ1bGVTZXQsIG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPd25lZFJ1bGVTZXQocnVsZVNldCwgbm9kZUlkKSB8fCB0aGlzLmlzTGlua2VkUnVsZVNldChydWxlU2V0LCBub2RlSWQpO1xuICB9XG4gIHN0YXRpYyBpc0luaGVyaXRlZFJ1bGVTZXQocnVsZVNldDogUnVsZVNldCwgbm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNYWluUnVsZVNldChydWxlU2V0LCBub2RlSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50Rm9sZGVyOiBOb2RlSW5mbyA9IG51bGw7XG4gIHByaXZhdGUgbWFpblJ1bGVTZXQ6IFJ1bGVTZXQgPSBudWxsO1xuICBwcml2YXRlIGluaGVyaXRlZFJ1bGVTZXRzOiBSdWxlU2V0W10gPSBbXTtcbiAgcHJpdmF0ZSBoYXNNb3JlUnVsZVNldHMgPSB0cnVlO1xuXG4gIHByaXZhdGUgbWFpblJ1bGVTZXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJ1bGVTZXQ+KG51bGwpO1xuICBwcml2YXRlIGluaGVyaXRlZFJ1bGVTZXRzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdWxlU2V0W10+KFtdKTtcbiAgcHJpdmF0ZSBoYXNNb3JlUnVsZVNldHNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIGZvbGRlckluZm9Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5vZGVJbmZvPihudWxsKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBtYWluUnVsZVNldCQ6IE9ic2VydmFibGU8UnVsZVNldD4gPSB0aGlzLm1haW5SdWxlU2V0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBpbmhlcml0ZWRSdWxlU2V0cyQ6IE9ic2VydmFibGU8UnVsZVNldFtdPiA9IHRoaXMuaW5oZXJpdGVkUnVsZVNldHNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gIGhhc01vcmVSdWxlU2V0cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmhhc01vcmVSdWxlU2V0c1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgZm9sZGVySW5mbyQ6IE9ic2VydmFibGU8Tm9kZUluZm8+ID0gdGhpcy5mb2xkZXJJbmZvU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0xvYWRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgc2VsZWN0ZWRSdWxlU2V0JCA9IHRoaXMuZm9sZGVyUnVsZXNTZXJ2aWNlLnNlbGVjdGVkUnVsZSQucGlwZShcbiAgICBtYXAoKHJ1bGU6IFJ1bGUpID0+IHtcbiAgICAgIGlmIChydWxlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubWFpblJ1bGVTZXQ/LnJ1bGVzLmZpbmRJbmRleCgocjogUnVsZSkgPT4gci5pZCA9PT0gcnVsZS5pZCkgPiAtMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluUnVsZVNldDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzLmZpbmQoKHJ1bGVTZXQ6IFJ1bGVTZXQpID0+IHJ1bGVTZXQucnVsZXMuZmluZEluZGV4KChyOiBSdWxlKSA9PiByLmlkID09PSBydWxlLmlkKSA+IC0xKSA/PyBudWxsO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsIHByaXZhdGUgZm9sZGVyUnVsZXNTZXJ2aWNlOiBGb2xkZXJSdWxlc1NlcnZpY2UpIHt9XG5cbiAgcHJpdmF0ZSBjYWxsQXBpKHBhdGg6IHN0cmluZywgaHR0cE1ldGhvZDogc3RyaW5nLCBib2R5OiBvYmplY3QgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gQVBJcyB1c2VkIGJ5IHRoaXMgc2VydmljZSBhcmUgc3RpbGwgcHJpdmF0ZSBhbmQgbm90IHlldCBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2VcbiAgICBjb25zdCBwYXJhbXMgPSBbe30sIHt9LCB7fSwge30sIGJvZHksIFsnYXBwbGljYXRpb24vanNvbiddLCBbJ2FwcGxpY2F0aW9uL2pzb24nXV07XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpLmNvbnRlbnRQcml2YXRlQ2xpZW50LmNhbGxBcGkocGF0aCwgaHR0cE1ldGhvZCwgLi4ucGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWFpblJ1bGVTZXQobm9kZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJ1bGVTZXQ+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXRzLy1kZWZhdWx0LT9pbmNsdWRlPWlzTGlua2VkVG8sb3duaW5nRm9sZGVyLGxpbmtlZFRvQnlgLCAnR0VUJykpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICByZXR1cm4gb2YoeyBlbnRyeTogbnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YoZXJyb3IpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gdGhpcy5mb3JtYXRSdWxlU2V0KHJlcy5lbnRyeSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5oZXJpdGVkUnVsZVNldHMobm9kZUlkOiBzdHJpbmcsIHNraXBDb3VudCA9IDApOiBPYnNlcnZhYmxlPFJ1bGVTZXRbXT4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5jYWxsQXBpKFxuICAgICAgICBgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHM/aW5jbHVkZT1pc0xpbmtlZFRvLG93bmluZ0ZvbGRlcixsaW5rZWRUb0J5JnNraXBDb3VudD0ke3NraXBDb3VudH0mbWF4SXRlbXM9JHtGb2xkZXJSdWxlU2V0c1NlcnZpY2UuTUFYX1JVTEVfU0VUU19QRVJfR0VUfWAsXG4gICAgICAgICdHRVQnXG4gICAgICApXG4gICAgKS5waXBlKFxuICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcz8ubGlzdD8ucGFnaW5hdGlvbikge1xuICAgICAgICAgIHRoaXMuaGFzTW9yZVJ1bGVTZXRzID0gcmVzLmxpc3QucGFnaW5hdGlvbi5oYXNNb3JlSXRlbXM7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHRoaXMuZm9ybWF0UnVsZVNldHMocmVzKSksXG4gICAgICBtYXAoKHJ1bGVTZXRzOiBSdWxlU2V0W10pID0+IHJ1bGVTZXRzLmZpbHRlcigocnVsZVNldCkgPT4gRm9sZGVyUnVsZVNldHNTZXJ2aWNlLmlzSW5oZXJpdGVkUnVsZVNldChydWxlU2V0LCB0aGlzLmN1cnJlbnRGb2xkZXIuaWQpKSlcbiAgICApO1xuICB9XG5cbiAgbG9hZFJ1bGVTZXRzKG5vZGVJZDogc3RyaW5nLCBsb2FkSW5oZXJpdGVkUnVsZVNldHMgPSB0cnVlKSB7XG4gICAgdGhpcy5pc0xvYWRpbmdTb3VyY2UubmV4dCh0cnVlKTtcbiAgICB0aGlzLm1haW5SdWxlU2V0ID0gbnVsbDtcbiAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzID0gW107XG4gICAgdGhpcy5oYXNNb3JlUnVsZVNldHMgPSB0cnVlO1xuICAgIHRoaXMuY3VycmVudEZvbGRlciA9IG51bGw7XG4gICAgdGhpcy5tYWluUnVsZVNldFNvdXJjZS5uZXh0KHRoaXMubWFpblJ1bGVTZXQpO1xuICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHNTb3VyY2UubmV4dCh0aGlzLmluaGVyaXRlZFJ1bGVTZXRzKTtcbiAgICB0aGlzLmhhc01vcmVSdWxlU2V0c1NvdXJjZS5uZXh0KHRoaXMuaGFzTW9yZVJ1bGVTZXRzKTtcbiAgICB0aGlzLmdldE5vZGVJbmZvKG5vZGVJZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG5vZGVJbmZvOiBOb2RlSW5mbykgPT4ge1xuICAgICAgICAgIHRoaXMuY3VycmVudEZvbGRlciA9IG5vZGVJbmZvO1xuICAgICAgICAgIHRoaXMuZm9sZGVySW5mb1NvdXJjZS5uZXh0KHRoaXMuY3VycmVudEZvbGRlcik7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gY29tYmluZUxhdGVzdCh0aGlzLmdldE1haW5SdWxlU2V0KG5vZGVJZCksIGxvYWRJbmhlcml0ZWRSdWxlU2V0cyA/IHRoaXMuZ2V0SW5oZXJpdGVkUnVsZVNldHMobm9kZUlkKSA6IG9mKFtdKSkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFttYWluUnVsZVNldCwgaW5oZXJpdGVkUnVsZVNldHNdKSA9PiB7XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXQgPSBtYWluUnVsZVNldDtcbiAgICAgICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0cyA9IGluaGVyaXRlZFJ1bGVTZXRzO1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0U291cmNlLm5leHQobWFpblJ1bGVTZXQpO1xuICAgICAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzU291cmNlLm5leHQoaW5oZXJpdGVkUnVsZVNldHMpO1xuICAgICAgICB0aGlzLmhhc01vcmVSdWxlU2V0c1NvdXJjZS5uZXh0KHRoaXMuaGFzTW9yZVJ1bGVTZXRzKTtcbiAgICAgICAgY29uc3QgcnVsZVRvU2VsZWN0ID1cbiAgICAgICAgICBtYWluUnVsZVNldD8ucnVsZXMuZmluZCgocjogUnVsZSkgPT4gRm9sZGVyUnVsZVNldHNTZXJ2aWNlLmlzT3duZWRSdWxlU2V0KG1haW5SdWxlU2V0LCBub2RlSWQpIHx8IHIuaXNFbmFibGVkKSA/P1xuICAgICAgICAgIGluaGVyaXRlZFJ1bGVTZXRzLnJlZHVjZSgoZm91bmRSdWxlOiBSdWxlLCBydWxlU2V0OiBSdWxlU2V0KSA9PiBmb3VuZFJ1bGUgPz8gcnVsZVNldC5ydWxlcy5maW5kKChyOiBSdWxlKSA9PiByLmlzRW5hYmxlZCksIG51bGwpO1xuICAgICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RSdWxlKHJ1bGVUb1NlbGVjdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGxvYWRNb3JlSW5oZXJpdGVkUnVsZVNldHMoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmdTb3VyY2UubmV4dCh0cnVlKTtcbiAgICB0aGlzLmdldEluaGVyaXRlZFJ1bGVTZXRzKHRoaXMuY3VycmVudEZvbGRlci5pZCwgdGhpcy5pbmhlcml0ZWRSdWxlU2V0cy5sZW5ndGgpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZ1NvdXJjZS5uZXh0KGZhbHNlKSkpXG4gICAgICAuc3Vic2NyaWJlKChydWxlU2V0cykgPT4ge1xuICAgICAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzLnB1c2goLi4ucnVsZVNldHMpO1xuICAgICAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzU291cmNlLm5leHQodGhpcy5pbmhlcml0ZWRSdWxlU2V0cyk7XG4gICAgICAgIHRoaXMuaGFzTW9yZVJ1bGVTZXRzU291cmNlLm5leHQodGhpcy5oYXNNb3JlUnVsZVNldHMpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5vZGVJbmZvKG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOb2RlSW5mbz4ge1xuICAgIGlmIChub2RlSWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZShub2RlSWQpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoeyBlbnRyeTogbnVsbCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZW50cnk6IE5vZGVFbnRyeSkgPT4gZW50cnkuZW50cnkpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRSdWxlU2V0cyhyZXM6IGFueSk6IE9ic2VydmFibGU8UnVsZVNldFtdPiB7XG4gICAgcmV0dXJuIHJlcz8ubGlzdD8uZW50cmllcyAmJiByZXMubGlzdC5lbnRyaWVzIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgID8gY29tYmluZUxhdGVzdCgocmVzLmxpc3QuZW50cmllcyBhcyBBcnJheTxhbnk+KS5tYXAoKGVudHJ5KSA9PiB0aGlzLmZvcm1hdFJ1bGVTZXQoZW50cnkuZW50cnkpKSlcbiAgICAgIDogb2YoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRSdWxlU2V0KGVudHJ5OiBhbnkpOiBPYnNlcnZhYmxlPFJ1bGVTZXQ+IHtcbiAgICBpZiAoIWVudHJ5KSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyPy5pZCA9PT0gZW50cnkub3duaW5nRm9sZGVyID8gb2YodGhpcy5jdXJyZW50Rm9sZGVyKSA6IHRoaXMuZ2V0Tm9kZUluZm8oZW50cnkub3duaW5nRm9sZGVyIHx8ICcnKSxcbiAgICAgIHRoaXMuZm9sZGVyUnVsZXNTZXJ2aWNlLmdldFJ1bGVzKHRoaXMuY3VycmVudEZvbGRlci5pZCB8fCAnJywgZW50cnkuaWQpXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbb3duaW5nRm9sZGVyTm9kZUluZm8sIGdldFJ1bGVzUmVzXSkgPT4gKHtcbiAgICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgICBpc0xpbmtlZFRvOiBlbnRyeS5pc0xpbmtlZFRvIHx8IGZhbHNlLFxuICAgICAgICBvd25pbmdGb2xkZXI6IG93bmluZ0ZvbGRlck5vZGVJbmZvLFxuICAgICAgICBsaW5rZWRUb0J5OiBlbnRyeS5saW5rZWRUb0J5IHx8IFtdLFxuICAgICAgICBydWxlczogZ2V0UnVsZXNSZXMucnVsZXMsXG4gICAgICAgIGhhc01vcmVSdWxlczogZ2V0UnVsZXNSZXMuaGFzTW9yZVJ1bGVzLFxuICAgICAgICBsb2FkaW5nUnVsZXM6IGZhbHNlXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlUnVsZUZyb21NYWluUnVsZVNldChydWxlSWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm1haW5SdWxlU2V0KSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMubWFpblJ1bGVTZXQucnVsZXMuZmluZEluZGV4KChydWxlOiBSdWxlKSA9PiBydWxlLmlkID09PSBydWxlSWQpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgaWYgKHRoaXMubWFpblJ1bGVTZXQucnVsZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRoaXMubWFpblJ1bGVTZXQucnVsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1haW5SdWxlU2V0ID0gbnVsbDtcbiAgICAgICAgICB0aGlzLm1haW5SdWxlU2V0U291cmNlLm5leHQodGhpcy5tYWluUnVsZVNldCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0UnVsZSh0aGlzLm1haW5SdWxlU2V0Py5ydWxlc1swXSA/PyB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzWzBdPy5ydWxlc1swXSA/PyBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRPclVwZGF0ZVJ1bGVJbk1haW5SdWxlU2V0KG5ld1J1bGU6IFJ1bGUpIHtcbiAgICBpZiAodGhpcy5tYWluUnVsZVNldCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLmZpbmRJbmRleCgocnVsZTogUnVsZSkgPT4gcnVsZS5pZCA9PT0gbmV3UnVsZS5pZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLnNwbGljZShpbmRleCwgMSwgbmV3UnVsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLnB1c2gobmV3UnVsZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RSdWxlKG5ld1J1bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZnJlc2hNYWluUnVsZVNldChuZXdSdWxlKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoTWFpblJ1bGVTZXQocnVsZVRvU2VsZWN0OiBSdWxlID0gbnVsbCkge1xuICAgIHRoaXMuZ2V0TWFpblJ1bGVTZXQodGhpcy5jdXJyZW50Rm9sZGVyLmlkKS5zdWJzY3JpYmUoKG1haW5SdWxlU2V0OiBSdWxlU2V0KSA9PiB7XG4gICAgICB0aGlzLm1haW5SdWxlU2V0ID0geyAuLi5tYWluUnVsZVNldCB9O1xuICAgICAgdGhpcy5tYWluUnVsZVNldFNvdXJjZS5uZXh0KHRoaXMubWFpblJ1bGVTZXQpO1xuICAgICAgaWYgKG1haW5SdWxlU2V0KSB7XG4gICAgICAgIGNvbnN0IHJ1bGVUb1NlbGVjdEluUnVsZVNldCA9IHJ1bGVUb1NlbGVjdCA/IG1haW5SdWxlU2V0LnJ1bGVzLmZpbmQoKHJ1bGU6IFJ1bGUpID0+IHJ1bGUuaWQgPT09IHJ1bGVUb1NlbGVjdC5pZCkgOiBtYWluUnVsZVNldC5ydWxlc1swXTtcbiAgICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0UnVsZShydWxlVG9TZWxlY3RJblJ1bGVTZXQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUnVsZVNldExpbmsoZm9sZGVySWRUb0NyZWF0ZUxpbms6IHN0cmluZywgZm9sZGVySWRUb0xpbmtGcm9tOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgaWQ6IGZvbGRlcklkVG9MaW5rRnJvbVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY2FsbEFwaShgL25vZGVzLyR7Zm9sZGVySWRUb0NyZWF0ZUxpbmt9L3J1bGUtc2V0LWxpbmtzYCwgJ1BPU1QnLCBkYXRhKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVJ1bGVTZXRMaW5rKGZvbGRlcklkVG9EZWxldGVMaW5rOiBzdHJpbmcsIHJ1bGVTZXRJZFRvRGVsZXRlOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtmb2xkZXJJZFRvRGVsZXRlTGlua30vcnVsZS1zZXQtbGlua3MvJHtydWxlU2V0SWRUb0RlbGV0ZX1gLCAnREVMRVRFJyk7XG4gIH1cbn1cbiJdfQ==
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGUtc2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9zZXJ2aWNlcy9mb2xkZXItcnVsZS1zZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLHFCQUFxQjtJQTZDaEMsWUFBb0IsVUFBOEIsRUFBVSxVQUE2QixFQUFVLGtCQUFzQztRQUFySCxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQTdCakksa0JBQWEsR0FBYSxJQUFJLENBQUM7UUFDL0IsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDNUIsc0JBQWlCLEdBQWMsRUFBRSxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3ZELDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzdELDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFXLElBQUksQ0FBQyxDQUFDO1FBQ3ZELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFOUQsaUJBQVksR0FBd0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFFLHVCQUFrQixHQUEwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEYscUJBQWdCLEdBQXdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRixnQkFBVyxHQUF5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekUsZUFBVSxHQUF3QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRFLHFCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN6QjtZQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNoSSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRTBJLENBQUM7SUExQzdJLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZ0IsRUFBRSxNQUFjO1FBQ3BELE9BQU8sT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEtBQUssTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFDRCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQWdCLEVBQUUsTUFBYztRQUNyRCxPQUFPLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWdCLEVBQUUsTUFBYztRQUNuRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBZ0IsRUFBRSxNQUFjO1FBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBaUNPLE9BQU8sQ0FBQyxJQUFZLEVBQUUsVUFBa0IsRUFBRSxPQUFlLEVBQUU7UUFDakUsbUZBQW1GO1FBQ25GLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFjO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxNQUFNLGlFQUFpRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0SCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxTQUFTLEdBQUcsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsT0FBTyxDQUNWLFVBQVUsTUFBTSxtRUFBbUUsU0FBUyxhQUFhLHFCQUFxQixDQUFDLHFCQUFxQixFQUFFLEVBQ3RKLEtBQUssQ0FDTixDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1YsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7YUFDekQ7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDNUMsR0FBRyxDQUFDLENBQUMsUUFBbUIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNySSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7YUFDckIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDL0gsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2pEO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN0RCxNQUFNLFlBQVksR0FDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFPLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDOUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBZSxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25JLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO2FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN0RCxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBYztRQUNoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUN6QyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDNUI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUN2QyxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFRO1FBQzdCLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLFlBQVksS0FBSztZQUM1RCxDQUFDLENBQUMsYUFBYSxDQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakI7UUFDRCxPQUFPLGFBQWEsQ0FDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxFQUNuSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQ3hFLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSztZQUNyQyxZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDbEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQ3hCLFlBQVksRUFBRSxXQUFXLENBQUMsWUFBWTtZQUN0QyxZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUFDLE1BQWM7UUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUNuRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3pDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjtnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO2FBQy9HO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsT0FBYTtRQUN4QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZUFBcUIsSUFBSTtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBb0IsRUFBRSxFQUFFO1lBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxJQUFJLFdBQVcsRUFBRTtnQkFDZixNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4SSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDM0Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsb0JBQTRCLEVBQUUsa0JBQTBCO1FBQzlFLE1BQU0sSUFBSSxHQUFHO1lBQ1gsRUFBRSxFQUFFLGtCQUFrQjtTQUN2QixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsb0JBQW9CLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUE0QixFQUFFLGlCQUF5QjtRQUM3RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxvQkFBb0IsbUJBQW1CLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEcsQ0FBQzs7QUExTmEsMkNBQXFCLEdBQUcsR0FBSSxDQUFBO2tIQUQvQixxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5vZGVJbmZvIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSdWxlU2V0IH0gZnJvbSAnLi4vbW9kZWwvcnVsZS1zZXQubW9kZWwnO1xuaW1wb3J0IHsgQ29udGVudEFwaVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBOb2RlRW50cnkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEZvbGRlclJ1bGVzU2VydmljZSB9IGZyb20gJy4vZm9sZGVyLXJ1bGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJy4uL21vZGVsL3J1bGUubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJSdWxlU2V0c1NlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIE1BWF9SVUxFX1NFVFNfUEVSX0dFVCA9IDEwMDtcblxuICBzdGF0aWMgaXNPd25lZFJ1bGVTZXQocnVsZVNldDogUnVsZVNldCwgbm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcnVsZVNldD8ub3duaW5nRm9sZGVyPy5pZCA9PT0gbm9kZUlkO1xuICB9XG4gIHN0YXRpYyBpc0xpbmtlZFJ1bGVTZXQocnVsZVNldDogUnVsZVNldCwgbm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcnVsZVNldD8ubGlua2VkVG9CeS5pbmRleE9mKG5vZGVJZCkgPiAtMTtcbiAgfVxuICBzdGF0aWMgaXNNYWluUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzT3duZWRSdWxlU2V0KHJ1bGVTZXQsIG5vZGVJZCkgfHwgdGhpcy5pc0xpbmtlZFJ1bGVTZXQocnVsZVNldCwgbm9kZUlkKTtcbiAgfVxuICBzdGF0aWMgaXNJbmhlcml0ZWRSdWxlU2V0KHJ1bGVTZXQ6IFJ1bGVTZXQsIG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzTWFpblJ1bGVTZXQocnVsZVNldCwgbm9kZUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudEZvbGRlcjogTm9kZUluZm8gPSBudWxsO1xuICBwcml2YXRlIG1haW5SdWxlU2V0OiBSdWxlU2V0ID0gbnVsbDtcbiAgcHJpdmF0ZSBpbmhlcml0ZWRSdWxlU2V0czogUnVsZVNldFtdID0gW107XG4gIHByaXZhdGUgaGFzTW9yZVJ1bGVTZXRzID0gdHJ1ZTtcblxuICBwcml2YXRlIG1haW5SdWxlU2V0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdWxlU2V0PihudWxsKTtcbiAgcHJpdmF0ZSBpbmhlcml0ZWRSdWxlU2V0c1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVsZVNldFtdPihbXSk7XG4gIHByaXZhdGUgaGFzTW9yZVJ1bGVTZXRzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBmb2xkZXJJbmZvU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOb2RlSW5mbz4obnVsbCk7XG4gIHByaXZhdGUgaXNMb2FkaW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgbWFpblJ1bGVTZXQkOiBPYnNlcnZhYmxlPFJ1bGVTZXQ+ID0gdGhpcy5tYWluUnVsZVNldFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgaW5oZXJpdGVkUnVsZVNldHMkOiBPYnNlcnZhYmxlPFJ1bGVTZXRbXT4gPSB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICBoYXNNb3JlUnVsZVNldHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNNb3JlUnVsZVNldHNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gIGZvbGRlckluZm8kOiBPYnNlcnZhYmxlPE5vZGVJbmZvPiA9IHRoaXMuZm9sZGVySW5mb1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaXNMb2FkaW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHNlbGVjdGVkUnVsZVNldCQgPSB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RlZFJ1bGUkLnBpcGUoXG4gICAgbWFwKChydWxlOiBSdWxlKSA9PiB7XG4gICAgICBpZiAocnVsZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1haW5SdWxlU2V0Py5ydWxlcy5maW5kSW5kZXgoKHI6IFJ1bGUpID0+IHIuaWQgPT09IHJ1bGUuaWQpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpblJ1bGVTZXQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pbmhlcml0ZWRSdWxlU2V0cy5maW5kKChydWxlU2V0OiBSdWxlU2V0KSA9PiBydWxlU2V0LnJ1bGVzLmZpbmRJbmRleCgocjogUnVsZSkgPT4gci5pZCA9PT0gcnVsZS5pZCkgPiAtMSkgPz8gbnVsbDtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLCBwcml2YXRlIGNvbnRlbnRBcGk6IENvbnRlbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGZvbGRlclJ1bGVzU2VydmljZTogRm9sZGVyUnVsZXNTZXJ2aWNlKSB7fVxuXG4gIHByaXZhdGUgY2FsbEFwaShwYXRoOiBzdHJpbmcsIGh0dHBNZXRob2Q6IHN0cmluZywgYm9keTogb2JqZWN0ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIEFQSXMgdXNlZCBieSB0aGlzIHNlcnZpY2UgYXJlIHN0aWxsIHByaXZhdGUgYW5kIG5vdCB5ZXQgYXZhaWxhYmxlIGZvciBwdWJsaWMgdXNlXG4gICAgY29uc3QgcGFyYW1zID0gW3t9LCB7fSwge30sIHt9LCBib2R5LCBbJ2FwcGxpY2F0aW9uL2pzb24nXSwgWydhcHBsaWNhdGlvbi9qc29uJ11dO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKS5jb250ZW50UHJpdmF0ZUNsaWVudC5jYWxsQXBpKHBhdGgsIGh0dHBNZXRob2QsIC4uLnBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIGdldE1haW5SdWxlU2V0KG5vZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSdWxlU2V0PiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtub2RlSWR9L3J1bGUtc2V0cy8tZGVmYXVsdC0/aW5jbHVkZT1pc0xpbmtlZFRvLG93bmluZ0ZvbGRlcixsaW5rZWRUb0J5YCwgJ0dFVCcpKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHsgZW50cnk6IG51bGwgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHRoaXMuZm9ybWF0UnVsZVNldChyZXMuZW50cnkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaGVyaXRlZFJ1bGVTZXRzKG5vZGVJZDogc3RyaW5nLCBza2lwQ291bnQgPSAwKTogT2JzZXJ2YWJsZTxSdWxlU2V0W10+IHtcbiAgICByZXR1cm4gZnJvbShcbiAgICAgIHRoaXMuY2FsbEFwaShcbiAgICAgICAgYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXRzP2luY2x1ZGU9aXNMaW5rZWRUbyxvd25pbmdGb2xkZXIsbGlua2VkVG9CeSZza2lwQ291bnQ9JHtza2lwQ291bnR9Jm1heEl0ZW1zPSR7Rm9sZGVyUnVsZVNldHNTZXJ2aWNlLk1BWF9SVUxFX1NFVFNfUEVSX0dFVH1gLFxuICAgICAgICAnR0VUJ1xuICAgICAgKVxuICAgICkucGlwZShcbiAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXM/Lmxpc3Q/LnBhZ2luYXRpb24pIHtcbiAgICAgICAgICB0aGlzLmhhc01vcmVSdWxlU2V0cyA9IHJlcy5saXN0LnBhZ2luYXRpb24uaGFzTW9yZUl0ZW1zO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVzKSA9PiB0aGlzLmZvcm1hdFJ1bGVTZXRzKHJlcykpLFxuICAgICAgbWFwKChydWxlU2V0czogUnVsZVNldFtdKSA9PiBydWxlU2V0cy5maWx0ZXIoKHJ1bGVTZXQpID0+IEZvbGRlclJ1bGVTZXRzU2VydmljZS5pc0luaGVyaXRlZFJ1bGVTZXQocnVsZVNldCwgdGhpcy5jdXJyZW50Rm9sZGVyLmlkKSkpXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRSdWxlU2V0cyhub2RlSWQ6IHN0cmluZywgbG9hZEluaGVyaXRlZFJ1bGVTZXRzID0gdHJ1ZSkge1xuICAgIHRoaXMuaXNMb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5tYWluUnVsZVNldCA9IG51bGw7XG4gICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0cyA9IFtdO1xuICAgIHRoaXMuaGFzTW9yZVJ1bGVTZXRzID0gdHJ1ZTtcbiAgICB0aGlzLmN1cnJlbnRGb2xkZXIgPSBudWxsO1xuICAgIHRoaXMubWFpblJ1bGVTZXRTb3VyY2UubmV4dCh0aGlzLm1haW5SdWxlU2V0KTtcbiAgICB0aGlzLmluaGVyaXRlZFJ1bGVTZXRzU291cmNlLm5leHQodGhpcy5pbmhlcml0ZWRSdWxlU2V0cyk7XG4gICAgdGhpcy5oYXNNb3JlUnVsZVNldHNTb3VyY2UubmV4dCh0aGlzLmhhc01vcmVSdWxlU2V0cyk7XG4gICAgdGhpcy5nZXROb2RlSW5mbyhub2RlSWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChub2RlSW5mbzogTm9kZUluZm8pID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXIgPSBub2RlSW5mbztcbiAgICAgICAgICB0aGlzLmZvbGRlckluZm9Tb3VyY2UubmV4dCh0aGlzLmN1cnJlbnRGb2xkZXIpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGNvbWJpbmVMYXRlc3QodGhpcy5nZXRNYWluUnVsZVNldChub2RlSWQpLCBsb2FkSW5oZXJpdGVkUnVsZVNldHMgPyB0aGlzLmdldEluaGVyaXRlZFJ1bGVTZXRzKG5vZGVJZCkgOiBvZihbXSkpKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc0xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbbWFpblJ1bGVTZXQsIGluaGVyaXRlZFJ1bGVTZXRzXSkgPT4ge1xuICAgICAgICB0aGlzLm1haW5SdWxlU2V0ID0gbWFpblJ1bGVTZXQ7XG4gICAgICAgIHRoaXMuaW5oZXJpdGVkUnVsZVNldHMgPSBpbmhlcml0ZWRSdWxlU2V0cztcbiAgICAgICAgdGhpcy5tYWluUnVsZVNldFNvdXJjZS5uZXh0KG1haW5SdWxlU2V0KTtcbiAgICAgICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0c1NvdXJjZS5uZXh0KGluaGVyaXRlZFJ1bGVTZXRzKTtcbiAgICAgICAgdGhpcy5oYXNNb3JlUnVsZVNldHNTb3VyY2UubmV4dCh0aGlzLmhhc01vcmVSdWxlU2V0cyk7XG4gICAgICAgIGNvbnN0IHJ1bGVUb1NlbGVjdCA9XG4gICAgICAgICAgbWFpblJ1bGVTZXQ/LnJ1bGVzLmZpbmQoKHI6IFJ1bGUpID0+IEZvbGRlclJ1bGVTZXRzU2VydmljZS5pc093bmVkUnVsZVNldChtYWluUnVsZVNldCwgbm9kZUlkKSB8fCByLmlzRW5hYmxlZCkgPz9cbiAgICAgICAgICBpbmhlcml0ZWRSdWxlU2V0cy5yZWR1Y2UoKGZvdW5kUnVsZTogUnVsZSwgcnVsZVNldDogUnVsZVNldCkgPT4gZm91bmRSdWxlID8/IHJ1bGVTZXQucnVsZXMuZmluZCgocjogUnVsZSkgPT4gci5pc0VuYWJsZWQpLCBudWxsKTtcbiAgICAgICAgdGhpcy5mb2xkZXJSdWxlc1NlcnZpY2Uuc2VsZWN0UnVsZShydWxlVG9TZWxlY3QpO1xuICAgICAgfSk7XG4gIH1cblxuICBsb2FkTW9yZUluaGVyaXRlZFJ1bGVTZXRzKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nU291cmNlLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5nZXRJbmhlcml0ZWRSdWxlU2V0cyh0aGlzLmN1cnJlbnRGb2xkZXIuaWQsIHRoaXMuaW5oZXJpdGVkUnVsZVNldHMubGVuZ3RoKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc0xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZSgocnVsZVNldHMpID0+IHtcbiAgICAgICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0cy5wdXNoKC4uLnJ1bGVTZXRzKTtcbiAgICAgICAgdGhpcy5pbmhlcml0ZWRSdWxlU2V0c1NvdXJjZS5uZXh0KHRoaXMuaW5oZXJpdGVkUnVsZVNldHMpO1xuICAgICAgICB0aGlzLmhhc01vcmVSdWxlU2V0c1NvdXJjZS5uZXh0KHRoaXMuaGFzTW9yZVJ1bGVTZXRzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb2RlSW5mbyhub2RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Tm9kZUluZm8+IHtcbiAgICBpZiAobm9kZUlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250ZW50QXBpLmdldE5vZGUobm9kZUlkKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHsgZW50cnk6IG51bGwgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKGVudHJ5OiBOb2RlRW50cnkpID0+IGVudHJ5LmVudHJ5KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UnVsZVNldHMocmVzOiBhbnkpOiBPYnNlcnZhYmxlPFJ1bGVTZXRbXT4ge1xuICAgIHJldHVybiByZXM/Lmxpc3Q/LmVudHJpZXMgJiYgcmVzLmxpc3QuZW50cmllcyBpbnN0YW5jZW9mIEFycmF5XG4gICAgICA/IGNvbWJpbmVMYXRlc3QoKHJlcy5saXN0LmVudHJpZXMgYXMgQXJyYXk8YW55PikubWFwKChlbnRyeSkgPT4gdGhpcy5mb3JtYXRSdWxlU2V0KGVudHJ5LmVudHJ5KSkpXG4gICAgICA6IG9mKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UnVsZVNldChlbnRyeTogYW55KTogT2JzZXJ2YWJsZTxSdWxlU2V0PiB7XG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgIHRoaXMuY3VycmVudEZvbGRlcj8uaWQgPT09IGVudHJ5Lm93bmluZ0ZvbGRlciA/IG9mKHRoaXMuY3VycmVudEZvbGRlcikgOiB0aGlzLmdldE5vZGVJbmZvKGVudHJ5Lm93bmluZ0ZvbGRlciB8fCAnJyksXG4gICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5nZXRSdWxlcyh0aGlzLmN1cnJlbnRGb2xkZXIuaWQgfHwgJycsIGVudHJ5LmlkKVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoW293bmluZ0ZvbGRlck5vZGVJbmZvLCBnZXRSdWxlc1Jlc10pID0+ICh7XG4gICAgICAgIGlkOiBlbnRyeS5pZCxcbiAgICAgICAgaXNMaW5rZWRUbzogZW50cnkuaXNMaW5rZWRUbyB8fCBmYWxzZSxcbiAgICAgICAgb3duaW5nRm9sZGVyOiBvd25pbmdGb2xkZXJOb2RlSW5mbyxcbiAgICAgICAgbGlua2VkVG9CeTogZW50cnkubGlua2VkVG9CeSB8fCBbXSxcbiAgICAgICAgcnVsZXM6IGdldFJ1bGVzUmVzLnJ1bGVzLFxuICAgICAgICBoYXNNb3JlUnVsZXM6IGdldFJ1bGVzUmVzLmhhc01vcmVSdWxlcyxcbiAgICAgICAgbG9hZGluZ1J1bGVzOiBmYWxzZVxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIHJlbW92ZVJ1bGVGcm9tTWFpblJ1bGVTZXQocnVsZUlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5tYWluUnVsZVNldCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLmZpbmRJbmRleCgocnVsZTogUnVsZSkgPT4gcnVsZS5pZCA9PT0gcnVsZUlkKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGlmICh0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aGlzLm1haW5SdWxlU2V0LnJ1bGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tYWluUnVsZVNldCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYWluUnVsZVNldFNvdXJjZS5uZXh0KHRoaXMubWFpblJ1bGVTZXQpO1xuICAgICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RSdWxlKHRoaXMubWFpblJ1bGVTZXQ/LnJ1bGVzWzBdID8/IHRoaXMuaW5oZXJpdGVkUnVsZVNldHNbMF0/LnJ1bGVzWzBdID8/IG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZE9yVXBkYXRlUnVsZUluTWFpblJ1bGVTZXQobmV3UnVsZTogUnVsZSkge1xuICAgIGlmICh0aGlzLm1haW5SdWxlU2V0KSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMubWFpblJ1bGVTZXQucnVsZXMuZmluZEluZGV4KChydWxlOiBSdWxlKSA9PiBydWxlLmlkID09PSBuZXdSdWxlLmlkKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXQucnVsZXMuc3BsaWNlKGluZGV4LCAxLCBuZXdSdWxlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWFpblJ1bGVTZXQucnVsZXMucHVzaChuZXdSdWxlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFpblJ1bGVTZXRTb3VyY2UubmV4dCh0aGlzLm1haW5SdWxlU2V0KTtcbiAgICAgIHRoaXMuZm9sZGVyUnVsZXNTZXJ2aWNlLnNlbGVjdFJ1bGUobmV3UnVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVmcmVzaE1haW5SdWxlU2V0KG5ld1J1bGUpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hNYWluUnVsZVNldChydWxlVG9TZWxlY3Q6IFJ1bGUgPSBudWxsKSB7XG4gICAgdGhpcy5nZXRNYWluUnVsZVNldCh0aGlzLmN1cnJlbnRGb2xkZXIuaWQpLnN1YnNjcmliZSgobWFpblJ1bGVTZXQ6IFJ1bGVTZXQpID0+IHtcbiAgICAgIHRoaXMubWFpblJ1bGVTZXQgPSB7IC4uLm1haW5SdWxlU2V0IH07XG4gICAgICBpZiAoIXRoaXMubWFpblJ1bGVTZXQucnVsZXMpIHtcbiAgICAgICAgdGhpcy5tYWluUnVsZVNldCA9IG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLm1haW5SdWxlU2V0U291cmNlLm5leHQodGhpcy5tYWluUnVsZVNldCk7XG4gICAgICBpZiAobWFpblJ1bGVTZXQpIHtcbiAgICAgICAgY29uc3QgcnVsZVRvU2VsZWN0SW5SdWxlU2V0ID0gcnVsZVRvU2VsZWN0ID8gbWFpblJ1bGVTZXQucnVsZXMuZmluZCgocnVsZTogUnVsZSkgPT4gcnVsZS5pZCA9PT0gcnVsZVRvU2VsZWN0LmlkKSA6IG1haW5SdWxlU2V0LnJ1bGVzWzBdO1xuICAgICAgICB0aGlzLmZvbGRlclJ1bGVzU2VydmljZS5zZWxlY3RSdWxlKHJ1bGVUb1NlbGVjdEluUnVsZVNldCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSdWxlU2V0TGluayhmb2xkZXJJZFRvQ3JlYXRlTGluazogc3RyaW5nLCBmb2xkZXJJZFRvTGlua0Zyb206IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBpZDogZm9sZGVySWRUb0xpbmtGcm9tXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtmb2xkZXJJZFRvQ3JlYXRlTGlua30vcnVsZS1zZXQtbGlua3NgLCAnUE9TVCcsIGRhdGEpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlUnVsZVNldExpbmsoZm9sZGVySWRUb0RlbGV0ZUxpbms6IHN0cmluZywgcnVsZVNldElkVG9EZWxldGU6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke2ZvbGRlcklkVG9EZWxldGVMaW5rfS9ydWxlLXNldC1saW5rcy8ke3J1bGVTZXRJZFRvRGVsZXRlfWAsICdERUxFVEUnKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
2
+ * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
3
3
  *
4
4
  * Alfresco Example Content Application
5
5
  *
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
190
190
  providedIn: 'root'
191
191
  }]
192
192
  }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }]; } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3NlcnZpY2VzL2ZvbGRlci1ydWxlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFjL0MsTUFBTSxPQUFPLGtCQUFrQjtJQW1EN0IsWUFBb0IsVUFBOEI7UUFBOUIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFOMUMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQU8sSUFBSSxDQUFDLENBQUM7UUFDckQsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7UUFFaEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBdUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFoRC9DLE1BQU0sS0FBSyx1QkFBdUI7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxLQUFLO1lBQ2YsV0FBVyxFQUFFLEtBQUs7WUFDbEIsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxLQUFLLGdCQUFnQjtRQUNoQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFh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VixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bGUsIFJ1bGVGb3JGb3JtLCBSdWxlT3B0aW9ucywgUnVsZVNldHRpbmdzIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5pbXBvcnQgeyBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJ1bGVTaW1wbGVDb25kaXRpb24gfSBmcm9tICcuLi9tb2RlbC9ydWxlLXNpbXBsZS1jb25kaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgUnVsZVNldCB9IGZyb20gJy4uL21vZGVsL3J1bGUtc2V0Lm1vZGVsJztcblxuaW50ZXJmYWNlIEdldFJ1bGVzUmVzdWx0IHtcbiAgcnVsZXM6IFJ1bGVbXTtcbiAgaGFzTW9yZVJ1bGVzOiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJSdWxlc1NlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIE1BWF9SVUxFU19QRVJfR0VUID0gMTAwO1xuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtcHR5Q29tcG9zaXRlQ29uZGl0aW9uKCk6IFJ1bGVDb21wb3NpdGVDb25kaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBpbnZlcnRlZDogZmFsc2UsXG4gICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICBjb21wb3NpdGVDb25kaXRpb25zOiBbXSxcbiAgICAgIHNpbXBsZUNvbmRpdGlvbnM6IFtdXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtcHR5UnVsZU9wdGlvbnMoKTogUnVsZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGlzQXN5bmNocm9ub3VzOiBmYWxzZSxcbiAgICAgIGVycm9yU2NyaXB0OiAnJ1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBlbXB0eVJ1bGUoKTogUnVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgaXNTaGFyZWQ6IGZhbHNlLFxuICAgICAgdHJpZ2dlcnM6IFsnaW5ib3VuZCddLFxuICAgICAgY29uZGl0aW9uczogRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5Q29tcG9zaXRlQ29uZGl0aW9uLFxuICAgICAgYWN0aW9uczogW10sXG4gICAgICAuLi5Gb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlT3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBlbXB0eVJ1bGVGb3JGb3JtKCk6IFJ1bGVGb3JGb3JtIHtcbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIC4uLkZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUsXG4gICAgICBvcHRpb25zOiBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlT3B0aW9uc1xuICAgIH07XG4gICAgT2JqZWN0LmtleXModmFsdWUub3B0aW9ucykuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRSdWxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdWxlPihudWxsKTtcbiAgcHJpdmF0ZSBkZWxldGVkUnVsZUlkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIHNlbGVjdGVkUnVsZSQgPSB0aGlzLnNlbGVjdGVkUnVsZVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgZGVsZXRlZFJ1bGVJZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSkge31cblxuICBwcml2YXRlIGNhbGxBcGkocGF0aDogc3RyaW5nLCBodHRwTWV0aG9kOiBzdHJpbmcsIGJvZHk6IG9iamVjdCA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBBUElzIHVzZWQgYnkgdGhpcyBzZXJ2aWNlIGFyZSBzdGlsbCBwcml2YXRlIGFuZCBub3QgeWV0IGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZVxuICAgIGNvbnN0IHBhcmFtcyA9IFt7fSwge30sIHt9LCB7fSwgYm9keSwgWydhcHBsaWNhdGlvbi9qc29uJ10sIFsnYXBwbGljYXRpb24vanNvbiddXTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkuY29udGVudFByaXZhdGVDbGllbnQuY2FsbEFwaShwYXRoLCBodHRwTWV0aG9kLCAuLi5wYXJhbXMpO1xuICB9XG5cbiAgZ2V0UnVsZXMob3duaW5nRm9sZGVySWQ6IHN0cmluZywgcnVsZVNldElkOiBzdHJpbmcsIHNraXBDb3VudCA9IDApOiBPYnNlcnZhYmxlPEdldFJ1bGVzUmVzdWx0PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLmNhbGxBcGkoXG4gICAgICAgIGAvbm9kZXMvJHtvd25pbmdGb2xkZXJJZH0vcnVsZS1zZXRzLyR7cnVsZVNldElkfS9ydWxlcz9za2lwQ291bnQ9JHtza2lwQ291bnR9Jm1heEl0ZW1zPSR7Rm9sZGVyUnVsZXNTZXJ2aWNlLk1BWF9SVUxFU19QRVJfR0VUfWAsXG4gICAgICAgICdHRVQnXG4gICAgICApXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+ICh7XG4gICAgICAgIHJ1bGVzOiB0aGlzLmZvcm1hdFJ1bGVzKHJlcyksXG4gICAgICAgIGhhc01vcmVSdWxlczogISFyZXM/Lmxpc3Q/LnBhZ2luYXRpb24/Lmhhc01vcmVJdGVtc1xuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRSdWxlcyhydWxlU2V0OiBSdWxlU2V0LCBza2lwQ291bnQgPSBydWxlU2V0LnJ1bGVzLmxlbmd0aCwgc2VsZWN0UnVsZTogJ2ZpcnN0JyB8ICdsYXN0JyB8IFJ1bGUgPSBudWxsKSB7XG4gICAgaWYgKHJ1bGVTZXQgJiYgIXJ1bGVTZXQubG9hZGluZ1J1bGVzKSB7XG4gICAgICBydWxlU2V0LmxvYWRpbmdSdWxlcyA9IHRydWU7XG4gICAgICB0aGlzLmdldFJ1bGVzKHJ1bGVTZXQub3duaW5nRm9sZGVyLmlkLCBydWxlU2V0LmlkLCBza2lwQ291bnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHJ1bGVTZXQubG9hZGluZ1J1bGVzID0gZmFsc2U7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IEdldFJ1bGVzUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcnVsZVNldC5oYXNNb3JlUnVsZXMgPSByZXMuaGFzTW9yZVJ1bGVzO1xuICAgICAgICAgIHJ1bGVTZXQucnVsZXMuc3BsaWNlKHNraXBDb3VudCk7XG4gICAgICAgICAgcnVsZVNldC5ydWxlcy5wdXNoKC4uLnJlcy5ydWxlcyk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RSdWxlSW5SdWxlU2V0KHJ1bGVTZXQsIHNlbGVjdFJ1bGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVSdWxlKG5vZGVJZDogc3RyaW5nLCBydWxlOiBQYXJ0aWFsPFJ1bGU+LCBydWxlU2V0SWQ6IHN0cmluZyA9ICctZGVmYXVsdC0nKTogUHJvbWlzZTxSdWxlPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXRzLyR7cnVsZVNldElkfS9ydWxlc2AsICdQT1NUJywgeyAuLi5ydWxlIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFJ1bGUocmVzcG9uc2UuZW50cnkpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUnVsZShub2RlSWQ6IHN0cmluZywgcnVsZUlkOiBzdHJpbmcsIHJ1bGU6IFJ1bGUsIHJ1bGVTZXRJZDogc3RyaW5nID0gJy1kZWZhdWx0LScpOiBQcm9taXNlPFJ1bGU+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbEFwaShgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHMvJHtydWxlU2V0SWR9L3J1bGVzLyR7cnVsZUlkfWAsICdQVVQnLCB7IC4uLnJ1bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0UnVsZShyZXNwb25zZS5lbnRyeSk7XG4gIH1cblxuICBkZWxldGVSdWxlKG5vZGVJZDogc3RyaW5nLCBydWxlSWQ6IHN0cmluZywgcnVsZVNldElkOiBzdHJpbmcgPSAnLWRlZmF1bHQtJykge1xuICAgIGZyb20odGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtub2RlSWR9L3J1bGUtc2V0cy8ke3J1bGVTZXRJZH0vcnVsZXMvJHtydWxlSWR9YCwgJ0RFTEVURScpKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5uZXh0KHJ1bGVJZCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5uZXh0KGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0UnVsZVNldHRpbmdzKG5vZGVJZDogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICctaXNJbmhlcml0YW5jZUVuYWJsZWQtJyk6IFByb21pc2U8UnVsZVNldHRpbmdzPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXR0aW5ncy8ke2tleX1gLCAnR0VUJyk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmVudHJ5O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUnVsZVNldHRpbmdzKG5vZGVJZDogc3RyaW5nLCBrZXk6IHN0cmluZywgYm9keTogUnVsZVNldHRpbmdzKTogUHJvbWlzZTxSdWxlU2V0dGluZ3M+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbEFwaShgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHRpbmdzLyR7a2V5fWAsICdQVVQnLCB7IC4uLmJvZHkgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmVudHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRSdWxlcyhyZXMpOiBSdWxlW10ge1xuICAgIHJldHVybiBbLi4ucmVzLmxpc3QuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB0aGlzLmZvcm1hdFJ1bGUoZW50cnkuZW50cnkpKV07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFJ1bGUob2JqKTogUnVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBvYmouaWQsXG4gICAgICBuYW1lOiBvYmoubmFtZSA/PyBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogb2JqLmRlc2NyaXB0aW9uID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuZGVzY3JpcHRpb24sXG4gICAgICBpc0VuYWJsZWQ6IG9iai5pc0VuYWJsZWQgPz8gRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5pc0VuYWJsZWQsXG4gICAgICBpc0luaGVyaXRhYmxlOiBvYmouaXNJbmhlcml0YWJsZSA/PyBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzSW5oZXJpdGFibGUsXG4gICAgICBpc0FzeW5jaHJvbm91czogb2JqLmlzQXN5bmNocm9ub3VzID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNBc3luY2hyb25vdXMsXG4gICAgICBlcnJvclNjcmlwdDogb2JqLmVycm9yU2NyaXB0ID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuZXJyb3JTY3JpcHQsXG4gICAgICBpc1NoYXJlZDogb2JqLmlzU2hhcmVkID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNTaGFyZWQsXG4gICAgICB0cmlnZ2Vyczogb2JqLnRyaWdnZXJzID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUudHJpZ2dlcnMsXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihvYmouY29uZGl0aW9ucyA/PyB7IC4uLkZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuY29uZGl0aW9ucyB9KSxcbiAgICAgIGFjdGlvbnM6IG9iai5hY3Rpb25zID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuYWN0aW9uc1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihvYmopOiBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW52ZXJ0ZWQ6IG9iai5pbnZlcnRlZCA/PyBmYWxzZSxcbiAgICAgIGJvb2xlYW5Nb2RlOiBvYmouYm9vbGVhbk1vZGUgPz8gJ2FuZCcsXG4gICAgICBjb21wb3NpdGVDb25kaXRpb25zOiAob2JqLmNvbXBvc2l0ZUNvbmRpdGlvbnMgfHwgW10pLm1hcCgoY29uZGl0aW9uKSA9PiB0aGlzLmZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihjb25kaXRpb24pKSxcbiAgICAgIHNpbXBsZUNvbmRpdGlvbnM6IHRoaXMucGFyc2VTaW1wbGVDb25kaXRpb24ob2JqLnNpbXBsZUNvbmRpdGlvbnMpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTaW1wbGVDb25kaXRpb24oYXJyKSB7XG4gICAgaWYgKGFycikge1xuICAgICAgaWYgKGFyci5ldmVyeSgoZWxlbWVudCkgPT4gZWxlbWVudCA9PT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyci5tYXAoKGNvbmRpdGlvbikgPT4gdGhpcy5mb3JtYXRTaW1wbGVDb25kaXRpb24oY29uZGl0aW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFNpbXBsZUNvbmRpdGlvbihvYmopOiBSdWxlU2ltcGxlQ29uZGl0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IG9iai5maWVsZCB8fCAnY206bmFtZScsXG4gICAgICBjb21wYXJhdG9yOiBvYmouY29tcGFyYXRvciB8fCAnZXF1YWxzJyxcbiAgICAgIHBhcmFtZXRlcjogb2JqLnBhcmFtZXRlciB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBzZWxlY3RSdWxlKHJ1bGU6IFJ1bGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkUnVsZVNvdXJjZS5uZXh0KHJ1bGUpO1xuICB9XG5cbiAgc2VsZWN0UnVsZUluUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBzZWxlY3RSdWxlOiAnZmlyc3QnIHwgJ2xhc3QnIHwgUnVsZSA9IG51bGwpIHtcbiAgICBpZiAoc2VsZWN0UnVsZSA9PT0gJ2ZpcnN0Jykge1xuICAgICAgdGhpcy5zZWxlY3RSdWxlKHJ1bGVTZXQucnVsZXNbMF0pO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0UnVsZSA9PT0gJ2xhc3QnKSB7XG4gICAgICB0aGlzLnNlbGVjdFJ1bGUocnVsZVNldC5ydWxlc1tydWxlU2V0LnJ1bGVzLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdFJ1bGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0UnVsZShzZWxlY3RSdWxlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLXJ1bGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3NlcnZpY2VzL2ZvbGRlci1ydWxlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFjL0MsTUFBTSxPQUFPLGtCQUFrQjtJQW1EN0IsWUFBb0IsVUFBOEI7UUFBOUIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFOMUMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQU8sSUFBSSxDQUFDLENBQUM7UUFDckQsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7UUFFaEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBdUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFoRC9DLE1BQU0sS0FBSyx1QkFBdUI7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxLQUFLO1lBQ2YsV0FBVyxFQUFFLEtBQUs7WUFDbEIsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxLQUFLLGdCQUFnQjtRQUNoQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFh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VixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJ1bGUsIFJ1bGVGb3JGb3JtLCBSdWxlT3B0aW9ucywgUnVsZVNldHRpbmdzIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS5tb2RlbCc7XG5pbXBvcnQgeyBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uIH0gZnJvbSAnLi4vbW9kZWwvcnVsZS1jb21wb3NpdGUtY29uZGl0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJ1bGVTaW1wbGVDb25kaXRpb24gfSBmcm9tICcuLi9tb2RlbC9ydWxlLXNpbXBsZS1jb25kaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgUnVsZVNldCB9IGZyb20gJy4uL21vZGVsL3J1bGUtc2V0Lm1vZGVsJztcblxuaW50ZXJmYWNlIEdldFJ1bGVzUmVzdWx0IHtcbiAgcnVsZXM6IFJ1bGVbXTtcbiAgaGFzTW9yZVJ1bGVzOiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJSdWxlc1NlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIE1BWF9SVUxFU19QRVJfR0VUID0gMTAwO1xuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtcHR5Q29tcG9zaXRlQ29uZGl0aW9uKCk6IFJ1bGVDb21wb3NpdGVDb25kaXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBpbnZlcnRlZDogZmFsc2UsXG4gICAgICBib29sZWFuTW9kZTogJ2FuZCcsXG4gICAgICBjb21wb3NpdGVDb25kaXRpb25zOiBbXSxcbiAgICAgIHNpbXBsZUNvbmRpdGlvbnM6IFtdXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGVtcHR5UnVsZU9wdGlvbnMoKTogUnVsZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBpc0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGlzQXN5bmNocm9ub3VzOiBmYWxzZSxcbiAgICAgIGVycm9yU2NyaXB0OiAnJ1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBlbXB0eVJ1bGUoKTogUnVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiAnJyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgaXNTaGFyZWQ6IGZhbHNlLFxuICAgICAgdHJpZ2dlcnM6IFsnaW5ib3VuZCddLFxuICAgICAgY29uZGl0aW9uczogRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5Q29tcG9zaXRlQ29uZGl0aW9uLFxuICAgICAgYWN0aW9uczogW10sXG4gICAgICAuLi5Gb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlT3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBlbXB0eVJ1bGVGb3JGb3JtKCk6IFJ1bGVGb3JGb3JtIHtcbiAgICBjb25zdCB2YWx1ZSA9IHtcbiAgICAgIC4uLkZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUsXG4gICAgICBvcHRpb25zOiBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlT3B0aW9uc1xuICAgIH07XG4gICAgT2JqZWN0LmtleXModmFsdWUub3B0aW9ucykuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtrZXldO1xuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRSdWxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdWxlPihudWxsKTtcbiAgcHJpdmF0ZSBkZWxldGVkUnVsZUlkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIHNlbGVjdGVkUnVsZSQgPSB0aGlzLnNlbGVjdGVkUnVsZVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgZGVsZXRlZFJ1bGVJZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSkge31cblxuICBwcml2YXRlIGNhbGxBcGkocGF0aDogc3RyaW5nLCBodHRwTWV0aG9kOiBzdHJpbmcsIGJvZHk6IG9iamVjdCA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBBUElzIHVzZWQgYnkgdGhpcyBzZXJ2aWNlIGFyZSBzdGlsbCBwcml2YXRlIGFuZCBub3QgeWV0IGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZVxuICAgIGNvbnN0IHBhcmFtcyA9IFt7fSwge30sIHt9LCB7fSwgYm9keSwgWydhcHBsaWNhdGlvbi9qc29uJ10sIFsnYXBwbGljYXRpb24vanNvbiddXTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkuY29udGVudFByaXZhdGVDbGllbnQuY2FsbEFwaShwYXRoLCBodHRwTWV0aG9kLCAuLi5wYXJhbXMpO1xuICB9XG5cbiAgZ2V0UnVsZXMob3duaW5nRm9sZGVySWQ6IHN0cmluZywgcnVsZVNldElkOiBzdHJpbmcsIHNraXBDb3VudCA9IDApOiBPYnNlcnZhYmxlPEdldFJ1bGVzUmVzdWx0PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLmNhbGxBcGkoXG4gICAgICAgIGAvbm9kZXMvJHtvd25pbmdGb2xkZXJJZH0vcnVsZS1zZXRzLyR7cnVsZVNldElkfS9ydWxlcz9za2lwQ291bnQ9JHtza2lwQ291bnR9Jm1heEl0ZW1zPSR7Rm9sZGVyUnVsZXNTZXJ2aWNlLk1BWF9SVUxFU19QRVJfR0VUfWAsXG4gICAgICAgICdHRVQnXG4gICAgICApXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+ICh7XG4gICAgICAgIHJ1bGVzOiB0aGlzLmZvcm1hdFJ1bGVzKHJlcyksXG4gICAgICAgIGhhc01vcmVSdWxlczogISFyZXM/Lmxpc3Q/LnBhZ2luYXRpb24/Lmhhc01vcmVJdGVtc1xuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRSdWxlcyhydWxlU2V0OiBSdWxlU2V0LCBza2lwQ291bnQgPSBydWxlU2V0LnJ1bGVzLmxlbmd0aCwgc2VsZWN0UnVsZTogJ2ZpcnN0JyB8ICdsYXN0JyB8IFJ1bGUgPSBudWxsKSB7XG4gICAgaWYgKHJ1bGVTZXQgJiYgIXJ1bGVTZXQubG9hZGluZ1J1bGVzKSB7XG4gICAgICBydWxlU2V0LmxvYWRpbmdSdWxlcyA9IHRydWU7XG4gICAgICB0aGlzLmdldFJ1bGVzKHJ1bGVTZXQub3duaW5nRm9sZGVyLmlkLCBydWxlU2V0LmlkLCBza2lwQ291bnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHJ1bGVTZXQubG9hZGluZ1J1bGVzID0gZmFsc2U7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IEdldFJ1bGVzUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcnVsZVNldC5oYXNNb3JlUnVsZXMgPSByZXMuaGFzTW9yZVJ1bGVzO1xuICAgICAgICAgIHJ1bGVTZXQucnVsZXMuc3BsaWNlKHNraXBDb3VudCk7XG4gICAgICAgICAgcnVsZVNldC5ydWxlcy5wdXNoKC4uLnJlcy5ydWxlcyk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RSdWxlSW5SdWxlU2V0KHJ1bGVTZXQsIHNlbGVjdFJ1bGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVSdWxlKG5vZGVJZDogc3RyaW5nLCBydWxlOiBQYXJ0aWFsPFJ1bGU+LCBydWxlU2V0SWQ6IHN0cmluZyA9ICctZGVmYXVsdC0nKTogUHJvbWlzZTxSdWxlPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXRzLyR7cnVsZVNldElkfS9ydWxlc2AsICdQT1NUJywgeyAuLi5ydWxlIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFJ1bGUocmVzcG9uc2UuZW50cnkpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUnVsZShub2RlSWQ6IHN0cmluZywgcnVsZUlkOiBzdHJpbmcsIHJ1bGU6IFJ1bGUsIHJ1bGVTZXRJZDogc3RyaW5nID0gJy1kZWZhdWx0LScpOiBQcm9taXNlPFJ1bGU+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbEFwaShgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHMvJHtydWxlU2V0SWR9L3J1bGVzLyR7cnVsZUlkfWAsICdQVVQnLCB7IC4uLnJ1bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0UnVsZShyZXNwb25zZS5lbnRyeSk7XG4gIH1cblxuICBkZWxldGVSdWxlKG5vZGVJZDogc3RyaW5nLCBydWxlSWQ6IHN0cmluZywgcnVsZVNldElkOiBzdHJpbmcgPSAnLWRlZmF1bHQtJykge1xuICAgIGZyb20odGhpcy5jYWxsQXBpKGAvbm9kZXMvJHtub2RlSWR9L3J1bGUtc2V0cy8ke3J1bGVTZXRJZH0vcnVsZXMvJHtydWxlSWR9YCwgJ0RFTEVURScpKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5uZXh0KHJ1bGVJZCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsZXRlZFJ1bGVJZFNvdXJjZS5uZXh0KGVycm9yKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0UnVsZVNldHRpbmdzKG5vZGVJZDogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICctaXNJbmhlcml0YW5jZUVuYWJsZWQtJyk6IFByb21pc2U8UnVsZVNldHRpbmdzPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNhbGxBcGkoYC9ub2Rlcy8ke25vZGVJZH0vcnVsZS1zZXR0aW5ncy8ke2tleX1gLCAnR0VUJyk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmVudHJ5O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUnVsZVNldHRpbmdzKG5vZGVJZDogc3RyaW5nLCBrZXk6IHN0cmluZywgYm9keTogUnVsZVNldHRpbmdzKTogUHJvbWlzZTxSdWxlU2V0dGluZ3M+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2FsbEFwaShgL25vZGVzLyR7bm9kZUlkfS9ydWxlLXNldHRpbmdzLyR7a2V5fWAsICdQVVQnLCB7IC4uLmJvZHkgfSk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmVudHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRSdWxlcyhyZXMpOiBSdWxlW10ge1xuICAgIHJldHVybiBbLi4ucmVzLmxpc3QuZW50cmllcy5tYXAoKGVudHJ5KSA9PiB0aGlzLmZvcm1hdFJ1bGUoZW50cnkuZW50cnkpKV07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFJ1bGUob2JqKTogUnVsZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBvYmouaWQsXG4gICAgICBuYW1lOiBvYmoubmFtZSA/PyBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogb2JqLmRlc2NyaXB0aW9uID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuZGVzY3JpcHRpb24sXG4gICAgICBpc0VuYWJsZWQ6IG9iai5pc0VuYWJsZWQgPz8gRm9sZGVyUnVsZXNTZXJ2aWNlLmVtcHR5UnVsZS5pc0VuYWJsZWQsXG4gICAgICBpc0luaGVyaXRhYmxlOiBvYmouaXNJbmhlcml0YWJsZSA/PyBGb2xkZXJSdWxlc1NlcnZpY2UuZW1wdHlSdWxlLmlzSW5oZXJpdGFibGUsXG4gICAgICBpc0FzeW5jaHJvbm91czogb2JqLmlzQXN5bmNocm9ub3VzID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNBc3luY2hyb25vdXMsXG4gICAgICBlcnJvclNjcmlwdDogb2JqLmVycm9yU2NyaXB0ID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuZXJyb3JTY3JpcHQsXG4gICAgICBpc1NoYXJlZDogb2JqLmlzU2hhcmVkID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuaXNTaGFyZWQsXG4gICAgICB0cmlnZ2Vyczogb2JqLnRyaWdnZXJzID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUudHJpZ2dlcnMsXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihvYmouY29uZGl0aW9ucyA/PyB7IC4uLkZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuY29uZGl0aW9ucyB9KSxcbiAgICAgIGFjdGlvbnM6IG9iai5hY3Rpb25zID8/IEZvbGRlclJ1bGVzU2VydmljZS5lbXB0eVJ1bGUuYWN0aW9uc1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihvYmopOiBSdWxlQ29tcG9zaXRlQ29uZGl0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW52ZXJ0ZWQ6IG9iai5pbnZlcnRlZCA/PyBmYWxzZSxcbiAgICAgIGJvb2xlYW5Nb2RlOiBvYmouYm9vbGVhbk1vZGUgPz8gJ2FuZCcsXG4gICAgICBjb21wb3NpdGVDb25kaXRpb25zOiAob2JqLmNvbXBvc2l0ZUNvbmRpdGlvbnMgfHwgW10pLm1hcCgoY29uZGl0aW9uKSA9PiB0aGlzLmZvcm1hdENvbXBvc2l0ZUNvbmRpdGlvbihjb25kaXRpb24pKSxcbiAgICAgIHNpbXBsZUNvbmRpdGlvbnM6IHRoaXMucGFyc2VTaW1wbGVDb25kaXRpb24ob2JqLnNpbXBsZUNvbmRpdGlvbnMpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTaW1wbGVDb25kaXRpb24oYXJyKSB7XG4gICAgaWYgKGFycikge1xuICAgICAgaWYgKGFyci5ldmVyeSgoZWxlbWVudCkgPT4gZWxlbWVudCA9PT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyci5tYXAoKGNvbmRpdGlvbikgPT4gdGhpcy5mb3JtYXRTaW1wbGVDb25kaXRpb24oY29uZGl0aW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFNpbXBsZUNvbmRpdGlvbihvYmopOiBSdWxlU2ltcGxlQ29uZGl0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmllbGQ6IG9iai5maWVsZCB8fCAnY206bmFtZScsXG4gICAgICBjb21wYXJhdG9yOiBvYmouY29tcGFyYXRvciB8fCAnZXF1YWxzJyxcbiAgICAgIHBhcmFtZXRlcjogb2JqLnBhcmFtZXRlciB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBzZWxlY3RSdWxlKHJ1bGU6IFJ1bGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkUnVsZVNvdXJjZS5uZXh0KHJ1bGUpO1xuICB9XG5cbiAgc2VsZWN0UnVsZUluUnVsZVNldChydWxlU2V0OiBSdWxlU2V0LCBzZWxlY3RSdWxlOiAnZmlyc3QnIHwgJ2xhc3QnIHwgUnVsZSA9IG51bGwpIHtcbiAgICBpZiAoc2VsZWN0UnVsZSA9PT0gJ2ZpcnN0Jykge1xuICAgICAgdGhpcy5zZWxlY3RSdWxlKHJ1bGVTZXQucnVsZXNbMF0pO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0UnVsZSA9PT0gJ2xhc3QnKSB7XG4gICAgICB0aGlzLnNlbGVjdFJ1bGUocnVsZVNldC5ydWxlc1tydWxlU2V0LnJ1bGVzLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdFJ1bGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0UnVsZShzZWxlY3RSdWxlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==