@eo-sdk/client 11.7.0-beta.1 → 11.7.0-rc.1

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 (427) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +35 -35
  3. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +1 -1
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  6. package/app/eo-framework/actions/action.module.d.ts +15 -13
  7. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  8. package/app/eo-framework/actions/actions/custom-actions/custom-actions.component.d.ts.map +1 -1
  9. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts.map +1 -1
  10. package/app/eo-framework/actions/actions/unlock-action/unlock-action.d.ts +4 -3
  11. package/app/eo-framework/actions/actions/unlock-action/unlock-action.d.ts.map +1 -1
  12. package/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.d.ts +23 -0
  13. package/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.d.ts.map +1 -0
  14. package/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.d.ts.map +1 -1
  15. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -1
  16. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  17. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  18. package/app/eo-framework/form-elements/organization/organization.component.d.ts +1 -0
  19. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  20. package/app/eo-framework/grid/grid.component.d.ts +7 -0
  21. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  22. package/app/eo-framework/media/media.component.d.ts +3 -2
  23. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  24. package/app/eo-framework/object-details/object-details.component.d.ts +13 -4
  25. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  26. package/app/eo-framework/object-details/object-history/object-history.component.d.ts +3 -2
  27. package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
  28. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  29. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +50 -0
  30. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  31. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts +10 -0
  32. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.d.ts.map +1 -0
  33. package/app/eo-framework-core/search/app-search.service.d.ts +12 -1
  34. package/app/eo-framework-core/search/app-search.service.d.ts.map +1 -1
  35. package/assets/_default/README.md +2 -2
  36. package/assets/_default/config/extend.json +6 -6
  37. package/assets/_default/config/main.json +44 -44
  38. package/assets/_default/fonts/roboto_bold_macroman/Roboto-Bold-webfont.svg +765 -765
  39. package/assets/_default/fonts/roboto_light_macroman/Roboto-Light-webfont.svg +818 -818
  40. package/assets/_default/fonts/roboto_medium_macroman/Roboto-Medium-webfont.svg +765 -765
  41. package/assets/_default/fonts/roboto_regular_macroman/Roboto-Regular-webfont.svg +795 -795
  42. package/assets/_default/i18n/de.json +1133 -1130
  43. package/assets/_default/i18n/en.json +1133 -1130
  44. package/assets/_default/i18n/po/de.po +310 -310
  45. package/assets/_default/i18n/po/en.po +310 -310
  46. package/assets/_default/svg/ic_delete_sweep.svg +3 -3
  47. package/assets/_default/svg/ic_emoticon-cool.svg +1 -1
  48. package/assets/_default/svg/ic_kitt-loader.svg +1 -1
  49. package/assets/_default/svg/ic_link.svg +6 -6
  50. package/assets/_default/svg/ic_not_listed_location.svg +4 -4
  51. package/assets/_default/theme/theme.css +13 -13
  52. package/assets/dashboard.json +47 -47
  53. package/assets/i18n/temp.json +584 -584
  54. package/assets/i18n/temp.pot +1753 -1753
  55. package/esm2022/app/eo-client/about-state/about-state.component.mjs +5 -5
  56. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  57. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +13 -17
  58. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +3 -3
  59. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  60. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  61. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  62. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  63. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  64. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  65. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  66. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  67. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -3
  68. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  69. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  70. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +1 -1
  71. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  72. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  73. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +1 -1
  74. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  75. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  76. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +1 -1
  77. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  78. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  79. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  80. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  81. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  82. package/esm2022/app/eo-client/eo-client-routing.module.mjs +1 -1
  83. package/esm2022/app/eo-client/eo-client.module.mjs +1 -1
  84. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +14 -14
  85. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -18
  86. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox.types.enum.mjs +1 -1
  87. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +1 -1
  88. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +1 -1
  89. package/esm2022/app/eo-client/index.mjs +1 -1
  90. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  91. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +16 -16
  92. package/esm2022/app/eo-client/notifications-state/notifications-state.interface.mjs +1 -1
  93. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  94. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +1 -1
  95. package/esm2022/app/eo-client/object-state/object-state-service/object-state.interface.mjs +1 -1
  96. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +1 -1
  97. package/esm2022/app/eo-client/object-state/object-state.module.mjs +1 -1
  98. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +14 -14
  99. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +1 -1
  100. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +1 -1
  101. package/esm2022/app/eo-client/process-state/filter-label.mjs +1 -1
  102. package/esm2022/app/eo-client/process-state/process-state.component.mjs +22 -22
  103. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +16 -16
  104. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  105. package/esm2022/app/eo-client/settings/agent-lock-settings.enum.mjs +1 -1
  106. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  107. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +14 -14
  108. package/esm2022/app/eo-client/version-state/version-state.component.mjs +16 -16
  109. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +1 -1
  110. package/esm2022/app/eo-framework/accordion/index.mjs +1 -1
  111. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  112. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +1 -1
  113. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  114. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +1 -1
  115. package/esm2022/app/eo-framework/actions/action-target.mjs +1 -1
  116. package/esm2022/app/eo-framework/actions/action.module.mjs +8 -4
  117. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  118. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +1 -1
  119. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  120. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +1 -1
  121. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  122. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +1 -1
  123. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +1 -1
  124. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  125. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +1 -1
  126. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +2 -1
  127. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +1 -1
  128. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +1 -1
  130. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +1 -1
  131. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  132. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +1 -1
  133. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +1 -1
  134. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  135. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +1 -1
  137. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +1 -1
  138. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +1 -1
  139. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +1 -1
  140. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +1 -1
  142. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  143. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +1 -1
  144. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +1 -1
  145. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +1 -1
  146. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +1 -1
  147. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +7 -4
  148. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +1 -1
  149. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  151. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  152. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +1 -1
  153. package/esm2022/app/eo-framework/actions/actions/signature-action/signature.model.mjs +1 -1
  154. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -4
  155. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.mjs +43 -0
  156. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +1 -1
  157. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +2 -2
  158. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +1 -1
  160. package/esm2022/app/eo-framework/actions/index.mjs +1 -1
  161. package/esm2022/app/eo-framework/actions/interfaces/action-component.interface.mjs +1 -1
  162. package/esm2022/app/eo-framework/actions/interfaces/action-list-entry.mjs +1 -1
  163. package/esm2022/app/eo-framework/actions/interfaces/action.interface.mjs +1 -1
  164. package/esm2022/app/eo-framework/actions/selection-range.enum.mjs +1 -1
  165. package/esm2022/app/eo-framework/animations/animations.mjs +1 -1
  166. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  167. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  170. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +25 -5
  171. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.mjs +1 -1
  172. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  173. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  174. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +1 -1
  176. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +1 -1
  177. package/esm2022/app/eo-framework/app-shell/index.mjs +1 -1
  178. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  180. package/esm2022/app/eo-framework/cta/cta.module.mjs +1 -1
  181. package/esm2022/app/eo-framework/cta/index.mjs +1 -1
  182. package/esm2022/app/eo-framework/eo-framework.module.mjs +1 -1
  183. package/esm2022/app/eo-framework/error/error.module.mjs +1 -1
  184. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  185. package/esm2022/app/eo-framework/error/index.mjs +1 -1
  186. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +1 -1
  187. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  188. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  189. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  190. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +1 -1
  191. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +8 -3
  192. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +5 -5
  193. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +1 -1
  194. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  195. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +1 -1
  196. package/esm2022/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.mjs +1 -1
  197. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  198. package/esm2022/app/eo-framework/form-elements/id-reference/interface/reference-finder.interface.mjs +1 -1
  199. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  200. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  201. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +1 -1
  202. package/esm2022/app/eo-framework/form-elements/index.mjs +1 -1
  203. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  204. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  205. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +27 -18
  206. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  208. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  209. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  211. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  212. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +1 -1
  214. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  215. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filters.interface.mjs +1 -1
  217. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  218. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  219. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +21 -21
  220. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +1 -1
  222. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  223. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  226. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +1 -1
  227. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  228. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  229. package/esm2022/app/eo-framework/grid/grid-filter.model.mjs +1 -1
  230. package/esm2022/app/eo-framework/grid/grid.component.mjs +36 -10
  231. package/esm2022/app/eo-framework/grid/grid.module.mjs +1 -1
  232. package/esm2022/app/eo-framework/grid/index.mjs +1 -1
  233. package/esm2022/app/eo-framework/grid/loader.interface.mjs +1 -1
  234. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  235. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -3
  236. package/esm2022/app/eo-framework/index.mjs +1 -1
  237. package/esm2022/app/eo-framework/list-container/index.mjs +1 -1
  238. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  239. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +1 -1
  240. package/esm2022/app/eo-framework/media/content-preview.service.mjs +1 -1
  241. package/esm2022/app/eo-framework/media/index.mjs +1 -1
  242. package/esm2022/app/eo-framework/media/media.component.mjs +9 -5
  243. package/esm2022/app/eo-framework/media/media.module.mjs +1 -1
  244. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  245. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  246. package/esm2022/app/eo-framework/object-details/index.mjs +1 -1
  247. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +30 -15
  248. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +1 -1
  249. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +1 -1
  250. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  251. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.mjs +1 -1
  252. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +11 -6
  253. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  254. package/esm2022/app/eo-framework/object-form/form-status-changed-event.interface.mjs +1 -1
  255. package/esm2022/app/eo-framework/object-form/index.mjs +1 -1
  256. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +1 -1
  257. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  258. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +12 -12
  259. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
  260. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  261. package/esm2022/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +1 -1
  262. package/esm2022/app/eo-framework/object-form/object-form/object-form-control-wrapper.mjs +1 -1
  263. package/esm2022/app/eo-framework/object-form/object-form/object-form-control.mjs +1 -1
  264. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  265. package/esm2022/app/eo-framework/object-form/object-form/object-form-group.model.mjs +1 -1
  266. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.interface.mjs +1 -1
  267. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +1 -1
  268. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +1 -1
  269. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  270. package/esm2022/app/eo-framework/object-form/object-form/object-form.model.mjs +1 -1
  271. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  272. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +1 -1
  273. package/esm2022/app/eo-framework/object-form/object-form-options.interface.mjs +1 -1
  274. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +1 -1
  275. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  276. package/esm2022/app/eo-framework/plugins/index.mjs +1 -1
  277. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +15 -15
  278. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +1 -1
  279. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +1 -1
  280. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +1 -1
  281. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  282. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +10 -10
  283. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  284. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  285. package/esm2022/app/eo-framework/process/process-file/file-entry-permissions.interface.mjs +1 -1
  286. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  287. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  288. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +1 -1
  289. package/esm2022/app/eo-framework/quick-search/index.mjs +1 -1
  290. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search-result.interface.mjs +1 -1
  291. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  292. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +1 -1
  293. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  294. package/esm2022/app/eo-framework/result-list/index.mjs +1 -1
  295. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +9 -4
  296. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +1 -1
  297. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  298. package/esm2022/app/eo-framework/settings/change-password/change-password.interface.mjs +1 -1
  299. package/esm2022/app/eo-framework/settings/index.mjs +1 -1
  300. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  301. package/esm2022/app/eo-framework/settings/settings.module.mjs +1 -1
  302. package/esm2022/app/eo-framework/shortcuts/global-shortcut-action.interface.mjs +1 -1
  303. package/esm2022/app/eo-framework/shortcuts/global-shortcut-component.interface.mjs +1 -1
  304. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  305. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  306. package/esm2022/app/eo-framework/shortcuts/index.mjs +1 -1
  307. package/esm2022/app/eo-framework/shortcuts/shortcut.interface.mjs +4 -4
  308. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +1 -1
  309. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +1 -1
  310. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +1 -1
  311. package/esm2022/app/eo-framework/stored-query/index.mjs +1 -1
  312. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  313. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  314. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  315. package/esm2022/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +1 -1
  316. package/esm2022/app/eo-framework/stored-query/stored-query.interface.mjs +1 -1
  317. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +1 -1
  318. package/esm2022/app/eo-framework/tree/index.mjs +1 -1
  319. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  320. package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
  321. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  322. package/esm2022/app/eo-framework/tree/tree.module.mjs +1 -1
  323. package/esm2022/app/eo-framework/ui/animations/panel-loading.animation.mjs +1 -1
  324. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  325. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +3 -3
  326. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +1 -1
  327. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  328. package/esm2022/app/eo-framework/ui/index.mjs +1 -1
  329. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
  330. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry.interface.mjs +1 -1
  331. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +140 -7
  332. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.mjs +2 -0
  333. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +7 -7
  334. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +1 -1
  335. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  336. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  337. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +1 -1
  338. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +1 -1
  339. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  340. package/esm2022/app/eo-framework/ui/ui.module.mjs +1 -1
  341. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +1 -1
  342. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +1 -1
  343. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  344. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +1 -1
  345. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +1 -1
  346. package/esm2022/app/eo-framework/util/index.mjs +1 -1
  347. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +1 -1
  348. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +1 -1
  349. package/esm2022/app/eo-framework/util/util.module.mjs +1 -1
  350. package/esm2022/app/eo-framework-core/agent/agent.interface.mjs +1 -1
  351. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +1 -1
  352. package/esm2022/app/eo-framework-core/api/grid.service.mjs +6 -6
  353. package/esm2022/app/eo-framework-core/api/model/dms-object.api.interface.mjs +1 -1
  354. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +1 -1
  355. package/esm2022/app/eo-framework-core/empty-state/empty-state.interface.mjs +1 -1
  356. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +1 -1
  357. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +1 -1
  358. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +1 -1
  359. package/esm2022/app/eo-framework-core/error-handler/error-keys.mjs +1 -1
  360. package/esm2022/app/eo-framework-core/index.mjs +1 -1
  361. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +1 -1
  362. package/esm2022/app/eo-framework-core/location/location.service.mjs +1 -1
  363. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-component.interface.mjs +1 -1
  364. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +1 -1
  365. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +1 -1
  366. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +1 -1
  367. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +1 -1
  368. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +1 -1
  369. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +1 -1
  370. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +1 -1
  371. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +1 -1
  372. package/esm2022/app/eo-framework-core/references/reference.service.mjs +1 -1
  373. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +1 -1
  374. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +1 -1
  375. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +30 -5
  376. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +1 -1
  377. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +1 -1
  378. package/esm2022/public_api.mjs +1 -1
  379. package/fesm2022/eo-sdk-client.mjs +803 -1194
  380. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  381. package/languages/ar.json +523 -523
  382. package/languages/es.json +523 -523
  383. package/languages/fr.json +523 -523
  384. package/languages/po/ar.po +457 -457
  385. package/languages/pt.json +523 -523
  386. package/languages/temp.pot +928 -928
  387. package/languages/zh.json +523 -523
  388. package/misc/client.properties +1 -1
  389. package/misc/doc-styles/style.css +175 -175
  390. package/misc/scripts/copy-client-assets.js +26 -26
  391. package/misc/scripts/copy-core-styles.js +3 -3
  392. package/misc/scripts/exclude-core-ng-package.js +11 -11
  393. package/misc/scripts/helper.js +64 -64
  394. package/misc/scripts/i18n-apply.js +46 -46
  395. package/misc/scripts/i18n-diff.js +100 -100
  396. package/misc/scripts/injectdocbase.js +7 -7
  397. package/misc/scripts/mvn-deploy.js +66 -66
  398. package/misc/scripts/prebuild-about-state.js +32 -32
  399. package/misc/scripts/preparedist.js +39 -39
  400. package/misc/scripts/zipdist.js +21 -21
  401. package/misc/template.yml +4 -4
  402. package/misc/tsscheme.xml +34 -34
  403. package/package.json +3 -3
  404. package/proxy.config.js +13 -0
  405. package/scss/_ag-grid.scss +59 -59
  406. package/scss/_animation.scss +55 -55
  407. package/scss/_eo-variables.scss +78 -78
  408. package/scss/_form.scss +660 -660
  409. package/scss/_main.scss +394 -394
  410. package/scss/_migrationTemp.scss +28 -27
  411. package/scss/_mixins.scss +201 -201
  412. package/scss/_theme-dark.scss +22 -22
  413. package/scss/_timeline.scss +98 -98
  414. package/scss/_yuuvis-components.scss +40 -40
  415. package/styles.css +1 -0
  416. package/styles.scss +141 -141
  417. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts +0 -13
  418. package/app/eo-framework/grid/row-grouping/batchRemover.d.ts.map +0 -1
  419. package/app/eo-framework/grid/row-grouping/group-stage.d.ts +0 -45
  420. package/app/eo-framework/grid/row-grouping/group-stage.d.ts.map +0 -1
  421. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts +0 -8
  422. package/app/eo-framework/grid/row-grouping/row-grouping.module.d.ts.map +0 -1
  423. package/assets/_default/i18n/de_after.json +0 -1137
  424. package/esm2022/app/eo-framework/grid/row-grouping/batchRemover.mjs +0 -50
  425. package/esm2022/app/eo-framework/grid/row-grouping/group-stage.mjs +0 -623
  426. package/esm2022/app/eo-framework/grid/row-grouping/row-grouping.module.mjs +0 -8
  427. package/proxy.config.json +0 -97
