@alfresco/adf-content-services 8.1.0-15631956516 → 8.1.0-15639746130

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 (407) hide show
  1. package/esm2022/adf-content-services.mjs +5 -0
  2. package/esm2022/lib/agent/index.mjs +18 -0
  3. package/esm2022/lib/agent/public-api.mjs +18 -0
  4. package/esm2022/lib/agent/services/agent.service.mjs +60 -0
  5. package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +27 -0
  6. package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +42 -0
  7. package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +77 -0
  8. package/esm2022/lib/api-factories/index.mjs +18 -0
  9. package/esm2022/lib/api-factories/public-api.mjs +19 -0
  10. package/esm2022/lib/aspect-list/aspect-list-dialog-data.interface.mjs +18 -0
  11. package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +78 -0
  12. package/esm2022/lib/aspect-list/aspect-list.component.mjs +140 -0
  13. package/esm2022/lib/aspect-list/aspect-list.module.mjs +35 -0
  14. package/esm2022/lib/aspect-list/index.mjs +18 -0
  15. package/esm2022/lib/aspect-list/public-api.mjs +24 -0
  16. package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +83 -0
  17. package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +86 -0
  18. package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +52 -0
  19. package/esm2022/lib/auth-loader/content-auth-loader-factory.mjs +26 -0
  20. package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +42 -0
  21. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +167 -0
  22. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +35 -0
  23. package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +66 -0
  24. package/esm2022/lib/breadcrumb/index.mjs +18 -0
  25. package/esm2022/lib/breadcrumb/public-api.mjs +20 -0
  26. package/esm2022/lib/category/categories-management/categories-management-mode.mjs +22 -0
  27. package/esm2022/lib/category/categories-management/categories-management.component.mjs +309 -0
  28. package/esm2022/lib/category/category.module.mjs +33 -0
  29. package/esm2022/lib/category/index.mjs +18 -0
  30. package/esm2022/lib/category/models/category-node.interface.mjs +18 -0
  31. package/esm2022/lib/category/public-api.mjs +23 -0
  32. package/esm2022/lib/category/services/category-tree-datasource.service.mjs +80 -0
  33. package/esm2022/lib/category/services/category.service.mjs +159 -0
  34. package/esm2022/lib/common/events/file.event.mjs +46 -0
  35. package/esm2022/lib/common/index.mjs +18 -0
  36. package/esm2022/lib/common/interfaces/saved-search.interface.mjs +18 -0
  37. package/esm2022/lib/common/interfaces/search-configuration.interface.mjs +18 -0
  38. package/esm2022/lib/common/mocks/ecm-user.service.mock.mjs +37 -0
  39. package/esm2022/lib/common/models/allowable-operations.enum.mjs +30 -0
  40. package/esm2022/lib/common/models/ecm-company.model.mjs +19 -0
  41. package/esm2022/lib/common/models/ecm-user.model.mjs +45 -0
  42. package/esm2022/lib/common/models/file.model.mjs +53 -0
  43. package/esm2022/lib/common/models/node-metadata.model.mjs +23 -0
  44. package/esm2022/lib/common/models/permissions.enum.mjs +32 -0
  45. package/esm2022/lib/common/public-api.mjs +37 -0
  46. package/esm2022/lib/common/services/card-view-content-update.service.mjs +55 -0
  47. package/esm2022/lib/common/services/content.service.mjs +180 -0
  48. package/esm2022/lib/common/services/discovery-api.service.mjs +79 -0
  49. package/esm2022/lib/common/services/favorites-api.service.mjs +84 -0
  50. package/esm2022/lib/common/services/nodes-api.service.mjs +251 -0
  51. package/esm2022/lib/common/services/people-content.service.mjs +138 -0
  52. package/esm2022/lib/common/services/rendition.service.mjs +270 -0
  53. package/esm2022/lib/common/services/saved-searches.service.mjs +206 -0
  54. package/esm2022/lib/common/services/sites.service.mjs +243 -0
  55. package/esm2022/lib/common/services/upload.service.mjs +391 -0
  56. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +55 -0
  57. package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +491 -0
  58. package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +129 -0
  59. package/esm2022/lib/content-metadata/content-metadata.module.mjs +36 -0
  60. package/esm2022/lib/content-metadata/index.mjs +18 -0
  61. package/esm2022/lib/content-metadata/interfaces/aspect-oriented-config.interface.mjs +18 -0
  62. package/esm2022/lib/content-metadata/interfaces/card-view-group.interface.mjs +18 -0
  63. package/esm2022/lib/content-metadata/interfaces/content-metadata-config.interface.mjs +18 -0
  64. package/esm2022/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.mjs +18 -0
  65. package/esm2022/lib/content-metadata/interfaces/content-metadata-panel.interface.mjs +18 -0
  66. package/esm2022/lib/content-metadata/interfaces/content-metadata.interfaces.mjs +28 -0
  67. package/esm2022/lib/content-metadata/interfaces/indifferent-config.interface.mjs +18 -0
  68. package/esm2022/lib/content-metadata/interfaces/layout-oriented-config.interface.mjs +18 -0
  69. package/esm2022/lib/content-metadata/interfaces/organised-property-group.interface.mjs +18 -0
  70. package/esm2022/lib/content-metadata/interfaces/preset-config.interface.mjs +18 -0
  71. package/esm2022/lib/content-metadata/interfaces/property-group.interface.mjs +18 -0
  72. package/esm2022/lib/content-metadata/interfaces/property.interface.mjs +18 -0
  73. package/esm2022/lib/content-metadata/public-api.mjs +31 -0
  74. package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +107 -0
  75. package/esm2022/lib/content-metadata/services/config/aspect-oriented-config.service.mjs +106 -0
  76. package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +76 -0
  77. package/esm2022/lib/content-metadata/services/config/indifferent-config.service.mjs +40 -0
  78. package/esm2022/lib/content-metadata/services/config/layout-oriented-config.service.mjs +108 -0
  79. package/esm2022/lib/content-metadata/services/config/property-group-reader.mjs +33 -0
  80. package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +99 -0
  81. package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +134 -0
  82. package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +52 -0
  83. package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +169 -0
  84. package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +256 -0
  85. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +618 -0
  86. package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +66 -0
  87. package/esm2022/lib/content-node-selector/content-node-selector.component-data.interface.mjs +18 -0
  88. package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +206 -0
  89. package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +50 -0
  90. package/esm2022/lib/content-node-selector/index.mjs +18 -0
  91. package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +48 -0
  92. package/esm2022/lib/content-node-selector/public-api.mjs +25 -0
  93. package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +168 -0
  94. package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +288 -0
  95. package/esm2022/lib/content-node-share/content-node-share.directive.mjs +102 -0
  96. package/esm2022/lib/content-node-share/content-node-share.module.mjs +35 -0
  97. package/esm2022/lib/content-node-share/content-node-share.settings.mjs +18 -0
  98. package/esm2022/lib/content-node-share/index.mjs +18 -0
  99. package/esm2022/lib/content-node-share/public-api.mjs +22 -0
  100. package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +83 -0
  101. package/esm2022/lib/content-type/content-type-dialog.component.mjs +58 -0
  102. package/esm2022/lib/content-type/content-type-metadata.interface.mjs +18 -0
  103. package/esm2022/lib/content-type/content-type.service.mjs +52 -0
  104. package/esm2022/lib/content-type/index.mjs +20 -0
  105. package/esm2022/lib/content.module.mjs +277 -0
  106. package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +52 -0
  107. package/esm2022/lib/dialogs/dialog.module.mjs +52 -0
  108. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +111 -0
  109. package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +38 -0
  110. package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +66 -0
  111. package/esm2022/lib/dialogs/folder/folder-name.validators.mjs +44 -0
  112. package/esm2022/lib/dialogs/folder/folder.dialog.mjs +147 -0
  113. package/esm2022/lib/dialogs/index.mjs +18 -0
  114. package/esm2022/lib/dialogs/library/library.dialog.mjs +225 -0
  115. package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +116 -0
  116. package/esm2022/lib/dialogs/public-api.mjs +25 -0
  117. package/esm2022/lib/directives/auto-focus.directive.mjs +38 -0
  118. package/esm2022/lib/directives/check-allowable-operation.directive.mjs +126 -0
  119. package/esm2022/lib/directives/content-directive.module.mjs +75 -0
  120. package/esm2022/lib/directives/index.mjs +18 -0
  121. package/esm2022/lib/directives/library-favorite.directive.mjs +119 -0
  122. package/esm2022/lib/directives/library-membership.directive.mjs +202 -0
  123. package/esm2022/lib/directives/node-counter.directive.mjs +60 -0
  124. package/esm2022/lib/directives/node-delete.directive.mjs +177 -0
  125. package/esm2022/lib/directives/node-download.directive.mjs +138 -0
  126. package/esm2022/lib/directives/node-favorite.directive.mjs +193 -0
  127. package/esm2022/lib/directives/node-lock.directive.mjs +57 -0
  128. package/esm2022/lib/directives/node-restore.directive.mjs +218 -0
  129. package/esm2022/lib/directives/public-api.mjs +28 -0
  130. package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +60 -0
  131. package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +196 -0
  132. package/esm2022/lib/document-list/components/document-list.component.mjs +964 -0
  133. package/esm2022/lib/document-list/components/document-list.token.mjs +21 -0
  134. package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +43 -0
  135. package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +107 -0
  136. package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +133 -0
  137. package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +93 -0
  138. package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +88 -0
  139. package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +120 -0
  140. package/esm2022/lib/document-list/components/node.event.mjs +30 -0
  141. package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +83 -0
  142. package/esm2022/lib/document-list/data/image-resolver.model.mjs +18 -0
  143. package/esm2022/lib/document-list/data/row-filter.model.mjs +18 -0
  144. package/esm2022/lib/document-list/data/share-data-row.model.mjs +102 -0
  145. package/esm2022/lib/document-list/data/share-datatable-adapter.mjs +258 -0
  146. package/esm2022/lib/document-list/document-list.module.mjs +79 -0
  147. package/esm2022/lib/document-list/index.mjs +18 -0
  148. package/esm2022/lib/document-list/interfaces/document-list-loader.interface.mjs +18 -0
  149. package/esm2022/lib/document-list/models/content-action.model.mjs +59 -0
  150. package/esm2022/lib/document-list/models/document-folder.model.mjs +23 -0
  151. package/esm2022/lib/document-list/models/node-action.enum.mjs +27 -0
  152. package/esm2022/lib/document-list/models/permissions-style.model.mjs +27 -0
  153. package/esm2022/lib/document-list/models/permissions.model.mjs +26 -0
  154. package/esm2022/lib/document-list/models/preset.model.mjs +257 -0
  155. package/esm2022/lib/document-list/public-api.mjs +47 -0
  156. package/esm2022/lib/document-list/services/custom-resources.service.mjs +377 -0
  157. package/esm2022/lib/document-list/services/document-actions.service.mjs +142 -0
  158. package/esm2022/lib/document-list/services/document-list.service.mjs +175 -0
  159. package/esm2022/lib/document-list/services/folder-actions.service.mjs +137 -0
  160. package/esm2022/lib/document-list/services/lock.service.mjs +72 -0
  161. package/esm2022/lib/document-list/services/node-actions.service.mjs +122 -0
  162. package/esm2022/lib/group/index.mjs +18 -0
  163. package/esm2022/lib/group/public-api.mjs +18 -0
  164. package/esm2022/lib/group/services/group.service.mjs +84 -0
  165. package/esm2022/lib/infinite-scroll-datasource/index.mjs +18 -0
  166. package/esm2022/lib/infinite-scroll-datasource/infinite-scroll-datasource.mjs +69 -0
  167. package/esm2022/lib/infinite-scroll-datasource/public-api.mjs +18 -0
  168. package/esm2022/lib/interfaces/base-card-view-content-update.interface.mjs +18 -0
  169. package/esm2022/lib/interfaces/index.mjs +18 -0
  170. package/esm2022/lib/interfaces/library-entity.interface.mjs +18 -0
  171. package/esm2022/lib/interfaces/library-membership-error-event.interface.mjs +18 -0
  172. package/esm2022/lib/interfaces/library-membership-toggle-event.interface.mjs +18 -0
  173. package/esm2022/lib/interfaces/node-allowable-operation-subject.interface.mjs +18 -0
  174. package/esm2022/lib/interfaces/public-api.mjs +23 -0
  175. package/esm2022/lib/interfaces/restore-message-model.interface.mjs +19 -0
  176. package/esm2022/lib/legal-hold/index.mjs +18 -0
  177. package/esm2022/lib/legal-hold/public-api.mjs +18 -0
  178. package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +136 -0
  179. package/esm2022/lib/material.module.mjs +183 -0
  180. package/esm2022/lib/mock/alfresco-api.service.mock.mjs +43 -0
  181. package/esm2022/lib/mock/date-range-search-filter.mock.mjs +65 -0
  182. package/esm2022/lib/mock/document-library.model.mock.mjs +84 -0
  183. package/esm2022/lib/mock/document-list.component.mock.mjs +364 -0
  184. package/esm2022/lib/mock/index.mjs +18 -0
  185. package/esm2022/lib/mock/new-version-uploader.service.mock.mjs +161 -0
  186. package/esm2022/lib/mock/public-api.mjs +27 -0
  187. package/esm2022/lib/mock/search-filter-mock.mjs +637 -0
  188. package/esm2022/lib/mock/search-query.mock.mjs +40 -0
  189. package/esm2022/lib/mock/search.component.mock.mjs +165 -0
  190. package/esm2022/lib/mock/search.service.mock.mjs +61 -0
  191. package/esm2022/lib/mock/sites-dropdown.component.mock.mjs +281 -0
  192. package/esm2022/lib/new-version-uploader/index.mjs +18 -0
  193. package/esm2022/lib/new-version-uploader/models/index.mjs +18 -0
  194. package/esm2022/lib/new-version-uploader/models/new-version-uploader.model.mjs +24 -0
  195. package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +75 -0
  196. package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +33 -0
  197. package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +103 -0
  198. package/esm2022/lib/new-version-uploader/public-api.mjs +21 -0
  199. package/esm2022/lib/node-comments/index.mjs +18 -0
  200. package/esm2022/lib/node-comments/node-comments.component.mjs +44 -0
  201. package/esm2022/lib/node-comments/node-comments.module.mjs +33 -0
  202. package/esm2022/lib/node-comments/public-api.mjs +20 -0
  203. package/esm2022/lib/node-comments/services/node-comments.service.mjs +85 -0
  204. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog-data.interface.mjs +18 -0
  205. package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +124 -0
  206. package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +103 -0
  207. package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +70 -0
  208. package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +45 -0
  209. package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +67 -0
  210. package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +56 -0
  211. package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +103 -0
  212. package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +88 -0
  213. package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +219 -0
  214. package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +134 -0
  215. package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +88 -0
  216. package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +82 -0
  217. package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +112 -0
  218. package/esm2022/lib/permission-manager/index.mjs +18 -0
  219. package/esm2022/lib/permission-manager/models/member.model.mjs +59 -0
  220. package/esm2022/lib/permission-manager/models/permission.model.mjs +29 -0
  221. package/esm2022/lib/permission-manager/models/role.model.mjs +18 -0
  222. package/esm2022/lib/permission-manager/permission-manager.module.mjs +84 -0
  223. package/esm2022/lib/permission-manager/public-api.mjs +36 -0
  224. package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +78 -0
  225. package/esm2022/lib/permission-manager/services/node-permission.service.mjs +299 -0
  226. package/esm2022/lib/pipes/content-pipe.module.mjs +37 -0
  227. package/esm2022/lib/pipes/index.mjs +18 -0
  228. package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +69 -0
  229. package/esm2022/lib/pipes/public-api.mjs +19 -0
  230. package/esm2022/lib/prediction/index.mjs +18 -0
  231. package/esm2022/lib/prediction/public-api.mjs +18 -0
  232. package/esm2022/lib/prediction/services/index.mjs +18 -0
  233. package/esm2022/lib/prediction/services/prediction.service.mjs +57 -0
  234. package/esm2022/lib/search/components/empty-search-result.component.mjs +27 -0
  235. package/esm2022/lib/search/components/index.mjs +43 -0
  236. package/esm2022/lib/search/components/reset-search.directive.mjs +41 -0
  237. package/esm2022/lib/search/components/search-check-list/index.mjs +18 -0
  238. package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +159 -0
  239. package/esm2022/lib/search/components/search-chip-autocomplete-input/index.mjs +18 -0
  240. package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +170 -0
  241. package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +47 -0
  242. package/esm2022/lib/search/components/search-control.component.mjs +181 -0
  243. package/esm2022/lib/search/components/search-date-range-tabbed/index.mjs +22 -0
  244. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/date-range-type.mjs +23 -0
  245. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/in-last-date-type.mjs +23 -0
  246. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +197 -0
  247. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.mjs +18 -0
  248. package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +201 -0
  249. package/esm2022/lib/search/components/search-datetime-range/index.mjs +18 -0
  250. package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +224 -0
  251. package/esm2022/lib/search/components/search-facet-field/index.mjs +18 -0
  252. package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +133 -0
  253. package/esm2022/lib/search/components/search-filter/index.mjs +19 -0
  254. package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +46 -0
  255. package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +81 -0
  256. package/esm2022/lib/search/components/search-filter-autocomplete-chips/index.mjs +18 -0
  257. package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +155 -0
  258. package/esm2022/lib/search/components/search-filter-chips/index.mjs +23 -0
  259. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +105 -0
  260. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +110 -0
  261. package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +129 -0
  262. package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +64 -0
  263. package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +44 -0
  264. package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +110 -0
  265. package/esm2022/lib/search/components/search-filter-container/index.mjs +18 -0
  266. package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +123 -0
  267. package/esm2022/lib/search/components/search-filter-tabbed/index.mjs +19 -0
  268. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +36 -0
  269. package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +64 -0
  270. package/esm2022/lib/search/components/search-form/index.mjs +18 -0
  271. package/esm2022/lib/search/components/search-form/search-form.component.mjs +53 -0
  272. package/esm2022/lib/search/components/search-input/index.mjs +18 -0
  273. package/esm2022/lib/search/components/search-input/search-input.component.mjs +109 -0
  274. package/esm2022/lib/search/components/search-logical-filter/index.mjs +18 -0
  275. package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +164 -0
  276. package/esm2022/lib/search/components/search-number-range/index.mjs +18 -0
  277. package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +155 -0
  278. package/esm2022/lib/search/components/search-panel/index.mjs +18 -0
  279. package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +44 -0
  280. package/esm2022/lib/search/components/search-properties/file-size-condition.mjs +18 -0
  281. package/esm2022/lib/search/components/search-properties/file-size-operator.enum.mjs +23 -0
  282. package/esm2022/lib/search/components/search-properties/file-size-unit.enum.mjs +26 -0
  283. package/esm2022/lib/search/components/search-properties/index.mjs +22 -0
  284. package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +244 -0
  285. package/esm2022/lib/search/components/search-properties/search-properties.mjs +18 -0
  286. package/esm2022/lib/search/components/search-radio/index.mjs +18 -0
  287. package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +146 -0
  288. package/esm2022/lib/search/components/search-slider/index.mjs +18 -0
  289. package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +120 -0
  290. package/esm2022/lib/search/components/search-sorting-picker/index.mjs +18 -0
  291. package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +77 -0
  292. package/esm2022/lib/search/components/search-text/index.mjs +18 -0
  293. package/esm2022/lib/search/components/search-text/search-text.component.mjs +135 -0
  294. package/esm2022/lib/search/components/search-widget-container/index.mjs +18 -0
  295. package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +113 -0
  296. package/esm2022/lib/search/components/search.component.mjs +153 -0
  297. package/esm2022/lib/search/forms/index.mjs +19 -0
  298. package/esm2022/lib/search/forms/live-error-state-matcher.mjs +23 -0
  299. package/esm2022/lib/search/forms/search-term-validator.mjs +26 -0
  300. package/esm2022/lib/search/index.mjs +18 -0
  301. package/esm2022/lib/search/mocks/index.mjs +18 -0
  302. package/esm2022/lib/search/mocks/search.service.mock.mjs +56 -0
  303. package/esm2022/lib/search/models/autocomplete-option.interface.mjs +22 -0
  304. package/esm2022/lib/search/models/facet-field-bucket.interface.mjs +18 -0
  305. package/esm2022/lib/search/models/facet-field.interface.mjs +29 -0
  306. package/esm2022/lib/search/models/facet-query.interface.mjs +18 -0
  307. package/esm2022/lib/search/models/facet-widget.interface.mjs +18 -0
  308. package/esm2022/lib/search/models/filter-query.interface.mjs +18 -0
  309. package/esm2022/lib/search/models/filter-search.interface.mjs +18 -0
  310. package/esm2022/lib/search/models/index.mjs +34 -0
  311. package/esm2022/lib/search/models/response-facet-query-list.model.mjs +31 -0
  312. package/esm2022/lib/search/models/search-category.interface.mjs +18 -0
  313. package/esm2022/lib/search/models/search-configuration.interface.mjs +18 -0
  314. package/esm2022/lib/search/models/search-filter-list.model.mjs +148 -0
  315. package/esm2022/lib/search/models/search-form.interface.mjs +18 -0
  316. package/esm2022/lib/search/models/search-range.interface.mjs +18 -0
  317. package/esm2022/lib/search/models/search-sorting-definition.interface.mjs +18 -0
  318. package/esm2022/lib/search/models/search-widget-settings.interface.mjs +18 -0
  319. package/esm2022/lib/search/models/search-widget.interface.mjs +18 -0
  320. package/esm2022/lib/search/models/tabbed-facet-field.interface.mjs +18 -0
  321. package/esm2022/lib/search/public-api.mjs +24 -0
  322. package/esm2022/lib/search/search-configuration.token.mjs +19 -0
  323. package/esm2022/lib/search/search.module.mjs +192 -0
  324. package/esm2022/lib/search/services/base-query-builder.service.mjs +509 -0
  325. package/esm2022/lib/search/services/index.mjs +24 -0
  326. package/esm2022/lib/search/services/search-configuration.service.mjs +50 -0
  327. package/esm2022/lib/search/services/search-facet-filters.service.mjs +374 -0
  328. package/esm2022/lib/search/services/search-filter.service.mjs +56 -0
  329. package/esm2022/lib/search/services/search-header-query-builder.service.mjs +136 -0
  330. package/esm2022/lib/search/services/search-query-builder.service.mjs +48 -0
  331. package/esm2022/lib/search/services/search.service.mjs +89 -0
  332. package/esm2022/lib/search-ai/index.mjs +18 -0
  333. package/esm2022/lib/search-ai/models/search-ai-input-state.mjs +18 -0
  334. package/esm2022/lib/search-ai/public-api.mjs +19 -0
  335. package/esm2022/lib/search-ai/services/search-ai.service.mjs +103 -0
  336. package/esm2022/lib/security/index.mjs +18 -0
  337. package/esm2022/lib/security/public-api.mjs +18 -0
  338. package/esm2022/lib/security/services/models/security-controls-group-response.interface.mjs +18 -0
  339. package/esm2022/lib/security/services/models/security-controls-mark-response.interface.mjs +18 -0
  340. package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +274 -0
  341. package/esm2022/lib/security-options-loader/security-options-loader.service.mjs +43 -0
  342. package/esm2022/lib/services/alfresco-api.interface.mjs +18 -0
  343. package/esm2022/lib/services/alfresco-api.service.mjs +120 -0
  344. package/esm2022/lib/services/index.mjs +18 -0
  345. package/esm2022/lib/services/public-api.mjs +18 -0
  346. package/esm2022/lib/tag/index.mjs +18 -0
  347. package/esm2022/lib/tag/public-api.mjs +24 -0
  348. package/esm2022/lib/tag/services/tag.service.mjs +171 -0
  349. package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +115 -0
  350. package/esm2022/lib/tag/tag-list/tag-list.component.mjs +98 -0
  351. package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +80 -0
  352. package/esm2022/lib/tag/tag.module.mjs +37 -0
  353. package/esm2022/lib/tag/tags-creator/tags-creator-mode.mjs +27 -0
  354. package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +371 -0
  355. package/esm2022/lib/testing/content.testing.module.mjs +56 -0
  356. package/esm2022/lib/tree/components/tree.component.mjs +313 -0
  357. package/esm2022/lib/tree/index.mjs +18 -0
  358. package/esm2022/lib/tree/models/tree-context-menu-result.interface.mjs +18 -0
  359. package/esm2022/lib/tree/models/tree-node.interface.mjs +22 -0
  360. package/esm2022/lib/tree/models/tree-response.interface.mjs +18 -0
  361. package/esm2022/lib/tree/public-api.mjs +23 -0
  362. package/esm2022/lib/tree/services/tree.service.mjs +134 -0
  363. package/esm2022/lib/tree/tree.module.mjs +33 -0
  364. package/esm2022/lib/tree-view/components/tree-view.component.mjs +76 -0
  365. package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +99 -0
  366. package/esm2022/lib/tree-view/index.mjs +18 -0
  367. package/esm2022/lib/tree-view/models/tree-view.model.mjs +28 -0
  368. package/esm2022/lib/tree-view/public-api.mjs +22 -0
  369. package/esm2022/lib/tree-view/services/tree-view.service.mjs +38 -0
  370. package/esm2022/lib/tree-view/tree-view.module.mjs +33 -0
  371. package/esm2022/lib/upload/components/base-upload/upload-base.mjs +176 -0
  372. package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +191 -0
  373. package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +93 -0
  374. package/esm2022/lib/upload/components/file-uploading-list.component.mjs +124 -0
  375. package/esm2022/lib/upload/components/upload-button.component.mjs +134 -0
  376. package/esm2022/lib/upload/components/upload-drag-area.component.mjs +112 -0
  377. package/esm2022/lib/upload/components/upload-files.event.mjs +41 -0
  378. package/esm2022/lib/upload/components/upload-version-button.component.mjs +55 -0
  379. package/esm2022/lib/upload/directives/file-draggable.directive.mjs +154 -0
  380. package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +75 -0
  381. package/esm2022/lib/upload/index.mjs +18 -0
  382. package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +39 -0
  383. package/esm2022/lib/upload/public-api.mjs +29 -0
  384. package/esm2022/lib/upload/upload.module.mjs +72 -0
  385. package/esm2022/lib/version-compatibility/index.mjs +18 -0
  386. package/esm2022/lib/version-compatibility/public-api.mjs +20 -0
  387. package/esm2022/lib/version-compatibility/version-compatibility-factory.mjs +26 -0
  388. package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +53 -0
  389. package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +33 -0
  390. package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +76 -0
  391. package/esm2022/lib/version-manager/content-version.service.mjs +53 -0
  392. package/esm2022/lib/version-manager/index.mjs +18 -0
  393. package/esm2022/lib/version-manager/public-api.mjs +23 -0
  394. package/esm2022/lib/version-manager/version-comparison.component.mjs +43 -0
  395. package/esm2022/lib/version-manager/version-list.component.mjs +216 -0
  396. package/esm2022/lib/version-manager/version-manager.component.mjs +146 -0
  397. package/esm2022/lib/version-manager/version-manager.module.mjs +48 -0
  398. package/esm2022/lib/version-manager/version-upload.component.mjs +155 -0
  399. package/esm2022/lib/viewer/alfresco-viewer.module.mjs +33 -0
  400. package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +401 -0
  401. package/esm2022/lib/viewer/index.mjs +18 -0
  402. package/esm2022/lib/viewer/public-api.mjs +19 -0
  403. package/esm2022/public-api.mjs +56 -0
  404. package/fesm2022/adf-content-services.mjs +767 -749
  405. package/fesm2022/adf-content-services.mjs.map +1 -1
  406. package/lib/upload/components/base-upload/upload-base.d.ts +1 -1
  407. package/package.json +5 -3
