nuxeo-development-framework 3.5.0 → 3.5.2

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 (253) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +896 -1020
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/Core/adapters/adapter.service.js +4 -4
  4. package/esm2015/lib/Core/core.module.js +5 -5
  5. package/esm2015/lib/Core/services/callApi/call-api.service.js +4 -4
  6. package/esm2015/lib/Core/services/extension/component-register.service.js +4 -4
  7. package/esm2015/lib/Core/services/extension/extension-loader.service.js +4 -4
  8. package/esm2015/lib/Core/services/extension/extension.service.js +4 -4
  9. package/esm2015/lib/Core/services/initialization/initialization.service.js +4 -4
  10. package/esm2015/lib/Core/services/localStorag/local-storag.service.js +4 -4
  11. package/esm2015/lib/Core/services/nuxeo/nuxeo.service.js +4 -4
  12. package/esm2015/lib/Core/services/roles/roles.service.js +4 -4
  13. package/esm2015/lib/Core/services/translation/translate-loader.service.js +4 -4
  14. package/esm2015/lib/Core/services/translation/translation.service.js +4 -4
  15. package/esm2015/lib/Core/services/user/user-preferences.service.js +4 -4
  16. package/esm2015/lib/Core/utilities/moment-date-adapter.js +4 -4
  17. package/esm2015/lib/Core/utilities/utility.service.js +4 -4
  18. package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +4 -4
  19. package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +4 -4
  20. package/esm2015/lib/components/activities-log/activities-log.module.js +5 -5
  21. package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
  22. package/esm2015/lib/components/activity/activity.module.js +5 -5
  23. package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +4 -4
  24. package/esm2015/lib/components/attachment-item/attachment-item.module.js +5 -5
  25. package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +5 -5
  26. package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +4 -4
  27. package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
  28. package/esm2015/lib/components/avatar/avatar.module.js +5 -5
  29. package/esm2015/lib/components/card/card.component.js +4 -4
  30. package/esm2015/lib/components/card/card.module.js +5 -5
  31. package/esm2015/lib/components/comments/comments.module.js +5 -5
  32. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
  33. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
  34. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
  35. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
  36. package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
  37. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
  38. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
  39. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
  40. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +4 -4
  41. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +5 -5
  42. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
  43. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
  44. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
  45. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
  46. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
  47. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
  48. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
  49. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
  50. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
  51. package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
  52. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
  53. package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
  54. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
  55. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
  56. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
  57. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
  58. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +4 -4
  59. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +4 -4
  60. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +5 -5
  61. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
  62. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
  63. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
  64. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
  65. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
  66. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
  67. package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
  68. package/esm2015/lib/components/documents/documents.module.js +5 -5
  69. package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
  70. package/esm2015/lib/components/documents/services/documents.service.js +4 -4
  71. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
  72. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
  73. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
  74. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
  75. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +4 -4
  76. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +5 -5
  77. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +4 -4
  78. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
  79. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
  80. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
  81. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
  82. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
  83. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
  84. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
  85. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
  86. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
  87. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
  88. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
  89. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
  90. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
  91. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
  92. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
  93. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
  94. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
  95. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
  96. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
  97. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
  98. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +4 -4
  99. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
  100. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
  101. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
  102. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
  103. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
  104. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
  105. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
  106. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
  107. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
  108. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
  109. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
  110. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
  111. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
  112. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
  113. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
  114. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
  115. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
  116. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +4 -4
  117. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
  118. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +4 -4
  119. package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
  120. package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
  121. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +4 -4
  122. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +5 -5
  123. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
  124. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
  125. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
  126. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
  127. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
  128. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
  129. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
  130. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +13 -4
  131. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
  132. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
  133. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
  134. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +4 -4
  135. package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +4 -4
  136. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +4 -4
  137. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +4 -4
  138. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +4 -4
  139. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +4 -4
  140. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +4 -4
  141. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +4 -4
  142. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +4 -4
  143. package/esm2015/lib/components/file-manger/components/move/move.component.js +4 -4
  144. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +4 -4
  145. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +4 -4
  146. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +4 -4
  147. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +4 -4
  148. package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +4 -4
  149. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +4 -4
  150. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +4 -4
  151. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +4 -4
  152. package/esm2015/lib/components/file-manger/file-manager.abstract.js +4 -4
  153. package/esm2015/lib/components/file-manger/file-manger.module.js +5 -5
  154. package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
  155. package/esm2015/lib/components/filter/filter.module.js +5 -5
  156. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
  157. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
  158. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
  159. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
  160. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
  161. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
  162. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
  163. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
  164. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
  165. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
  166. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +4 -4
  167. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +13 -10
  168. package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
  169. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
  170. package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +4 -4
  171. package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +5 -5
  172. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
  173. package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
  174. package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +4 -4
  175. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
  176. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
  177. package/esm2015/lib/components/notifications/notifications.module.js +5 -5
  178. package/esm2015/lib/components/notifications/notifications.service.js +4 -4
  179. package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
  180. package/esm2015/lib/components/pagination/pagination.module.js +5 -5
  181. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
  182. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +9 -4
  183. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
  184. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +4 -4
  185. package/esm2015/lib/components/permissions/permission.service.js +4 -4
  186. package/esm2015/lib/components/permissions/permissions/permissions.component.js +4 -4
  187. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +4 -4
  188. package/esm2015/lib/components/permissions/permissions.module.js +5 -5
  189. package/esm2015/lib/components/select/select/select.component.js +4 -4
  190. package/esm2015/lib/components/select/select.module.js +5 -5
  191. package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +5 -5
  192. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +4 -4
  193. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +4 -4
  194. package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
  195. package/esm2015/lib/components/table/table/table.component.js +8 -4
  196. package/esm2015/lib/components/table/table.module.js +5 -5
  197. package/esm2015/lib/components/user/user/user.component.js +4 -4
  198. package/esm2015/lib/components/user/user.module.js +5 -5
  199. package/esm2015/lib/components/users-card/users-card.component.js +4 -4
  200. package/esm2015/lib/components/users-card/users-card.module.js +5 -5
  201. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
  202. package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
  203. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +4 -4
  204. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
  205. package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
  206. package/esm2015/lib/configuration/app-config.service.js +4 -4
  207. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
  208. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
  209. package/esm2015/lib/directive/directive.module.js +5 -5
  210. package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +4 -4
  211. package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
  212. package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
  213. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
  214. package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
  215. package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
  216. package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
  217. package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
  218. package/esm2015/lib/pipes/file-size.pipe.js +4 -4
  219. package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
  220. package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
  221. package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
  222. package/esm2015/lib/pipes/pipes.module.js +5 -5
  223. package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
  224. package/esm2015/lib/pipes/secure.pipe.js +4 -4
  225. package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
  226. package/esm2015/lib/shared/components/button/button.component.js +4 -4
  227. package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
  228. package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
  229. package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
  230. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
  231. package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
  232. package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
  233. package/esm2015/lib/shared/libraryShared.module.js +5 -5
  234. package/esm2015/lib/shared-services/dialog-mangment.service.js +4 -4
  235. package/esm2015/lib/shared-services/dynamic-form.service.js +4 -4
  236. package/esm2015/lib/shared-services/file-manager.adapter.js +4 -4
  237. package/esm2015/lib/shared-services/file-manager.service.js +4 -4
  238. package/esm2015/lib/shared-services/global-admin.service.js +4 -4
  239. package/esm2015/lib/shared-services/global-pdftron.service.js +4 -4
  240. package/esm2015/lib/shared-services/mainfolder.service.js +4 -4
  241. package/esm2015/lib/shared-services/publishing-document.service.js +4 -4
  242. package/esm2015/lib/shared-services/recently-viewed.service.js +4 -4
  243. package/esm2015/lib/shared-services/shared-docs.service.js +4 -4
  244. package/esm2015/lib/shared-services/shared-services.module.js +5 -5
  245. package/esm2015/lib/shared-services/upload-file.service.js +4 -4
  246. package/esm2015/lib/shared-services/upload-managment.service.js +4 -4
  247. package/esm2015/lib/shared-services/user.service.js +4 -4
  248. package/fesm2015/nuxeo-development-framework.js +817 -797
  249. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  250. package/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.d.ts +1 -0
  251. package/lib/components/latest-activity/components/single-activity/single-activity.component.d.ts +3 -1
  252. package/lib/components/table/table/table.component.d.ts +2 -0
  253. package/package.json +1 -1