@@ -268,4 +268,4 @@ class ScopeElement {
268
268
  return this.element.aliases;
269
269
  }
270
270
  }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXBDLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBbUIsU0FBaUIsRUFDaEIsc0JBQXNCLEVBQ3ZCLEdBQVEsRUFDUCxlQUF5QjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBQTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQVU7UUFqQzdDLHFDQUFxQztRQUM5QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXZCLDBEQUEwRDtRQUNuRCxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBS3RCLDhCQUE4QjtRQUN2QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlEQUFpRDtRQUNqRCwrREFBK0Q7UUFDL0QsMkJBQTJCO1FBQzNCLDhDQUE4QztRQUN2QyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBb0QsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBa0JwRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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QUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nsb25lRGVlcH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbi8vIFRoaXMgY2xhc3Mgd2lsbCBiZSBpbmplY3RlZCBhcyBzY29wZSBpbnRvIGZvcm0gc2NyaXB0c1xyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlIHtcclxuXHJcbiAgLy8gTGlzdCBvZiBhbGwgZm9ybSBmaWVsZHMgKGVsZW1lbnRzKVxyXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XHJcblxyXG4gIC8vIGFsbCBkYXRhIHZhbHVlcyBpbmNsdWRpbmcgaW52aXNpYmxlIGVsZW1lbnRzIChSRUFET05MWSlcclxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XHJcblxyXG4gIC8vIFRoZSBpZCBvZiB0aGUgY3VycmVudCBETVMtT2JqZWN0IChSRUFET05MWSlcclxuICBwdWJsaWMgb2JqZWN0SWQ6IHN0cmluZztcclxuXHJcbiAgLy8gYWN0aW9ucyBwYXNzZWQgYnkgQlBNIGZvcm1zXHJcbiAgcHVibGljIGFjdGlvbnM6IGFueSA9IHt9O1xyXG4gIC8vIGFkZGl0aW9uYWwgb2JqZWN0cyBwcm92aWRlZCBieSB0aGUgb2JqZWN0IGZvcm1cclxuICAvLyB1c2VkIGZvciBleGFtcGxlIHRvIHBhc3MgZG1zIG9iamVjdHMgYXR0YWNoZWQgdG8gYSB3b3JrIGl0ZW1cclxuICAvLyB0byB0aGUgc2NyaXB0IChSRUFET05MWSlcclxuICAvLyBtYXkgY29udGFpbjogRm9ybVNjcmlwdERtc09iamVjdCwgRmlsZUVudHJ5XHJcbiAgcHVibGljIG9iamVjdHM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGNvbnRleHQ6IHsgaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZyB9ID0ge2lkOiAnJywgdGl0bGU6ICcnLCB0eXBlTmFtZTogJyd9O1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gc2l0dWF0aW9uIC0gQ3VycmVudCBmb3JtIG1vZGVsIHNpdHVhdGlvbiAoY291bGQgYmUgQ1JFQVRFLCBTRUFSQ0ggb3IgRURJVClcclxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxyXG4gICAqIEJlIGF3YXJlIHRvIHByb3ZpZGUgYW4gaW5zdGFuY2UgbWV0aG9kIGFzIGNhbGxiYWNrIGZvciB0aGUgc2NyaXB0aW5nIHNjb3BlLlxyXG4gICAqIEBzZWU6IGh0dHBzOi8vYmxvZy5qb2hubnlyZWlsbHkuY29tLzIwMTQvMDQvdHlwZXNjcmlwdC1pbnN0YW5jZS1tZXRob2RzLmh0bWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcGkgLSBQbHVnaW4gQVBJIHJlZmVyZW5jZVxyXG4gICAqIEBwYXJhbSBpc1RhYmxlUm93U2NvcGUgLSBzZXQgdGhpcyB0byB0cnVlIGlmIHRoZSBjdXJyZW50IHNjcmlwdGluZyBzY29wZSBpcyBjcmVhdGVkIGZvciBhXHJcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHVibGljIHNpdHVhdGlvbjogc3RyaW5nLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgYXBpOiBhbnksXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpc1RhYmxlUm93U2NvcGU/OiBib29sZWFuKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXHJcbiAgICogYWJsZSB0byB0cmFjayB0aGVpciBjaGFuZ2VzIGZyb20gd2l0aGluIGEgZm9ybSBzY3JpcHRcclxuICAgKiBAcGFyYW0gbW9kZWxcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TW9kZWwobW9kZWw6IGFueSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcclxuICAgICAgdGhpcy5tb2RlbFtrXSA9IG5ldyBTY29wZUVsZW1lbnQobW9kZWxba10sIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbC4gVXNlZCBmb3Igcm93IGVkaXRpbmcgZm9ybXMgb2YgdGFibGUgZWxlbWVudHMgdGhhdFxyXG4gICAqIGNyZWF0ZSB0aGVpciBvd24gc2NyaXB0aW5nIHNjb3BlIGluIGNvbnRleHQgb2YgdGhlaXIgcGFyZW50IGZvcm0uXHJcbiAgICogQHJldHVybnMgdGhlIG9ic2VydmVkIHNjcmlwdGluZyBzY29wZSBtb2RlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIGJ5IHRoZSBvYmplY3QgZm9ybSB3aGVuIHRoZSBmb3JtIG1vZGVsIGNoYW5nZXMuXHJcbiAgICogQHBhcmFtIGNoYW5nZSAtIG9iamVjdCB3aXRoIGtleSBlcXVhbHMgbmFtZSBvZiB0aGUgZWxlbWVudFxyXG4gICAqIHRoYXQgY2hhbmdlcyBhbmQgdmFsdWUgb2YgdGhlIG5ldyB2YWx1ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBtb2RlbENoYW5nZWQoY2hhbmdlOiBhbnkpIHtcclxuXHJcbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxyXG4gICAgbGV0IHByb3BlcnR5TmFtZSA9IE9iamVjdC5rZXlzKGNoYW5nZSlbMF07XHJcbiAgICBpZiAoY2hhbmdlW3Byb3BlcnR5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXSkge1xyXG4gICAgICBsZXQgZWwgPSB0aGlzLm1vZGVsW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIGVsLnVwZGF0ZShjaGFuZ2VbcHJvcGVydHlOYW1lXSwgdGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jbGFzcyBTY29wZUVsZW1lbnQge1xyXG4gIHByaXZhdGUgZWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcmlnaW5hbEVsZW1lbnQ6IGFueSwgcHJpdmF0ZSBvblNjcmlwdGluZ01vZGVsQ2hhbmdlOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5lbGVtZW50ID0gY2xvbmVEZWVwKG9yaWdpbmFsRWxlbWVudCk7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdGhpcy5jcmVhdGVQcm94eSh0aGlzLmVsZW1lbnQudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Byb3h5YWJsZSh2YWx1ZSwga2V5Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXHJcbiAgICAgICYmIHZhbHVlICE9PSBudWxsXHJcbiAgICAgICYmICEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKVxyXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxyXG4gICAgICAmJiAoa2V5ID8gIWtleS5pbmNsdWRlcygnX21ldGEnKSA6IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQcm94eSh2YWx1ZSkge1xyXG4gICAgY29uc3QgaGFuZGxlciA9IHtcclxuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBjbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKTtcclxuICAgICAgICB0YXJnZXRba2V5XSA9IHZhbDtcclxuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCBwcmV2aW91c1ZhbHVlKSAmJiAha2V5LmluY2x1ZGVzKCdfbWV0YScpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogY2xvbmVEZWVwKHRoaXMuZWxlbWVudC52YWx1ZSksIG5hbWU6ICd2YWx1ZSd9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIFRoaXMgZ2V0IHRyYXAgaXMgb25seSB1c2VkIHRvIGZpbmQgb3V0LCBpZiBhbiBvYmplY3QgaXMgYSBwcm94eSBvciBub3QuXHJcbiAgICAgIGdldDogKHRhcmdldCwga2V5KSA9PiB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ2lzUHJveHknKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldFtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJveHkodmFsdWUsIGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNWYWx1ZUNoYW5nZWQodmFsdWUxLCB2YWx1ZTIpIHtcclxuICAgIGxldCB2MSA9IHZhbHVlMTtcclxuICAgIGxldCB2MiA9IHZhbHVlMjtcclxuICAgIGlmKEFycmF5LmlzQXJyYXkodmFsdWUxKSAmJiB0eXBlb2YgdmFsdWUxWzBdID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlMikgJiYgdHlwZW9mIHZhbHVlMlswXSA9PT0gJ29iamVjdCcpey8vIHRoaXMgaXMgb25seSB0aGUgY2FzZSBpbiB0YWJsZXNcclxuICAgICAgdjEgPSB2YWx1ZTEubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyByZW1vdmluZyBtZXRhZGF0YSBmcm9tIGV2ZXJ5IHJvdywgYmVjYXVzZSBpdCdzIGluc2lnbmlmaWNhbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgICAgdjIgPSB2YWx1ZTIubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyBhbmQgY2FuIGNhdXNlIGZhbHNlIFwidHJ1ZVwiLXJlc3VsdHNcclxuICAgIH1cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2MSkgIT09IEpTT04uc3RyaW5naWZ5KHYyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpe1xyXG4gICAgbGV0IGVudHJ5V2l0aG91dE1ldGFkYXRhID0gey4uLmVudHJ5fTtcclxuICAgIE9iamVjdC5rZXlzKGVudHJ5V2l0aG91dE1ldGFkYXRhKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlbnRyeVdpdGhvdXRNZXRhZGF0YVtrZXkgKyAnX21ldGEnXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGVudHJ5V2l0aG91dE1ldGFkYXRhO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHZhbHVlLCBtb2RlbCkge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSBjbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuaGFzVmFsdWVDaGFuZ2VkKHRoaXMuZWxlbWVudC52YWx1ZSwgdmFsdWUpKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKG5ld1ZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVsZW1lbnQub25jaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UodGhpcywgbW9kZWwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWUpIHtcclxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9uY2hhbmdlKG9uY2hhbmdlKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UgPSBvbmNoYW5nZTtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbmNoYW5nZSwgbmFtZTogJ29uY2hhbmdlJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9uY2hhbmdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5vbmNoYW5nZTtcclxuICB9XHJcblxyXG4gIHNldCByZXF1aXJlZChyZXF1aXJlZCkge1xyXG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnJlcXVpcmVkLCByZXF1aXJlZCkpe1xyXG4gICAgICB0aGlzLmVsZW1lbnQucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IHJlcXVpcmVkLCBuYW1lOiAncmVxdWlyZWQnfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnJlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlYWRvbmx5KHJlYWRvbmx5KSB7XHJcbiAgICB0aGlzLmVsZW1lbnQucmVhZG9ubHkgPSByZWFkb25seTtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZWFkb25seSwgbmFtZTogJ3JlYWRvbmx5J30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYWRvbmx5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZWFkb25seTtcclxuICB9XHJcblxyXG4gIHNldCBlcnJvcihlcnJvcikge1xyXG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LmVycm9yLCBlcnJvcikpe1xyXG4gICAgICB0aGlzLmVsZW1lbnQuZXJyb3IgPSBlcnJvcjtcclxuICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGVycm9yLCBuYW1lOiAnZXJyb3InfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVycm9yO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9ucm93ZWRpdChvbnJvd2VkaXQpIHtcclxuICAgIHRoaXMuZWxlbWVudC5vbnJvd2VkaXQgPSBvbnJvd2VkaXQ7XHJcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogb25yb3dlZGl0LCBuYW1lOiAnb25yb3dlZGl0J30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9ucm93ZWRpdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xyXG4gIH1cclxuXHJcbiAgc2V0IGNvbnRleHRJZChjb250ZXh0SWQpIHtcclxuICAgIHRoaXMuZWxlbWVudC5jb250ZXh0SWQgPSBjb250ZXh0SWQ7XHJcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogY29udGV4dElkLCBuYW1lOiAnY29udGV4dElkJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRleHRJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGV4dElkO1xyXG4gIH1cclxuXHJcbiAgc2V0TGlzdChvYmopIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRMaXN0KSB7XHJcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldExpc3Qob2JqKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKGZ1bmMpIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseUZpbHRlcikge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseUZpbHRlcihmdW5jKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlcikge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5hcHBseURpc2FibGluZ0ZpbHRlcihmdW5jKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZpbHRlcihvYmopIHtcclxuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0RmlsdGVyKG9iaik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycykge1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0LCBvYmplY3RUeXBlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmFtZTtcclxuICB9XHJcblxyXG4gIGdldCBxbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucW5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFiZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBkZXNjcmlwdGlvbiwgbmFtZTogJ2Rlc2NyaXB0aW9uJ30pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5kZXNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCB0eXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC50eXBlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG11bHRpc2VsZWN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tdWx0aXNlbGVjdDtcclxuICB9XHJcblxyXG4gIGdldCBjb2Rlc3lzdGVtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb2Rlc3lzdGVtO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbmxlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWlubGVuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heGxlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubWF4bGVuO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYXNzaWZpY2F0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbjtcclxuICB9XHJcblxyXG4gIGdldCBzY2FsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2NhbGU7XHJcbiAgfVxyXG5cclxuICBnZXQgcHJlY2lzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5wcmVjaXNpb247XHJcbiAgfVxyXG5cclxuICBnZXQgd2l0aHRpbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LndpdGh0aW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVsZW1lbnRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5lbGVtZW50cztcclxuICB9XHJcblxyXG4gIGdldCBhbGlhc2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5hbGlhc2VzO1xyXG4gIH1cclxufVxyXG4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tc2NyaXB0aW5nLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRXBDLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFBbUIsU0FBaUIsRUFDaEIsc0JBQXNCLEVBQ3ZCLEdBQVEsRUFDUCxlQUF5QjtRQUgxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBQTtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1Asb0JBQWUsR0FBZixlQUFlLENBQVU7UUFqQzdDLHFDQUFxQztRQUM5QixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXZCLDBEQUEwRDtRQUNuRCxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBS3RCLDhCQUE4QjtRQUN2QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlEQUFpRDtRQUNqRCwrREFBK0Q7UUFDL0QsMkJBQTJCO1FBQzNCLDhDQUE4QztRQUN2QyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBb0QsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBa0JwRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFL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QUNyQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Nsb25lRGVlcH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLy8gVGhpcyBjbGFzcyB3aWxsIGJlIGluamVjdGVkIGFzIHNjb3BlIGludG8gZm9ybSBzY3JpcHRzXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlIHtcblxuICAvLyBMaXN0IG9mIGFsbCBmb3JtIGZpZWxkcyAoZWxlbWVudHMpXG4gIHB1YmxpYyBtb2RlbDogYW55ID0ge307XG5cbiAgLy8gYWxsIGRhdGEgdmFsdWVzIGluY2x1ZGluZyBpbnZpc2libGUgZWxlbWVudHMgKFJFQURPTkxZKVxuICBwdWJsaWMgZGF0YTogYW55ID0ge307XG5cbiAgLy8gVGhlIGlkIG9mIHRoZSBjdXJyZW50IERNUy1PYmplY3QgKFJFQURPTkxZKVxuICBwdWJsaWMgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvLyBhY3Rpb25zIHBhc3NlZCBieSBCUE0gZm9ybXNcbiAgcHVibGljIGFjdGlvbnM6IGFueSA9IHt9O1xuICAvLyBhZGRpdGlvbmFsIG9iamVjdHMgcHJvdmlkZWQgYnkgdGhlIG9iamVjdCBmb3JtXG4gIC8vIHVzZWQgZm9yIGV4YW1wbGUgdG8gcGFzcyBkbXMgb2JqZWN0cyBhdHRhY2hlZCB0byBhIHdvcmsgaXRlbVxuICAvLyB0byB0aGUgc2NyaXB0IChSRUFET05MWSlcbiAgLy8gbWF5IGNvbnRhaW46IEZvcm1TY3JpcHREbXNPYmplY3QsIEZpbGVFbnRyeVxuICBwdWJsaWMgb2JqZWN0czogYW55W10gPSBbXTtcbiAgcHVibGljIGNvbnRleHQ6IHsgaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgdHlwZU5hbWU6IHN0cmluZyB9ID0ge2lkOiAnJywgdGl0bGU6ICcnLCB0eXBlTmFtZTogJyd9O1xuXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBzaXR1YXRpb24gLSBDdXJyZW50IGZvcm0gbW9kZWwgc2l0dWF0aW9uIChjb3VsZCBiZSBDUkVBVEUsIFNFQVJDSCBvciBFRElUKVxuICAgKiBAcGFyYW0gb25TY3JpcHRpbmdNb2RlbENoYW5nZSAtIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHRpbmcgbW9kZWwgY2hhbmdlZFxuICAgKiBCZSBhd2FyZSB0byBwcm92aWRlIGFuIGluc3RhbmNlIG1ldGhvZCBhcyBjYWxsYmFjayBmb3IgdGhlIHNjcmlwdGluZyBzY29wZS5cbiAgICogQHNlZTogaHR0cHM6Ly9ibG9nLmpvaG5ueXJlaWxseS5jb20vMjAxNC8wNC90eXBlc2NyaXB0LWluc3RhbmNlLW1ldGhvZHMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYXBpIC0gUGx1Z2luIEFQSSByZWZlcmVuY2VcbiAgICogQHBhcmFtIGlzVGFibGVSb3dTY29wZSAtIHNldCB0aGlzIHRvIHRydWUgaWYgdGhlIGN1cnJlbnQgc2NyaXB0aW5nIHNjb3BlIGlzIGNyZWF0ZWQgZm9yIGFcbiAgICogcm93IGVkaXRpbmcgZm9ybSBmcm9tIGEgdGFibGUgZWxlbWVudC4gSXQgd2lsbCB0aGVuIHByb3ZpZGUgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JpcHRpbmcgZnVuY3Rpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2l0dWF0aW9uOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZSxcbiAgICAgICAgICAgICAgcHVibGljIGFwaTogYW55LFxuICAgICAgICAgICAgICBwcml2YXRlIGlzVGFibGVSb3dTY29wZT86IGJvb2xlYW4pIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpbnRlcm5hbCBtb2RlbCBhbmQgd3JhcHMgZXZlcnkgbW9kZWwgZWxlbWVudCB3aXRoIGFuIG9ic2VydmVyIHRvIGJlXG4gICAqIGFibGUgdG8gdHJhY2sgdGhlaXIgY2hhbmdlcyBmcm9tIHdpdGhpbiBhIGZvcm0gc2NyaXB0XG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgcHVibGljIHNldE1vZGVsKG1vZGVsOiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgZm9yIChsZXQgayBvZiBPYmplY3Qua2V5cyhtb2RlbCkpIHtcbiAgICAgIHRoaXMubW9kZWxba10gPSBuZXcgU2NvcGVFbGVtZW50KG1vZGVsW2tdLCB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbC4gVXNlZCBmb3Igcm93IGVkaXRpbmcgZm9ybXMgb2YgdGFibGUgZWxlbWVudHMgdGhhdFxuICAgKiBjcmVhdGUgdGhlaXIgb3duIHNjcmlwdGluZyBzY29wZSBpbiBjb250ZXh0IG9mIHRoZWlyIHBhcmVudCBmb3JtLlxuICAgKiBAcmV0dXJucyB0aGUgb2JzZXJ2ZWQgc2NyaXB0aW5nIHNjb3BlIG1vZGVsXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSBvYmplY3QgZm9ybSB3aGVuIHRoZSBmb3JtIG1vZGVsIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBjaGFuZ2UgLSBvYmplY3Qgd2l0aCBrZXkgZXF1YWxzIG5hbWUgb2YgdGhlIGVsZW1lbnRcbiAgICogdGhhdCBjaGFuZ2VzIGFuZCB2YWx1ZSBvZiB0aGUgbmV3IHZhbHVlXG4gICAqL1xuICBwdWJsaWMgbW9kZWxDaGFuZ2VkKGNoYW5nZTogYW55KSB7XG5cbiAgICAvLyBmaW5kIHRoZSBjaGFuZ2VkIGVsZW1lbnQgaW4gdGhlIHNjb3BlcyBtb2RlbFxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSBPYmplY3Qua2V5cyhjaGFuZ2UpWzBdO1xuICAgIGlmIChjaGFuZ2VbcHJvcGVydHlOYW1lXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kZWxbcHJvcGVydHlOYW1lXSkge1xuICAgICAgbGV0IGVsID0gdGhpcy5tb2RlbFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgZWwudXBkYXRlKGNoYW5nZVtwcm9wZXJ0eU5hbWVdLCB0aGlzLm1vZGVsKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgU2NvcGVFbGVtZW50IHtcbiAgcHJpdmF0ZSBlbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3JpZ2luYWxFbGVtZW50OiBhbnksIHByaXZhdGUgb25TY3JpcHRpbmdNb2RlbENoYW5nZTogRnVuY3Rpb24pIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBjbG9uZURlZXAob3JpZ2luYWxFbGVtZW50KTtcbiAgICBpZiAodGhpcy5lbGVtZW50LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzUHJveHlhYmxlKHRoaXMuZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkodGhpcy5lbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUHJveHlhYmxlKHZhbHVlLCBrZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICAmJiB2YWx1ZSAhPT0gbnVsbFxuICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAmJiAhdmFsdWUuaXNQcm94eVxuICAgICAgJiYgKGtleSA/ICFrZXkuaW5jbHVkZXMoJ19tZXRhJykgOiB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHJveHkodmFsdWUpIHtcbiAgICBjb25zdCBoYW5kbGVyID0ge1xuICAgICAgc2V0OiAodGFyZ2V0LCBrZXksIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gY2xvbmVEZWVwKHRoaXMuZWxlbWVudC52YWx1ZSk7XG4gICAgICAgIHRhcmdldFtrZXldID0gdmFsO1xuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnZhbHVlLCBwcmV2aW91c1ZhbHVlKSAmJiAha2V5LmluY2x1ZGVzKCdfbWV0YScpKSB7XG4gICAgICAgICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGNsb25lRGVlcCh0aGlzLmVsZW1lbnQudmFsdWUpLCBuYW1lOiAndmFsdWUnfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgICAgLy8gVGhpcyBnZXQgdHJhcCBpcyBvbmx5IHVzZWQgdG8gZmluZCBvdXQsIGlmIGFuIG9iamVjdCBpcyBhIHByb3h5IG9yIG5vdC5cbiAgICAgIGdldDogKHRhcmdldCwga2V5KSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdpc1Byb3h5Jykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXRba2V5XTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm94eSh2YWx1ZSwgaGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIGhhc1ZhbHVlQ2hhbmdlZCh2YWx1ZTEsIHZhbHVlMikge1xuICAgIGxldCB2MSA9IHZhbHVlMTtcbiAgICBsZXQgdjIgPSB2YWx1ZTI7XG4gICAgaWYoQXJyYXkuaXNBcnJheSh2YWx1ZTEpICYmIHR5cGVvZiB2YWx1ZTFbMF0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkodmFsdWUyKSAmJiB0eXBlb2YgdmFsdWUyWzBdID09PSAnb2JqZWN0Jyl7Ly8gdGhpcyBpcyBvbmx5IHRoZSBjYXNlIGluIHRhYmxlc1xuICAgICAgdjEgPSB2YWx1ZTEubWFwKGVudHJ5ID0+IHRoaXMuY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpKTsvLyByZW1vdmluZyBtZXRhZGF0YSBmcm9tIGV2ZXJ5IHJvdywgYmVjYXVzZSBpdCdzIGluc2lnbmlmaWNhbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIHYyID0gdmFsdWUyLm1hcChlbnRyeSA9PiB0aGlzLmNyZWF0ZUVudHJ5V2l0aG91dE1ldGFkYXRhKGVudHJ5KSk7Ly8gYW5kIGNhbiBjYXVzZSBmYWxzZSBcInRydWVcIi1yZXN1bHRzXG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2MSkgIT09IEpTT04uc3RyaW5naWZ5KHYyKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW50cnlXaXRob3V0TWV0YWRhdGEoZW50cnkpe1xuICAgIGxldCBlbnRyeVdpdGhvdXRNZXRhZGF0YSA9IHsuLi5lbnRyeX07XG4gICAgT2JqZWN0LmtleXMoZW50cnlXaXRob3V0TWV0YWRhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBlbnRyeVdpdGhvdXRNZXRhZGF0YVtrZXkgKyAnX21ldGEnXTtcbiAgICB9KTtcbiAgICByZXR1cm4gZW50cnlXaXRob3V0TWV0YWRhdGE7XG4gIH1cblxuICB1cGRhdGUodmFsdWUsIG1vZGVsKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIGlmICh0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQudmFsdWUsIHZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuaXNQcm94eWFibGUobmV3VmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC52YWx1ZSA9IHRoaXMuY3JlYXRlUHJveHkobmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lbGVtZW50Lm9uY2hhbmdlKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5vbmNoYW5nZSh0aGlzLCBtb2RlbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHRoaXMuaXNQcm94eWFibGUodmFsdWUpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQudmFsdWUgPSB0aGlzLmNyZWF0ZVByb3h5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjbG9uZURlZXAodGhpcy5lbGVtZW50LnZhbHVlKSwgbmFtZTogJ3ZhbHVlJ30pO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBzZXQgb25jaGFuZ2Uob25jaGFuZ2UpIHtcbiAgICB0aGlzLmVsZW1lbnQub25jaGFuZ2UgPSBvbmNoYW5nZTtcbiAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogb25jaGFuZ2UsIG5hbWU6ICdvbmNoYW5nZSd9KTtcbiAgfVxuXG4gIGdldCBvbmNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm9uY2hhbmdlO1xuICB9XG5cbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkKSB7XG4gICAgaWYodGhpcy5oYXNWYWx1ZUNoYW5nZWQodGhpcy5lbGVtZW50LnJlcXVpcmVkLCByZXF1aXJlZCkpe1xuICAgICAgdGhpcy5lbGVtZW50LnJlcXVpcmVkID0gcmVxdWlyZWQ7XG4gICAgICB0aGlzLm9uU2NyaXB0aW5nTW9kZWxDaGFuZ2UodGhpcy5lbGVtZW50Lm5hbWUsIHtuZXdWYWx1ZTogcmVxdWlyZWQsIG5hbWU6ICdyZXF1aXJlZCd9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5yZXF1aXJlZDtcbiAgfVxuXG4gIHNldCByZWFkb25seShyZWFkb25seSkge1xuICAgIHRoaXMuZWxlbWVudC5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiByZWFkb25seSwgbmFtZTogJ3JlYWRvbmx5J30pO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQucmVhZG9ubHk7XG4gIH1cblxuICBzZXQgZXJyb3IoZXJyb3IpIHtcbiAgICBpZih0aGlzLmhhc1ZhbHVlQ2hhbmdlZCh0aGlzLmVsZW1lbnQuZXJyb3IsIGVycm9yKSl7XG4gICAgICB0aGlzLmVsZW1lbnQuZXJyb3IgPSBlcnJvcjtcbiAgICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBlcnJvciwgbmFtZTogJ2Vycm9yJ30pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmVycm9yO1xuICB9XG5cbiAgc2V0IG9ucm93ZWRpdChvbnJvd2VkaXQpIHtcbiAgICB0aGlzLmVsZW1lbnQub25yb3dlZGl0ID0gb25yb3dlZGl0O1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBvbnJvd2VkaXQsIG5hbWU6ICdvbnJvd2VkaXQnfSk7XG4gIH1cblxuICBnZXQgb25yb3dlZGl0KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQub25yb3dlZGl0O1xuICB9XG5cbiAgc2V0IGNvbnRleHRJZChjb250ZXh0SWQpIHtcbiAgICB0aGlzLmVsZW1lbnQuY29udGV4dElkID0gY29udGV4dElkO1xuICAgIHRoaXMub25TY3JpcHRpbmdNb2RlbENoYW5nZSh0aGlzLmVsZW1lbnQubmFtZSwge25ld1ZhbHVlOiBjb250ZXh0SWQsIG5hbWU6ICdjb250ZXh0SWQnfSk7XG4gIH1cblxuICBnZXQgY29udGV4dElkKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGV4dElkO1xuICB9XG5cbiAgc2V0TGlzdChvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdCkge1xuICAgICAgdGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0TGlzdChvYmopO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuYXBwbHlEaXNhYmxpbmdGaWx0ZXIpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LmFwcGx5RGlzYWJsaW5nRmlsdGVyKGZ1bmMpO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpbHRlcihvYmopIHtcbiAgICBpZiAodGhpcy5vcmlnaW5hbEVsZW1lbnQuc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRGaWx0ZXIob2JqKTtcbiAgICB9XG4gIH1cblxuICBzZXRRdWVyeUZpbHRlcnMocXVlcnlGaWx0ZXJzT2JqZWN0OiB7W2ZpZWxkUW5hbWU6IHN0cmluZ106IHtvOiBzdHJpbmcsIHYxOiBhbnksIHYyOiBhbnl9fSwgb2JqZWN0VHlwZXM/OiBzdHJpbmdbXSkge1xuICAgIGlmICh0aGlzLm9yaWdpbmFsRWxlbWVudC5zZXRRdWVyeUZpbHRlcnMpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxFbGVtZW50LnNldFF1ZXJ5RmlsdGVycyhxdWVyeUZpbHRlcnNPYmplY3QsIG9iamVjdFR5cGVzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hbWU7XG4gIH1cblxuICBnZXQgcW5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xbmFtZTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmxhYmVsO1xuICB9XG5cbiAgc2V0IGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSB7XG4gICAgdGhpcy5lbGVtZW50LmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgdGhpcy5vblNjcmlwdGluZ01vZGVsQ2hhbmdlKHRoaXMuZWxlbWVudC5uYW1lLCB7bmV3VmFsdWU6IGRlc2NyaXB0aW9uLCBuYW1lOiAnZGVzY3JpcHRpb24nfSk7XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQudHlwZTtcbiAgfVxuXG4gIGdldCBtdWx0aXNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm11bHRpc2VsZWN0O1xuICB9XG5cbiAgZ2V0IGNvZGVzeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb2Rlc3lzdGVtO1xuICB9XG5cbiAgZ2V0IG1pbmxlbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm1pbmxlbjtcbiAgfVxuXG4gIGdldCBtYXhsZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5tYXhsZW47XG4gIH1cblxuICBnZXQgY2xhc3NpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jbGFzc2lmaWNhdGlvbjtcbiAgfVxuXG4gIGdldCBzY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnNjYWxlO1xuICB9XG5cbiAgZ2V0IHByZWNpc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LnByZWNpc2lvbjtcbiAgfVxuXG4gIGdldCB3aXRodGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LndpdGh0aW1lO1xuICB9XG5cbiAgZ2V0IGVsZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQuZWxlbWVudHM7XG4gIH1cblxuICBnZXQgYWxpYXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50LmFsaWFzZXM7XG4gIH1cbn1cbiJdfQ==