@@ -0,0 +1,168 @@
1
+ /*!
2
+ * @license
3
+ * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
18
+ import { InfiniteSelectScrollDirective, AuthenticationService } from '@alfresco/adf-core';
19
+ import { SitePaging, SiteEntry, Site } from '@alfresco/js-api';
20
+ import { MatSelectModule } from '@angular/material/select';
21
+ import { LiveAnnouncer } from '@angular/cdk/a11y';
22
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
23
+ import { SitesService } from '../../common/services/sites.service';
24
+ import { CommonModule } from '@angular/common';
25
+ import { MatFormFieldModule } from '@angular/material/form-field';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "@alfresco/adf-core";
28
+ import * as i2 from "../../common/services/sites.service";
29
+ import * as i3 from "@angular/cdk/a11y";
30
+ import * as i4 from "@ngx-translate/core";
31
+ import * as i5 from "@angular/common";
32
+ import * as i6 from "@angular/material/form-field";
33
+ import * as i7 from "@angular/material/select";
34
+ import * as i8 from "@angular/material/core";
35
+ /* eslint-disable no-shadow */
36
+ /* eslint-disable @typescript-eslint/naming-convention */
37
+ export var Relations;
38
+ (function (Relations) {
39
+ Relations["Members"] = "members";
40
+ Relations["Containers"] = "containers";
41
+ })(Relations || (Relations = {}));
42
+ export class DropdownSitesComponent {
43
+ constructor(authService, sitesService, liveAnnouncer, translateService) {
44
+ this.authService = authService;
45
+ this.sitesService = sitesService;
46
+ this.liveAnnouncer = liveAnnouncer;
47
+ this.translateService = translateService;
48
+ /** Hide the "My Files" option. */
49
+ this.hideMyFiles = false;
50
+ /**
51
+ * A custom list of sites to be displayed by the dropdown. If no value
52
+ * is given, the sites of the current user are displayed by default. A
53
+ * list of objects only with properties 'title' and 'guid' is enough to
54
+ * be able to display the dropdown.
55
+ */
56
+ this.siteList = null;
57
+ /** Id of the selected site */
58
+ this.value = null;
59
+ /**
60
+ * Text or a translation key to act as a placeholder. Default value is the
61
+ * key "DROPDOWN.PLACEHOLDER_LABEL".
62
+ */
63
+ this.placeholder = 'DROPDOWN.PLACEHOLDER_LABEL';
64
+ /**
65
+ * Emitted when the user selects a site. When the default option is selected,
66
+ * an empty model is emitted.
67
+ */
68
+ this.change = new EventEmitter();
69
+ this.error = new EventEmitter();
70
+ this.loading = true;
71
+ this.skipCount = 0;
72
+ this.selected = null;
73
+ this.MY_FILES_VALUE = '-my-';
74
+ }
75
+ ngOnInit() {
76
+ if (!this.siteList) {
77
+ this.loadSiteList();
78
+ }
79
+ }
80
+ loadAllOnScroll() {
81
+ if (this.isInfiniteScrollingEnabled()) {
82
+ this.loading = true;
83
+ this.loadSiteList();
84
+ }
85
+ }
86
+ selectedSite(event) {
87
+ this.liveAnnouncer.announce(this.translateService.instant('ADF_DROPDOWN.SELECTION_ARIA_LABEL', {
88
+ placeholder: this.translateService.instant(this.placeholder),
89
+ selectedOption: this.translateService.instant(event.value.entry.title)
90
+ }));
91
+ this.change.emit(event.value);
92
+ }
93
+ loadSiteList() {
94
+ const extendedOptions = {
95
+ skipCount: this.skipCount,
96
+ maxItems: InfiniteSelectScrollDirective.MAX_ITEMS
97
+ };
98
+ this.skipCount += InfiniteSelectScrollDirective.MAX_ITEMS;
99
+ if (this.relations) {
100
+ extendedOptions.relations = [this.relations];
101
+ }
102
+ this.sitesService.getSites(extendedOptions).subscribe((sitePaging) => {
103
+ if (!this.siteList) {
104
+ this.siteList = this.relations === Relations.Members ? this.filteredResultsByMember(sitePaging) : sitePaging;
105
+ if (!this.hideMyFiles) {
106
+ const siteEntry = new SiteEntry({
107
+ entry: new Site({ id: this.MY_FILES_VALUE, guid: this.MY_FILES_VALUE, title: 'DROPDOWN.MY_FILES_OPTION' })
108
+ });
109
+ this.siteList.list.entries.unshift(siteEntry);
110
+ if (!this.value) {
111
+ this.value = this.MY_FILES_VALUE;
112
+ }
113
+ }
114
+ }
115
+ else {
116
+ const siteList = this.relations === Relations.Members ? this.filteredResultsByMember(sitePaging) : sitePaging;
117
+ this.siteList.list.entries = this.siteList.list.entries.concat(siteList.list.entries);
118
+ this.siteList.list.pagination = sitePaging.list.pagination;
119
+ }
120
+ this.selected = this.siteList.list.entries.find((site) => site.entry.id === this.value);
121
+ if (this.value && !this.selected && this.siteListHasMoreItems()) {
122
+ this.loadSiteList();
123
+ }
124
+ this.loading = false;
125
+ }, (error) => {
126
+ this.error.emit(error);
127
+ });
128
+ }
129
+ showLoading() {
130
+ return this.loading && this.siteListHasMoreItems();
131
+ }
132
+ isInfiniteScrollingEnabled() {
133
+ return !this.loading && this.siteListHasMoreItems();
134
+ }
135
+ siteListHasMoreItems() {
136
+ return this.siteList?.list.pagination?.hasMoreItems;
137
+ }
138
+ filteredResultsByMember(sites) {
139
+ const loggedUserName = this.authService.getEcmUsername();
140
+ sites.list.entries = sites.list.entries.filter((site) => this.isCurrentUserMember(site, loggedUserName));
141
+ return sites;
142
+ }
143
+ isCurrentUserMember(site, loggedUserName) {
144
+ return (site.entry.visibility === 'PUBLIC' ||
145
+ !!site.relations.members.list.entries.find((member) => member.entry.id.toLowerCase() === loggedUserName.toLowerCase()));
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.SitesService }, { token: i3.LiveAnnouncer }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownSitesComponent, isStandalone: true, selector: "adf-sites-dropdown", inputs: { hideMyFiles: "hideMyFiles", siteList: "siteList", value: "value", placeholder: "placeholder", relations: "relations" }, outputs: { change: "change", error: "error" }, host: { classAttribute: "adf-sites-dropdown" }, ngImport: i0, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: InfiniteSelectScrollDirective, selector: "[adf-infinite-select-scroll]", outputs: ["scrollEnd"] }], encapsulation: i0.ViewEncapsulation.None }); }
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'adf-sites-dropdown', standalone: true, imports: [CommonModule, TranslateModule, MatFormFieldModule, MatSelectModule, InfiniteSelectScrollDirective], encapsulation: ViewEncapsulation.None, host: { class: 'adf-sites-dropdown' }, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n" }]
153
+ }], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.SitesService }, { type: i3.LiveAnnouncer }, { type: i4.TranslateService }], propDecorators: { hideMyFiles: [{
154
+ type: Input
155
+ }], siteList: [{
156
+ type: Input
157
+ }], value: [{
158
+ type: Input
159
+ }], placeholder: [{
160
+ type: Input
161
+ }], relations: [{
162
+ type: Input
163
+ }], change: [{
164
+ type: Output
165
+ }], error: [{
166
+ type: Output
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW5vZGUtc2VsZWN0b3Ivc2l0ZS1kcm9wZG93bi9zaXRlcy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9zaXRlLWRyb3Bkb3duL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsOEJBQThCO0FBQzlCLHlEQUF5RDtBQUV6RCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQs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T0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pILENBQUM7SUFDTixDQUFDOytHQXZKUSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrU0MzQ25DLCt5Q0EwQkEsMkNEWWMsWUFBWSwrUEFBRSxlQUFlLDJGQUFFLGtCQUFrQiwwU0FBRSxlQUFlLHN3QkFBRSw2QkFBNkI7OzRGQUtsRyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixDQUFDLGlCQUU3RixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2dMQUtyQyxXQUFXO3NCQURWLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sU0FBUztzQkFEUixLQUFLO2dCQVFOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNpdGVQYWdpbmcsIFNpdGVFbnRyeSwgU2l0ZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2l0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3NpdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuXG5leHBvcnQgZW51bSBSZWxhdGlvbnMge1xuICAgIE1lbWJlcnMgPSAnbWVtYmVycycsXG4gICAgQ29udGFpbmVycyA9ICdjb250YWluZXJzJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zaXRlcy1kcm9wZG93bicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2l0ZXMtZHJvcGRvd24nIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25TaXRlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIEhpZGUgdGhlIFwiTXkgRmlsZXNcIiBvcHRpb24uICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTXlGaWxlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQSBjdXN0b20gbGlzdCBvZiBzaXRlcyB0byBiZSBkaXNwbGF5ZWQgYnkgdGhlIGRyb3Bkb3duLiBJZiBubyB2YWx1ZVxuICAgICAqIGlzIGdpdmVuLCB0aGUgc2l0ZXMgb2YgdGhlIGN1cnJlbnQgdXNlciBhcmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQuIEFcbiAgICAgKiBsaXN0IG9mIG9iamVjdHMgb25seSB3aXRoIHByb3BlcnRpZXMgJ3RpdGxlJyBhbmQgJ2d1aWQnIGlzIGVub3VnaCB0b1xuICAgICAqIGJlIGFibGUgdG8gZGlzcGxheSB0aGUgZHJvcGRvd24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaXRlTGlzdDogU2l0ZVBhZ2luZyA9IG51bGw7XG5cbiAgICAvKiogSWQgb2YgdGhlIHNlbGVjdGVkIHNpdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBvciBhIHRyYW5zbGF0aW9uIGtleSB0byBhY3QgYXMgYSBwbGFjZWhvbGRlci4gRGVmYXVsdCB2YWx1ZSBpcyB0aGVcbiAgICAgKiBrZXkgXCJEUk9QRE9XTi5QTEFDRUhPTERFUl9MQUJFTFwiLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdEUk9QRE9XTi5QTEFDRUhPTERFUl9MQUJFTCc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZm9yIHRoZSByZXN1bHRzIG9mIHRoZSBzaXRlcyBxdWVyeS4gUG9zc2libGUgdmFsdWVzIGFyZVxuICAgICAqIFwibWVtYmVyc1wiIGFuZCBcImNvbnRhaW5lcnNcIi4gV2hlbiBcIm1lbWJlcnNcIiBpcyB1c2VkLCB0aGUgc2l0ZSBsaXN0XG4gICAgICogd2lsbCBiZSByZXN0cmljdGVkIHRvIHRoZSBzaXRlcyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVsYXRpb25zOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIHNpdGUuIFdoZW4gdGhlIGRlZmF1bHQgb3B0aW9uIGlzIHNlbGVjdGVkLFxuICAgICAqIGFuIGVtcHR5IG1vZGVsIGlzIGVtaXR0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTaXRlRW50cnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nID0gdHJ1ZTtcbiAgICBwcml2YXRlIHNraXBDb3VudCA9IDA7XG5cbiAgICBzZWxlY3RlZDogU2l0ZUVudHJ5ID0gbnVsbDtcbiAgICBNWV9GSUxFU19WQUxVRSA9ICctbXktJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlcixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkU2l0ZUxpc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRBbGxPblNjcm9sbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJbmZpbml0ZVNjcm9sbGluZ0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubG9hZFNpdGVMaXN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZFNpdGUoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgICAgICB0aGlzLmxpdmVBbm5vdW5jZXIuYW5ub3VuY2UoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQURGX0RST1BET1dOLlNFTEVDVElPTl9BUklBX0xBQkVMJywge1xuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnBsYWNlaG9sZGVyKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXZlbnQudmFsdWUuZW50cnkudGl0bGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRTaXRlTGlzdCgpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5kZWRPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMuc2tpcENvdW50LFxuICAgICAgICAgICAgbWF4SXRlbXM6IEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlLk1BWF9JVEVNU1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2tpcENvdW50ICs9IEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlLk1BWF9JVEVNUztcblxuICAgICAgICBpZiAodGhpcy5yZWxhdGlvbnMpIHtcbiAgICAgICAgICAgIGV4dGVuZGVkT3B0aW9ucy5yZWxhdGlvbnMgPSBbdGhpcy5yZWxhdGlvbnNdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaXRlc1NlcnZpY2UuZ2V0U2l0ZXMoZXh0ZW5kZWRPcHRpb25zKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoc2l0ZVBhZ2luZzogU2l0ZVBhZ2luZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zaXRlTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0ID0gdGhpcy5yZWxhdGlvbnMgPT09IFJlbGF0aW9ucy5NZW1iZXJzID8gdGhpcy5maWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlUGFnaW5nKSA6IHNpdGVQYWdpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhpZGVNeUZpbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXRlRW50cnkgPSBuZXcgU2l0ZUVudHJ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogbmV3IFNpdGUoeyBpZDogdGhpcy5NWV9GSUxFU19WQUxVRSwgZ3VpZDogdGhpcy5NWV9GSUxFU19WQUxVRSwgdGl0bGU6ICdEUk9QRE9XTi5NWV9GSUxFU19PUFRJT04nIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMudW5zaGlmdChzaXRlRW50cnkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5NWV9GSUxFU19WQUxVRTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVMaXN0OiBTaXRlUGFnaW5nID0gdGhpcy5yZWxhdGlvbnMgPT09IFJlbGF0aW9ucy5NZW1iZXJzID8gdGhpcy5maWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlUGFnaW5nKSA6IHNpdGVQYWdpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMgPSB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy5jb25jYXQoc2l0ZUxpc3QubGlzdC5lbnRyaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LnBhZ2luYXRpb24gPSBzaXRlUGFnaW5nLmxpc3QucGFnaW5hdGlvbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMuZmluZCgoc2l0ZTogU2l0ZUVudHJ5KSA9PiBzaXRlLmVudHJ5LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2l0ZUxpc3RIYXNNb3JlSXRlbXMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRTaXRlTGlzdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2hvd0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmcgJiYgdGhpcy5zaXRlTGlzdEhhc01vcmVJdGVtcygpO1xuICAgIH1cblxuICAgIGlzSW5maW5pdGVTY3JvbGxpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubG9hZGluZyAmJiB0aGlzLnNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaXRlTGlzdEhhc01vcmVJdGVtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l0ZUxpc3Q/Lmxpc3QucGFnaW5hdGlvbj8uaGFzTW9yZUl0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyZWRSZXN1bHRzQnlNZW1iZXIoc2l0ZXM6IFNpdGVQYWdpbmcpOiBTaXRlUGFnaW5nIHtcbiAgICAgICAgY29uc3QgbG9nZ2VkVXNlck5hbWUgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEVjbVVzZXJuYW1lKCk7XG4gICAgICAgIHNpdGVzLmxpc3QuZW50cmllcyA9IHNpdGVzLmxpc3QuZW50cmllcy5maWx0ZXIoKHNpdGUpID0+IHRoaXMuaXNDdXJyZW50VXNlck1lbWJlcihzaXRlLCBsb2dnZWRVc2VyTmFtZSkpO1xuICAgICAgICByZXR1cm4gc2l0ZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0N1cnJlbnRVc2VyTWVtYmVyKHNpdGU6IFNpdGVFbnRyeSwgbG9nZ2VkVXNlck5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc2l0ZS5lbnRyeS52aXNpYmlsaXR5ID09PSAnUFVCTElDJyB8fFxuICAgICAgICAgICAgISFzaXRlLnJlbGF0aW9ucy5tZW1iZXJzLmxpc3QuZW50cmllcy5maW5kKChtZW1iZXIpID0+IG1lbWJlci5lbnRyeS5pZC50b0xvd2VyQ2FzZSgpID09PSBsb2dnZWRVc2VyTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgaWQ9XCJzaXRlLWRyb3Bkb3duLWNvbnRhaW5lclwiIGNsYXNzPVwiYWRmLXNpdGUtZHJvcGRvd24tY29udGFpbmVyXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLXNpdGVzLWRyb3Bkb3duLWZvcm0tZmllbGRcIiBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyAnTk9ERV9TRUxFQ1RPUi5MT0NBVElPTicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIGFkZi1pbmZpbml0ZS1zZWxlY3Qtc2Nyb2xsXG4gICAgICAgICAgICAoc2Nyb2xsRW5kKT1cImxvYWRBbGxPblNjcm9sbCgpXCJcbiAgICAgICAgICAgICNzaXRlU2VsZWN0XG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJzaXRlLW15LWZpbGVzLW9wdGlvblwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1zaXRlLWRyb3Bkb3duLWxpc3QtZWxlbWVudFwiXG4gICAgICAgICAgICBpZD1cInNpdGUtZHJvcGRvd25cIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3RlZFNpdGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlciBjbGFzcz1cImFkZi1zaXRlcy1kcm9wZG93bi1zZWxlY3QtdHJpZ2dlclwiPlxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkPy5lbnRyeS50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVMaXN0Py5saXN0LmVudHJpZXM7XCIgW3ZhbHVlXT1cInNpdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBzaXRlLmVudHJ5LnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwic2hvd0xvYWRpbmcoKVwiIGRpc2FibGVkPVwidHJ1ZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInNpdGUtbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfRFJPUERPV04uTE9BRElORycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19