@@ -91,7 +91,11 @@ export class TableComponent {
91
91
  this.selected = [];
92
92
  this.pageNumber = 1;
93
93
  this.responsiveView = false;
94
+ this.statusIcons = {}; // object to contains all status icons if exist
95
+ this.directionIcons = {}; // object to contains all direction icons if exist
94
96
  this.format = this.appConfig.myConfiguration['dateFormate'];
97
+ this.statusIcons = this.appConfig.myConfiguration['statusIcons'];
98
+ this.directionIcons = this.appConfig.myConfiguration['directionIcons'];
95
99
  this.langSubscription = this.translation.isArabic.subscribe(res => {
96
100
  this.isArabic = res;
97
101
  });
@@ -173,9 +177,9 @@ export class TableComponent {
173
177
  this.onRowIndexSelected.emit(index);
174
178
  }
175
179
  }
176
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
177
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, ngImport: i0, template: "<div [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list' && !responsiveView\">\r\n <ngx-datatable\r\n [ngClass]=\"{'overflowVisible': customFirstRow}\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n\r\n <ngx-datatable-column\r\n *ngIf=\"multiSelectRows\"\r\n [width]=\"30\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n>\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n</ngx-datatable-column>\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ng-container *permission=\"{name: column.permission}\">\r\n <ngx-datatable-column *ngIf=\"column.display\" [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\" [prop]=\"column.prop\" [resizeable]=\"false\" [draggable]=\"false\"\r\n [maxWidth]=\"column.size\" [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"(customFirstRow) ? customRowTemplate : null\">\r\n <ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">{{\r\n \"STATS.\" + value | translate\r\n }}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"!showActionsAsMenu\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"showActionsAsMenu\">\r\n <button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"actions-menu\">\r\n <button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \">\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\">\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button (click)=\"performAction(row, action.actionName)\" *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\" >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-template>\r\n <ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div class=\"w-full flex items-center justify-center overflow-visible\">\r\n <cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== 'card'\" (window:resize)=\"assignTableColumns($event)\">\r\n <div class=\"dynamic-cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <!-- <div *ngIf=\"property.type === 'actions' && rows.length !== 0\" class=\"actions-wrapper\">\r\n <i class=\"bi bi-pencil-square edit-icon\" matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\"></i>\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'delete' | translate }}\" (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of property.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </div> -->\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of tableColumns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value]}}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n {{ row.properties[property.owner]?.[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value]}}\">{{\r\n \"STATS.\" + row[property.value] | translate\r\n }}</div>\r\n <div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n <div *ngIf=\"property.type === 'direction'\" (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\">\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"property.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n <button *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n </button>\r\n <button *permission=\"{ name: 'terminateDelegation', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'terminateDelegation')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n </button>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationFinished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationActive', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row);cardFocused(i)\">\r\n <div class=\"key\" *ngIf=\"property.type !== 'default'\">{{ prefix + property.key | translate }}</div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"key\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n {{ row.properties[property.value].fullName }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US')}}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n {{ (row.properties[property.value] ? 'Yes':'No') | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"text\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"property.type === 'custom'\">\r\n <div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n {{ item | translate }} {{\", \" }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'dynamicCard'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div *ngIf=\"columns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"columns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button i{font-size:20px;padding:0 10px;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;width:24%}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;width:40%}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;width:31%}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;width:23%}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;width:65%}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;width:37%}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;width:51%}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "translate": i14.TranslatePipe, "localizedDate": i15.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, decorators: [{
180
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableComponent, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
181
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, ngImport: i0, template: "<div [style]=\"'width:' + tableWidth\" *ngIf=\"tableMode === 'list' && !responsiveView\">\r\n <ngx-datatable\r\n [ngClass]=\"{'overflowVisible': customFirstRow}\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"'force'\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n >\r\n\r\n <ngx-datatable-column\r\n *ngIf=\"multiSelectRows\"\r\n [width]=\"30\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n>\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n <!-- <input class=\"checkbox-input\" type=\"checkbox\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\" /> -->\r\n <mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn(!allRowsSelected)\">\r\n </mat-checkbox>\r\n </ng-template>\r\n</ngx-datatable-column>\r\n <!-- | translate -->\r\n <ng-container *ngFor=\"let column of tableColumns; let i = index\">\r\n <ng-container *permission=\"{name: column.permission}\">\r\n <ngx-datatable-column *ngIf=\"column.display\" [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\" [prop]=\"column.prop\" [resizeable]=\"false\" [draggable]=\"false\"\r\n [maxWidth]=\"column.size\" [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"(customFirstRow) ? customRowTemplate : null\">\r\n <ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ (value ? column.vocabularyId + '.' + value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ vocItemTranslationPrefix + value | translate }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <span *ngIf=\"statusIcons && statusIcons !== {}\" class=\"status-icon {{statusIcons[value]}}\"></span>\r\n {{\"STATS.\" + value | translate }}\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n <div class=\"cell-text-wrapper\">\r\n {{ \"role.\" + (value ? value : \"--\") | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"!showActionsAsMenu\">\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div [ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\" *ngIf=\"showActionsAsMenu\">\r\n <button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \">\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\">\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button (click)=\"performAction(row, action.actionName)\" *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\" >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['incoming'] : 'bi bi-box-arrow-down'}}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['outgoing'] : 'bi bi-box-arrow-up outgoing'}}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{directionIcons ? directionIcons['internal'] : 'bi bi-box-arrow-right internal'}}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-template>\r\n <ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div class=\"w-full flex items-center justify-center overflow-visible\">\r\n <cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== 'card'\" (window:resize)=\"assignTableColumns($event)\">\r\n <div class=\"dynamic-cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <!-- <div *ngIf=\"property.type === 'actions' && rows.length !== 0\" class=\"actions-wrapper\">\r\n <i class=\"bi bi-pencil-square edit-icon\" matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\"></i>\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'delete' | translate }}\" (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' || entityType === 'department' ||\r\n entityType === 'signers'\r\n \"></i>\r\n\r\n <i class=\"bi bi-plus-square\" matTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\" *ngIf=\"entityType === 'users' && row.isInitial\"></i>\r\n\r\n <span *ngFor=\"let action of property.actions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </div> -->\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of tableColumns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value]}}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n {{ row.properties[property.owner]?.[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value]}}\">{{\r\n \"STATS.\" + row[property.value] | translate\r\n }}</div>\r\n <div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\">\r\n </cts-dropdown-viewer>\r\n </div>\r\n <div *ngIf=\"property.type === 'direction'\" (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\">\r\n <span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n <ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n <i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"property.type === 'custom'\">\r\n <cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'card'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span>\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i *permission=\"{ name: action.permission, entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n class=\"{{ action.icon }}\" matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"></i>\r\n </span>\r\n <button *permission=\"{ name: 'deleteMemo', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'deleteMemo')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n </button>\r\n <button *permission=\"{ name: 'terminateDelegation', entity: row , user: nuxeoService.nuxeoClient.user}\"\r\n (click)=\"performAction(row, 'terminateDelegation')\">\r\n <i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n </button>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'memoPublished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationFinished', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span class=\"publish-state\"\r\n *permission=\"{ name: 'delegationActive', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row);cardFocused(i)\">\r\n <div class=\"key\" *ngIf=\"property.type !== 'default'\">{{ prefix + property.key | translate }}</div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"key\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n {{ row.properties[property.value].fullName }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{row.properties[property.value] | localizedDate:format:(isArabic? 'ar-AR' : 'en-US')}}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n {{ (row.properties[property.value] ? 'Yes':'No') | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div class=\"text\"\r\n *permission=\"{ name: 'internalIsEnabled', entity: row , user: nuxeoService.nuxeoClient.user}\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"property.type === 'custom'\">\r\n <div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n {{ item | translate }} {{\", \" }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === 'dynamicCard'\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" [ngClass]=\"{'selected-card': highlightSelectedCard && row?.isSelected}\"\r\n *ngFor=\"let row of rows\">\r\n <div *ngIf=\"columns.length > 1\">\r\n <div class=\"memo-body\" *ngFor=\"let property of columns\" (click)=\"cardSelected(row)\">\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n <div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n {{ row.properties[property.value] }}\r\n </div>\r\n <div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n {{ row.properties[property.value] | localizedDate: \"MMMM d, y\" }}\r\n <!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"iner-card-container {{entityType}}\" (click)=\"cardSelected(row)\" *ngIf=\"columns.length === 1\">\r\n <cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\">\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:16px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;width:24%}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;width:51%}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;width:40%}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;width:31%}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;width:43%}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;width:23%}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;width:65%}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;width:37%}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;width:51%}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i13.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "translate": i14.TranslatePipe, "localizedDate": i15.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableComponent, decorators: [{
179
183
  type: Component,
180
184
  args: [{
181
185
  selector: 'cts-table',
@@ -232,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
232
236
  }], showActionsAsMenu: [{
233
237
  type: Input
234
238
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQU12Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFPSCxNQUFNLE9BQU8sY0FBYztJQTJEekIsWUFBbUIsWUFBMEIsRUFBVSxTQUE0QixFQUFTLFdBQStCO1FBQXhHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUExRDNILDhDQUE4QztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsNERBQTREO1FBQ2xELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsbURBQW1EO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLHNDQUFzQztRQUM1QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QywrQ0FBK0M7UUFDdkMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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bnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZS9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbi8qKlxyXG4gKiB0aGlzIGNvbXBvbmVudCBpcyBhIG11bHRpLXB1cnBvc2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGR1bWIgZGF0YSB0YWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHNob3cgYW55IGxpc3Qgb2YgZGF0YSxcclxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIHRhYmxlXHJcbiAqIGFuZCB0aGUganNvbiBzdHJ1Y3R1cmUgZm9yIHRoZSBpbnB1dHMgcGxlYXNlIGNoZWNrIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvZHluYW1pY1RhYmxlLnBuZylcclxuICpcclxuICogIyMjIHJlbGF0ZWQgTGlua3M6XHJcbiAqIC0gW1BhZ2luYXRpb24gQ29tcG9uZW50XXtAbGluayBQYWdpbmF0aW9uQ29tcG9uZW50fVxyXG4gKiAtIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9XHJcbiAqIC0gW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqXHJcbiAqIEB0aXRsZVxyXG4gKiBEYXRhIFRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdGFibGVcclxuICogICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gKiAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gKiAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gKiAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxyXG4gKiAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAqICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAqICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAqICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAqICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gKiAgICAgKGFjdGlvbk9uUm93KT1cInBlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXHJcbiAqICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogID48L2N0cy10YWJsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICovXHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcbiAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IEljb24gKi9cclxuICBAT3V0cHV0KCkgb25JY29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBwZXJmb3JtIGFjdGlvbiBvbiByb3cgKGRlbHRlLCBlZGl0LCAuLi4gKSAqL1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc29ydGluZyB0YWJsZSAqL1xyXG4gIEBPdXRwdXQoKSBvblNvcnRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc2VsZWN0aW5nIG11bHRpcGxlIHJvdyAqL1xyXG4gIEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGFyYXkgb2Ygcm93cyBwYXNzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgcm93cztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50IGZvciBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucztcclxuICAvKiogdG8gZGVmaW5lIHRoZSBwYWdlIGluIHdoaWNoIHRhYmxlIGlzIGJlaW5nIHVzZWQgKi9cclxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcclxuICAvKiogc3RhdGljICBwYXRoIGZvciB0cmFuc2xhdGlvbiBwYXNzZWQgZnJvbSBvdXQgc2lkZSBhY2NvcmRpbmcgdG8gZWFjaCBwYWdlIHRyYW5zbGF0aW9uIHBhdGggKi9cclxuICBASW5wdXQoKSBwcmVmaXggPSAnJztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSBwYWdlQ291bnQ7XHJcbiAgLyoqIFRvdGFsIFJlY29yZHNjb3VudCAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSByb3dDdXJzb3IgPSBmYWxzZTtcclxuICAvKiogTWF4IGZ1bGwgd2lkdGggaW4gUFggfCBhdXRvICovXHJcbiAgQElucHV0KCkgZnVsbFdpZHRoID0gJ2F1dG8nO1xyXG4gIC8qKiBWb2NhYnVsYXJ5IFRyYW5zbGF0aW9uIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeDtcclxuICAvKiogVGFibGUgTW9kZTogbGlzdCB8IGNhcmQgKi9cclxuICBASW5wdXQoKSB0YWJsZU1vZGUgPSAnbGlzdCc7XHJcbiAgLyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuICBASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcbiAgQElucHV0KCkgZm9ybWF0ID0gXCJFRUVFLCBNTU1NIGQsIHlcIjtcclxuICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gbnVsbDtcclxuICBsYW5nU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG5cclxuICAvKiogYWxsb3cgbXVsdGlzZWxlY3Qgcm93cyB3aXRoIGNoZWNrYm94ICovXHJcbiAgQElucHV0KCkgbXVsdGlTZWxlY3RSb3dzID0gZmFsc2U7XHJcblxyXG4gIC8qKiB0byBzaG93IDFzdCByb3cgd2l0aCBjdXN0b20gdGVtcGxhdGUgaW4gdGhlIHRhYmxlKi9cclxuICBASW5wdXQoKSBjdXN0b21GaXJzdFJvdyA9IGZhbHNlO1xyXG4gIC8qKiBmbGFnZSB1c2VkIHRvIGRpc2FibGUgYWN0aW9ucyBpZiB0aGVyZSB3YXMgbXVsdGkgc2VsZWN0ZWQgcm93cyAqL1xyXG5cclxuICBASW5wdXQoKSBzaG93QWN0aW9uc0FzTWVudSA9IGZhbHNlOyAvLyBmbGFnZSB0byBzaG93IGFjdGlvbiBpbiBtZW51IG9yIHNpZGUgYnkgc2lkZVxyXG5cclxuICBkaXNhYmxlZEFjdGlvbnMgPSBmYWxzZTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIHRhYmxlV2lkdGggPSAnYXV0byc7XHJcbiAgdGFibGVDb2x1bW5zID0gW107XHJcbiAgY3VycmVudFJvdztcclxuICBzZWxlY3RlZCA9IFtdO1xyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHJlc3BvbnNpdmVWaWV3ID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLCBwcml2YXRlIGFwcENvbmZpZyA6IEFwcENvbmZpZ1NlcnZpY2UscHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmZvcm1hdCA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnZGF0ZUZvcm1hdGUnXTtcclxuICAgIHRoaXMubGFuZ1N1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSByZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uUmVzaXplKHdpbmRvdy5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG4gIC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG4gIHJvd0RldGFpbHMoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC50eXBlICE9PSAnbW91c2VlbnRlcicpIHtcclxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuY29sdW1uLnByb3AgIT09ICcnICkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJvdyA9IGV2ZW50LnJvdztcclxuICAgICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGljb25TZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25JY29uU2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLy9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuICBwZXJmb3JtQWN0aW9uKHNpbmdsZVJvdywgYWN0aW9uVHlwZSkge1xyXG4gICAgaWYoIXRoaXMuZGlzYWJsZWRBY3Rpb25zKVxyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KHtcclxuICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgcm93OiBzaW5nbGVSb3csXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBjaGVja2JveCBpZiB0YWJsZSBoYXMgb25lc1xyXG4gIG9uU2VsZWN0KGV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnb24gc2VsZWN0IHJvdyBjbGljaycpO1xyXG4gICAgdGhpcy5vbk11bHRpUm93U2VsZWN0ZWQuZW1pdChldmVudC5zZWxlY3RlZCk7XHJcbiAgICBpZih0aGlzLm11bHRpU2VsZWN0Um93cyAmJiBldmVudC5zZWxlY3RlZC5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5kaXNhYmxlZEFjdGlvbnMgPSB0cnVlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRBY3Rpb25zID0gZmFsc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcbiAgb25Tb3J0KGV2ZW50KSB7XHJcbiAgICBsZXQgc29ydCA9IHtcclxuICAgICAgc29ydEJ5OiBldmVudC5jb2x1bW4uaGVhZGVyQ2xhc3MsXHJcbiAgICAgIHNvcnRPcmRlcjogZXZlbnQubmV3VmFsdWUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vblNvcnRpbmcuZW1pdChzb3J0KTtcclxuICB9XHJcblxyXG4gIGFzc2lnblRhYmxlQ29sdW1ucyhldmVudCkge1xyXG4gICAgdGhpcy5vblJlc2l6ZShldmVudC50YXJnZXQuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICBvblJlc2l6ZSh3aWR0aCkge1xyXG4gICAgaWYgKHdpZHRoID4gMTQwMCkge1xyXG4gICAgICB0aGlzLnRhYmxlV2lkdGggPSAnYXV0byc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlV2lkdGggPSB0aGlzLmZ1bGxXaWR0aDtcclxuICAgIH1cclxuICAgIGlmICh3aWR0aCA8IDc2OCkge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMucmVzcG9uc2l2ZUNvbHVtbnM7XHJcbiAgICAgIHRoaXMucmVzcG9uc2l2ZVZpZXcgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMuY29sdW1ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhcmRTZWxlY3RlZChjYXJkKSB7XHJcbiAgICBpZiAodGhpcy5oaWdobGlnaHRTZWxlY3RlZENhcmQpIHtcclxuICAgICAgdGhpcy5yb3dzLm1hcChyb3cgPT4ge1xyXG4gICAgICAgIHJvd1snaXNTZWxlY3RlZCddID0gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIGNhcmRbJ2lzU2VsZWN0ZWQnXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChjYXJkKTtcclxuICB9XHJcblxyXG4gIGNhcmRGb2N1c2VkKGluZGV4KSB7XHJcbiAgICB0aGlzLm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KGluZGV4KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbc3R5bGVdPVwiJ3dpZHRoOicgKyB0YWJsZVdpZHRoXCIgKm5nSWY9XCJ0YWJsZU1vZGUgPT09ICdsaXN0JyAmJiAhcmVzcG9uc2l2ZVZpZXdcIj5cclxuICA8bmd4LWRhdGF0YWJsZVxyXG4gICAgW25nQ2xhc3NdPVwieydvdmVyZmxvd1Zpc2libGUnOiBjdXN0b21GaXJzdFJvd31cIlxyXG4gICAgY2xhc3M9XCJsYXJnZS10YWJsZVwiXHJcbiAgICBbcm93c109XCJyb3dzXCJcclxuICAgIFtzdW1tYXJ5Um93XT1cImN1c3RvbUZpcnN0Um93XCJcclxuICAgIFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIlxyXG4gICAgW2V4dGVybmFsU29ydGluZ109XCJ0cnVlXCJcclxuICAgIChhY3RpdmF0ZSk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcclxuICAgIChzb3J0KT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICAgICh3aW5kb3c6cmVzaXplKT1cImFzc2lnblRhYmxlQ29sdW1ucygkZXZlbnQpXCJcclxuICAgIFtyb3dIZWlnaHRdPVwiJ2F1dG8nXCJcclxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICBbc2VsZWN0aW9uVHlwZV09XCJtdWx0aVNlbGVjdFJvd3MgPyAnY2hlY2tib3gnIDogJ3NpbmdsZSdcIlxyXG4gICAgW3NvcnRzXT1cIlt7IHByb3A6IGRlZnVsdFNvcnQ/Lm5hbWUsIGRpcjogZGVmdWx0U29ydD8uZGlyIH1dXCJcclxuICA+XHJcblxyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICpuZ0lmPVwibXVsdGlTZWxlY3RSb3dzXCJcclxuICBbd2lkdGhdPVwiMzBcIlxyXG4gIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgW3Byb3BdPVwiJydcIlxyXG4gIFtjYW5BdXRvUmVzaXplXT1cImZhbHNlXCJcclxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXplYWJsZV09XCJmYWxzZVwiXHJcbj5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlXHJcbiAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICBsZXQtYWxsUm93c1NlbGVjdGVkPVwiYWxsUm93c1NlbGVjdGVkXCJcclxuICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCJcclxuICA+XHJcbiAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImNoZWNrYm94LWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiYWxsUm93c1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiIC8+IC0tPlxyXG4gICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCI+XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxyXG4gICAgbGV0LXZhbHVlPVwidmFsdWVcIlxyXG4gICAgbGV0LWlzU2VsZWN0ZWQ9XCJpc1NlbGVjdGVkXCJcclxuICAgIGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIlxyXG4gID5cclxuICAgIDwhLS0gPGlucHV0IGNsYXNzPVwiY2hlY2tib3gtaW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oJGV2ZW50KVwiIC8+IC0tPlxyXG4gICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oIWFsbFJvd3NTZWxlY3RlZClcIj5cclxuICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICA8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6IGNvbHVtbi5wZXJtaXNzaW9ufVwiPlxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiAqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCIgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXHJcbiAgICAgICAgICBbbmFtZV09XCJwcmVmaXggKyBjb2x1bW4ubmFtZSB8IHRyYW5zbGF0ZVwiIFtwcm9wXT1cImNvbHVtbi5wcm9wXCIgW3Jlc2l6ZWFibGVdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCJjb2x1bW4uc2l6ZVwiIFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcbiAgICAgICAgICBbc3VtbWFyeVRlbXBsYXRlXT1cIihjdXN0b21GaXJzdFJvdykgPyBjdXN0b21Sb3dUZW1wbGF0ZSA6IG51bGxcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtaW5kZXg9XCJpbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhbHVlID8gdmFsdWUgOiBcIi0tXCIgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICd2b2NhYnVsYXJ5J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1kcm9wZG93bi12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCIgW2Ryb3Bkb3duSWRdPVwiY29sdW1uLnZvY2FidWxhcnlJZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9jdHMtZHJvcGRvd24tdmlld2VyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ1ZvY0NlbGwnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAodmFsdWUgPyBjb2x1bW4udm9jYWJ1bGFyeUlkICsgJy4nICsgdmFsdWUgOiBcIi0tXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jSXRlbSdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeCArIHZhbHVlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkZXBhcnRtZW50J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdzdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlIHt7IHZhbHVlIH19XCI+e3tcclxuICAgICAgICAgICAgICAgICAgXCJTVEFUUy5cIiArIHZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3JvbGUnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBcInJvbGUuXCIgKyAodmFsdWUgPyB2YWx1ZSA6IFwiLS1cIikgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJkaXNhYmxlZEFjdGlvbnMgPyAnZGlzYWJsZWQtYWN0aW9ucy13cmFwcGVyJyA6ICdhY3Rpb25zLXdyYXBwZXInXCIgKm5nSWY9XCIhc2hvd0FjdGlvbnNBc01lbnVcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYmkgYmktdHJhc2ggZGVsZXRlLWljb25cIiAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3cgLCAnZGVsZXRlJylcIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1xyXG4gICAgICAgICAgICAgICAgXCI+PC9pPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIiBtYXRUb29sdGlwPVwie3sgJ1VTRVJfTUFOR01FTlQuYWRkVG9EZXBhcnRtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCIgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3JlZ2lzdGVyQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LWluLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5SRUdJU1RFUicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAncmVnaXN0ZXInKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdzZW5kQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZW52ZWxvcGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlNFTkQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3NlbmQnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdjbG9zZUNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXgtY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnY2xvc2UnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdhcmNoaXZlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZm9sZGVyLXN5bWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkFSQ0hJVkUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2FyY2hpdmUnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJkaXNhYmxlZEFjdGlvbnMgPyAnZGlzYWJsZWQtYWN0aW9ucy13cmFwcGVyJyA6ICdhY3Rpb25zLXdyYXBwZXInXCIgKm5nSWY9XCJzaG93QWN0aW9uc0FzTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1tZW51LXRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhY3Rpb25zLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiICpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnIHx8IGVudGl0eVR5cGUgPT09ICdkZXBhcnRtZW50JyB8fFxyXG4gICAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcclxuICAgICAgICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnVVNFUl9NQU5HTUVOVC5hZGRUb0RlcGFydG1lbnQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnR0YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIiAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnR0YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvY3RzLWRhdGUtdmlld2VyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbi50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGlyZWN0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpY29uU2VsZWN0ZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgdmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZXItc3RhdHVzLXdyYXBwZXJcIiBtYXRUb29sdGlwPVwie3sgJ1NUQVRTLicgKyByb3cuc3RhdGUgfCB0cmFuc2xhdGUgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctZG93blwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0luY29taW5nQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy11cCBvdXRnb2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0ludGVybmFsQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ2YWx1ZSB7eyB2YWx1ZSB9fVwiPnt7IFwiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVJvd1RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy12aXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLmN1c3RvbTFzdENlbGxUZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmd4LWRhdGF0YWJsZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwicmVzcG9uc2l2ZVZpZXcgJiYgdGFibGVNb2RlICE9PSAnY2FyZCdcIiAod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZH1cIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIiBjbGFzcz1cImFjdGlvbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCIgbWF0VG9vbHRpcD1cInt7ICdVUERBVEUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCI+PC9pPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHxcclxuICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1xyXG4gICAgICAgICAgICAgIFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIiBtYXRUb29sdGlwPVwie3sgJ1VTRVJfTUFOR01FTlQuYWRkVG9EZXBhcnRtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiPjwvaT5cclxuXHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcHJvcGVydHkuYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiIG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPHNwYW4gIGNsYXNzPVwiYWN0aW9uXCIgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgdGFibGVDb2x1bW5zXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ293bmVyJ1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5Lm93bmVyXT8uW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB8IGxvY2FsaXplZERhdGU6IFwiTU1NTSBkLCB5XCIgfX1cclxuICAgICAgICAgICAgICA8IS0tIDxjdHMtZGF0ZS12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiID48L2N0cy1kYXRlLXZpZXdlcj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3N0YXR1cydcIiBjbGFzcz1cInZhbHVlIHt7IHJvd1twcm9wZXJ0eS52YWx1ZV19fVwiPnt7XHJcbiAgICAgICAgICAgICAgXCJTVEFUUy5cIiArIHJvd1twcm9wZXJ0eS52YWx1ZV0gfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3ZvY2FidWxhcnknXCIgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHJvcGRvd24tdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgW2Ryb3Bkb3duSWRdPVwicHJvcGVydHkudm9jYWJ1bGFyeUlkXCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHJvcGRvd24tdmlld2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkaXJlY3Rpb24nXCIgKGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLXdyYXBwZXIge3sgcHJvcGVydHkudmFsdWUgfX0ge3sgcm93LnN0YXRlIH19XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmVyLXN0YXR1cy13cmFwcGVyXCIgbWF0VG9vbHRpcD1cInt7ICdTVEFUUy4nICsgcm93LnN0YXRlIHwgdHJhbnNsYXRlIH19XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaXNGYXZvcml0ZScsIGVudGl0eTogcm93IH1cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYXYtaWNvbi1pbmRpY2F0b3IgYmkgYmktc3Rhci1maWxsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1kb3duXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0luY29taW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctdXAgb3V0Z29pbmdcIiAqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbFwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJwcm9wZXJ0eS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwicHJvcGVydHlcIiBbY29udGV4dF09XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8L2N0cy1keW5hbWljLWNvbHVtbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbmVyLWNhcmQtY29udGFpbmVyIHt7ZW50aXR5VHlwZX19XCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCIgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbnNbMF0udGVtcGxhdGVcIiBbY29sdW1uXT1cImNvbHVtbnNbMF1cIiBbY29udGV4dF09XCJyb3dcIj5cclxuICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSAnY2FyZCdcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWNhcmRcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgIHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDxpICpwZXJtaXNzaW9uPVwieyBuYW1lOiBhY3Rpb24ucGVybWlzc2lvbiwgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2RlbGV0ZU1lbW8nLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZU1lbW8nKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLk9OTFlfREVMRVRFJyB8IHRyYW5zbGF0ZSB9fVwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3Rlcm1pbmF0ZURlbGVnYXRpb24nLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3Rlcm1pbmF0ZURlbGVnYXRpb24nKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnbWVtb1B1Ymxpc2hlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgIHt7IFwiTUVNT1MuUFVCTElTSEVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnZGVsZWdhdGlvbkZpbmlzaGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgXCJkZWxlZ2F0aW9ucy5maW5pc2hlZFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2RlbGVnYXRpb25BY3RpdmUnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICB7eyBcImRlbGVnYXRpb25zLmFjdGl2ZVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lbW8tYm9keVwiICpuZ0Zvcj1cImxldCBwcm9wZXJ0eSBvZiBjb2x1bW5zXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpO2NhcmRGb2N1c2VkKGkpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleVwiICpuZ0lmPVwicHJvcGVydHkudHlwZSAhPT0gJ2RlZmF1bHQnXCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImtleVwiXHJcbiAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaW50ZXJuYWxJc0VuYWJsZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICB7eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd1c2VyJ1wiPlxyXG4gICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0uZnVsbE5hbWUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICB7e3Jvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB8IGxvY2FsaXplZERhdGU6Zm9ybWF0Oihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpfX1cclxuICAgICAgICAgICAgPCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2Jvb2xlYW4nXCI+XHJcbiAgICAgICAgICAgIHt7IChyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gPyAnWWVzJzonTm8nKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2ludGVybmFsSXNFbmFibGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW0gfCB0cmFuc2xhdGUgfX0ge3tcIiwgXCIgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSAnZHluYW1pY0NhcmQnXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZH1cIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgY29sdW1uc1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImtleVwiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOiBcIk1NTU0gZCwgeVwiIH19XHJcbiAgICAgICAgICAgICAgPCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImluZXItY2FyZC1jb250YWluZXIge3tlbnRpdHlUeXBlfX1cIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIiAqbmdJZj1cImNvbHVtbnMubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uc1swXS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uc1swXVwiIFtjb250ZXh0XT1cInJvd1wiPlxyXG4gICAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQU12Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFPSCxNQUFNLE9BQU8sY0FBYztJQTZEekIsWUFBbUIsWUFBMEIsRUFBVSxTQUE0QixFQUFTLFdBQStCO1FBQXhHLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUE1RDNILDhDQUE4QztRQUNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsNERBQTREO1FBQ2xELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsbURBQW1EO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxtRUFBbUU7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLHNDQUFzQztRQUM1QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QywrQ0FBK0M7UUFDdkMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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Ryx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbHVtbk1vZGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZS9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbi8qKlxyXG4gKiB0aGlzIGNvbXBvbmVudCBpcyBhIG11bHRpLXB1cnBvc2UgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGR1bWIgZGF0YSB0YWJsZSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHRvIHNob3cgYW55IGxpc3Qgb2YgZGF0YSxcclxuICogZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIHRhYmxlXHJcbiAqIGFuZCB0aGUganNvbiBzdHJ1Y3R1cmUgZm9yIHRoZSBpbnB1dHMgcGxlYXNlIGNoZWNrIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKiAhW1NjcmVlbnNob3QtMV0oLi4vc2NyZWVuc2hvdHMvZHluYW1pY1RhYmxlLnBuZylcclxuICpcclxuICogIyMjIHJlbGF0ZWQgTGlua3M6XHJcbiAqIC0gW1BhZ2luYXRpb24gQ29tcG9uZW50XXtAbGluayBQYWdpbmF0aW9uQ29tcG9uZW50fVxyXG4gKiAtIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9XHJcbiAqIC0gW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqXHJcbiAqIEB0aXRsZVxyXG4gKiBEYXRhIFRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtdGFibGVcclxuICogICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gKiAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAqICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwicmVzcG9uc2l2ZUNvbHVtbnNcIlxyXG4gKiAgICAgW3Jvd0N1cnNvcl09XCJyb3dDdXJzb3JcIlxyXG4gKiAgICAgW2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxyXG4gKiAgICAgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiXHJcbiAqICAgICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAqICAgICBbdGFibGVNb2RlXT1cInRhYmxlTW9kZVwiXHJcbiAqICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAqICAgICAob25Sb3dTZWxlY3RlZCk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gKiAgICAgKGFjdGlvbk9uUm93KT1cInBlcmZvcm1BY3Rpb24oJGV2ZW50KVwiXHJcbiAqICAgICAob25Tb3J0aW5nKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogID48L2N0cy10YWJsZT5cclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93ICovXHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyB0byBjYXRjaCBpbmRleCovXHJcbiAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IEljb24gKi9cclxuICBAT3V0cHV0KCkgb25JY29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBwZXJmb3JtIGFjdGlvbiBvbiByb3cgKGRlbHRlLCBlZGl0LCAuLi4gKSAqL1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc29ydGluZyB0YWJsZSAqL1xyXG4gIEBPdXRwdXQoKSBvblNvcnRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICAvKiogZXZlbnQgdCBlbWl0IHdoZW4gc2VsZWN0aW5nIG11bHRpcGxlIHJvdyAqL1xyXG4gIEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIGFyYXkgb2Ygcm93cyBwYXNzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgcm93cztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogYXJyYXkgb2YgY29sdW1ucyBwYWFzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50IGZvciBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucztcclxuICAvKiogdG8gZGVmaW5lIHRoZSBwYWdlIGluIHdoaWNoIHRhYmxlIGlzIGJlaW5nIHVzZWQgKi9cclxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcclxuICAvKiogc3RhdGljICBwYXRoIGZvciB0cmFuc2xhdGlvbiBwYXNzZWQgZnJvbSBvdXQgc2lkZSBhY2NvcmRpbmcgdG8gZWFjaCBwYWdlIHRyYW5zbGF0aW9uIHBhdGggKi9cclxuICBASW5wdXQoKSBwcmVmaXggPSAnJztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSBwYWdlQ291bnQ7XHJcbiAgLyoqIFRvdGFsIFJlY29yZHNjb3VudCAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcztcclxuICAvKiogQGRlcHJlY2F0ZWQgKi9cclxuICBASW5wdXQoKSByb3dDdXJzb3IgPSBmYWxzZTtcclxuICAvKiogTWF4IGZ1bGwgd2lkdGggaW4gUFggfCBhdXRvICovXHJcbiAgQElucHV0KCkgZnVsbFdpZHRoID0gJ2F1dG8nO1xyXG4gIC8qKiBWb2NhYnVsYXJ5IFRyYW5zbGF0aW9uIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeDtcclxuICAvKiogVGFibGUgTW9kZTogbGlzdCB8IGNhcmQgKi9cclxuICBASW5wdXQoKSB0YWJsZU1vZGUgPSAnbGlzdCc7XHJcbiAgLyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuICBASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcbiAgQElucHV0KCkgZm9ybWF0ID0gXCJFRUVFLCBNTU1NIGQsIHlcIjtcclxuICBASW5wdXQoKSBkZWZ1bHRTb3J0ID0gbnVsbDtcclxuICBsYW5nU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG5cclxuICAvKiogYWxsb3cgbXVsdGlzZWxlY3Qgcm93cyB3aXRoIGNoZWNrYm94ICovXHJcbiAgQElucHV0KCkgbXVsdGlTZWxlY3RSb3dzID0gZmFsc2U7XHJcblxyXG4gIC8qKiB0byBzaG93IDFzdCByb3cgd2l0aCBjdXN0b20gdGVtcGxhdGUgaW4gdGhlIHRhYmxlKi9cclxuICBASW5wdXQoKSBjdXN0b21GaXJzdFJvdyA9IGZhbHNlO1xyXG4gIC8qKiBmbGFnZSB1c2VkIHRvIGRpc2FibGUgYWN0aW9ucyBpZiB0aGVyZSB3YXMgbXVsdGkgc2VsZWN0ZWQgcm93cyAqL1xyXG5cclxuICBASW5wdXQoKSBzaG93QWN0aW9uc0FzTWVudSA9IGZhbHNlOyAvLyBmbGFnZSB0byBzaG93IGFjdGlvbiBpbiBtZW51IG9yIHNpZGUgYnkgc2lkZVxyXG5cclxuICBkaXNhYmxlZEFjdGlvbnMgPSBmYWxzZTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIHRhYmxlV2lkdGggPSAnYXV0byc7XHJcbiAgdGFibGVDb2x1bW5zID0gW107XHJcbiAgY3VycmVudFJvdztcclxuICBzZWxlY3RlZCA9IFtdO1xyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHJlc3BvbnNpdmVWaWV3ID0gZmFsc2U7XHJcbiAgc3RhdHVzSWNvbnMgPSB7fTsgLy8gb2JqZWN0IHRvIGNvbnRhaW5zIGFsbCBzdGF0dXMgaWNvbnMgaWYgZXhpc3RcclxuICBkaXJlY3Rpb25JY29ucyA9IHt9OyAvLyBvYmplY3QgdG8gY29udGFpbnMgYWxsIGRpcmVjdGlvbiBpY29ucyBpZiBleGlzdFxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWcgOiBBcHBDb25maWdTZXJ2aWNlLHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSkge1xyXG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ2RhdGVGb3JtYXRlJ107XHJcbiAgICB0aGlzLnN0YXR1c0ljb25zID0gdGhpcy5hcHBDb25maWcubXlDb25maWd1cmF0aW9uWydzdGF0dXNJY29ucyddO1xyXG4gICAgdGhpcy5kaXJlY3Rpb25JY29ucyA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnZGlyZWN0aW9uSWNvbnMnXTtcclxuICAgIHRoaXMubGFuZ1N1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuaXNBcmFiaWMgPSByZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uUmVzaXplKHdpbmRvdy5pbm5lcldpZHRoKTtcclxuICB9XHJcblxyXG4gIC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG4gIHJvd0RldGFpbHMoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC50eXBlICE9PSAnbW91c2VlbnRlcicpIHtcclxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuY29sdW1uLnByb3AgIT09ICcnICkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJvdyA9IGV2ZW50LnJvdztcclxuICAgICAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRSb3cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGljb25TZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25JY29uU2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLy9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuICBwZXJmb3JtQWN0aW9uKHNpbmdsZVJvdywgYWN0aW9uVHlwZSkge1xyXG4gICAgaWYoIXRoaXMuZGlzYWJsZWRBY3Rpb25zKVxyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KHtcclxuICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgcm93OiBzaW5nbGVSb3csXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBjaGVja2JveCBpZiB0YWJsZSBoYXMgb25lc1xyXG4gIG9uU2VsZWN0KGV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnb24gc2VsZWN0IHJvdyBjbGljaycpO1xyXG4gICAgdGhpcy5vbk11bHRpUm93U2VsZWN0ZWQuZW1pdChldmVudC5zZWxlY3RlZCk7XHJcbiAgICBpZih0aGlzLm11bHRpU2VsZWN0Um93cyAmJiBldmVudC5zZWxlY3RlZC5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5kaXNhYmxlZEFjdGlvbnMgPSB0cnVlO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRBY3Rpb25zID0gZmFsc2VcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcbiAgb25Tb3J0KGV2ZW50KSB7XHJcbiAgICBsZXQgc29ydCA9IHtcclxuICAgICAgc29ydEJ5OiBldmVudC5jb2x1bW4uaGVhZGVyQ2xhc3MsXHJcbiAgICAgIHNvcnRPcmRlcjogZXZlbnQubmV3VmFsdWUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vblNvcnRpbmcuZW1pdChzb3J0KTtcclxuICB9XHJcblxyXG4gIGFzc2lnblRhYmxlQ29sdW1ucyhldmVudCkge1xyXG4gICAgdGhpcy5vblJlc2l6ZShldmVudC50YXJnZXQuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICBvblJlc2l6ZSh3aWR0aCkge1xyXG4gICAgaWYgKHdpZHRoID4gMTQwMCkge1xyXG4gICAgICB0aGlzLnRhYmxlV2lkdGggPSAnYXV0byc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlV2lkdGggPSB0aGlzLmZ1bGxXaWR0aDtcclxuICAgIH1cclxuICAgIGlmICh3aWR0aCA8IDc2OCkge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMucmVzcG9uc2l2ZUNvbHVtbnM7XHJcbiAgICAgIHRoaXMucmVzcG9uc2l2ZVZpZXcgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IHRoaXMuY29sdW1ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhcmRTZWxlY3RlZChjYXJkKSB7XHJcbiAgICBpZiAodGhpcy5oaWdobGlnaHRTZWxlY3RlZENhcmQpIHtcclxuICAgICAgdGhpcy5yb3dzLm1hcChyb3cgPT4ge1xyXG4gICAgICAgIHJvd1snaXNTZWxlY3RlZCddID0gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIGNhcmRbJ2lzU2VsZWN0ZWQnXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChjYXJkKTtcclxuICB9XHJcblxyXG4gIGNhcmRGb2N1c2VkKGluZGV4KSB7XHJcbiAgICB0aGlzLm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KGluZGV4KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbc3R5bGVdPVwiJ3dpZHRoOicgKyB0YWJsZVdpZHRoXCIgKm5nSWY9XCJ0YWJsZU1vZGUgPT09ICdsaXN0JyAmJiAhcmVzcG9uc2l2ZVZpZXdcIj5cclxuICA8bmd4LWRhdGF0YWJsZVxyXG4gICAgW25nQ2xhc3NdPVwieydvdmVyZmxvd1Zpc2libGUnOiBjdXN0b21GaXJzdFJvd31cIlxyXG4gICAgY2xhc3M9XCJsYXJnZS10YWJsZVwiXHJcbiAgICBbcm93c109XCJyb3dzXCJcclxuICAgIFtzdW1tYXJ5Um93XT1cImN1c3RvbUZpcnN0Um93XCJcclxuICAgIFtjb2x1bW5Nb2RlXT1cIidmb3JjZSdcIlxyXG4gICAgW2V4dGVybmFsU29ydGluZ109XCJ0cnVlXCJcclxuICAgIChhY3RpdmF0ZSk9XCJyb3dEZXRhaWxzKCRldmVudClcIlxyXG4gICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcclxuICAgIChzb3J0KT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICAgICh3aW5kb3c6cmVzaXplKT1cImFzc2lnblRhYmxlQ29sdW1ucygkZXZlbnQpXCJcclxuICAgIFtyb3dIZWlnaHRdPVwiJ2F1dG8nXCJcclxuICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICBbc2VsZWN0aW9uVHlwZV09XCJtdWx0aVNlbGVjdFJvd3MgPyAnY2hlY2tib3gnIDogJ3NpbmdsZSdcIlxyXG4gICAgW3NvcnRzXT1cIlt7IHByb3A6IGRlZnVsdFNvcnQ/Lm5hbWUsIGRpcjogZGVmdWx0U29ydD8uZGlyIH1dXCJcclxuICA+XHJcblxyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICpuZ0lmPVwibXVsdGlTZWxlY3RSb3dzXCJcclxuICBbd2lkdGhdPVwiMzBcIlxyXG4gIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgW3Byb3BdPVwiJydcIlxyXG4gIFtjYW5BdXRvUmVzaXplXT1cImZhbHNlXCJcclxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXplYWJsZV09XCJmYWxzZVwiXHJcbj5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlXHJcbiAgICBsZXQtdmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICBsZXQtYWxsUm93c1NlbGVjdGVkPVwiYWxsUm93c1NlbGVjdGVkXCJcclxuICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCJcclxuICA+XHJcbiAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImNoZWNrYm94LWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiYWxsUm93c1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiIC8+IC0tPlxyXG4gICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCI+XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxyXG4gICAgbGV0LXZhbHVlPVwidmFsdWVcIlxyXG4gICAgbGV0LWlzU2VsZWN0ZWQ9XCJpc1NlbGVjdGVkXCJcclxuICAgIGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIlxyXG4gID5cclxuICAgIDwhLS0gPGlucHV0IGNsYXNzPVwiY2hlY2tib3gtaW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oJGV2ZW50KVwiIC8+IC0tPlxyXG4gICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oIWFsbFJvd3NTZWxlY3RlZClcIj5cclxuICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICA8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6IGNvbHVtbi5wZXJtaXNzaW9ufVwiPlxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiAqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCIgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXHJcbiAgICAgICAgICBbbmFtZV09XCJwcmVmaXggKyBjb2x1bW4ubmFtZSB8IHRyYW5zbGF0ZVwiIFtwcm9wXT1cImNvbHVtbi5wcm9wXCIgW3Jlc2l6ZWFibGVdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCJjb2x1bW4uc2l6ZVwiIFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcbiAgICAgICAgICBbc3VtbWFyeVRlbXBsYXRlXT1cIihjdXN0b21GaXJzdFJvdykgPyBjdXN0b21Sb3dUZW1wbGF0ZSA6IG51bGxcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtaW5kZXg9XCJpbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHZhbHVlID8gdmFsdWUgOiBcIi0tXCIgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICd2b2NhYnVsYXJ5J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1kcm9wZG93bi12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCIgW2Ryb3Bkb3duSWRdPVwiY29sdW1uLnZvY2FidWxhcnlJZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9jdHMtZHJvcGRvd24tdmlld2VyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ1ZvY0NlbGwnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAodmFsdWUgPyBjb2x1bW4udm9jYWJ1bGFyeUlkICsgJy4nICsgdmFsdWUgOiBcIi0tXCIpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jSXRlbSdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7IHZvY0l0ZW1UcmFuc2xhdGlvblByZWZpeCArIHZhbHVlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkZXBhcnRtZW50J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdzdGF0dXMnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlIHt7IHZhbHVlIH19XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic3RhdHVzSWNvbnMgJiYgc3RhdHVzSWNvbnMgIT09IHt9XCIgY2xhc3M9XCJzdGF0dXMtaWNvbiB7e3N0YXR1c0ljb25zW3ZhbHVlXX19XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICB7e1wiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3JvbGUnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBcInJvbGUuXCIgKyAodmFsdWUgPyB2YWx1ZSA6IFwiLS1cIikgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJkaXNhYmxlZEFjdGlvbnMgPyAnZGlzYWJsZWQtYWN0aW9ucy13cmFwcGVyJyA6ICdhY3Rpb25zLXdyYXBwZXInXCIgKm5nSWY9XCIhc2hvd0FjdGlvbnNBc01lbnVcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYmkgYmktdHJhc2ggZGVsZXRlLWljb25cIiAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3cgLCAnZGVsZXRlJylcIj48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1xyXG4gICAgICAgICAgICAgICAgXCI+PC9pPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIiBtYXRUb29sdGlwPVwie3sgJ1VTRVJfTUFOR01FTlQuYWRkVG9EZXBhcnRtZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCIgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3JlZ2lzdGVyQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktYm94LWFycm93LWluLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5SRUdJU1RFUicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAncmVnaXN0ZXInKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdzZW5kQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZW52ZWxvcGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlNFTkQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3NlbmQnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdjbG9zZUNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLXgtY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DTE9TRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnY2xvc2UnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdhcmNoaXZlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmktZm9sZGVyLXN5bWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkFSQ0hJVkUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2FyY2hpdmUnKVwiXHJcbiAgICAgICAgICAgICAgPjwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJkaXNhYmxlZEFjdGlvbnMgPyAnZGlzYWJsZWQtYWN0aW9ucy13cmFwcGVyJyA6ICdhY3Rpb25zLXdyYXBwZXInXCIgKm5nSWY9XCJzaG93QWN0aW9uc0FzTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1tZW51LXRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJkYXRhdGFibGUtYWN0aW9ucy1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdlZGl0JylcIiAqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHxcclxuICAgICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3NpZ25lcnMnXHJcbiAgICAgICAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiICpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3VzZXJzJyAmJiByb3cuaXNJbml0aWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wbHVzLXNxdWFyZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ1VTRVJfTUFOR01FTlQuYWRkVG9EZXBhcnRtZW50JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250dGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29sdW1uLmFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCIgKnBlcm1pc3Npb249XCJ7IG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLXRleHRcIj57eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250dGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIj48L2N0cy1kYXRlLXZpZXdlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW4udGVtcGxhdGVcIiBbY29sdW1uXT1cImNvbHVtblwiIFtjb250ZXh0XT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RpcmVjdGlvbidcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaWNvblNlbGVjdGVkKCRldmVudCwgcm93KVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy13cmFwcGVyIHt7IHZhbHVlIH19IHt7IHJvdy5zdGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmVyLXN0YXR1cy13cmFwcGVyXCIgbWF0VG9vbHRpcD1cInt7ICdTVEFUUy4nICsgcm93LnN0YXRlIHwgdHJhbnNsYXRlIH19XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdpc0Zhdm9yaXRlJywgZW50aXR5OiByb3cgfVwiID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhdi1pY29uLWluZGljYXRvciBiaSBiaS1zdGFyLWZpbGxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbmNvbWluZyddIDogJ2JpIGJpLWJveC1hcnJvdy1kb3duJ319XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy50eXBlID09PSAnSW5jb21pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwie3tkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydvdXRnb2luZyddIDogJ2JpIGJpLWJveC1hcnJvdy11cCBvdXRnb2luZyd9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCJcclxuICAgICAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7ZGlyZWN0aW9uSWNvbnMgPyBkaXJlY3Rpb25JY29uc1snaW50ZXJuYWwnXSA6ICdiaSBiaS1ib3gtYXJyb3ctcmlnaHQgaW50ZXJuYWwnfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj57eyBcIlNUQVRTLlwiICsgdmFsdWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjdXN0b21Sb3dUZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctdmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbi5jdXN0b20xc3RDZWxsVGVtcGxhdGVcIiBbY29sdW1uXT1cImNvbHVtblwiIFtjb250ZXh0XT1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25neC1kYXRhdGFibGU+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInJlc3BvbnNpdmVWaWV3ICYmIHRhYmxlTW9kZSAhPT0gJ2NhcmQnXCIgKHdpbmRvdzpyZXNpemUpPVwiYXNzaWduVGFibGVDb2x1bW5zKCRldmVudClcIj5cclxuICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1jYXJkcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtY2FyZFwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQtY2FyZCc6IGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCAmJiByb3c/LmlzU2VsZWN0ZWR9XCJcclxuICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICB7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG4gICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2FjdGlvbnMnICYmIHJvd3MubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiIG1hdFRvb2x0aXA9XCJ7eyAnVVBEQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZWRpdCcpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiPjwvaT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8XHJcbiAgICAgICAgICAgICAgICBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcclxuICAgICAgICAgICAgICBcIj48L2k+XHJcblxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCIgbWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCIgKm5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIj48L2k+XHJcblxyXG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHByb3BlcnR5LmFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIiBtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIj48L2k+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxzcGFuICBjbGFzcz1cImFjdGlvblwiICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCIgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIHRhYmxlQ29sdW1uc1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImtleVwiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV19fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdvd25lcidcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS5vd25lcl0/Lltwcm9wZXJ0eS52YWx1ZV0gfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAgICB7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOiBcIk1NTU0gZCwgeVwiIH19XHJcbiAgICAgICAgICAgICAgPCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdzdGF0dXMnXCIgY2xhc3M9XCJ2YWx1ZSB7eyByb3dbcHJvcGVydHkudmFsdWVdfX1cIj57e1xyXG4gICAgICAgICAgICAgIFwiU1RBVFMuXCIgKyByb3dbcHJvcGVydHkudmFsdWVdIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd2b2NhYnVsYXJ5J1wiIGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWRyb3Bkb3duLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCJcclxuICAgICAgICAgICAgICAgIFtkcm9wZG93bklkXT1cInByb3BlcnR5LnZvY2FidWxhcnlJZFwiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWRyb3Bkb3duLXZpZXdlcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGlyZWN0aW9uJ1wiIChjbGljayk9XCJpY29uU2VsZWN0ZWQoJGV2ZW50LCByb3cpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy13cmFwcGVyIHt7IHByb3BlcnR5LnZhbHVlIH19IHt7IHJvdy5zdGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctZG93blwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYm94LWFycm93LXVwIG91dGdvaW5nXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ091dGdvaW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctcmlnaHQgaW50ZXJuYWxcIiAqbmdJZj1cInJvdy50eXBlID09PSAnSW50ZXJuYWxDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdjdXN0b20nXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwicHJvcGVydHkudGVtcGxhdGVcIiBbY29sdW1uXT1cInByb3BlcnR5XCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7e2VudGl0eVR5cGV9fVwiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICA8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW5zWzBdLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5zWzBdXCIgW2NvbnRleHRdPVwicm93XCI+XHJcbiAgICAgIDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2NhcmQnXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jYXJkXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLXRpdGxlXCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICB7eyByb3cucHJvcGVydGllcy5yZWZlcmVuY2VOdW1iZXIgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb24td3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb25cIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRhYmxlQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8aSAqcGVybWlzc2lvbj1cInsgbmFtZTogYWN0aW9uLnBlcm1pc3Npb24sIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCIgbWF0VG9vbHRpcD1cInt7IGFjdGlvbi50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxidXR0b24gKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxldGVNZW1vJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGVNZW1vJylcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5PTkxZX0RFTEVURScgfCB0cmFuc2xhdGUgfX1cIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gKnBlcm1pc3Npb249XCJ7IG5hbWU6ICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICd0ZXJtaW5hdGVEZWxlZ2F0aW9uJylcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ21lbW9QdWJsaXNoZWQnLCBlbnRpdHk6IHJvdyAsIHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyfVwiPlxyXG4gICAgICAgICAgICB7eyBcIk1FTU9TLlBVQkxJU0hFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1Ymxpc2gtc3RhdGVcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2RlbGVnYXRpb25GaW5pc2hlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgIHt7IFwiZGVsZWdhdGlvbnMuZmluaXNoZWRcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdkZWxlZ2F0aW9uQWN0aXZlJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgXCJkZWxlZ2F0aW9ucy5hY3RpdmVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgY29sdW1uc1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KTtjYXJkRm9jdXNlZChpKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgIT09ICdkZWZhdWx0J1wiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIlxyXG4gICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2ludGVybmFsSXNFbmFibGVkJywgZW50aXR5OiByb3cgLCB1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlcn1cIj5cclxuICAgICAgICAgICAge3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndXNlcidcIj5cclxuICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdLmZ1bGxOYW1lIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuICAgICAgICAgICAge3tyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOmZvcm1hdDooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKX19XHJcbiAgICAgICAgICAgIDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG4gICAgICAgICAgICB7eyAocm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdID8gJ1llcyc6J05vJykgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkZWZhdWx0J1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdpbnRlcm5hbElzRW5hYmxlZCcsIGVudGl0eTogcm93ICwgdXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJ9XCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtIHwgdHJhbnNsYXRlIH19IHt7XCIsIFwiIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gJ2R5bmFtaWNDYXJkJ1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtY2FyZFwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQtY2FyZCc6IGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCAmJiByb3c/LmlzU2VsZWN0ZWR9XCJcclxuICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW5zLmxlbmd0aCA+IDFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIGNvbHVtbnNcIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJrZXlcIj57eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ3RleHQnXCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RhdGUnXCI+XHJcbiAgICAgICAgICAgICAge3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZTogXCJNTU1NIGQsIHlcIiB9fVxyXG4gICAgICAgICAgICAgIDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmVyLWNhcmQtY29udGFpbmVyIHt7ZW50aXR5VHlwZX19XCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCIgKm5nSWY9XCJjb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgIDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cImNvbHVtbnNbMF0udGVtcGxhdGVcIiBbY29sdW1uXT1cImNvbHVtbnNbMF1cIiBbY29udGV4dF09XCJyb3dcIj5cclxuICAgICAgICA8L2N0cy1keW5hbWljLWNvbHVtbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -17,8 +17,8 @@ import * as i0 from "@angular/core";
17
17
  */
18
18
  export class TableModule {
19
19
  }
20
- TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableModule, declarations: [TableComponent, DynamicColumnComponent], imports: [CommonModule,
20
+ TableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableModule, declarations: [TableComponent, DynamicColumnComponent], imports: [CommonModule,
22
22
  NgxDatatableModule,
23
23
  PipesModule,
24
24
  TranslateModule,
@@ -29,7 +29,7 @@ TableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
29
29
  MatMenuModule], exports: [TableComponent,
30
30
  DynamicColumnComponent,
31
31
  NgxDatatableModule] });
32
- TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableModule, imports: [[
32
+ TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableModule, imports: [[
33
33
  CommonModule,
34
34
  NgxDatatableModule,
35
35
  PipesModule,
@@ -40,7 +40,7 @@ TableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "1
40
40
  MatCheckboxModule,
41
41
  MatMenuModule
42
42
  ], NgxDatatableModule] });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableModule, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TableModule, decorators: [{
44
44
  type: NgModule,
45
45
  args: [{
46
46
  declarations: [TableComponent, DynamicColumnComponent],
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
62
62
  ]
63
63
  }]
64
64
  }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFdkQ7OztHQUdHO0FBb0JILE1BQU0sT0FBTyxXQUFXOzt5R0FBWCxXQUFXOzBHQUFYLFdBQVcsaUJBbEJQLGNBQWMsRUFBRSxzQkFBc0IsYUFFbkQsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixhQUFhLGFBR2IsY0FBYztRQUNkLHNCQUFzQjtRQUN0QixrQkFBa0I7MEdBR1QsV0FBVyxZQWpCYjtZQUNQLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsYUFBYTtTQUNkLEVBSUMsa0JBQWtCOzRGQUdULFdBQVc7a0JBbkJ2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBQzt3QkFDTixjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeW5hbWljVmlld01vZHVsZSB9IGZyb20gJy4uL2R5bmFtaWMtdmlldy9keW5hbWljLXZpZXcubW9kdWxlJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1jb2x1bW4vZHluYW1pYy1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogVGFibGUgTW9kdWxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1RhYmxlQ29tcG9uZW50LCBEeW5hbWljQ29sdW1uQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBEaXJlY3RpdmVNb2R1bGUsXHJcbiAgICBEeW5hbWljVmlld01vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czpbXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNDb2x1bW5Db21wb25lbnQsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZU1vZHVsZSB7IH1cclxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFdkQ7OztHQUdHO0FBb0JILE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBbEJQLGNBQWMsRUFBRSxzQkFBc0IsYUFFbkQsWUFBWTtRQUNaLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGlCQUFpQjtRQUNqQixhQUFhLGFBR2IsY0FBYztRQUNkLHNCQUFzQjtRQUN0QixrQkFBa0I7eUdBR1QsV0FBVyxZQWpCYjtZQUNQLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsYUFBYTtTQUNkLEVBSUMsa0JBQWtCOzJGQUdULFdBQVc7a0JBbkJ2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBQzt3QkFDTixjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcclxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEeW5hbWljVmlld01vZHVsZSB9IGZyb20gJy4uL2R5bmFtaWMtdmlldy9keW5hbWljLXZpZXcubW9kdWxlJztcclxuaW1wb3J0IHsgRHluYW1pY0NvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1jb2x1bW4vZHluYW1pYy1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogVGFibGUgTW9kdWxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1RhYmxlQ29tcG9uZW50LCBEeW5hbWljQ29sdW1uQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBQaXBlc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBEaXJlY3RpdmVNb2R1bGUsXHJcbiAgICBEeW5hbWljVmlld01vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czpbXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNDb2x1bW5Db21wb25lbnQsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZU1vZHVsZSB7IH1cclxuIl19