@@ -130,11 +130,11 @@ export class ObjectFormComponent {
130
130
  }
131
131
  }
132
132
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormComponent, deps: [{ token: i1.Logger }, { token: i0.ElementRef }, { token: i2.ObjectFormScriptService }, { token: i3.ObjectFormHelperService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormComponent, selector: "eo-object-form", inputs: { isInnerTableForm: "isInnerTableForm", options: ["formOptions", "options"] }, outputs: { statusChanged: "statusChanged", onFormReady: "onFormReady" }, providers: [ObjectFormScriptService], ngImport: i0, template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\r\n <div class=\"form-element-wrap core\">\r\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n <div class=\"form-element-wrap data\">\r\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i7.ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }] }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormComponent, selector: "eo-object-form", inputs: { isInnerTableForm: "isInnerTableForm", options: ["formOptions", "options"] }, outputs: { statusChanged: "statusChanged", onFormReady: "onFormReady" }, providers: [ObjectFormScriptService], ngImport: i0, template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\n <div class=\"form-element-wrap core\">\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n <div class=\"form-element-wrap data\">\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n</div>\n\n\n\n\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i7.ObjectFormGroupComponent, selector: "eo-form-group", inputs: ["situation", "skipToggle", "group", "noGroupLabels"] }] }); }
134
134
  }
135
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormComponent, decorators: [{
136
136
  type: Component,
137
- args: [{ selector: 'eo-object-form', providers: [ObjectFormScriptService], template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\r\n <div class=\"form-element-wrap core\">\r\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n <div class=\"form-element-wrap data\">\r\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"] }]
137
+ args: [{ selector: 'eo-object-form', providers: [ObjectFormScriptService], template: "<div class=\"eo-object-form\" *ngIf=\"form && formOptions\" [formGroup]=\"form\" eoRtlAware>\n <div class=\"form-element-wrap core\">\n <eo-form-group [group]=\"form.get('core')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n <div class=\"form-element-wrap data\">\n <eo-form-group [group]=\"form.get('data')\" [situation]=\"formOptions.formModel.situation\"></eo-form-group>\n </div>\n</div>\n\n\n\n\n", styles: [":host{display:block}:host .eo-object-form .core{padding:var(--app-pane-padding) var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding)}:host .eo-object-form .ui-tabview{padding:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack{background:transparent;border:0}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:var(--panel-background-lightgrey);border-top:1px solid rgba(var(--color-black-rgb),.1);padding:var(--app-pane-padding)}:host::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:var(--panel-background-lightgrey)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>eo-form-group>.o2mGroup{background-color:rgba(var(--color-white-rgb),.1);border-top:1px solid rgba(var(--color-white-rgb),.1)}:host-context(.dark)::ng-deep .eo-object-form>.data>eo-form-group>.form-element.o2mGroupStack>p-tabview>.ui-tabview>.ui-tabview-panels{background-color:rgba(var(--color-white-rgb),.1)}\n"] }]
138
138
  }], ctorParameters: () => [{ type: i1.Logger }, { type: i0.ElementRef }, { type: i2.ObjectFormScriptService }, { type: i3.ObjectFormHelperService }, { type: i0.ChangeDetectorRef }], propDecorators: { isInnerTableForm: [{
139
139
  type: Input
140
140
  }], statusChanged: [{
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
145
145
  type: Input,
146
146
  args: ['formOptions']
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUFZeEYsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsSUFDSSxPQUFPLENBQUMsV0FBOEI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBb0IsTUFBYyxFQUN4QixVQUFzQixFQUN0QixpQkFBMEMsRUFDMUMsaUJBQTBDLEVBQzFDLEtBQXdCO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5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O0lBQ2xFLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFDakcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzs4R0ExSlUsbUJBQW1CO2tHQUFuQixtQkFBbUIseU1BRm5CLENBQUMsdUJBQXVCLENBQUMsMEJDNUJ0QyxvZEFZQTs7MkZEa0JhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxnQkFBZ0IsYUFLZixDQUFDLHVCQUF1QixDQUFDO2dOQUkzQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQWNILE9BQU87c0JBRFYsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvZ2dlciwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XHJcbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtGb3JtR2VuUmVzdWx0LCBPYmplY3RGb3JtSGVscGVyU2VydmljZX0gZnJvbSAnLi4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi9vYmplY3QtZm9ybS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2V9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtU2NyaXB0aW5nU2NvcGV9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdGluZy1zY29wZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlby1vYmplY3QtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIC8vIGRlZmluZSAnY2hpbGQgb25seScgc2VydmljZXMgZm9yIHRoZSBmb3JtIHdpdGhvdXQgc2V0dGluZyBpdCB1cCBvbiB0aGUgbW9kdWxlXHJcbiAgLy8gd2hpY2ggd291bGQgY2F1c2UgdGhlbSB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxyXG4gIHByb3ZpZGVyczogW09iamVjdEZvcm1TY3JpcHRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBpc0lubmVyVGFibGVGb3JtOiBib29sZWFuO1xyXG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBmb3JtcyBzdGF0ZSBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1TdGF0dXNDaGFuZ2VkRXZlbnQ+KCk7XHJcbiAgLy8gaGFuZGxlciB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBzZXQgdXBcclxuICBAT3V0cHV0KCkgb25Gb3JtUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XHJcbiAgcHVibGljIGRlZmF1bHRGb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XHJcbiAgLy8gdGhlIGFjdHVhbCBmb3JtIGluc3RhbmNlXHJcbiAgcHVibGljIGZvcm07XHJcbiAgLy8gcHJvcGVydHkgZm9yIGhvbGRpbmcgdGhlIGZvcm1zIGRhdGEgdXNlZCBmb3IgY29tcGFyaXNvbiB3aGVuIGEgZm9ybS1jaGFuZ2VkLWV2ZW50XHJcbiAgLy8gaXMgZmV0Y2hlZCB0byBpbmRpY2F0ZSB3aGVyIG9yIG5vdCB0aGUgaW5kZXhkYXRhIHdlcmUgY2hhbmdlZCBvciBqdXN0IHRoZSBwcm9wZXJ0aWVzXHJcbiAgLy8gb2YgdGhlIGZvcm0gZWxlbWVudHMgKGVnLiBmb3JtIHNjcmlwdCBzZXR0aW5nIGZpZWxkcyB0byByZWFkb25seSlcclxuICBwcml2YXRlIGZvcm1EYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSBzY3JpcHRpbmdTY29wZTogT2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCdmb3JtT3B0aW9ucycpXHJcbiAgc2V0IG9wdGlvbnMoZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zKSB7XHJcbiAgICB0aGlzLmRlZmF1bHRGb3JtT3B0aW9ucyA9IGZvcm1PcHRpb25zO1xyXG4gICAgdGhpcy5mb3JtT3B0aW9ucyA9IGNsb25lRGVlcChmb3JtT3B0aW9ucyk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGZvcm1TY3JpcHRTZXJ2aWNlOiBPYmplY3RGb3JtU2NyaXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIC8vIGluaXRpYWxpemUgdGhlIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gb3B0aW9uc1xyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuICAgIHRoaXMuZm9ybSA9IG51bGw7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xyXG4gICAgICB0aGlzLmJ1aWxkUmVhY3RpdmVGb3JtKHRoaXMuZm9ybU9wdGlvbnMgfHwge30pO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRPcHRpb25zKCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5kZWZhdWx0Rm9ybU9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9jdXNGb3JtKCkge1xyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRGb3JtRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSBkYXRhO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0cyB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0gbW9kZWwuIEVhY2ggZm9ybSB2YWx1ZSBpcyByZXByZXNlbnRlZCBieSBvbmVcclxuICAgKiBwcm9wZXJ0eSBvbiB0aGUgcmVzdWx0IG9iamVjdCBob2xkaW5nIHRoZSBmaWVsZHMgdmFsdWUuIFRoZSBrZXlzIChwcm9wZXJ0aWVzKSBhcmUgdGhlIGBuYW1lYFxyXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gZWxlbWVudCAoaW4gU0VBUkNIIHNpdHVhdGlvbiB0aGUgYHFuYW1lYCBmaWVsZCBpcyB1c2VkKS5cclxuICAgKlxyXG4gICAqIEhvdyB2YWx1ZXMgYXJlIGV4dHJhY3RlZCBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBmb3JtcyBzaXR1YXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIG9iamVjdCBvZiBrZXkgdmFsdWUgcGFpcnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Rm9ybURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtVG9EYXRhKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Rm9ybVByaXN0aW5lKCkge1xyXG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXNldCB0aGUgZm9ybSB0byBpdHMgaW5pdGlhbCBzdGF0ZVxyXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XHJcbiAgICB0aGlzLmluaXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcclxuICAgKiBubyBmb3JtIHNjcmlwdCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gTlVMTC5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRPYnNlcnZlZFNjcmlwdE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NyaXB0aW5nU2NvcGUgPyB0aGlzLnNjcmlwdGluZ1Njb3BlLmdldE1vZGVsKCkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gQ3JlYXRlIGEgcmVhY3RpdmUgZm9ybSBmcm9tIHRoZSBlbmFpbyBmb3JtIG1vZGVsXHJcbiAgcHJpdmF0ZSBidWlsZFJlYWN0aXZlRm9ybShmb3JtT3B0aW9ucykge1xyXG4gICAgY29uc3QgZm9ybUdlblJlczogRm9ybUdlblJlc3VsdCA9IHRoaXMuZm9ybUhlbHBlclNlcnZpY2UuYnVpbGRSZWFjdGl2ZUZvcm0oXHJcbiAgICAgIGZvcm1PcHRpb25zLCB0aGlzLmZvcm1TY3JpcHRTZXJ2aWNlLCB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cclxuICAgICk7XHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtR2VuUmVzLmZvcm07XHJcbiAgICB0aGlzLnNjcmlwdGluZ1Njb3BlID0gZm9ybUdlblJlcy5zY3JpcHRpbmdTY29wZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGZvcm1HZW5SZXMuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucztcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcclxuICAgICAgbGV0IGZvcm1XYXRjaCA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICFmb3JtV2F0Y2guY2xvc2VkICYmIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1XYXRjaCk7XHJcbiAgICAgIHRoaXMub25Gb3JtUmVhZHkuZW1pdCgpO1xyXG4gICAgICB0aGlzLmVtaXRGb3JtQ2hhbmdlZEV2ZW50KGZhbHNlKTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGVtaXRGb3JtQ2hhbmdlZEV2ZW50KGNvbXBhcmUgPSB0cnVlKSB7XHJcbiAgICAvLyBjaGVjayBpZiBpbmRleGRhdGEgaGFzIGJlZW4gY2hhbmdlZFxyXG4gICAgbGV0IGN1cnJlbnRGb3JtRGF0YSA9IHRoaXMuZ2V0Rm9ybURhdGEoKTtcclxuICAgIGxldCBpZHhDaGFuZ2UgPSBjb21wYXJlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkgOiBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmZvcm1EYXRhID0gVXRpbHMuZm9ybURhdGFQYXJzZShVdGlscy5mb3JtRGF0YVN0cmluZ2lmeShjdXJyZW50Rm9ybURhdGEpKTtcclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgIGludmFsaWQ6IHRoaXMuZm9ybS5pbnZhbGlkLFxyXG4gICAgICAgIGRpcnR5OiB0aGlzLmZvcm0uZGlydHksXHJcbiAgICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YSxcclxuICAgICAgICBpbmRleGRhdGFDaGFuZ2VkOiBpZHhDaGFuZ2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeHRyYWN0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZm9ybVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybVRvRGF0YSgpIHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXHJcbiAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgdGhpcy5mb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uLFxyXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEsXHJcbiAgICAgIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyB1bnN1YnNjcmliZSBmcm9tIGFsbCB2YWx1ZSBjaGFuZ2UgbGlzdGVuZXJzIGZvciB0aGUgY3VycmVudCBmb3JtXHJcbiAgLy8gdG8gYXZvaWQgbWVtb3J5IGxlYWtzLiBUaGlzIG1ldGhvZCB3aWxsIGFsc28gYmUgY2FsbGVkIGV2ZXJ5IHRpbWVcclxuICAvLyBhIG5ldyBmb3JtIGlzIHJlbmRlcmVkIHRvIGdldCByaWQgb2YgdGhlIG9sZCBmb3JtIGVsZW1lbnQgc3Vic2NyaXB0aW9uc1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5zdWJzY3JpYmVkIGZyb20gJyArIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggKyAnIHZhbHVlIGNoYW5nZSBsaXN0ZW5lcnMuJyk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlby1vYmplY3QtZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiBmb3JtT3B0aW9uc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGVvUnRsQXdhcmU+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZWxlbWVudC13cmFwIGNvcmVcIj5cclxuICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJmb3JtLmdldCgnY29yZScpXCIgW3NpdHVhdGlvbl09XCJmb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uXCI+PC9lby1mb3JtLWdyb3VwPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBkYXRhXCI+XHJcbiAgICA8ZW8tZm9ybS1ncm91cCBbZ3JvdXBdPVwiZm9ybS5nZXQoJ2RhdGEnKVwiIFtzaXR1YXRpb25dPVwiZm9ybU9wdGlvbnMuZm9ybU1vZGVsLnNpdHVhdGlvblwiPjwvZW8tZm9ybS1ncm91cD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7Ozs7QUFZeEYsTUFBTSxPQUFPLG1CQUFtQjtJQW1COUIsSUFDSSxPQUFPLENBQUMsV0FBOEI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBb0IsTUFBYyxFQUN4QixVQUFzQixFQUN0QixpQkFBMEMsRUFDMUMsaUJBQTBDLEVBQzFDLEtBQXdCO1FBSmQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF5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O0lBQ2xFLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLDBCQUEwQixDQUFDLENBQUM7WUFDakcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzs4R0ExSlUsbUJBQW1CO2tHQUFuQixtQkFBbUIseU1BRm5CLENBQUMsdUJBQXVCLENBQUMsMEJDNUJ0Qyw0YkFZQTs7MkZEa0JhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxnQkFBZ0IsYUFLZixDQUFDLHVCQUF1QixDQUFDO2dOQUkzQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQWNILE9BQU87c0JBRFYsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXIsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtjbG9uZURlZXB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0Zvcm1TdGF0dXNDaGFuZ2VkRXZlbnR9IGZyb20gJy4uL2Zvcm0tc3RhdHVzLWNoYW5nZWQtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7Rm9ybUdlblJlc3VsdCwgT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2V9IGZyb20gJy4uL29iamVjdC1mb3JtLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2V9IGZyb20gJy4vb2JqZWN0LWZvcm0tc2NyaXB0L29iamVjdC1mb3JtLXNjcmlwdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybVNjcmlwdGluZ1Njb3BlfSBmcm9tICcuL29iamVjdC1mb3JtLXNjcmlwdC9vYmplY3QtZm9ybS1zY3JpcHRpbmctc2NvcGUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gZGVmaW5lICdjaGlsZCBvbmx5JyBzZXJ2aWNlcyBmb3IgdGhlIGZvcm0gd2l0aG91dCBzZXR0aW5nIGl0IHVwIG9uIHRoZSBtb2R1bGVcbiAgLy8gd2hpY2ggd291bGQgY2F1c2UgdGhlbSB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxuICBwcm92aWRlcnM6IFtPYmplY3RGb3JtU2NyaXB0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIGlzSW5uZXJUYWJsZUZvcm06IGJvb2xlYW47XG4gIC8vIHRyaWdnZXJlZCB3aGVuIHRoZSBmb3JtcyBzdGF0ZSBoYXMgYmVlbiBjaGFuZ2VkXG4gIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50PigpO1xuICAvLyBoYW5kbGVyIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBmb3JtIGhhcyBiZWVuIHNldCB1cFxuICBAT3V0cHV0KCkgb25Gb3JtUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcbiAgcHVibGljIGRlZmF1bHRGb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIC8vIHRoZSBhY3R1YWwgZm9ybSBpbnN0YW5jZVxuICBwdWJsaWMgZm9ybTtcbiAgLy8gcHJvcGVydHkgZm9yIGhvbGRpbmcgdGhlIGZvcm1zIGRhdGEgdXNlZCBmb3IgY29tcGFyaXNvbiB3aGVuIGEgZm9ybS1jaGFuZ2VkLWV2ZW50XG4gIC8vIGlzIGZldGNoZWQgdG8gaW5kaWNhdGUgd2hlciBvciBub3QgdGhlIGluZGV4ZGF0YSB3ZXJlIGNoYW5nZWQgb3IganVzdCB0aGUgcHJvcGVydGllc1xuICAvLyBvZiB0aGUgZm9ybSBlbGVtZW50cyAoZWcuIGZvcm0gc2NyaXB0IHNldHRpbmcgZmllbGRzIHRvIHJlYWRvbmx5KVxuICBwcml2YXRlIGZvcm1EYXRhOiBhbnk7XG4gIHByaXZhdGUgc2NyaXB0aW5nU2NvcGU6IE9iamVjdEZvcm1TY3JpcHRpbmdTY29wZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgnZm9ybU9wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnMpIHtcbiAgICB0aGlzLmRlZmF1bHRGb3JtT3B0aW9ucyA9IGZvcm1PcHRpb25zO1xuICAgIHRoaXMuZm9ybU9wdGlvbnMgPSBjbG9uZURlZXAoZm9ybU9wdGlvbnMpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmb3JtU2NyaXB0U2VydmljZTogT2JqZWN0Rm9ybVNjcmlwdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtSGVscGVyU2VydmljZTogT2JqZWN0Rm9ybUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIC8vIGluaXRpYWxpemUgdGhlIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gb3B0aW9uc1xuICBwcml2YXRlIGluaXQoKSB7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcbiAgICAgIHRoaXMuYnVpbGRSZWFjdGl2ZUZvcm0odGhpcy5mb3JtT3B0aW9ucyB8fCB7fSk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRPcHRpb25zKCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMuZGVmYXVsdEZvcm1PcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGZvY3VzRm9ybSgpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1EYXRhKGRhdGEpIHtcbiAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSBkYXRhO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtIG1vZGVsLiBFYWNoIGZvcm0gdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkgb25lXG4gICAqIHByb3BlcnR5IG9uIHRoZSByZXN1bHQgb2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkcyB2YWx1ZS4gVGhlIGtleXMgKHByb3BlcnRpZXMpIGFyZSB0aGUgYG5hbWVgXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gZWxlbWVudCAoaW4gU0VBUkNIIHNpdHVhdGlvbiB0aGUgYHFuYW1lYCBmaWVsZCBpcyB1c2VkKS5cbiAgICpcbiAgICogSG93IHZhbHVlcyBhcmUgZXh0cmFjdGVkIGlzIGluZmx1ZW5jZWQgYnkgdGhlIGZvcm1zIHNpdHVhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiBvYmplY3Qgb2Yga2V5IHZhbHVlIHBhaXJzXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybURhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVRvRGF0YSgpO1xuICB9XG5cbiAgcHVibGljIHNldEZvcm1QcmlzdGluZSgpIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gIHB1YmxpYyByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucygpO1xuICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvYnNlcnZlZCBtb2RlbCB0aGF0IHdhcyBwYXNzZWQgdG8gdGhlIGN1cnJlbnQgZm9ybSBzY3JpcHQgcnVubmluZy4gSWYgdGhlcmUgaXNcbiAgICogbm8gZm9ybSBzY3JpcHQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIE5VTEwuXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0T2JzZXJ2ZWRTY3JpcHRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zY3JpcHRpbmdTY29wZSA/IHRoaXMuc2NyaXB0aW5nU2NvcGUuZ2V0TW9kZWwoKSA6IG51bGw7XG4gIH1cblxuICAvLyBDcmVhdGUgYSByZWFjdGl2ZSBmb3JtIGZyb20gdGhlIGVuYWlvIGZvcm0gbW9kZWxcbiAgcHJpdmF0ZSBidWlsZFJlYWN0aXZlRm9ybShmb3JtT3B0aW9ucykge1xuICAgIGNvbnN0IGZvcm1HZW5SZXM6IEZvcm1HZW5SZXN1bHQgPSB0aGlzLmZvcm1IZWxwZXJTZXJ2aWNlLmJ1aWxkUmVhY3RpdmVGb3JtKFxuICAgICAgZm9ybU9wdGlvbnMsIHRoaXMuZm9ybVNjcmlwdFNlcnZpY2UsIHRoaXMuaXNJbm5lclRhYmxlRm9ybVxuICAgICk7XG4gICAgdGhpcy5mb3JtID0gZm9ybUdlblJlcy5mb3JtO1xuICAgIHRoaXMuc2NyaXB0aW5nU2NvcGUgPSBmb3JtR2VuUmVzLnNjcmlwdGluZ1Njb3BlO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IGZvcm1HZW5SZXMuY29udHJvbFZhbHVlU3Vic2NyaXB0aW9ucztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmZvcm0pIHJldHVybjtcbiAgICAgIGxldCBmb3JtV2F0Y2ggPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gIWZvcm1XYXRjaC5jbG9zZWQgJiYgdGhpcy5lbWl0Rm9ybUNoYW5nZWRFdmVudCgpKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGZvcm1XYXRjaCk7XG4gICAgICB0aGlzLm9uRm9ybVJlYWR5LmVtaXQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1DaGFuZ2VkRXZlbnQoZmFsc2UpO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtQ2hhbmdlZEV2ZW50KGNvbXBhcmUgPSB0cnVlKSB7XG4gICAgLy8gY2hlY2sgaWYgaW5kZXhkYXRhIGhhcyBiZWVuIGNoYW5nZWRcbiAgICBsZXQgY3VycmVudEZvcm1EYXRhID0gdGhpcy5nZXRGb3JtRGF0YSgpO1xuICAgIGxldCBpZHhDaGFuZ2UgPSBjb21wYXJlID8gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkgOiBmYWxzZTtcblxuICAgIHRoaXMuZm9ybURhdGEgPSBVdGlscy5mb3JtRGF0YVBhcnNlKFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KGN1cnJlbnRGb3JtRGF0YSkpO1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgaW52YWxpZDogdGhpcy5mb3JtLmludmFsaWQsXG4gICAgICAgIGRpcnR5OiB0aGlzLmZvcm0uZGlydHksXG4gICAgICAgIGRhdGE6IHRoaXMuZm9ybURhdGEsXG4gICAgICAgIGluZGV4ZGF0YUNoYW5nZWQ6IGlkeENoYW5nZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgdGhlIHZhbHVlcyBmcm9tIHRoZSBmb3JtXG4gICAqL1xuICBwcml2YXRlIGZvcm1Ub0RhdGEoKSB7XG5cbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5leHRyYWN0Rm9ybURhdGEoXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb24sXG4gICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEsXG4gICAgICB0aGlzLmlzSW5uZXJUYWJsZUZvcm1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gdW5zdWJzY3JpYmUgZnJvbSBhbGwgdmFsdWUgY2hhbmdlIGxpc3RlbmVycyBmb3IgdGhlIGN1cnJlbnQgZm9ybVxuICAvLyB0byBhdm9pZCBtZW1vcnkgbGVha3MuIFRoaXMgbWV0aG9kIHdpbGwgYWxzbyBiZSBjYWxsZWQgZXZlcnkgdGltZVxuICAvLyBhIG5ldyBmb3JtIGlzIHJlbmRlcmVkIHRvIGdldCByaWQgb2YgdGhlIG9sZCBmb3JtIGVsZW1lbnQgc3Vic2NyaXB0aW9uc1xuICBwcml2YXRlIHVuc3Vic2NyaWJlQWxsKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5zdWJzY3JpYmVkIGZyb20gJyArIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggKyAnIHZhbHVlIGNoYW5nZSBsaXN0ZW5lcnMuJyk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1vYmplY3QtZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiBmb3JtT3B0aW9uc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGVvUnRsQXdhcmU+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnQtd3JhcCBjb3JlXCI+XG4gICAgPGVvLWZvcm0tZ3JvdXAgW2dyb3VwXT1cImZvcm0uZ2V0KCdjb3JlJylcIiBbc2l0dWF0aW9uXT1cImZvcm1PcHRpb25zLmZvcm1Nb2RlbC5zaXR1YXRpb25cIj48L2VvLWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50LXdyYXAgZGF0YVwiPlxuICAgIDxlby1mb3JtLWdyb3VwIFtncm91cF09XCJmb3JtLmdldCgnZGF0YScpXCIgW3NpdHVhdGlvbl09XCJmb3JtT3B0aW9ucy5mb3JtTW9kZWwuc2l0dWF0aW9uXCI+PC9lby1mb3JtLWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cblxuXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcclxuaW1wb3J0IHtPYmplY3RGb3JtR3JvdXB9IGZyb20gJy4vb2JqZWN0LWZvcm0tZ3JvdXAubW9kZWwnO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZWN0Rm9ybU1vZGVsID0gT2JqZWN0Rm9ybUdyb3VwIHwgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyO1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuL29iamVjdC1mb3JtLWdyb3VwLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgT2JqZWN0Rm9ybU1vZGVsID0gT2JqZWN0Rm9ybUdyb3VwIHwgT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyO1xuIl19
@@ -197,11 +197,11 @@ export class ObjectFormEditComponent {
197
197
  return dmsObject.hasOwnProperty('rights') && dmsObject.rights.edit && !dmsObject.isFinalized;
198
198
  }
199
199
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormEditComponent, deps: [{ token: i1.SystemService }, { token: i1.DmsService }, { token: i0.ElementRef }, { token: i1.NotificationsService }, { token: i2.PendingChangesService }, { token: i3.Router }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: { formDisabled: "formDisabled", dmsObject: "dmsObject" }, outputs: { indexDataSaved: "indexDataSaved" }, viewQueries: [{ propertyName: "objectForm", first: true, predicate: ObjectFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\r\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\r\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\r\n\r\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\r\n\r\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n\r\n <div class=\"buttons\">\r\n\r\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\r\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\r\n [disabled]=\"formState?.invalid || controls.saving\"\r\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\r\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\r\n\r\n <div class=\"action-buttons conflict--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\r\n translate>eo.cta.button.cancel</button>\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\r\n translate>eo.object.indexdata.save.changes</button>\r\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\r\n translate>eo.object.indexdata.save</button>\r\n </div>\r\n</eo-dialog>\r\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i7.ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: i8.ObjectFormComponent, selector: "eo-object-form", inputs: ["isInnerTableForm", "formOptions"], outputs: ["statusChanged", "onFormReady"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ObjectFormEditComponent, selector: "eo-object-form-edit", inputs: { formDisabled: "formDisabled", dmsObject: "dmsObject" }, outputs: { indexDataSaved: "indexDataSaved" }, viewQueries: [{ propertyName: "objectForm", first: true, predicate: ObjectFormComponent, descendants: true }], ngImport: i0, template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\n\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\n\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\n\n <div class=\"buttons\">\n\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\n [disabled]=\"formState?.invalid || controls.saving\"\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\n </div>\n </div>\n</div>\n\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\n\n <div class=\"action-buttons conflict--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\n translate>eo.object.indexdata.save.changes</button>\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\n translate>eo.object.indexdata.save</button>\n </div>\n</eo-dialog>\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i7.ShortcutsDirective, selector: "[eoShortcuts]", inputs: ["eoShortcuts"] }, { kind: "component", type: i8.ObjectFormComponent, selector: "eo-object-form", inputs: ["isInnerTableForm", "formOptions"], outputs: ["statusChanged", "onFormReady"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
201
201
  }
202
202
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ObjectFormEditComponent, decorators: [{
203
203
  type: Component,
204
- args: [{ selector: 'eo-object-form-edit', template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\r\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\r\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\r\n\r\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\r\n\r\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\r\n\r\n <div class=\"buttons\">\r\n\r\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\r\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\r\n [disabled]=\"formState?.invalid || controls.saving\"\r\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\r\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\r\n\r\n <div class=\"action-buttons conflict--action-buttons flex-row\">\r\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\r\n translate>eo.cta.button.cancel</button>\r\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\r\n translate>eo.object.indexdata.save.changes</button>\r\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\r\n translate>eo.object.indexdata.save</button>\r\n </div>\r\n</eo-dialog>\r\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
204
+ args: [{ selector: 'eo-object-form-edit', template: "<div class=\"object-form-edit\" [ngClass]=\"{invalid: formState?.invalid === true}\" [eoShortcuts]=\"shortcuts\">\n <eo-object-form [formOptions]=\"formOptions\" *ngIf=\"formOptions\"\n (statusChanged)=\"onFormStatusChanged($event)\"></eo-object-form>\n\n <div class=\"form-controls\" *ngIf=\"controls.visible\">\n\n <div class=\"err-msg\" *ngIf=\"formState?.invalid\" translate>eo.object.indexdata.form.invalid</div>\n\n <div class=\"buttons\">\n\n <button class=\"secondary\" (click)=\"reset()\" [disabled]=\"controls.saving\" translate>eo.object.indexdata.reset</button>\n <button class=\"primary\" [ngClass]=\"{spinner: controls.saving}\"\n [disabled]=\"formState?.invalid || controls.saving\"\n (click)=\"save()\" translate>eo.object.indexdata.save</button>\n </div>\n </div>\n</div>\n\n<eo-dialog [title]=\"('eo.object.indexdata.save.conflict.dialog.title' | translate : {modifier: conflictError?.dmsobject.modified.by.firstname + ' ' + conflictError?.dmsobject.modified.by.lastname})\"\n (hide)=\"controls.saving = false;\" [(visible)]=\"showConflictDialog\" [minWidth]=\"400\" [styleClass]=\"'conflict__dialog'\">\n\n <div class=\"action-buttons conflict--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"cancelSaving()\"\n translate>eo.cta.button.cancel</button>\n <button type=\"button\" class=\"button cancel\" (click)=\"showConflictChanges()\"\n translate>eo.object.indexdata.save.changes</button>\n <button type=\"button\" (click)=\"save(true); closeConflictDialog();\" class=\"button primary\"\n translate>eo.object.indexdata.save</button>\n </div>\n</eo-dialog>\n", styles: [".object-form-edit{background:var(--color-white);min-width:300px;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"form\" \"buttons\"}.object-form-edit eo-object-form{grid-area:form}.object-form-edit .form-controls{grid-area:buttons;box-sizing:border-box}.object-form-edit .form-controls .err-msg{order:0;flex:1 1 auto;display:none;background-color:var(--color-error);color:#fff;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.object-form-edit .form-controls .buttons{order:1;flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * .875)}.object-form-edit .form-controls .buttons button{flex:0 0 auto;margin:0 calc(var(--app-pane-padding) * .125)}.object-form-edit .form-controls .buttons .loader{flex:1 1 auto}.object-form-edit .form-controls .buttons .loader eo-icon{display:none}.object-form-edit .form-controls .buttons .loader.saving eo-icon{display:block}.object-form-edit.invalid .form-controls .err-msg{display:block}::ng-deep .conflict__dialog{padding:8px;min-height:unset!important}::ng-deep .conflict__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
205
205
  }], ctorParameters: () => [{ type: i1.SystemService }, { type: i1.DmsService }, { type: i0.ElementRef }, { type: i1.NotificationsService }, { type: i2.PendingChangesService }, { type: i3.Router }, { type: i1.TranslateService }], propDecorators: { objectForm: [{
206
206
  type: ViewChild,
207
207
  args: [ObjectFormComponent]
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
213
213
  }], indexDataSaved: [{
214
214
  type: Output
215
215
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUt6RSxPQUFPLEVBQTZELEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUU1Qiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUU5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJ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QUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxTQUFvQjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQy9GLENBQUM7OEdBN05VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHdOQVd2QixtQkFBbUIsZ0RDNUJoQywwdURBOEJBOzsyRkRiYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOytQQWVDLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVyQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXO2dCQWtCUixjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7ZmluYWxpemUsIGNhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFb0Vycm9yLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5pbXBvcnQge09iamVjdEZvcm1Db21wb25lbnR9IGZyb20gJy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7R2xvYmFsU2hvcnRjdXRDb21wb25lbnR9IGZyb20gJy4uLy4uL3Nob3J0Y3V0cy9nbG9iYWwtc2hvcnRjdXQtY29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50fSBmcm9tICcuLi9mb3JtLXN0YXR1cy1jaGFuZ2VkLWV2ZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Rtc09iamVjdCwgU3lzdGVtU2VydmljZSwgRG1zU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LWZvcm0tZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybUVkaXRDb21wb25lbnQge1xyXG5cclxuICBzaG93Q29uZmxpY3REaWFsb2cgPSBmYWxzZTtcclxuICBjb25mbGljdEVycm9yOiBhbnk7XHJcblxyXG4gIC8vIElEIHNldCBieSBwZW5kaW5nQ2hhbmdlcyBzZXJ2aWNlIHdoZW4gZWRpdGluZyBpbmRleGRhdGFcclxuICAvLyBVc2VkIHRvIGZpbmlzaCB0aGUgcGVuZGluZyB0YXNrIHdoZW4gZWRpdGluZyBpcyBkb25lXHJcbiAgcHJpdmF0ZSBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XHJcblxyXG4gIC8vIGZldGNoIGEgcmVmZXJlbmNlIHRvIHRoZSBvcGJqZWN0IGZvcm0gY29tcG9uZW50IHRvIGJlIGFibGUgdG9cclxuICAvLyBnZXQgdGhlIGZvcm0gZGF0YVxyXG4gIEBWaWV3Q2hpbGQoT2JqZWN0Rm9ybUNvbXBvbmVudCkgb2JqZWN0Rm9ybTogT2JqZWN0Rm9ybUNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KCkgZm9ybURpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoJ2Rtc09iamVjdCcpXHJcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xyXG4gICAgaWYgKGRtc09iamVjdCkge1xyXG4gICAgICB0aGlzLl9kbXNPYmplY3QgPSBkbXNPYmplY3Q7XHJcblxyXG4gICAgICAvLyByZXNldCB0aGUgc3RhdGUgb2YgdGhlIGZvcm1cclxuICAgICAgdGhpcy5mb3JtU3RhdGUgPSBudWxsO1xyXG4gICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNvbnRyb2xzLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGRtc09iamVjdCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kbXNPYmplY3Q7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgaW5kZXhEYXRhU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xyXG4gIGZvcm1TdGF0ZTogRm9ybVN0YXR1c0NoYW5nZWRFdmVudDtcclxuICBjb250cm9scyA9IHtcclxuICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgc2F2aW5nOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX2Rtc09iamVjdDogRG1zT2JqZWN0O1xyXG4gIHByaXZhdGUgbWVzc2FnZXMgPSB7XHJcbiAgICBmb3JtU3VjY2VzczogbnVsbCxcclxuICAgIGZvcm1FcnJvcjogbnVsbFxyXG4gIH07XHJcblxyXG4gIC8vIHNob3J0Y3V0IGFjdGlvbnNcclxuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xyXG4gICAgaWQ6ICdlby5hcHAuZm9ybS5lZGl0JyxcclxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScpLFxyXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScsXHJcbiAgICBhY3Rpb25zOiBbe1xyXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uc2F2ZScpLFxyXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnNhdmUnLFxyXG4gICAgICBzaG9ydGN1dDogJ1MnLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgfSxcclxuICAgICAgaXNIaWRkZW46ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybVN0YXRlIHx8ICF0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCB0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0sIHtcclxuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyksXHJcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24ucmVzZXQnLFxyXG4gICAgICBzaG9ydGN1dDogJ1InLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1TdGF0ZSB8fCAhdGhpcy5mb3JtU3RhdGUuZGlydHkgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSwge1xyXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcpLFxyXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLmVkaXQnLFxyXG4gICAgICBzaG9ydGN1dDogJ0UnLFxyXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9iamVjdEZvcm0uZm9jdXNGb3JtKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGlzSGlkZGVuOiAodGFyZ2V0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1PcHRpb25zIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkgfHwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfV1cclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIG5vdGljYXRpb246IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoW1xyXG4gICAgICAnZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnLFxyXG4gICAgICAnZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmVycm9yJ1xyXG4gICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5mb3JtU3VjY2VzcyA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLnN1Y2Nlc3MnXTtcclxuICAgICAgdGhpcy5tZXNzYWdlcy5mb3JtRXJyb3IgPSByZXNbJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5lcnJvciddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcclxuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcclxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxyXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XHJcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmlzaFBlbmRpbmcoKSB7XHJcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcclxuICB9XHJcblxyXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoZXZ0KSB7XHJcbiAgICB0aGlzLmZvcm1TdGF0ZSA9IGV2dDtcclxuICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IHRoaXMuZm9ybVN0YXRlLmludmFsaWQgfHwgdGhpcy5mb3JtU3RhdGUuZGlydHk7XHJcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuZGlydHkpIHtcclxuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gc2F2ZSB0aGUgY3VycmVudCBkbXMgb2JqZWN0XHJcbiAgc2F2ZShpZ25vcmVDb25mbGljdHM/OiBib29sZWFuKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9ybVN0YXRlLmRpcnR5ICYmICF0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5vYmplY3RGb3JtLmdldEZvcm1EYXRhKCk7XHJcbiAgICAgICAgY29uc3Qge2lkLCB0eXBlTmFtZSwgdmVyc2lvbn0gPSB0aGlzLl9kbXNPYmplY3Q7XHJcblxyXG4gICAgICAgIHRoaXMuZG1zU2VydmljZS51cGRhdGVPYmplY3QoaWQsIGZvcm1EYXRhLCB0eXBlTmFtZSwgaWdub3JlQ29uZmxpY3RzID8gbnVsbCA6IHZlcnNpb24sIGZhbHNlKVxyXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5maW5pc2hQZW5kaW5nKCkpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodXBkYXRlZE9iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kbXNPYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmRhdGEgPSB1cGRhdGVkT2JqZWN0LmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybU9wdGlvbnMub2JqZWN0ID0gdXBkYXRlZE9iamVjdDtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0Rm9ybS5zZXRGb3JtUHJpc3RpbmUoKTtcclxuICAgICAgICAgICAgdGhpcy5pbmRleERhdGFTYXZlZC5lbWl0KGZvcm1EYXRhKTtcclxuICAgICAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYoZXJyLnN0YXR1cyA9PT0gNDA5KXtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZsaWN0RXJyb3IgPSBlcnIuZXJyb3I7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcGVuQ29uZmxpY3REaWFsb2coKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRW9FcnJvcihlcnIsIHRoaXMuX2Rtc09iamVjdC50aXRsZSwgdGhpcy5tZXNzYWdlcy5mb3JtRXJyb3IsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIG9wZW5Db25mbGljdERpYWxvZygpe1xyXG4gICAgdGhpcy5zaG93Q29uZmxpY3REaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDb25mbGljdERpYWxvZygpe1xyXG4gICAgdGhpcy5zaG93Q29uZmxpY3REaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNob3dDb25mbGljdENoYW5nZXMoKXtcclxuICAgIGNvbnN0IG5hdmlnYXRpb25FeHRyYXM6IE5hdmlnYXRpb25FeHRyYXMgPSB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgdmVyc2lvbjogdGhpcy5fZG1zT2JqZWN0LnZlcnNpb24sXHJcbiAgICAgICAgdmVyc2lvbjI6IHRoaXMuY29uZmxpY3RFcnJvci5kbXNvYmplY3QudmVyc2lvblxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbYHZlcnNpb25zLyR7dGhpcy5fZG1zT2JqZWN0LmlkfWBdLCBuYXZpZ2F0aW9uRXh0cmFzKS50b1N0cmluZygpLnJlcGxhY2UoL15cXC8rL2csICcnKTtcclxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsU2F2aW5nKCl7XHJcbiAgICB0aGlzLmNsb3NlQ29uZmxpY3REaWFsb2coKTtcclxuICB9XHJcblxyXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLm9iamVjdEZvcm0ucmVzZXRGb3JtKCk7XHJcbiAgfVxyXG5cclxuICAvLyBjcmVhdGUgdGhlIGZvcm1PcHRpb25zIHJlcXVpcmVkIGJ5IG9iamVjdCBmb3JtIGNvbXBvbmVudFxyXG4gIHByaXZhdGUgY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3Q6IERtc09iamVjdCkge1xyXG5cclxuICAgIHRoaXMuc3lzdGVtU2VydmljZVxyXG4gICAgICAuZ2V0T2JqZWN0VHlwZUZvcm0oZG1zT2JqZWN0LnR5cGUubmFtZSwgJ0VESVQnKVxyXG4gICAgICAuc3Vic2NyaWJlKChtb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkRXhjZXB0aW9uSURzRm9ySURSZWZlcmVuY2VGaWVsZHMobW9kZWwpO1xyXG4gICAgICAgIHRoaXMuZm9ybU9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBsYXlvdXRTZXR0aW5nc0lEOiBkbXNPYmplY3QudHlwZS5uYW1lLFxyXG4gICAgICAgICAgZm9ybU1vZGVsOiBtb2RlbCxcclxuICAgICAgICAgIGRhdGE6IGRtc09iamVjdC5kYXRhLFxyXG4gICAgICAgICAgb2JqZWN0OiBkbXNPYmplY3QsXHJcbiAgICAgICAgICBvYmplY3RJZDogZG1zT2JqZWN0LmlkLFxyXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZm9ybURpc2FibGVkIHx8ICF0aGlzLmlzRWRpdGFibGUoZG1zT2JqZWN0KVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGRtc09iamVjdC5jb250ZXh0Rm9sZGVyKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmNvbnRleHQgPSB7XHJcbiAgICAgICAgICAgIGlkOiBkbXNPYmplY3QuY29udGV4dEZvbGRlci5pZCxcclxuICAgICAgICAgICAgdGl0bGU6IGRtc09iamVjdC5jb250ZXh0Rm9sZGVyLnRpdGxlLFxyXG4gICAgICAgICAgICB0eXBlTmFtZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudHlwZU5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbDogYW55KSB7XHJcbiAgICBpZiAobW9kZWwudHlwZSA9PT0gJ1JFRkVSRU5DRScpIHtcclxuICAgICAgbW9kZWwuZXhjZXB0aW9uSURzID0gW3RoaXMuX2Rtc09iamVjdC5pZF07XHJcbiAgICB9IGVsc2UgaWYobW9kZWwuZWxlbWVudHMpIHtcclxuICAgICAgbW9kZWwuZWxlbWVudHMuZm9yRWFjaChlbCA9PiB0aGlzLmFkZEV4Y2VwdGlvbklEc0ZvcklEUmVmZXJlbmNlRmllbGRzKGVsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRWRpdGFibGUoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBkbXNPYmplY3QuaGFzT3duUHJvcGVydHkoJ3JpZ2h0cycpICYmIGRtc09iamVjdC5yaWdodHMuZWRpdCAmJiAhZG1zT2JqZWN0LmlzRmluYWxpemVkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tZWRpdFwiIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBmb3JtU3RhdGU/LmludmFsaWQgPT09IHRydWV9XCIgW2VvU2hvcnRjdXRzXT1cInNob3J0Y3V0c1wiPlxyXG4gIDxlby1vYmplY3QtZm9ybSBbZm9ybU9wdGlvbnNdPVwiZm9ybU9wdGlvbnNcIiAqbmdJZj1cImZvcm1PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZWQpPVwib25Gb3JtU3RhdHVzQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby1vYmplY3QtZm9ybT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbHNcIiAqbmdJZj1cImNvbnRyb2xzLnZpc2libGVcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZm9ybVN0YXRlPy5pbnZhbGlkXCIgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuZm9ybS5pbnZhbGlkPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuXHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCJjb250cm9scy5zYXZpbmdcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5yZXNldDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtuZ0NsYXNzXT1cIntzcGlubmVyOiBjb250cm9scy5zYXZpbmd9XCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8IGNvbnRyb2xzLnNhdmluZ1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLnNhdmU8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxlby1kaWFsb2cgW3RpdGxlXT1cIignZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmNvbmZsaWN0LmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGUgOiB7bW9kaWZpZXI6IGNvbmZsaWN0RXJyb3I/LmRtc29iamVjdC5tb2RpZmllZC5ieS5maXJzdG5hbWUgKyAnICcgKyBjb25mbGljdEVycm9yPy5kbXNvYmplY3QubW9kaWZpZWQuYnkubGFzdG5hbWV9KVwiXHJcbiAgKGhpZGUpPVwiY29udHJvbHMuc2F2aW5nID0gZmFsc2U7XCIgWyh2aXNpYmxlKV09XCJzaG93Q29uZmxpY3REaWFsb2dcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ2NvbmZsaWN0X19kaWFsb2cnXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucyBjb25mbGljdC0tYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJjYW5jZWxTYXZpbmcoKVwiXHJcbiAgICAgIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dDb25mbGljdENoYW5nZXMoKVwiXHJcbiAgICAgIHRyYW5zbGF0ZT5lby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuY2hhbmdlczwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUodHJ1ZSk7IGNsb3NlQ29uZmxpY3REaWFsb2coKTtcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcclxuICAgICAgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuc2F2ZTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2VvLWRpYWxvZz5cclxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1lZGl0L29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsT0FBTyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUt6RSxPQUFPLEVBQTZELEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7OztBQVEvRixNQUFNLE9BQU8sdUJBQXVCO0lBZWxDLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUU1Qiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUU5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJ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QUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxTQUFvQjtRQUNyQyxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQy9GLENBQUM7OEdBN05VLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHdOQVd2QixtQkFBbUIsZ0RDNUJoQyw4cURBOEJBOzsyRkRiYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOytQQWVDLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVyQixZQUFZO3NCQUFwQixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXO2dCQWtCUixjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbmFsaXplLCBjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFb0Vycm9yLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2hvcnRjdXRzL2dsb2JhbC1zaG9ydGN1dC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7Rm9ybVN0YXR1c0NoYW5nZWRFdmVudH0gZnJvbSAnLi4vZm9ybS1zdGF0dXMtY2hhbmdlZC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgU3lzdGVtU2VydmljZSwgRG1zU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1mb3JtLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWZvcm0tZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1mb3JtLWVkaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RGb3JtRWRpdENvbXBvbmVudCB7XG5cbiAgc2hvd0NvbmZsaWN0RGlhbG9nID0gZmFsc2U7XG4gIGNvbmZsaWN0RXJyb3I6IGFueTtcblxuICAvLyBJRCBzZXQgYnkgcGVuZGluZ0NoYW5nZXMgc2VydmljZSB3aGVuIGVkaXRpbmcgaW5kZXhkYXRhXG4gIC8vIFVzZWQgdG8gZmluaXNoIHRoZSBwZW5kaW5nIHRhc2sgd2hlbiBlZGl0aW5nIGlzIGRvbmVcbiAgcHJpdmF0ZSBwZW5kaW5nVGFza0lkOiBzdHJpbmc7XG5cbiAgLy8gZmV0Y2ggYSByZWZlcmVuY2UgdG8gdGhlIG9wYmplY3QgZm9ybSBjb21wb25lbnQgdG8gYmUgYWJsZSB0b1xuICAvLyBnZXQgdGhlIGZvcm0gZGF0YVxuICBAVmlld0NoaWxkKE9iamVjdEZvcm1Db21wb25lbnQpIG9iamVjdEZvcm06IE9iamVjdEZvcm1Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgZm9ybURpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuX2Rtc09iamVjdCA9IGRtc09iamVjdDtcblxuICAgICAgLy8gcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBmb3JtXG4gICAgICB0aGlzLmZvcm1TdGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3QpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkbXNPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rtc09iamVjdDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBpbmRleERhdGFTYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGZvcm1PcHRpb25zOiBPYmplY3RGb3JtT3B0aW9ucztcbiAgZm9ybVN0YXRlOiBGb3JtU3RhdHVzQ2hhbmdlZEV2ZW50O1xuICBjb250cm9scyA9IHtcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBzYXZpbmc6IGZhbHNlXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIHByaXZhdGUgbWVzc2FnZXMgPSB7XG4gICAgZm9ybVN1Y2Nlc3M6IG51bGwsXG4gICAgZm9ybUVycm9yOiBudWxsXG4gIH07XG5cbiAgLy8gc2hvcnRjdXQgYWN0aW9uc1xuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xuICAgIGlkOiAnZW8uYXBwLmZvcm0uZWRpdCcsXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLnRpdGxlJyksXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS50aXRsZScsXG4gICAgYWN0aW9uczogW3tcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5mb3JtLmFjdGlvbi5zYXZlJyksXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnNhdmUnLFxuICAgICAgc2hvcnRjdXQ6ICdTJyxcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmUoKTtcbiAgICAgIH0sXG4gICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybVN0YXRlIHx8ICF0aGlzLmZvcm1TdGF0ZS5kaXJ0eSB8fCB0aGlzLmZvcm1TdGF0ZS5pbnZhbGlkIHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyksXG4gICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLnJlc2V0JyxcbiAgICAgIHNob3J0Y3V0OiAnUicsXG4gICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgfSxcbiAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5mb3JtU3RhdGUgfHwgIXRoaXMuZm9ybVN0YXRlLmRpcnR5IHx8ICFVdGlscy5pc1Zpc2libGUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2hvcnRjdXRzLmZvcm0uYWN0aW9uLmVkaXQnKSxcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuZm9ybS5hY3Rpb24uZWRpdCcsXG4gICAgICBzaG9ydGN1dDogJ0UnLFxuICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMub2JqZWN0Rm9ybS5mb2N1c0Zvcm0oKTtcbiAgICAgIH0sXG4gICAgICBpc0hpZGRlbjogKHRhcmdldCkgPT4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZm9ybU9wdGlvbnMgfHwgIVV0aWxzLmlzVmlzaWJsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB8fCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuICAgICAgfVxuICAgIH1dXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBub3RpY2F0aW9uOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoW1xuICAgICAgJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5zdWNjZXNzJyxcbiAgICAgICdlby5vYmplY3QuaW5kZXhkYXRhLnNhdmUuZXJyb3InXG4gICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZXMuZm9ybVN1Y2Nlc3MgPSByZXNbJ2VvLm9iamVjdC5pbmRleGRhdGEuc2F2ZS5zdWNjZXNzJ107XG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciA9IHJlc1snZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmVycm9yJ107XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UGVuZGluZygpIHtcbiAgICAvLyBiZWNhdXNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIGZvcm0gc3RhdHVzIGNoYW5nZXMsXG4gICAgLy8gcGVuZGluZyB0YXNrIHdpbGwgb25seSBiZSBzdGFydGVkIG9uY2UgdW50aWwgaXQgd2FzIGZpbmlzaGVkXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIG9uRm9ybVN0YXR1c0NoYW5nZWQoZXZ0KSB7XG4gICAgdGhpcy5mb3JtU3RhdGUgPSBldnQ7XG4gICAgdGhpcy5jb250cm9scy52aXNpYmxlID0gdGhpcy5mb3JtU3RhdGUuaW52YWxpZCB8fCB0aGlzLmZvcm1TdGF0ZS5kaXJ0eTtcbiAgICBpZiAodGhpcy5mb3JtU3RhdGUuZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNhdmUgdGhlIGN1cnJlbnQgZG1zIG9iamVjdFxuICBzYXZlKGlnbm9yZUNvbmZsaWN0cz86IGJvb2xlYW4pIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1TdGF0ZS5kaXJ0eSAmJiAhdGhpcy5mb3JtU3RhdGUuaW52YWxpZCkge1xuICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5vYmplY3RGb3JtLmdldEZvcm1EYXRhKCk7XG4gICAgICAgIGNvbnN0IHtpZCwgdHlwZU5hbWUsIHZlcnNpb259ID0gdGhpcy5fZG1zT2JqZWN0O1xuXG4gICAgICAgIHRoaXMuZG1zU2VydmljZS51cGRhdGVPYmplY3QoaWQsIGZvcm1EYXRhLCB0eXBlTmFtZSwgaWdub3JlQ29uZmxpY3RzID8gbnVsbCA6IHZlcnNpb24sIGZhbHNlKVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZmluaXNoUGVuZGluZygpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh1cGRhdGVkT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kbXNPYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5kYXRhID0gdXBkYXRlZE9iamVjdC5kYXRhO1xuICAgICAgICAgICAgdGhpcy5mb3JtT3B0aW9ucy5vYmplY3QgPSB1cGRhdGVkT2JqZWN0O1xuICAgICAgICAgICAgdGhpcy5jb250cm9scy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbHMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5vYmplY3RGb3JtLnNldEZvcm1QcmlzdGluZSgpO1xuICAgICAgICAgICAgdGhpcy5pbmRleERhdGFTYXZlZC5lbWl0KGZvcm1EYXRhKTtcbiAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYoZXJyLnN0YXR1cyA9PT0gNDA5KXtcbiAgICAgICAgICAgICAgdGhpcy5jb25mbGljdEVycm9yID0gZXJyLmVycm9yO1xuICAgICAgICAgICAgICB0aGlzLm9wZW5Db25mbGljdERpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFb0Vycm9yKGVyciwgdGhpcy5fZG1zT2JqZWN0LnRpdGxlLCB0aGlzLm1lc3NhZ2VzLmZvcm1FcnJvciwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cblxuICBvcGVuQ29uZmxpY3REaWFsb2coKXtcbiAgICB0aGlzLnNob3dDb25mbGljdERpYWxvZyA9IHRydWU7XG4gIH1cblxuICBjbG9zZUNvbmZsaWN0RGlhbG9nKCl7XG4gICAgdGhpcy5zaG93Q29uZmxpY3REaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25mbGljdENoYW5nZXMoKXtcbiAgICBjb25zdCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgdmVyc2lvbjogdGhpcy5fZG1zT2JqZWN0LnZlcnNpb24sXG4gICAgICAgIHZlcnNpb24yOiB0aGlzLmNvbmZsaWN0RXJyb3IuZG1zb2JqZWN0LnZlcnNpb25cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW2B2ZXJzaW9ucy8ke3RoaXMuX2Rtc09iamVjdC5pZH1gXSwgbmF2aWdhdGlvbkV4dHJhcykudG9TdHJpbmcoKS5yZXBsYWNlKC9eXFwvKy9nLCAnJyk7XG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7XG4gIH1cblxuICBjYW5jZWxTYXZpbmcoKXtcbiAgICB0aGlzLmNsb3NlQ29uZmxpY3REaWFsb2coKTtcbiAgfVxuXG4gIC8vIHJlc2V0IHRoZSBmb3JtIHRvIGl0cyBpbml0aWFsIHN0YXRlXG4gIHJlc2V0KCkge1xuICAgIHRoaXMub2JqZWN0Rm9ybS5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIC8vIGNyZWF0ZSB0aGUgZm9ybU9wdGlvbnMgcmVxdWlyZWQgYnkgb2JqZWN0IGZvcm0gY29tcG9uZW50XG4gIHByaXZhdGUgY3JlYXRlT2JqZWN0Rm9ybShkbXNPYmplY3Q6IERtc09iamVjdCkge1xuXG4gICAgdGhpcy5zeXN0ZW1TZXJ2aWNlXG4gICAgICAuZ2V0T2JqZWN0VHlwZUZvcm0oZG1zT2JqZWN0LnR5cGUubmFtZSwgJ0VESVQnKVxuICAgICAgLnN1YnNjcmliZSgobW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbCk7XG4gICAgICAgIHRoaXMuZm9ybU9wdGlvbnMgPSB7XG4gICAgICAgICAgbGF5b3V0U2V0dGluZ3NJRDogZG1zT2JqZWN0LnR5cGUubmFtZSxcbiAgICAgICAgICBmb3JtTW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGRhdGE6IGRtc09iamVjdC5kYXRhLFxuICAgICAgICAgIG9iamVjdDogZG1zT2JqZWN0LFxuICAgICAgICAgIG9iamVjdElkOiBkbXNPYmplY3QuaWQsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZm9ybURpc2FibGVkIHx8ICF0aGlzLmlzRWRpdGFibGUoZG1zT2JqZWN0KVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIpIHtcbiAgICAgICAgICB0aGlzLmZvcm1PcHRpb25zLmNvbnRleHQgPSB7XG4gICAgICAgICAgICBpZDogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIuaWQsXG4gICAgICAgICAgICB0aXRsZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudGl0bGUsXG4gICAgICAgICAgICB0eXBlTmFtZTogZG1zT2JqZWN0LmNvbnRleHRGb2xkZXIudHlwZU5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhtb2RlbDogYW55KSB7XG4gICAgaWYgKG1vZGVsLnR5cGUgPT09ICdSRUZFUkVOQ0UnKSB7XG4gICAgICBtb2RlbC5leGNlcHRpb25JRHMgPSBbdGhpcy5fZG1zT2JqZWN0LmlkXTtcbiAgICB9IGVsc2UgaWYobW9kZWwuZWxlbWVudHMpIHtcbiAgICAgIG1vZGVsLmVsZW1lbnRzLmZvckVhY2goZWwgPT4gdGhpcy5hZGRFeGNlcHRpb25JRHNGb3JJRFJlZmVyZW5jZUZpZWxkcyhlbCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNFZGl0YWJsZShkbXNPYmplY3Q6IERtc09iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkbXNPYmplY3QuaGFzT3duUHJvcGVydHkoJ3JpZ2h0cycpICYmIGRtc09iamVjdC5yaWdodHMuZWRpdCAmJiAhZG1zT2JqZWN0LmlzRmluYWxpemVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2JqZWN0LWZvcm0tZWRpdFwiIFtuZ0NsYXNzXT1cIntpbnZhbGlkOiBmb3JtU3RhdGU/LmludmFsaWQgPT09IHRydWV9XCIgW2VvU2hvcnRjdXRzXT1cInNob3J0Y3V0c1wiPlxuICA8ZW8tb2JqZWN0LWZvcm0gW2Zvcm1PcHRpb25zXT1cImZvcm1PcHRpb25zXCIgKm5nSWY9XCJmb3JtT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlZCk9XCJvbkZvcm1TdGF0dXNDaGFuZ2VkKCRldmVudClcIj48L2VvLW9iamVjdC1mb3JtPlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xzXCIgKm5nSWY9XCJjb250cm9scy52aXNpYmxlXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZm9ybVN0YXRlPy5pbnZhbGlkXCIgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuZm9ybS5pbnZhbGlkPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxuXG4gICAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlc2V0KClcIiBbZGlzYWJsZWRdPVwiY29udHJvbHMuc2F2aW5nXCIgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEucmVzZXQ8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwie3NwaW5uZXI6IGNvbnRyb2xzLnNhdmluZ31cIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybVN0YXRlPy5pbnZhbGlkIHx8IGNvbnRyb2xzLnNhdmluZ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzYXZlKClcIiB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxlby1kaWFsb2cgW3RpdGxlXT1cIignZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmNvbmZsaWN0LmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGUgOiB7bW9kaWZpZXI6IGNvbmZsaWN0RXJyb3I/LmRtc29iamVjdC5tb2RpZmllZC5ieS5maXJzdG5hbWUgKyAnICcgKyBjb25mbGljdEVycm9yPy5kbXNvYmplY3QubW9kaWZpZWQuYnkubGFzdG5hbWV9KVwiXG4gIChoaWRlKT1cImNvbnRyb2xzLnNhdmluZyA9IGZhbHNlO1wiIFsodmlzaWJsZSldPVwic2hvd0NvbmZsaWN0RGlhbG9nXCIgW21pbldpZHRoXT1cIjQwMFwiIFtzdHlsZUNsYXNzXT1cIidjb25mbGljdF9fZGlhbG9nJ1wiPlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucyBjb25mbGljdC0tYWN0aW9uLWJ1dHRvbnMgZmxleC1yb3dcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwiY2FuY2VsU2F2aW5nKClcIlxuICAgICAgdHJhbnNsYXRlPmVvLmN0YS5idXR0b24uY2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cInNob3dDb25mbGljdENoYW5nZXMoKVwiXG4gICAgICB0cmFuc2xhdGU+ZW8ub2JqZWN0LmluZGV4ZGF0YS5zYXZlLmNoYW5nZXM8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSh0cnVlKTsgY2xvc2VDb25mbGljdERpYWxvZygpO1wiIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIlxuICAgICAgdHJhbnNsYXRlPmVvLm9iamVjdC5pbmRleGRhdGEuc2F2ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19