nuxeo-development-framework 6.0.8 → 6.1.0

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 (1712) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +285 -360
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +1 -1
  4. package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +1 -1
  5. package/esm2015/lib/components/activities-log/activities-log.module.js +1 -1
  6. package/esm2015/lib/components/activity/activity/activity.component.js +1 -1
  7. package/esm2015/lib/components/activity/activity.module.js +1 -1
  8. package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +2 -2
  9. package/esm2015/lib/components/attachment-item/attachment-item.module.js +1 -1
  10. package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +1 -1
  11. package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +1 -1
  12. package/esm2015/lib/components/avatar/avatar/avatar.component.js +1 -1
  13. package/esm2015/lib/components/avatar/avatar.module.js +1 -1
  14. package/esm2015/lib/components/card/card.component.js +1 -1
  15. package/esm2015/lib/components/card/card.module.js +1 -1
  16. package/esm2015/lib/components/comments/comments.module.js +1 -1
  17. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +2 -2
  18. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +1 -1
  19. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +1 -1
  20. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +1 -1
  21. package/esm2015/lib/components/comments/constants/comment.js +1 -1
  22. package/esm2015/lib/components/comments/services/comment-api.service.js +1 -1
  23. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +1 -1
  24. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +1 -1
  25. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +1 -1
  26. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +1 -1
  27. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +1 -1
  28. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +1 -1
  29. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
  30. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +2 -2
  31. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +1 -1
  32. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +1 -1
  33. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +1 -1
  34. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +1 -1
  35. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +1 -1
  36. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +1 -1
  37. package/esm2015/lib/components/create-entity/create-entity.module.js +1 -1
  38. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +2 -2
  39. package/esm2015/lib/components/cts-tags/cts-tags.module.js +1 -1
  40. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -1
  41. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +1 -1
  42. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +1 -1
  43. package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
  44. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +1 -1
  45. package/esm2015/lib/components/diagrams/components/base-node.component.js +1 -1
  46. package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +1 -1
  47. package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
  48. package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +1 -1
  49. package/esm2015/lib/components/diagrams/components/custom-connection.component.js +1 -1
  50. package/esm2015/lib/components/diagrams/components/custom-socket.component.js +1 -1
  51. package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +1 -1
  52. package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +1 -1
  53. package/esm2015/lib/components/diagrams/components/index.js +1 -1
  54. package/esm2015/lib/components/diagrams/components/node-icon.component.js +1 -1
  55. package/esm2015/lib/components/diagrams/components/node-inputs.component.js +1 -1
  56. package/esm2015/lib/components/diagrams/components/node-outputs.component.js +1 -1
  57. package/esm2015/lib/components/diagrams/components/node-ports.component.js +1 -1
  58. package/esm2015/lib/components/diagrams/components/remove-button.component.js +1 -1
  59. package/esm2015/lib/components/diagrams/components/status-icon.component.js +1 -1
  60. package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +1 -1
  61. package/esm2015/lib/components/diagrams/components/zoom-control.component.js +1 -1
  62. package/esm2015/lib/components/diagrams/constants/defaults.js +1 -1
  63. package/esm2015/lib/components/diagrams/constants/direction.js +1 -1
  64. package/esm2015/lib/components/diagrams/constants/index.js +1 -1
  65. package/esm2015/lib/components/diagrams/constants/message-type.js +1 -1
  66. package/esm2015/lib/components/diagrams/constants/node-type.js +1 -1
  67. package/esm2015/lib/components/diagrams/constants/notify-events.js +1 -1
  68. package/esm2015/lib/components/diagrams/constants/sizes.js +1 -1
  69. package/esm2015/lib/components/diagrams/constants/status.js +1 -1
  70. package/esm2015/lib/components/diagrams/diagrams.module.js +1 -1
  71. package/esm2015/lib/components/diagrams/directive/diagram.directive.js +1 -1
  72. package/esm2015/lib/components/diagrams/directive/index.js +1 -1
  73. package/esm2015/lib/components/diagrams/editor/customize.js +1 -1
  74. package/esm2015/lib/components/diagrams/editor/editor.js +1 -1
  75. package/esm2015/lib/components/diagrams/editor/index.js +1 -1
  76. package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +1 -1
  77. package/esm2015/lib/components/diagrams/editor/overrides/index.js +1 -1
  78. package/esm2015/lib/components/diagrams/editor/path-plugin.js +1 -1
  79. package/esm2015/lib/components/diagrams/editor/socket-position-watcher.js +1 -1
  80. package/esm2015/lib/components/diagrams/index.js +1 -1
  81. package/esm2015/lib/components/diagrams/models/base-node.model.js +1 -1
  82. package/esm2015/lib/components/diagrams/models/circle-node.model.js +1 -1
  83. package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
  84. package/esm2015/lib/components/diagrams/models/content-node.model.js +1 -1
  85. package/esm2015/lib/components/diagrams/models/gate-way.model.js +1 -1
  86. package/esm2015/lib/components/diagrams/models/index.js +1 -1
  87. package/esm2015/lib/components/diagrams/models/ports.model.js +1 -1
  88. package/esm2015/lib/components/diagrams/models/socket.model.js +1 -1
  89. package/esm2015/lib/components/diagrams/models/template-node.model.js +1 -1
  90. package/esm2015/lib/components/diagrams/public-api.js +1 -1
  91. package/esm2015/lib/components/diagrams/services/diagram-plugins.service.js +1 -1
  92. package/esm2015/lib/components/diagrams/services/diagram.service.js +1 -1
  93. package/esm2015/lib/components/diagrams/services/index.js +1 -1
  94. package/esm2015/lib/components/diagrams/services/message.service.js +1 -1
  95. package/esm2015/lib/components/diagrams/services/workflow.service.js +1 -1
  96. package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
  97. package/esm2015/lib/components/diagrams/types/connection-config.type.js +1 -1
  98. package/esm2015/lib/components/diagrams/types/connection-label.type.js +1 -1
  99. package/esm2015/lib/components/diagrams/types/customization.type.js +1 -1
  100. package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
  101. package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
  102. package/esm2015/lib/components/diagrams/types/emitter-type.js +1 -1
  103. package/esm2015/lib/components/diagrams/types/index.js +1 -1
  104. package/esm2015/lib/components/diagrams/types/layout.type.js +1 -1
  105. package/esm2015/lib/components/diagrams/types/node-content.js +1 -1
  106. package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
  107. package/esm2015/lib/components/diagrams/types/node-status.type.js +1 -1
  108. package/esm2015/lib/components/diagrams/types/node.type.js +1 -1
  109. package/esm2015/lib/components/diagrams/types/notify-event.type.js +1 -1
  110. package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
  111. package/esm2015/lib/components/diagrams/types/ports-config.type.js +1 -1
  112. package/esm2015/lib/components/diagrams/types/schemes.type.js +1 -1
  113. package/esm2015/lib/components/diagrams/types/socket.type.js +1 -1
  114. package/esm2015/lib/components/diagrams/utilities/common.js +1 -1
  115. package/esm2015/lib/components/diagrams/utilities/index.js +1 -1
  116. package/esm2015/lib/components/diagrams/utilities/random.js +1 -1
  117. package/esm2015/lib/components/diagrams/utilities/remove.util.js +1 -1
  118. package/esm2015/lib/components/diagrams/utilities/serialize.js +1 -1
  119. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +2 -2
  120. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +1 -1
  121. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +1 -1
  122. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
  123. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
  124. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +1 -1
  125. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +6 -3
  126. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
  127. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
  128. package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
  129. package/esm2015/lib/components/documents/constants/document-templates.js +1 -1
  130. package/esm2015/lib/components/documents/constants/documents.js +1 -1
  131. package/esm2015/lib/components/documents/documents.module.js +1 -1
  132. package/esm2015/lib/components/documents/services/document-templates.service.js +1 -1
  133. package/esm2015/lib/components/documents/services/documents.service.js +1 -1
  134. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +1 -1
  135. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +1 -1
  136. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +1 -1
  137. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
  138. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +1 -1
  139. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +2 -2
  140. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +1 -1
  141. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
  142. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +1 -1
  143. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +1 -1
  144. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +1 -1
  145. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +1 -1
  146. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +1 -1
  147. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +1 -1
  148. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +1 -1
  149. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +1 -1
  150. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/constants/department.js +1 -1
  151. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +1 -1
  152. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +1 -1
  153. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +1 -1
  154. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +1 -1
  155. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +1 -1
  156. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +1 -1
  157. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +1 -1
  158. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +1 -1
  159. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
  160. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +1 -1
  161. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +1 -1
  162. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +1 -1
  163. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
  164. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +2 -2
  165. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +1 -1
  166. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +1 -1
  167. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +1 -1
  168. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -2
  169. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +1 -1
  170. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +1 -1
  171. package/esm2015/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.js +1 -1
  172. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
  173. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.js +1 -1
  174. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +1 -1
  175. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.js +1 -1
  176. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +1 -1
  177. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.formio.js +1 -1
  178. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
  179. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.js +1 -1
  180. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +1 -1
  181. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +1 -1
  182. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.js +1 -1
  183. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.js +1 -1
  184. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.js +1 -1
  185. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.js +1 -1
  186. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.js +1 -1
  187. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.js +1 -1
  188. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.js +1 -1
  189. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.js +1 -1
  190. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.js +1 -1
  191. package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.js +1 -1
  192. package/esm2015/lib/components/dynamic-form/models/dynamic-form-baseitem.model.js +1 -1
  193. package/esm2015/lib/components/dynamic-form/models/dynamic-form-boolitem.model.js +1 -1
  194. package/esm2015/lib/components/dynamic-form/models/dynamic-form-dateitem.model.js +1 -1
  195. package/esm2015/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.js +1 -1
  196. package/esm2015/lib/components/dynamic-form/models/dynamic-form-mapitem.model.js +1 -1
  197. package/esm2015/lib/components/dynamic-form/models/dynamic-form-selectitem.model.js +1 -1
  198. package/esm2015/lib/components/dynamic-form/models/dynamic-form-textitem.model.js +1 -1
  199. package/esm2015/lib/components/dynamic-form/models/dynamic-form.models.js +1 -1
  200. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +1 -1
  201. package/esm2015/lib/components/dynamic-form/services/dynamic-component-mapper.service.js +1 -1
  202. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +1 -1
  203. package/esm2015/lib/components/dynamic-form/services/vocabulary-api.service.js +1 -1
  204. package/esm2015/lib/components/dynamic-form/validators/length-validator.js +1 -1
  205. package/esm2015/lib/components/dynamic-form/validators/regex-validator.js +1 -1
  206. package/esm2015/lib/components/dynamic-form/validators/required-validator.js +1 -1
  207. package/esm2015/lib/components/dynamic-form/validators/value-validator.js +1 -1
  208. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +1 -1
  209. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +1 -1
  210. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +1 -1
  211. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +1 -1
  212. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +2 -2
  213. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +1 -1
  214. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +1 -1
  215. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +1 -1
  216. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
  217. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +2 -2
  218. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +2 -2
  219. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +2 -2
  220. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +1 -1
  221. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +1 -1
  222. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +1 -1
  223. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +2 -2
  224. package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +2 -2
  225. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +1 -1
  226. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +2 -2
  227. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +1 -1
  228. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +1 -1
  229. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +1 -1
  230. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +1 -1
  231. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +2 -2
  232. package/esm2015/lib/components/file-manger/components/move/move.component.js +1 -1
  233. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +1 -1
  234. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +2 -2
  235. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +2 -2
  236. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +2 -2
  237. package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +2 -2
  238. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +1 -1
  239. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +1 -1
  240. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +1 -1
  241. package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +1 -1
  242. package/esm2015/lib/components/file-manger/file-manager.abstract.js +1 -1
  243. package/esm2015/lib/components/file-manger/file-manger.module.js +1 -1
  244. package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +1 -1
  245. package/esm2015/lib/components/file-manger/models/index.js +1 -1
  246. package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +1 -1
  247. package/esm2015/lib/components/file-manger/models/pagination-response.model.js +1 -1
  248. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  249. package/esm2015/lib/components/filter/filter.module.js +1 -1
  250. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +1 -1
  251. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +1 -1
  252. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +1 -1
  253. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +1 -1
  254. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -1
  255. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +1 -1
  256. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +1 -1
  257. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +1 -1
  258. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +1 -1
  259. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/consts.js +1 -1
  260. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +1 -1
  261. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
  262. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +1 -1
  263. package/esm2015/lib/components/latest-activity/constants/activitylog.js +1 -1
  264. package/esm2015/lib/components/latest-activity/latest-activity.module.js +1 -1
  265. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +1 -1
  266. package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +1 -1
  267. package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +1 -1
  268. package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +1 -1
  269. package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +1 -1
  270. package/esm2015/lib/components/ndf-config-editor/components/index.js +1 -1
  271. package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +2 -2
  272. package/esm2015/lib/components/ndf-config-editor/config.token.js +1 -1
  273. package/esm2015/lib/components/ndf-config-editor/constants/index.js +1 -1
  274. package/esm2015/lib/components/ndf-config-editor/constants/mode.js +1 -1
  275. package/esm2015/lib/components/ndf-config-editor/constants/query.js +1 -1
  276. package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +1 -1
  277. package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +2 -2
  278. package/esm2015/lib/components/ndf-config-editor/containers/index.js +1 -1
  279. package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +1 -1
  280. package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +1 -1
  281. package/esm2015/lib/components/ndf-config-editor/index.js +1 -1
  282. package/esm2015/lib/components/ndf-config-editor/metadata-token.js +1 -1
  283. package/esm2015/lib/components/ndf-config-editor/models/config.js +1 -1
  284. package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +1 -1
  285. package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +1 -1
  286. package/esm2015/lib/components/ndf-config-editor/models/index.js +1 -1
  287. package/esm2015/lib/components/ndf-config-editor/models/payload-data.js +1 -1
  288. package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +1 -1
  289. package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +1 -1
  290. package/esm2015/lib/components/ndf-config-editor/pipes/index.js +1 -1
  291. package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +1 -1
  292. package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +1 -1
  293. package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +2 -2
  294. package/esm2015/lib/components/ndf-config-editor/public/index.js +1 -1
  295. package/esm2015/lib/components/ndf-config-editor/public-api.js +1 -1
  296. package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +1 -1
  297. package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +1 -1
  298. package/esm2015/lib/components/ndf-config-editor/services/index.js +1 -1
  299. package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +1 -1
  300. package/esm2015/lib/components/ndf-config-editor/utility/index.js +1 -1
  301. package/esm2015/lib/components/ndf-config-editor/utility/json.js +1 -1
  302. package/esm2015/lib/components/ndf-datepicker/adapters/hijri-adapter.js +1 -1
  303. package/esm2015/lib/components/ndf-datepicker/adapters/index.js +1 -1
  304. package/esm2015/lib/components/ndf-datepicker/adapters/moment-adapter.js +1 -1
  305. package/esm2015/lib/components/ndf-datepicker/base/base-value-accessor.js +1 -1
  306. package/esm2015/lib/components/ndf-datepicker/base/index.js +1 -1
  307. package/esm2015/lib/components/ndf-datepicker/components/base-datepicker.js +1 -1
  308. package/esm2015/lib/components/ndf-datepicker/components/index.js +1 -1
  309. package/esm2015/lib/components/ndf-datepicker/components/input-date.component.js +1 -1
  310. package/esm2015/lib/components/ndf-datepicker/components/input-range-date.component.js +1 -1
  311. package/esm2015/lib/components/ndf-datepicker/constants/date-locale-keys.js +1 -1
  312. package/esm2015/lib/components/ndf-datepicker/constants/date-picker.js +1 -1
  313. package/esm2015/lib/components/ndf-datepicker/constants/date-type.js +1 -1
  314. package/esm2015/lib/components/ndf-datepicker/constants/formats.js +1 -1
  315. package/esm2015/lib/components/ndf-datepicker/constants/hijri-dates-names.js +1 -1
  316. package/esm2015/lib/components/ndf-datepicker/constants/index.js +1 -1
  317. package/esm2015/lib/components/ndf-datepicker/containers/datepicker-container.js +1 -1
  318. package/esm2015/lib/components/ndf-datepicker/containers/index.js +1 -1
  319. package/esm2015/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.js +1 -1
  320. package/esm2015/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.js +1 -1
  321. package/esm2015/lib/components/ndf-datepicker/index.js +1 -1
  322. package/esm2015/lib/components/ndf-datepicker/models/data-types.js +1 -1
  323. package/esm2015/lib/components/ndf-datepicker/models/index.js +1 -1
  324. package/esm2015/lib/components/ndf-datepicker/models/value-object.js +1 -1
  325. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.component.js +2 -2
  326. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.module.js +1 -1
  327. package/esm2015/lib/components/ndf-datepicker/services/calendar.service.js +1 -1
  328. package/esm2015/lib/components/ndf-datepicker/services/index.js +1 -1
  329. package/esm2015/lib/components/ndf-datepicker/services/localize-state.service.js +1 -1
  330. package/esm2015/lib/components/ndf-filters/base/base-aggregation-field.component.js +1 -1
  331. package/esm2015/lib/components/ndf-filters/base/base-checkbox-radio.component.js +1 -1
  332. package/esm2015/lib/components/ndf-filters/base/base-custom-field.component.js +1 -1
  333. package/esm2015/lib/components/ndf-filters/base/base-predicate-field.component.js +1 -1
  334. package/esm2015/lib/components/ndf-filters/base/base-value-accessor.component.js +1 -1
  335. package/esm2015/lib/components/ndf-filters/base/index.js +1 -1
  336. package/esm2015/lib/components/ndf-filters/components/__parts/field-header.component.js +1 -1
  337. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +1 -1
  338. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +1 -1
  339. package/esm2015/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.js +1 -1
  340. package/esm2015/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.js +1 -1
  341. package/esm2015/lib/components/ndf-filters/components/__parts/filter-empty-message.component.js +1 -1
  342. package/esm2015/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.js +2 -2
  343. package/esm2015/lib/components/ndf-filters/components/__parts/filter-options-sort/filter-options-sort.component.js +2 -2
  344. package/esm2015/lib/components/ndf-filters/components/__parts/filter-search-input/filter-search-input.component.js +1 -1
  345. package/esm2015/lib/components/ndf-filters/components/__parts/html-dialog/html-dialog.component.js +1 -1
  346. package/esm2015/lib/components/ndf-filters/components/__parts/index.js +1 -1
  347. package/esm2015/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.js +1 -1
  348. package/esm2015/lib/components/ndf-filters/components/aggregation-checkbox/aggregation-checkbox.component.js +1 -1
  349. package/esm2015/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.js +1 -1
  350. package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +1 -1
  351. package/esm2015/lib/components/ndf-filters/components/aggregation-radio/aggregation-radio.component.js +1 -1
  352. package/esm2015/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.js +1 -1
  353. package/esm2015/lib/components/ndf-filters/components/aggregation-switch/aggregation-switch.component.js +2 -2
  354. package/esm2015/lib/components/ndf-filters/components/index.js +1 -1
  355. package/esm2015/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.js +1 -1
  356. package/esm2015/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.js +2 -2
  357. package/esm2015/lib/components/ndf-filters/constants/common.js +1 -1
  358. package/esm2015/lib/components/ndf-filters/constants/field.js +1 -1
  359. package/esm2015/lib/components/ndf-filters/constants/index.js +1 -1
  360. package/esm2015/lib/components/ndf-filters/constants/operators.js +1 -1
  361. package/esm2015/lib/components/ndf-filters/constants/sort.js +1 -1
  362. package/esm2015/lib/components/ndf-filters/constants/type.js +1 -1
  363. package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +1 -1
  364. package/esm2015/lib/components/ndf-filters/containers/base-field.js +1 -1
  365. package/esm2015/lib/components/ndf-filters/containers/custom-field/custom-field.component.js +1 -1
  366. package/esm2015/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.js +1 -1
  367. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +1 -1
  368. package/esm2015/lib/components/ndf-filters/containers/index.js +1 -1
  369. package/esm2015/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.js +1 -1
  370. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.js +2 -2
  371. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.js +1 -1
  372. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/user-types.js +1 -1
  373. package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/aggregation-group.component.js +1 -1
  374. package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/map-aggregation-config.js +1 -1
  375. package/esm2015/lib/components/ndf-filters/custom-components/index.js +1 -1
  376. package/esm2015/lib/components/ndf-filters/directives/autocomplete-template.directive.js +1 -1
  377. package/esm2015/lib/components/ndf-filters/directives/checkbox-template.directive.js +1 -1
  378. package/esm2015/lib/components/ndf-filters/directives/custom-template.directive.js +1 -1
  379. package/esm2015/lib/components/ndf-filters/directives/date-template.directive.js +1 -1
  380. package/esm2015/lib/components/ndf-filters/directives/dropdown-label-template.directive.js +1 -1
  381. package/esm2015/lib/components/ndf-filters/directives/dropdown-template.directive.js +1 -1
  382. package/esm2015/lib/components/ndf-filters/directives/index.js +1 -1
  383. package/esm2015/lib/components/ndf-filters/directives/radio-template.directive.js +1 -1
  384. package/esm2015/lib/components/ndf-filters/directives/switch-template.directive.js +1 -1
  385. package/esm2015/lib/components/ndf-filters/index.js +1 -1
  386. package/esm2015/lib/components/ndf-filters/models/aggregation-field-config.js +1 -1
  387. package/esm2015/lib/components/ndf-filters/models/aggregation-response.model.js +1 -1
  388. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
  389. package/esm2015/lib/components/ndf-filters/models/common.js +1 -1
  390. package/esm2015/lib/components/ndf-filters/models/custom-field-config.js +1 -1
  391. package/esm2015/lib/components/ndf-filters/models/field-config.model.js +1 -1
  392. package/esm2015/lib/components/ndf-filters/models/field-options/autocomplete-options.js +1 -1
  393. package/esm2015/lib/components/ndf-filters/models/field-options/checkbox-options.js +1 -1
  394. package/esm2015/lib/components/ndf-filters/models/field-options/common-utils.js +1 -1
  395. package/esm2015/lib/components/ndf-filters/models/field-options/custom-fields-options.js +1 -1
  396. package/esm2015/lib/components/ndf-filters/models/field-options/custom-options.js +1 -1
  397. package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
  398. package/esm2015/lib/components/ndf-filters/models/field-options/date-options.js +1 -1
  399. package/esm2015/lib/components/ndf-filters/models/field-options/dropdown-options.js +1 -1
  400. package/esm2015/lib/components/ndf-filters/models/field-options/index.js +1 -1
  401. package/esm2015/lib/components/ndf-filters/models/field-options/input-options.js +1 -1
  402. package/esm2015/lib/components/ndf-filters/models/field-options/radio-options.js +1 -1
  403. package/esm2015/lib/components/ndf-filters/models/field-options/switch-options.js +1 -1
  404. package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
  405. package/esm2015/lib/components/ndf-filters/models/form-query-request.js +1 -1
  406. package/esm2015/lib/components/ndf-filters/models/index.js +1 -1
  407. package/esm2015/lib/components/ndf-filters/models/operator-value-object.js +1 -1
  408. package/esm2015/lib/components/ndf-filters/models/predicate-field-config.js +1 -1
  409. package/esm2015/lib/components/ndf-filters/models/types-helper.js +1 -1
  410. package/esm2015/lib/components/ndf-filters/models/value-object.model.js +1 -1
  411. package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +1 -1
  412. package/esm2015/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.js +1 -1
  413. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +1 -1
  414. package/esm2015/lib/components/ndf-filters/pipes/filter.pipe.js +1 -1
  415. package/esm2015/lib/components/ndf-filters/pipes/hash-translate.pipe.js +1 -1
  416. package/esm2015/lib/components/ndf-filters/pipes/index.js +1 -1
  417. package/esm2015/lib/components/ndf-filters/pipes/localized-label.pipe.js +1 -1
  418. package/esm2015/lib/components/ndf-filters/pipes/roles-filters.pipe.js +1 -1
  419. package/esm2015/lib/components/ndf-filters/pipes/sanitizer.pipe.js +1 -1
  420. package/esm2015/lib/components/ndf-filters/pipes/sort.pipe.js +1 -1
  421. package/esm2015/lib/components/ndf-filters/pipes/tooltip.pipe.js +1 -1
  422. package/esm2015/lib/components/ndf-filters/public-api.js +1 -1
  423. package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +1 -1
  424. package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +1 -1
  425. package/esm2015/lib/components/ndf-filters/services/filters-mapper.service.js +1 -1
  426. package/esm2015/lib/components/ndf-filters/services/filters-query.service.js +1 -1
  427. package/esm2015/lib/components/ndf-filters/services/index.js +1 -1
  428. package/esm2015/lib/components/ndf-filters/utility/index.js +1 -1
  429. package/esm2015/lib/components/ndf-filters/utility/nxql-query.js +1 -1
  430. package/esm2015/lib/components/ndf-filters/utility/nxql.js +1 -1
  431. package/esm2015/lib/components/ndf-filters/utility/object.js +1 -1
  432. package/esm2015/lib/components/ndf-panel/component/ndf-panel.component.js +1 -1
  433. package/esm2015/lib/components/ndf-panel/index.js +1 -1
  434. package/esm2015/lib/components/ndf-panel/ndf-panel.module.js +1 -1
  435. package/esm2015/lib/components/ndf-scanner/index.js +1 -1
  436. package/esm2015/lib/components/ndf-scanner/ndf-scanner.component.js +2 -2
  437. package/esm2015/lib/components/ndf-scanner/ndf-scanner.module.js +1 -1
  438. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.js +1 -1
  439. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/index.js +1 -1
  440. package/esm2015/lib/components/ndf-signatures/emdha/index.js +1 -1
  441. package/esm2015/lib/components/ndf-signatures/emdha/services/emdha.service.js +8 -15
  442. package/esm2015/lib/components/ndf-signatures/emdha/services/index.js +1 -1
  443. package/esm2015/lib/components/ndf-signatures/index.js +1 -1
  444. package/esm2015/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.js +1 -1
  445. package/esm2015/lib/components/ndf-signatures/ndf-signatures.module.js +1 -1
  446. package/esm2015/lib/components/ndf-signatures/services/index.js +1 -1
  447. package/esm2015/lib/components/ndf-signatures/services/signatures.service.js +1 -4
  448. package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +1 -1
  449. package/esm2015/lib/components/ndf-tabs/index.js +1 -1
  450. package/esm2015/lib/components/ndf-tabs/ndf-tabs.module.js +1 -1
  451. package/esm2015/lib/components/ndf-tabs/tab.type.js +1 -1
  452. package/esm2015/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.js +6 -4
  453. package/esm2015/lib/components/ndf-uploader/components/index.js +1 -1
  454. package/esm2015/lib/components/ndf-uploader/config/index.js +1 -1
  455. package/esm2015/lib/components/ndf-uploader/config/uploader.config.js +1 -1
  456. package/esm2015/lib/components/ndf-uploader/constant/file-content.js +1 -1
  457. package/esm2015/lib/components/ndf-uploader/constant/index.js +1 -1
  458. package/esm2015/lib/components/ndf-uploader/helpers/index.js +1 -1
  459. package/esm2015/lib/components/ndf-uploader/helpers/uploader.helper.js +9 -1
  460. package/esm2015/lib/components/ndf-uploader/index.js +3 -1
  461. package/esm2015/lib/components/ndf-uploader/models/batch.model.js +1 -1
  462. package/esm2015/lib/components/ndf-uploader/models/index.js +1 -1
  463. package/esm2015/lib/components/ndf-uploader/models/ndf-file.model.js +2 -1
  464. package/esm2015/lib/components/ndf-uploader/models/provider.model.js +1 -1
  465. package/esm2015/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.js +12 -19
  466. package/esm2015/lib/components/ndf-uploader/ndf-uploader.module.js +1 -1
  467. package/esm2015/lib/components/ndf-uploader/ndf-uploader.service.js +68 -23
  468. package/esm2015/lib/components/ndf-uploader/nuxeo-base-url.js +5 -0
  469. package/esm2015/lib/components/ndf-uploader/providers/index.js +1 -1
  470. package/esm2015/lib/components/ndf-uploader/providers/nuxeo-provider.service.js +11 -6
  471. package/esm2015/lib/components/ndf-uploader/providers/s3-provider.service.js +12 -7
  472. package/esm2015/lib/components/no-data-found/index.js +1 -1
  473. package/esm2015/lib/components/no-data-found/no-data-found.component.js +1 -1
  474. package/esm2015/lib/components/no-data-found/no-data.module.js +1 -1
  475. package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +1 -1
  476. package/esm2015/lib/components/notifications/components/base-notifications.component.js +1 -1
  477. package/esm2015/lib/components/notifications/components/index.js +1 -1
  478. package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +1 -1
  479. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +2 -2
  480. package/esm2015/lib/components/notifications/components/notification-sortby-toggle/notification-sortby-toggle.component.js +2 -2
  481. package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +2 -2
  482. package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +2 -2
  483. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +2 -2
  484. package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +2 -2
  485. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +2 -2
  486. package/esm2015/lib/components/notifications/components/notifications-list/options.js +1 -1
  487. package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +2 -2
  488. package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +1 -1
  489. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +1 -1
  490. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +2 -2
  491. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +1 -1
  492. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +1 -1
  493. package/esm2015/lib/components/notifications/constants/date.js +1 -1
  494. package/esm2015/lib/components/notifications/constants/index.js +1 -1
  495. package/esm2015/lib/components/notifications/constants/pagination.js +1 -1
  496. package/esm2015/lib/components/notifications/constants/panel.js +1 -1
  497. package/esm2015/lib/components/notifications/constants/status.js +1 -1
  498. package/esm2015/lib/components/notifications/containers/index.js +1 -1
  499. package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +2 -2
  500. package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +1 -1
  501. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +1 -1
  502. package/esm2015/lib/components/notifications/directives/button.directive.js +1 -1
  503. package/esm2015/lib/components/notifications/directives/index.js +1 -1
  504. package/esm2015/lib/components/notifications/directives/notification.directive.js +1 -1
  505. package/esm2015/lib/components/notifications/index.js +1 -1
  506. package/esm2015/lib/components/notifications/models/common.js +1 -1
  507. package/esm2015/lib/components/notifications/models/index.js +1 -1
  508. package/esm2015/lib/components/notifications/models/notification-definition.model.js +1 -1
  509. package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
  510. package/esm2015/lib/components/notifications/models/notification-options.js +1 -1
  511. package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +1 -1
  512. package/esm2015/lib/components/notifications/models/notification-subscription.model.js +1 -1
  513. package/esm2015/lib/components/notifications/models/notification.model.js +1 -1
  514. package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
  515. package/esm2015/lib/components/notifications/models/paging-response.model.js +1 -1
  516. package/esm2015/lib/components/notifications/models/params.model.js +1 -1
  517. package/esm2015/lib/components/notifications/models/vocabularies.js +1 -1
  518. package/esm2015/lib/components/notifications/notifications.module.js +1 -1
  519. package/esm2015/lib/components/notifications/public-api.js +1 -1
  520. package/esm2015/lib/components/notifications/services/index.js +1 -1
  521. package/esm2015/lib/components/notifications/services/listener.service.js +1 -1
  522. package/esm2015/lib/components/notifications/services/notifications.service.js +1 -1
  523. package/esm2015/lib/components/notifications/services/params.service.js +1 -1
  524. package/esm2015/lib/components/notifications/services/response.service.js +1 -1
  525. package/esm2015/lib/components/notifications/services/socket.service.js +1 -1
  526. package/esm2015/lib/components/notifications/utilities/index.js +1 -1
  527. package/esm2015/lib/components/notifications/utilities/response.adapter.js +1 -1
  528. package/esm2015/lib/components/pagination/pagination/pagination.component.js +1 -1
  529. package/esm2015/lib/components/pagination/pagination.module.js +1 -1
  530. package/esm2015/lib/components/pdf-tron/directives/index.js +1 -1
  531. package/esm2015/lib/components/pdf-tron/directives/ndf-tron-extract-text.directive.js +1 -1
  532. package/esm2015/lib/components/pdf-tron/models/index.js +1 -1
  533. package/esm2015/lib/components/pdf-tron/models/tron.model.js +1 -1
  534. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +1 -1
  535. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +1 -1
  536. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +1 -1
  537. package/esm2015/lib/components/pdf-tron/pdftron/silent-pdftron.service.js +1 -1
  538. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +2 -2
  539. package/esm2015/lib/components/permissions/permission.service.js +1 -1
  540. package/esm2015/lib/components/permissions/permissions/permissions.component.js +1 -1
  541. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +1 -1
  542. package/esm2015/lib/components/permissions/permissions.module.js +1 -1
  543. package/esm2015/lib/components/reports/chart-panel.js +1 -1
  544. package/esm2015/lib/components/reports/charts/chart.const.js +1 -1
  545. package/esm2015/lib/components/reports/charts/chart.token.js +1 -1
  546. package/esm2015/lib/components/reports/charts/charts.module.js +1 -1
  547. package/esm2015/lib/components/reports/charts/components/base-chart.component.js +1 -1
  548. package/esm2015/lib/components/reports/charts/components/chart.component.js +1 -1
  549. package/esm2015/lib/components/reports/charts/components/data-chart.component.js +1 -1
  550. package/esm2015/lib/components/reports/charts/components/index.js +1 -1
  551. package/esm2015/lib/components/reports/charts/defaults/bar.js +1 -1
  552. package/esm2015/lib/components/reports/charts/defaults/doughnut.js +1 -1
  553. package/esm2015/lib/components/reports/charts/defaults/index.js +1 -1
  554. package/esm2015/lib/components/reports/charts/defaults/line.js +1 -1
  555. package/esm2015/lib/components/reports/charts/defaults/pie.js +1 -1
  556. package/esm2015/lib/components/reports/charts/index.js +1 -1
  557. package/esm2015/lib/components/reports/charts/models/index.js +1 -1
  558. package/esm2015/lib/components/reports/charts/models/options.js +1 -1
  559. package/esm2015/lib/components/reports/charts/models/plugins-options.js +1 -1
  560. package/esm2015/lib/components/reports/charts/models/response.js +1 -1
  561. package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +1 -1
  562. package/esm2015/lib/components/reports/charts/plugins/data-labels.js +1 -1
  563. package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +1 -1
  564. package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +1 -1
  565. package/esm2015/lib/components/reports/charts/plugins/index.js +1 -1
  566. package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +1 -1
  567. package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +1 -1
  568. package/esm2015/lib/components/reports/charts/public-api.js +1 -1
  569. package/esm2015/lib/components/reports/charts/services/index.js +1 -1
  570. package/esm2015/lib/components/reports/charts/services/statistic.service.js +1 -1
  571. package/esm2015/lib/components/reports/charts/utility/colors.js +1 -1
  572. package/esm2015/lib/components/reports/charts/utility/common.js +1 -1
  573. package/esm2015/lib/components/reports/charts/utility/css.js +1 -1
  574. package/esm2015/lib/components/reports/charts/utility/index.js +1 -1
  575. package/esm2015/lib/components/reports/index.js +1 -1
  576. package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +1 -1
  577. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +1 -1
  578. package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +1 -1
  579. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +1 -1
  580. package/esm2015/lib/components/reports/ndf-reports/base/index.js +1 -1
  581. package/esm2015/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.js +1 -1
  582. package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +1 -1
  583. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
  584. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +1 -1
  585. package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +1 -1
  586. package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +2 -2
  587. package/esm2015/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.js +2 -2
  588. package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +2 -2
  589. package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +1 -1
  590. package/esm2015/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.js +2 -2
  591. package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +1 -1
  592. package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +2 -2
  593. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +2 -2
  594. package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
  595. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  596. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
  597. package/esm2015/lib/components/reports/ndf-reports/components/index.js +1 -1
  598. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +1 -1
  599. package/esm2015/lib/components/reports/ndf-reports/constants/index.js +1 -1
  600. package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +1 -1
  601. package/esm2015/lib/components/reports/ndf-reports/containers/index.js +1 -1
  602. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
  603. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +1 -1
  604. package/esm2015/lib/components/reports/ndf-reports/directives/index.js +1 -1
  605. package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +1 -1
  606. package/esm2015/lib/components/reports/ndf-reports/index.js +1 -1
  607. package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
  608. package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
  609. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
  610. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  611. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
  612. package/esm2015/lib/components/reports/ndf-reports/models/digit.js +1 -1
  613. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  614. package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +1 -1
  615. package/esm2015/lib/components/reports/ndf-reports/models/index.js +1 -1
  616. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  617. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
  618. package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +1 -1
  619. package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +1 -1
  620. package/esm2015/lib/components/reports/ndf-reports/models/request.js +1 -1
  621. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +1 -1
  622. package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +1 -1
  623. package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +1 -1
  624. package/esm2015/lib/components/reports/ndf-reports/options/index.js +1 -1
  625. package/esm2015/lib/components/reports/ndf-reports/options/line.js +1 -1
  626. package/esm2015/lib/components/reports/ndf-reports/options/pie.js +1 -1
  627. package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +1 -1
  628. package/esm2015/lib/components/reports/ndf-reports/public-api.js +1 -1
  629. package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +1 -1
  630. package/esm2015/lib/components/reports/ndf-reports/services/chart-callbacks-register.services.js +1 -1
  631. package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +1 -1
  632. package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +1 -1
  633. package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +1 -1
  634. package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +1 -1
  635. package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +1 -1
  636. package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +1 -1
  637. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +1 -1
  638. package/esm2015/lib/components/reports/ndf-reports/services/index.js +1 -1
  639. package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +1 -1
  640. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
  641. package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +1 -1
  642. package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +1 -1
  643. package/esm2015/lib/components/reports/ndf-reports/services/reports-data-transformers.service.js +1 -1
  644. package/esm2015/lib/components/reports/ndf-reports/services/reports-dialog.service.js +1 -1
  645. package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +1 -1
  646. package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +1 -1
  647. package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +1 -1
  648. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +1 -1
  649. package/esm2015/lib/components/select/select/select.component.js +1 -1
  650. package/esm2015/lib/components/select/select.module.js +1 -1
  651. package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +1 -1
  652. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +1 -1
  653. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
  654. package/esm2015/lib/components/skeleton/index.js +1 -1
  655. package/esm2015/lib/components/skeleton/skeleton.component.js +1 -1
  656. package/esm2015/lib/components/skeleton/skeleton.module.js +1 -1
  657. package/esm2015/lib/components/skeleton/table-skeleton.component.js +1 -1
  658. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  659. package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +1 -1
  660. package/esm2015/lib/components/tables/dynamic-table/directives/empty-state.directive.js +1 -1
  661. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +1 -1
  662. package/esm2015/lib/components/tables/dynamic-table/dynamic-table.module.js +1 -1
  663. package/esm2015/lib/components/tables/dynamic-table/index.js +1 -1
  664. package/esm2015/lib/components/tables/dynamic-table/public-api.js +1 -1
  665. package/esm2015/lib/components/tables/dynamic-table/services/dynamic-table.service.js +1 -1
  666. package/esm2015/lib/components/tables/index.js +1 -1
  667. package/esm2015/lib/components/tables/ndf-table/components/index.js +1 -1
  668. package/esm2015/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.js +1 -1
  669. package/esm2015/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.js +2 -2
  670. package/esm2015/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.js +2 -2
  671. package/esm2015/lib/components/tables/ndf-table/components/table-export/table-export.component.js +2 -2
  672. package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +1 -1
  673. package/esm2015/lib/components/tables/ndf-table/constants/index.js +1 -1
  674. package/esm2015/lib/components/tables/ndf-table/constants/sizes.js +1 -1
  675. package/esm2015/lib/components/tables/ndf-table/containers/index.js +1 -1
  676. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +1 -1
  677. package/esm2015/lib/components/tables/ndf-table/directives/actions.directive.js +1 -1
  678. package/esm2015/lib/components/tables/ndf-table/directives/filter-custom.directive.js +1 -1
  679. package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -1
  680. package/esm2015/lib/components/tables/ndf-table/directives/search.directive.js +1 -1
  681. package/esm2015/lib/components/tables/ndf-table/index.js +1 -1
  682. package/esm2015/lib/components/tables/ndf-table/models/index.js +1 -1
  683. package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +1 -1
  684. package/esm2015/lib/components/tables/ndf-table/models/search.config.js +1 -1
  685. package/esm2015/lib/components/tables/ndf-table/models/table-column.js +1 -1
  686. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
  687. package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +1 -1
  688. package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
  689. package/esm2015/lib/components/tables/ndf-table/models/types.js +1 -1
  690. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +1 -1
  691. package/esm2015/lib/components/tables/ndf-table/public-api.js +1 -1
  692. package/esm2015/lib/components/tables/ndf-table/services/index.js +1 -1
  693. package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +1 -1
  694. package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +1 -1
  695. package/esm2015/lib/components/tables/public-api.js +1 -1
  696. package/esm2015/lib/components/tables/table/dynamic-column/dynamic-column.component.js +1 -1
  697. package/esm2015/lib/components/tables/table/dynamic-component.js +1 -1
  698. package/esm2015/lib/components/tables/table/index.js +1 -1
  699. package/esm2015/lib/components/tables/table/page-sizes-list/page-sizes-list.component.js +1 -1
  700. package/esm2015/lib/components/tables/table/public-api.js +1 -1
  701. package/esm2015/lib/components/tables/table/table/table.component.js +2 -2
  702. package/esm2015/lib/components/tables/table/table.module.js +1 -1
  703. package/esm2015/lib/components/toasts/components/notification-toast/notification-toast.component.js +1 -1
  704. package/esm2015/lib/components/toasts/index.js +1 -1
  705. package/esm2015/lib/components/toasts/public-api.js +1 -1
  706. package/esm2015/lib/components/toasts/toasts.module.js +1 -1
  707. package/esm2015/lib/components/user/user/user.component.js +1 -1
  708. package/esm2015/lib/components/user/user.module.js +1 -1
  709. package/esm2015/lib/components/users-card/users-card.component.js +2 -2
  710. package/esm2015/lib/components/users-card/users-card.module.js +1 -1
  711. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
  712. package/esm2015/lib/components/viewer-log/viewer-log.module.js +1 -1
  713. package/esm2015/lib/components/vocabulary/interfaces/op-type.interface.js +1 -1
  714. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +1 -1
  715. package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +1 -1
  716. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +1 -1
  717. package/esm2015/lib/components/vocabulary/vocabulary.module.js +1 -1
  718. package/esm2015/lib/configuration/app-config.service.js +1 -1
  719. package/esm2015/lib/configuration/helpers/app-initializer.js +1 -1
  720. package/esm2015/lib/core/adapters/adapter.service.js +1 -1
  721. package/esm2015/lib/core/core.module.js +1 -1
  722. package/esm2015/lib/core/enums/language.enum.js +1 -1
  723. package/esm2015/lib/core/env/env-manager.js +1 -1
  724. package/esm2015/lib/core/env/index.js +1 -1
  725. package/esm2015/lib/core/models/api-response.model.js +1 -1
  726. package/esm2015/lib/core/models/automation-response.model.js +1 -1
  727. package/esm2015/lib/core/models/base-response.models.js +1 -1
  728. package/esm2015/lib/core/models/component.model.js +1 -1
  729. package/esm2015/lib/core/models/index.js +1 -1
  730. package/esm2015/lib/core/services/callApi/call-api.service.js +1 -1
  731. package/esm2015/lib/core/services/column-renderer/column-renderer-registry.service.js +1 -1
  732. package/esm2015/lib/core/services/column-renderer/index.js +1 -1
  733. package/esm2015/lib/core/services/extension/action.extensions.js +1 -1
  734. package/esm2015/lib/core/services/extension/component-register.service.js +1 -1
  735. package/esm2015/lib/core/services/extension/extenion-utils.js +1 -1
  736. package/esm2015/lib/core/services/extension/extension-element.js +1 -1
  737. package/esm2015/lib/core/services/extension/extension-loader.service.js +1 -1
  738. package/esm2015/lib/core/services/extension/extension.service.js +1 -1
  739. package/esm2015/lib/core/services/index.js +1 -1
  740. package/esm2015/lib/core/services/initialization/initialization.service.js +1 -1
  741. package/esm2015/lib/core/services/localStorag/local-storag.service.js +1 -1
  742. package/esm2015/lib/core/services/ndf-transform.service.js +1 -1
  743. package/esm2015/lib/core/services/nuxeo/new-nuxeo-overide.js +1 -1
  744. package/esm2015/lib/core/services/nuxeo/nuxeo-override.js +1 -1
  745. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +1 -1
  746. package/esm2015/lib/core/services/roles/roles.service.js +1 -1
  747. package/esm2015/lib/core/services/translation/translate-loader.service.js +1 -1
  748. package/esm2015/lib/core/services/translation/translation.service.js +1 -1
  749. package/esm2015/lib/core/services/user/user-preferences.service.js +1 -1
  750. package/esm2015/lib/core/tokens/index.js +1 -1
  751. package/esm2015/lib/core/tokens/project.token.js +1 -1
  752. package/esm2015/lib/core/utilities/moment-date-adapter.js +1 -1
  753. package/esm2015/lib/core/utilities/utility.service.js +1 -1
  754. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
  755. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +1 -1
  756. package/esm2015/lib/directive/directive.module.js +1 -1
  757. package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +1 -1
  758. package/esm2015/lib/directive/permissions/evaluators.service.js +1 -1
  759. package/esm2015/lib/directive/permissions/permissions.directive.js +1 -1
  760. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +1 -1
  761. package/esm2015/lib/directive/rtl/set-rtl.directive.js +1 -1
  762. package/esm2015/lib/nuxeo-development-framework.component.js +1 -1
  763. package/esm2015/lib/nuxeo-development-framework.module.js +1 -1
  764. package/esm2015/lib/nuxeo-development-framework.service.js +1 -1
  765. package/esm2015/lib/pipes/file-size.pipe.js +1 -1
  766. package/esm2015/lib/pipes/hijri-date.pipe.js +1 -1
  767. package/esm2015/lib/pipes/localized-date.pipe.js +1 -1
  768. package/esm2015/lib/pipes/multi-value.pipe.js +1 -1
  769. package/esm2015/lib/pipes/pipes.module.js +1 -1
  770. package/esm2015/lib/pipes/secure-html.pipe.js +1 -1
  771. package/esm2015/lib/pipes/secure.pipe.js +1 -1
  772. package/esm2015/lib/pipes/time-ago.pipe.js +1 -1
  773. package/esm2015/lib/shared/components/base/base-column.component.js +1 -1
  774. package/esm2015/lib/shared/components/base/base-dialog.component.js +1 -1
  775. package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
  776. package/esm2015/lib/shared/components/base/base.component.js +1 -1
  777. package/esm2015/lib/shared/components/base/destroy.subject.js +1 -1
  778. package/esm2015/lib/shared/components/base/index.js +1 -1
  779. package/esm2015/lib/shared/components/button/button.component.js +1 -1
  780. package/esm2015/lib/shared/components/general-notification-popup/general-notification-popup.component.js +1 -1
  781. package/esm2015/lib/shared/components/index.js +1 -1
  782. package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
  783. package/esm2015/lib/shared/components/no-data/no-data.component.js +1 -1
  784. package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
  785. package/esm2015/lib/shared/components/nuxeo-dialog/index.js +1 -1
  786. package/esm2015/lib/shared/components/nuxeo-dialog/models/confirm-options.model.js +1 -1
  787. package/esm2015/lib/shared/components/nuxeo-dialog/models/dialog-option.model.js +1 -1
  788. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +1 -1
  789. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +2 -2
  790. package/esm2015/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.js +1 -1
  791. package/esm2015/lib/shared/components/read-more/read-more.component.js +1 -1
  792. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +1 -1
  793. package/esm2015/lib/shared/components/spinner/spinner.component.js +1 -1
  794. package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
  795. package/esm2015/lib/shared/constants/editor-config-type.js +1 -1
  796. package/esm2015/lib/shared/constants/index.js +1 -1
  797. package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +1 -1
  798. package/esm2015/lib/shared/directives/element-height.directive.js +1 -1
  799. package/esm2015/lib/shared/directives/fluid-height.directive.js +1 -1
  800. package/esm2015/lib/shared/directives/index.js +1 -1
  801. package/esm2015/lib/shared/evaluator/evaluator.js +1 -1
  802. package/esm2015/lib/shared/evaluator/index.js +1 -1
  803. package/esm2015/lib/shared/evaluator/types.js +1 -1
  804. package/esm2015/lib/shared/index.js +1 -1
  805. package/esm2015/lib/shared/libraryShared.module.js +1 -1
  806. package/esm2015/lib/shared/models/index.js +1 -1
  807. package/esm2015/lib/shared/models/mapper/index.js +1 -1
  808. package/esm2015/lib/shared/models/mapper/nuxeo-mapper.js +1 -1
  809. package/esm2015/lib/shared/models/ndf-request.model.js +1 -1
  810. package/esm2015/lib/shared/models/nuxeo-response.model.js +1 -1
  811. package/esm2015/lib/shared/models/task.model.js +1 -1
  812. package/esm2015/lib/shared/models/type-helpers.js +1 -1
  813. package/esm2015/lib/shared/services/base/base-editor-config.service.js +1 -1
  814. package/esm2015/lib/shared/services/base/base.service.js +1 -1
  815. package/esm2015/lib/shared/services/base/cache-base.service.js +1 -1
  816. package/esm2015/lib/shared/services/base/config/default-ttl-config.js +1 -1
  817. package/esm2015/lib/shared/services/base/config/index.js +1 -1
  818. package/esm2015/lib/shared/services/base/constants/default-cache-options.js +1 -1
  819. package/esm2015/lib/shared/services/base/constants/index.js +1 -1
  820. package/esm2015/lib/shared/services/base/http-base.service.js +1 -1
  821. package/esm2015/lib/shared/services/base/index.js +2 -1
  822. package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
  823. package/esm2015/lib/shared/services/base/models/http-options.model.js +1 -1
  824. package/esm2015/lib/shared/services/base/models/index.js +1 -1
  825. package/esm2015/lib/shared/services/base/models/operation-options.model.js +1 -1
  826. package/esm2015/lib/shared/services/base/models/query-options.model.js +1 -1
  827. package/esm2015/lib/shared/services/base/models/request-options.model.js +1 -1
  828. package/esm2015/lib/shared/services/base/override-token.service.js +31 -0
  829. package/esm2015/lib/shared/services/index.js +1 -1
  830. package/esm2015/lib/shared-services/apis-errors-messages.service.js +1 -1
  831. package/esm2015/lib/shared-services/dialog-mangment.service.js +1 -1
  832. package/esm2015/lib/shared-services/dynamic-form.service.js +1 -1
  833. package/esm2015/lib/shared-services/file-manager.adapter.js +1 -1
  834. package/esm2015/lib/shared-services/file-manager.service.js +1 -1
  835. package/esm2015/lib/shared-services/global-admin.service.js +1 -1
  836. package/esm2015/lib/shared-services/global-pdftron.service.js +1 -1
  837. package/esm2015/lib/shared-services/mainfolder.service.js +1 -1
  838. package/esm2015/lib/shared-services/publishing-document.service.js +1 -1
  839. package/esm2015/lib/shared-services/recently-viewed.service.js +1 -1
  840. package/esm2015/lib/shared-services/shared-docs.service.js +1 -1
  841. package/esm2015/lib/shared-services/shared-services.module.js +1 -1
  842. package/esm2015/lib/shared-services/upload-file.service.js +1 -1
  843. package/esm2015/lib/shared-services/upload-managment.service.js +1 -1
  844. package/esm2015/lib/shared-services/user.service.js +1 -1
  845. package/esm2015/nuxeo-development-framework.js +1 -1
  846. package/esm2015/public-api.js +1 -1
  847. package/fesm2015/nuxeo-development-framework.js +257 -175
  848. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  849. package/lib/components/diagrams/components/custom-connection.component.d.ts +1 -1
  850. package/lib/components/documents/components/document-scan/document-scan.component.d.ts +2 -1
  851. package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts +1 -1
  852. package/lib/components/ndf-signatures/emdha/services/emdha.service.d.ts +3 -5
  853. package/lib/components/ndf-signatures/services/signatures.service.d.ts +0 -1
  854. package/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.d.ts +3 -2
  855. package/lib/components/ndf-uploader/index.d.ts +2 -0
  856. package/lib/components/ndf-uploader/models/ndf-file.model.d.ts +2 -1
  857. package/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.d.ts +8 -7
  858. package/lib/components/ndf-uploader/ndf-uploader.service.d.ts +7 -5
  859. package/lib/components/ndf-uploader/nuxeo-base-url.d.ts +1 -0
  860. package/lib/components/ndf-uploader/providers/nuxeo-provider.service.d.ts +5 -3
  861. package/lib/components/ndf-uploader/providers/s3-provider.service.d.ts +5 -3
  862. package/lib/components/reports/charts/components/base-chart.component.d.ts +1 -1
  863. package/lib/components/reports/ndf-reports/base/base-chart.d.ts +1 -1
  864. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +17 -1
  865. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +1 -1
  866. package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +14 -14
  867. package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts +1 -1
  868. package/lib/shared/services/base/index.d.ts +1 -0
  869. package/lib/shared/services/base/override-token.service.d.ts +10 -0
  870. package/package.json +1 -1
  871. package/lib/components/activities-log/activities-log/activities-log.component.d.ts.map +0 -1
  872. package/lib/components/activities-log/activities-log/activities-log.service.d.ts.map +0 -1
  873. package/lib/components/activities-log/activities-log.module.d.ts.map +0 -1
  874. package/lib/components/activity/activity/activity.component.d.ts.map +0 -1
  875. package/lib/components/activity/activity.module.d.ts.map +0 -1
  876. package/lib/components/attachment-item/attachment-item/attachment-item.component.d.ts.map +0 -1
  877. package/lib/components/attachment-item/attachment-item.module.d.ts.map +0 -1
  878. package/lib/components/attachment-modal/attachment-modal.module.d.ts.map +0 -1
  879. package/lib/components/attachment-modal/attachments/attachments.component.d.ts.map +0 -1
  880. package/lib/components/avatar/avatar/avatar.component.d.ts.map +0 -1
  881. package/lib/components/avatar/avatar.module.d.ts.map +0 -1
  882. package/lib/components/card/card.component.d.ts.map +0 -1
  883. package/lib/components/card/card.module.d.ts.map +0 -1
  884. package/lib/components/comments/comments.module.d.ts.map +0 -1
  885. package/lib/components/comments/components/comment-item/comment-item.component.d.ts.map +0 -1
  886. package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts.map +0 -1
  887. package/lib/components/comments/components/comments-list/comments-list.component.d.ts.map +0 -1
  888. package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts.map +0 -1
  889. package/lib/components/comments/constants/comment.d.ts.map +0 -1
  890. package/lib/components/comments/services/comment-api.service.d.ts.map +0 -1
  891. package/lib/components/confirm-caller/confirm-caller.dialog.d.ts.map +0 -1
  892. package/lib/components/confirm-caller/confirm-caller.module.d.ts.map +0 -1
  893. package/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.d.ts.map +0 -1
  894. package/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.d.ts.map +0 -1
  895. package/lib/components/confirmation-dialog/confirmation-dialog.module.d.ts.map +0 -1
  896. package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts.map +0 -1
  897. package/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.d.ts.map +0 -1
  898. package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts.map +0 -1
  899. package/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.d.ts.map +0 -1
  900. package/lib/components/correspondence-relation/components/versions/versions.component.d.ts.map +0 -1
  901. package/lib/components/correspondence-relation/correspondence-relation.module.d.ts.map +0 -1
  902. package/lib/components/correspondence-relation/services/correspondence-realation.service.d.ts.map +0 -1
  903. package/lib/components/correspondence-relation/services/viewer-files.service.d.ts.map +0 -1
  904. package/lib/components/create-entity/create-entity/create-entity.component.d.ts.map +0 -1
  905. package/lib/components/create-entity/create-entity.module.d.ts.map +0 -1
  906. package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts.map +0 -1
  907. package/lib/components/cts-tags/cts-tags.module.d.ts.map +0 -1
  908. package/lib/components/cts-tags/services/tags-api.service.d.ts.map +0 -1
  909. package/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.d.ts.map +0 -1
  910. package/lib/components/custom-toastr/custom-toastr.module.d.ts.map +0 -1
  911. package/lib/components/custom-toastr/interfaces/toast-type.interface.d.ts.map +0 -1
  912. package/lib/components/custom-toastr/services/custom-toastr.service.d.ts.map +0 -1
  913. package/lib/components/diagrams/components/base-node.component.d.ts.map +0 -1
  914. package/lib/components/diagrams/components/circle-node/circle-node.component.d.ts.map +0 -1
  915. package/lib/components/diagrams/components/connection-label.component.d.ts.map +0 -1
  916. package/lib/components/diagrams/components/content-node/content-node.component.d.ts.map +0 -1
  917. package/lib/components/diagrams/components/custom-connection.component.d.ts.map +0 -1
  918. package/lib/components/diagrams/components/custom-socket.component.d.ts.map +0 -1
  919. package/lib/components/diagrams/components/gateway-node/gateway-node.component.d.ts.map +0 -1
  920. package/lib/components/diagrams/components/gateway-ports.component.d.ts.map +0 -1
  921. package/lib/components/diagrams/components/index.d.ts.map +0 -1
  922. package/lib/components/diagrams/components/node-icon.component.d.ts.map +0 -1
  923. package/lib/components/diagrams/components/node-inputs.component.d.ts.map +0 -1
  924. package/lib/components/diagrams/components/node-outputs.component.d.ts.map +0 -1
  925. package/lib/components/diagrams/components/node-ports.component.d.ts.map +0 -1
  926. package/lib/components/diagrams/components/remove-button.component.d.ts.map +0 -1
  927. package/lib/components/diagrams/components/status-icon.component.d.ts.map +0 -1
  928. package/lib/components/diagrams/components/template-node/template-node.component.d.ts.map +0 -1
  929. package/lib/components/diagrams/components/zoom-control.component.d.ts.map +0 -1
  930. package/lib/components/diagrams/constants/defaults.d.ts.map +0 -1
  931. package/lib/components/diagrams/constants/direction.d.ts.map +0 -1
  932. package/lib/components/diagrams/constants/index.d.ts.map +0 -1
  933. package/lib/components/diagrams/constants/message-type.d.ts.map +0 -1
  934. package/lib/components/diagrams/constants/node-type.d.ts.map +0 -1
  935. package/lib/components/diagrams/constants/notify-events.d.ts.map +0 -1
  936. package/lib/components/diagrams/constants/sizes.d.ts.map +0 -1
  937. package/lib/components/diagrams/constants/status.d.ts.map +0 -1
  938. package/lib/components/diagrams/diagrams.module.d.ts.map +0 -1
  939. package/lib/components/diagrams/directive/diagram.directive.d.ts.map +0 -1
  940. package/lib/components/diagrams/directive/index.d.ts.map +0 -1
  941. package/lib/components/diagrams/editor/customize.d.ts.map +0 -1
  942. package/lib/components/diagrams/editor/editor.d.ts.map +0 -1
  943. package/lib/components/diagrams/editor/index.d.ts.map +0 -1
  944. package/lib/components/diagrams/editor/overrides/connection-path.transformers.d.ts.map +0 -1
  945. package/lib/components/diagrams/editor/overrides/index.d.ts.map +0 -1
  946. package/lib/components/diagrams/editor/path-plugin.d.ts.map +0 -1
  947. package/lib/components/diagrams/editor/socket-position-watcher.d.ts.map +0 -1
  948. package/lib/components/diagrams/index.d.ts.map +0 -1
  949. package/lib/components/diagrams/models/base-node.model.d.ts.map +0 -1
  950. package/lib/components/diagrams/models/circle-node.model.d.ts.map +0 -1
  951. package/lib/components/diagrams/models/connection.model.d.ts.map +0 -1
  952. package/lib/components/diagrams/models/content-node.model.d.ts.map +0 -1
  953. package/lib/components/diagrams/models/gate-way.model.d.ts.map +0 -1
  954. package/lib/components/diagrams/models/index.d.ts.map +0 -1
  955. package/lib/components/diagrams/models/ports.model.d.ts.map +0 -1
  956. package/lib/components/diagrams/models/socket.model.d.ts.map +0 -1
  957. package/lib/components/diagrams/models/template-node.model.d.ts.map +0 -1
  958. package/lib/components/diagrams/public-api.d.ts.map +0 -1
  959. package/lib/components/diagrams/services/diagram-plugins.service.d.ts.map +0 -1
  960. package/lib/components/diagrams/services/diagram.service.d.ts.map +0 -1
  961. package/lib/components/diagrams/services/index.d.ts.map +0 -1
  962. package/lib/components/diagrams/services/message.service.d.ts.map +0 -1
  963. package/lib/components/diagrams/services/workflow.service.d.ts.map +0 -1
  964. package/lib/components/diagrams/types/common.type.d.ts.map +0 -1
  965. package/lib/components/diagrams/types/connection-config.type.d.ts.map +0 -1
  966. package/lib/components/diagrams/types/connection-label.type.d.ts.map +0 -1
  967. package/lib/components/diagrams/types/customization.type.d.ts.map +0 -1
  968. package/lib/components/diagrams/types/diagram-config.type.d.ts.map +0 -1
  969. package/lib/components/diagrams/types/diagram-editor.type.d.ts.map +0 -1
  970. package/lib/components/diagrams/types/emitter-type.d.ts.map +0 -1
  971. package/lib/components/diagrams/types/index.d.ts.map +0 -1
  972. package/lib/components/diagrams/types/layout.type.d.ts.map +0 -1
  973. package/lib/components/diagrams/types/node-content.d.ts.map +0 -1
  974. package/lib/components/diagrams/types/node-definition.d.ts.map +0 -1
  975. package/lib/components/diagrams/types/node-status.type.d.ts.map +0 -1
  976. package/lib/components/diagrams/types/node.type.d.ts.map +0 -1
  977. package/lib/components/diagrams/types/notify-event.type.d.ts.map +0 -1
  978. package/lib/components/diagrams/types/path.type.d.ts.map +0 -1
  979. package/lib/components/diagrams/types/ports-config.type.d.ts.map +0 -1
  980. package/lib/components/diagrams/types/schemes.type.d.ts.map +0 -1
  981. package/lib/components/diagrams/types/socket.type.d.ts.map +0 -1
  982. package/lib/components/diagrams/utilities/common.d.ts.map +0 -1
  983. package/lib/components/diagrams/utilities/index.d.ts.map +0 -1
  984. package/lib/components/diagrams/utilities/random.d.ts.map +0 -1
  985. package/lib/components/diagrams/utilities/remove.util.d.ts.map +0 -1
  986. package/lib/components/diagrams/utilities/serialize.d.ts.map +0 -1
  987. package/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.d.ts.map +0 -1
  988. package/lib/components/display-suitable-icon/display-suitable-icon/icon.service.d.ts.map +0 -1
  989. package/lib/components/display-suitable-icon/display-suitable-icon.module.d.ts.map +0 -1
  990. package/lib/components/documents/components/attachments-list/attachments-list.component.d.ts.map +0 -1
  991. package/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.d.ts.map +0 -1
  992. package/lib/components/documents/components/document-list/documents-list.component.d.ts.map +0 -1
  993. package/lib/components/documents/components/document-scan/document-scan.component.d.ts.map +0 -1
  994. package/lib/components/documents/components/document-scan/document-scan.service.d.ts.map +0 -1
  995. package/lib/components/documents/components/document-upload/document-upload.component.d.ts.map +0 -1
  996. package/lib/components/documents/components/documents/documents.component.d.ts.map +0 -1
  997. package/lib/components/documents/constants/document-templates.d.ts.map +0 -1
  998. package/lib/components/documents/constants/documents.d.ts.map +0 -1
  999. package/lib/components/documents/documents.module.d.ts.map +0 -1
  1000. package/lib/components/documents/services/document-templates.service.d.ts.map +0 -1
  1001. package/lib/components/documents/services/documents.service.d.ts.map +0 -1
  1002. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts.map +0 -1
  1003. package/lib/components/dynamic-chart/dynamic-chart.module.d.ts.map +0 -1
  1004. package/lib/components/dynamic-chart/services/chart-data.service.d.ts.map +0 -1
  1005. package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts.map +0 -1
  1006. package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts.map +0 -1
  1007. package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts.map +0 -1
  1008. package/lib/components/dynamic-filter/dynamic-filter.module.d.ts.map +0 -1
  1009. package/lib/components/dynamic-form/components/department-form/department-form.component.d.ts.map +0 -1
  1010. package/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.d.ts.map +0 -1
  1011. package/lib/components/dynamic-form/components/dynamic-form/fields.adapter.d.ts.map +0 -1
  1012. package/lib/components/dynamic-form/components/dynamic-form/form-builder.service.d.ts.map +0 -1
  1013. package/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.d.ts.map +0 -1
  1014. package/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.d.ts.map +0 -1
  1015. package/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.d.ts.map +0 -1
  1016. package/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.d.ts.map +0 -1
  1017. package/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.d.ts.map +0 -1
  1018. package/lib/components/dynamic-form/components/dynamic-form-department/constants/department.d.ts.map +0 -1
  1019. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts.map +0 -1
  1020. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.d.ts.map +0 -1
  1021. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts.map +0 -1
  1022. package/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.d.ts.map +0 -1
  1023. package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts.map +0 -1
  1024. package/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.d.ts.map +0 -1
  1025. package/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.d.ts.map +0 -1
  1026. package/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.d.ts.map +0 -1
  1027. package/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.d.ts.map +0 -1
  1028. package/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.d.ts.map +0 -1
  1029. package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts.map +0 -1
  1030. package/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.d.ts.map +0 -1
  1031. package/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.d.ts.map +0 -1
  1032. package/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.d.ts.map +0 -1
  1033. package/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.d.ts.map +0 -1
  1034. package/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.d.ts.map +0 -1
  1035. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts.map +0 -1
  1036. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts.map +0 -1
  1037. package/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.d.ts.map +0 -1
  1038. package/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.d.ts.map +0 -1
  1039. package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts.map +0 -1
  1040. package/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.d.ts.map +0 -1
  1041. package/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.d.ts.map +0 -1
  1042. package/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.d.ts.map +0 -1
  1043. package/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.d.ts.map +0 -1
  1044. package/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.d.ts.map +0 -1
  1045. package/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.formio.d.ts.map +0 -1
  1046. package/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.d.ts.map +0 -1
  1047. package/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.d.ts.map +0 -1
  1048. package/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.d.ts.map +0 -1
  1049. package/lib/components/dynamic-form/dynamic-form.module.d.ts.map +0 -1
  1050. package/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.d.ts.map +0 -1
  1051. package/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.d.ts.map +0 -1
  1052. package/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.d.ts.map +0 -1
  1053. package/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.d.ts.map +0 -1
  1054. package/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.d.ts.map +0 -1
  1055. package/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.d.ts.map +0 -1
  1056. package/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.d.ts.map +0 -1
  1057. package/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.d.ts.map +0 -1
  1058. package/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.d.ts.map +0 -1
  1059. package/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.d.ts.map +0 -1
  1060. package/lib/components/dynamic-form/models/dynamic-form-baseitem.model.d.ts.map +0 -1
  1061. package/lib/components/dynamic-form/models/dynamic-form-boolitem.model.d.ts.map +0 -1
  1062. package/lib/components/dynamic-form/models/dynamic-form-dateitem.model.d.ts.map +0 -1
  1063. package/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.d.ts.map +0 -1
  1064. package/lib/components/dynamic-form/models/dynamic-form-mapitem.model.d.ts.map +0 -1
  1065. package/lib/components/dynamic-form/models/dynamic-form-selectitem.model.d.ts.map +0 -1
  1066. package/lib/components/dynamic-form/models/dynamic-form-textitem.model.d.ts.map +0 -1
  1067. package/lib/components/dynamic-form/models/dynamic-form.models.d.ts.map +0 -1
  1068. package/lib/components/dynamic-form/services/card-item-types.service.d.ts.map +0 -1
  1069. package/lib/components/dynamic-form/services/dynamic-component-mapper.service.d.ts.map +0 -1
  1070. package/lib/components/dynamic-form/services/dynamic-form-update.service.d.ts.map +0 -1
  1071. package/lib/components/dynamic-form/services/vocabulary-api.service.d.ts.map +0 -1
  1072. package/lib/components/dynamic-form/validators/length-validator.d.ts.map +0 -1
  1073. package/lib/components/dynamic-form/validators/regex-validator.d.ts.map +0 -1
  1074. package/lib/components/dynamic-form/validators/required-validator.d.ts.map +0 -1
  1075. package/lib/components/dynamic-form/validators/value-validator.d.ts.map +0 -1
  1076. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts.map +0 -1
  1077. package/lib/components/dynamic-search/dynamic-search.module.d.ts.map +0 -1
  1078. package/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.d.ts.map +0 -1
  1079. package/lib/components/dynamic-tabs/dynamic-tabs.module.d.ts.map +0 -1
  1080. package/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.d.ts.map +0 -1
  1081. package/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.d.ts.map +0 -1
  1082. package/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.d.ts.map +0 -1
  1083. package/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.d.ts.map +0 -1
  1084. package/lib/components/dynamic-view/data-viewer/data-viewer.component.d.ts.map +0 -1
  1085. package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts.map +0 -1
  1086. package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts.map +0 -1
  1087. package/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.d.ts.map +0 -1
  1088. package/lib/components/dynamic-view/dynamic-view.module.d.ts.map +0 -1
  1089. package/lib/components/dynamic-view/dynamic-viewe.service.d.ts.map +0 -1
  1090. package/lib/components/dynamic-view/list-viewer/list-viewer.component.d.ts.map +0 -1
  1091. package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts.map +0 -1
  1092. package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts.map +0 -1
  1093. package/lib/components/file-manger/components/copy/copy.component.d.ts.map +0 -1
  1094. package/lib/components/file-manger/components/create-directory/create-directory.component.d.ts.map +0 -1
  1095. package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts.map +0 -1
  1096. package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts.map +0 -1
  1097. package/lib/components/file-manger/components/delete/delete.component.d.ts.map +0 -1
  1098. package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts.map +0 -1
  1099. package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts.map +0 -1
  1100. package/lib/components/file-manger/components/move/move.component.d.ts.map +0 -1
  1101. package/lib/components/file-manger/components/publish-dialog/publish-dialog.component.d.ts.map +0 -1
  1102. package/lib/components/file-manger/components/rename/rename.component.d.ts.map +0 -1
  1103. package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts.map +0 -1
  1104. package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts.map +0 -1
  1105. package/lib/components/file-manger/components/sidepanel/sidepanel.component.d.ts.map +0 -1
  1106. package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts.map +0 -1
  1107. package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts.map +0 -1
  1108. package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts.map +0 -1
  1109. package/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.d.ts.map +0 -1
  1110. package/lib/components/file-manger/file-manager.abstract.d.ts.map +0 -1
  1111. package/lib/components/file-manger/file-manger.module.d.ts.map +0 -1
  1112. package/lib/components/file-manger/models/file-manager-config.model.d.ts.map +0 -1
  1113. package/lib/components/file-manger/models/index.d.ts.map +0 -1
  1114. package/lib/components/file-manger/models/pagination-payload.mode.d.ts.map +0 -1
  1115. package/lib/components/file-manger/models/pagination-response.model.d.ts.map +0 -1
  1116. package/lib/components/filter/filter/filter.component.d.ts.map +0 -1
  1117. package/lib/components/filter/filter.module.d.ts.map +0 -1
  1118. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.d.ts.map +0 -1
  1119. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.d.ts.map +0 -1
  1120. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.d.ts.map +0 -1
  1121. package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.d.ts.map +0 -1
  1122. package/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.d.ts.map +0 -1
  1123. package/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.d.ts.map +0 -1
  1124. package/lib/components/hijri-gregorian-datepicker/services/date-helper.service.d.ts.map +0 -1
  1125. package/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.d.ts.map +0 -1
  1126. package/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.d.ts.map +0 -1
  1127. package/lib/components/hijri-gregorian-datepicker/utils/consts.d.ts.map +0 -1
  1128. package/lib/components/latest-activity/components/activity-line/activity-line.component.d.ts.map +0 -1
  1129. package/lib/components/latest-activity/components/latest-activity/latest-activity.component.d.ts.map +0 -1
  1130. package/lib/components/latest-activity/components/single-activity/single-activity.component.d.ts.map +0 -1
  1131. package/lib/components/latest-activity/constants/activitylog.d.ts.map +0 -1
  1132. package/lib/components/latest-activity/latest-activity.module.d.ts.map +0 -1
  1133. package/lib/components/latest-activity/services/activity-log.service.d.ts.map +0 -1
  1134. package/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.d.ts.map +0 -1
  1135. package/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.d.ts.map +0 -1
  1136. package/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.d.ts.map +0 -1
  1137. package/lib/components/ndf-config-editor/components/editor-mode-switch.component.d.ts.map +0 -1
  1138. package/lib/components/ndf-config-editor/components/index.d.ts.map +0 -1
  1139. package/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.d.ts.map +0 -1
  1140. package/lib/components/ndf-config-editor/config.token.d.ts.map +0 -1
  1141. package/lib/components/ndf-config-editor/constants/index.d.ts.map +0 -1
  1142. package/lib/components/ndf-config-editor/constants/mode.d.ts.map +0 -1
  1143. package/lib/components/ndf-config-editor/constants/query.d.ts.map +0 -1
  1144. package/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.d.ts.map +0 -1
  1145. package/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.d.ts.map +0 -1
  1146. package/lib/components/ndf-config-editor/containers/index.d.ts.map +0 -1
  1147. package/lib/components/ndf-config-editor/containers/monaco-editor.component.d.ts.map +0 -1
  1148. package/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.d.ts.map +0 -1
  1149. package/lib/components/ndf-config-editor/index.d.ts.map +0 -1
  1150. package/lib/components/ndf-config-editor/metadata-token.d.ts.map +0 -1
  1151. package/lib/components/ndf-config-editor/models/config.d.ts.map +0 -1
  1152. package/lib/components/ndf-config-editor/models/dialog-data.d.ts.map +0 -1
  1153. package/lib/components/ndf-config-editor/models/editor-model.d.ts.map +0 -1
  1154. package/lib/components/ndf-config-editor/models/index.d.ts.map +0 -1
  1155. package/lib/components/ndf-config-editor/models/payload-data.d.ts.map +0 -1
  1156. package/lib/components/ndf-config-editor/models/type-helper.d.ts.map +0 -1
  1157. package/lib/components/ndf-config-editor/ndf-config-editor.module.d.ts.map +0 -1
  1158. package/lib/components/ndf-config-editor/pipes/index.d.ts.map +0 -1
  1159. package/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.d.ts.map +0 -1
  1160. package/lib/components/ndf-config-editor/pipes/validate-object.pipe.d.ts.map +0 -1
  1161. package/lib/components/ndf-config-editor/public/editor-navigate-button.d.ts.map +0 -1
  1162. package/lib/components/ndf-config-editor/public/index.d.ts.map +0 -1
  1163. package/lib/components/ndf-config-editor/public-api.d.ts.map +0 -1
  1164. package/lib/components/ndf-config-editor/services/data-access.service.d.ts.map +0 -1
  1165. package/lib/components/ndf-config-editor/services/data-store.service.d.ts.map +0 -1
  1166. package/lib/components/ndf-config-editor/services/index.d.ts.map +0 -1
  1167. package/lib/components/ndf-config-editor/services/monaco.loader.service.d.ts.map +0 -1
  1168. package/lib/components/ndf-config-editor/utility/index.d.ts.map +0 -1
  1169. package/lib/components/ndf-config-editor/utility/json.d.ts.map +0 -1
  1170. package/lib/components/ndf-datepicker/adapters/hijri-adapter.d.ts.map +0 -1
  1171. package/lib/components/ndf-datepicker/adapters/index.d.ts.map +0 -1
  1172. package/lib/components/ndf-datepicker/adapters/moment-adapter.d.ts.map +0 -1
  1173. package/lib/components/ndf-datepicker/base/base-value-accessor.d.ts.map +0 -1
  1174. package/lib/components/ndf-datepicker/base/index.d.ts.map +0 -1
  1175. package/lib/components/ndf-datepicker/components/base-datepicker.d.ts.map +0 -1
  1176. package/lib/components/ndf-datepicker/components/index.d.ts.map +0 -1
  1177. package/lib/components/ndf-datepicker/components/input-date.component.d.ts.map +0 -1
  1178. package/lib/components/ndf-datepicker/components/input-range-date.component.d.ts.map +0 -1
  1179. package/lib/components/ndf-datepicker/constants/date-locale-keys.d.ts.map +0 -1
  1180. package/lib/components/ndf-datepicker/constants/date-picker.d.ts.map +0 -1
  1181. package/lib/components/ndf-datepicker/constants/date-type.d.ts.map +0 -1
  1182. package/lib/components/ndf-datepicker/constants/formats.d.ts.map +0 -1
  1183. package/lib/components/ndf-datepicker/constants/hijri-dates-names.d.ts.map +0 -1
  1184. package/lib/components/ndf-datepicker/constants/index.d.ts.map +0 -1
  1185. package/lib/components/ndf-datepicker/containers/datepicker-container.d.ts.map +0 -1
  1186. package/lib/components/ndf-datepicker/containers/index.d.ts.map +0 -1
  1187. package/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.d.ts.map +0 -1
  1188. package/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.d.ts.map +0 -1
  1189. package/lib/components/ndf-datepicker/index.d.ts.map +0 -1
  1190. package/lib/components/ndf-datepicker/models/data-types.d.ts.map +0 -1
  1191. package/lib/components/ndf-datepicker/models/index.d.ts.map +0 -1
  1192. package/lib/components/ndf-datepicker/models/value-object.d.ts.map +0 -1
  1193. package/lib/components/ndf-datepicker/ndf-datepicker.component.d.ts.map +0 -1
  1194. package/lib/components/ndf-datepicker/ndf-datepicker.module.d.ts.map +0 -1
  1195. package/lib/components/ndf-datepicker/services/calendar.service.d.ts.map +0 -1
  1196. package/lib/components/ndf-datepicker/services/index.d.ts.map +0 -1
  1197. package/lib/components/ndf-datepicker/services/localize-state.service.d.ts.map +0 -1
  1198. package/lib/components/ndf-filters/base/base-aggregation-field.component.d.ts.map +0 -1
  1199. package/lib/components/ndf-filters/base/base-checkbox-radio.component.d.ts.map +0 -1
  1200. package/lib/components/ndf-filters/base/base-custom-field.component.d.ts.map +0 -1
  1201. package/lib/components/ndf-filters/base/base-predicate-field.component.d.ts.map +0 -1
  1202. package/lib/components/ndf-filters/base/base-value-accessor.component.d.ts.map +0 -1
  1203. package/lib/components/ndf-filters/base/index.d.ts.map +0 -1
  1204. package/lib/components/ndf-filters/components/__parts/field-header.component.d.ts.map +0 -1
  1205. package/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.d.ts.map +0 -1
  1206. package/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.d.ts.map +0 -1
  1207. package/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.d.ts.map +0 -1
  1208. package/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.d.ts.map +0 -1
  1209. package/lib/components/ndf-filters/components/__parts/filter-empty-message.component.d.ts.map +0 -1
  1210. package/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.d.ts.map +0 -1
  1211. package/lib/components/ndf-filters/components/__parts/filter-options-sort/filter-options-sort.component.d.ts.map +0 -1
  1212. package/lib/components/ndf-filters/components/__parts/filter-search-input/filter-search-input.component.d.ts.map +0 -1
  1213. package/lib/components/ndf-filters/components/__parts/html-dialog/html-dialog.component.d.ts.map +0 -1
  1214. package/lib/components/ndf-filters/components/__parts/index.d.ts.map +0 -1
  1215. package/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.d.ts.map +0 -1
  1216. package/lib/components/ndf-filters/components/aggregation-checkbox/aggregation-checkbox.component.d.ts.map +0 -1
  1217. package/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.d.ts.map +0 -1
  1218. package/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.d.ts.map +0 -1
  1219. package/lib/components/ndf-filters/components/aggregation-radio/aggregation-radio.component.d.ts.map +0 -1
  1220. package/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.d.ts.map +0 -1
  1221. package/lib/components/ndf-filters/components/aggregation-switch/aggregation-switch.component.d.ts.map +0 -1
  1222. package/lib/components/ndf-filters/components/index.d.ts.map +0 -1
  1223. package/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.d.ts.map +0 -1
  1224. package/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.d.ts.map +0 -1
  1225. package/lib/components/ndf-filters/constants/common.d.ts.map +0 -1
  1226. package/lib/components/ndf-filters/constants/field.d.ts.map +0 -1
  1227. package/lib/components/ndf-filters/constants/index.d.ts.map +0 -1
  1228. package/lib/components/ndf-filters/constants/operators.d.ts.map +0 -1
  1229. package/lib/components/ndf-filters/constants/sort.d.ts.map +0 -1
  1230. package/lib/components/ndf-filters/constants/type.d.ts.map +0 -1
  1231. package/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.d.ts.map +0 -1
  1232. package/lib/components/ndf-filters/containers/base-field.d.ts.map +0 -1
  1233. package/lib/components/ndf-filters/containers/custom-field/custom-field.component.d.ts.map +0 -1
  1234. package/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.d.ts.map +0 -1
  1235. package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts.map +0 -1
  1236. package/lib/components/ndf-filters/containers/index.d.ts.map +0 -1
  1237. package/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.d.ts.map +0 -1
  1238. package/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.d.ts.map +0 -1
  1239. package/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.d.ts.map +0 -1
  1240. package/lib/components/ndf-filters/custom-components/active-user-switch/user-types.d.ts.map +0 -1
  1241. package/lib/components/ndf-filters/custom-components/aggregation-group/aggregation-group.component.d.ts.map +0 -1
  1242. package/lib/components/ndf-filters/custom-components/aggregation-group/map-aggregation-config.d.ts.map +0 -1
  1243. package/lib/components/ndf-filters/custom-components/index.d.ts.map +0 -1
  1244. package/lib/components/ndf-filters/directives/autocomplete-template.directive.d.ts.map +0 -1
  1245. package/lib/components/ndf-filters/directives/checkbox-template.directive.d.ts.map +0 -1
  1246. package/lib/components/ndf-filters/directives/custom-template.directive.d.ts.map +0 -1
  1247. package/lib/components/ndf-filters/directives/date-template.directive.d.ts.map +0 -1
  1248. package/lib/components/ndf-filters/directives/dropdown-label-template.directive.d.ts.map +0 -1
  1249. package/lib/components/ndf-filters/directives/dropdown-template.directive.d.ts.map +0 -1
  1250. package/lib/components/ndf-filters/directives/index.d.ts.map +0 -1
  1251. package/lib/components/ndf-filters/directives/radio-template.directive.d.ts.map +0 -1
  1252. package/lib/components/ndf-filters/directives/switch-template.directive.d.ts.map +0 -1
  1253. package/lib/components/ndf-filters/index.d.ts.map +0 -1
  1254. package/lib/components/ndf-filters/models/aggregation-field-config.d.ts.map +0 -1
  1255. package/lib/components/ndf-filters/models/aggregation-response.model.d.ts.map +0 -1
  1256. package/lib/components/ndf-filters/models/base-field-config.d.ts.map +0 -1
  1257. package/lib/components/ndf-filters/models/common.d.ts.map +0 -1
  1258. package/lib/components/ndf-filters/models/custom-field-config.d.ts.map +0 -1
  1259. package/lib/components/ndf-filters/models/field-config.model.d.ts.map +0 -1
  1260. package/lib/components/ndf-filters/models/field-options/autocomplete-options.d.ts.map +0 -1
  1261. package/lib/components/ndf-filters/models/field-options/checkbox-options.d.ts.map +0 -1
  1262. package/lib/components/ndf-filters/models/field-options/common-utils.d.ts.map +0 -1
  1263. package/lib/components/ndf-filters/models/field-options/custom-fields-options.d.ts.map +0 -1
  1264. package/lib/components/ndf-filters/models/field-options/custom-options.d.ts.map +0 -1
  1265. package/lib/components/ndf-filters/models/field-options/date-list-options.d.ts.map +0 -1
  1266. package/lib/components/ndf-filters/models/field-options/date-options.d.ts.map +0 -1
  1267. package/lib/components/ndf-filters/models/field-options/dropdown-options.d.ts.map +0 -1
  1268. package/lib/components/ndf-filters/models/field-options/index.d.ts.map +0 -1
  1269. package/lib/components/ndf-filters/models/field-options/input-options.d.ts.map +0 -1
  1270. package/lib/components/ndf-filters/models/field-options/radio-options.d.ts.map +0 -1
  1271. package/lib/components/ndf-filters/models/field-options/switch-options.d.ts.map +0 -1
  1272. package/lib/components/ndf-filters/models/filter-option.model.d.ts.map +0 -1
  1273. package/lib/components/ndf-filters/models/form-query-request.d.ts.map +0 -1
  1274. package/lib/components/ndf-filters/models/index.d.ts.map +0 -1
  1275. package/lib/components/ndf-filters/models/operator-value-object.d.ts.map +0 -1
  1276. package/lib/components/ndf-filters/models/predicate-field-config.d.ts.map +0 -1
  1277. package/lib/components/ndf-filters/models/types-helper.d.ts.map +0 -1
  1278. package/lib/components/ndf-filters/models/value-object.model.d.ts.map +0 -1
  1279. package/lib/components/ndf-filters/ndf-filters-panel.module.d.ts.map +0 -1
  1280. package/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.d.ts.map +0 -1
  1281. package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts.map +0 -1
  1282. package/lib/components/ndf-filters/pipes/filter.pipe.d.ts.map +0 -1
  1283. package/lib/components/ndf-filters/pipes/hash-translate.pipe.d.ts.map +0 -1
  1284. package/lib/components/ndf-filters/pipes/index.d.ts.map +0 -1
  1285. package/lib/components/ndf-filters/pipes/localized-label.pipe.d.ts.map +0 -1
  1286. package/lib/components/ndf-filters/pipes/roles-filters.pipe.d.ts.map +0 -1
  1287. package/lib/components/ndf-filters/pipes/sanitizer.pipe.d.ts.map +0 -1
  1288. package/lib/components/ndf-filters/pipes/sort.pipe.d.ts.map +0 -1
  1289. package/lib/components/ndf-filters/pipes/tooltip.pipe.d.ts.map +0 -1
  1290. package/lib/components/ndf-filters/public-api.d.ts.map +0 -1
  1291. package/lib/components/ndf-filters/services/aggregation-field.service.d.ts.map +0 -1
  1292. package/lib/components/ndf-filters/services/dynamic-component-loader.service.d.ts.map +0 -1
  1293. package/lib/components/ndf-filters/services/filters-mapper.service.d.ts.map +0 -1
  1294. package/lib/components/ndf-filters/services/filters-query.service.d.ts.map +0 -1
  1295. package/lib/components/ndf-filters/services/index.d.ts.map +0 -1
  1296. package/lib/components/ndf-filters/utility/index.d.ts.map +0 -1
  1297. package/lib/components/ndf-filters/utility/nxql-query.d.ts.map +0 -1
  1298. package/lib/components/ndf-filters/utility/nxql.d.ts.map +0 -1
  1299. package/lib/components/ndf-filters/utility/object.d.ts.map +0 -1
  1300. package/lib/components/ndf-panel/component/ndf-panel.component.d.ts.map +0 -1
  1301. package/lib/components/ndf-panel/index.d.ts.map +0 -1
  1302. package/lib/components/ndf-panel/ndf-panel.module.d.ts.map +0 -1
  1303. package/lib/components/ndf-scanner/index.d.ts.map +0 -1
  1304. package/lib/components/ndf-scanner/ndf-scanner.component.d.ts.map +0 -1
  1305. package/lib/components/ndf-scanner/ndf-scanner.module.d.ts.map +0 -1
  1306. package/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.d.ts.map +0 -1
  1307. package/lib/components/ndf-signatures/emdha/dialogs/index.d.ts.map +0 -1
  1308. package/lib/components/ndf-signatures/emdha/index.d.ts.map +0 -1
  1309. package/lib/components/ndf-signatures/emdha/services/emdha.service.d.ts.map +0 -1
  1310. package/lib/components/ndf-signatures/emdha/services/index.d.ts.map +0 -1
  1311. package/lib/components/ndf-signatures/index.d.ts.map +0 -1
  1312. package/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.d.ts.map +0 -1
  1313. package/lib/components/ndf-signatures/ndf-signatures.module.d.ts.map +0 -1
  1314. package/lib/components/ndf-signatures/services/index.d.ts.map +0 -1
  1315. package/lib/components/ndf-signatures/services/signatures.service.d.ts.map +0 -1
  1316. package/lib/components/ndf-tabs/component/ndf-tabs.component.d.ts.map +0 -1
  1317. package/lib/components/ndf-tabs/index.d.ts.map +0 -1
  1318. package/lib/components/ndf-tabs/ndf-tabs.module.d.ts.map +0 -1
  1319. package/lib/components/ndf-tabs/tab.type.d.ts.map +0 -1
  1320. package/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.d.ts.map +0 -1
  1321. package/lib/components/ndf-uploader/components/index.d.ts.map +0 -1
  1322. package/lib/components/ndf-uploader/config/index.d.ts.map +0 -1
  1323. package/lib/components/ndf-uploader/config/uploader.config.d.ts.map +0 -1
  1324. package/lib/components/ndf-uploader/constant/file-content.d.ts.map +0 -1
  1325. package/lib/components/ndf-uploader/constant/index.d.ts.map +0 -1
  1326. package/lib/components/ndf-uploader/helpers/index.d.ts.map +0 -1
  1327. package/lib/components/ndf-uploader/helpers/uploader.helper.d.ts.map +0 -1
  1328. package/lib/components/ndf-uploader/index.d.ts.map +0 -1
  1329. package/lib/components/ndf-uploader/models/batch.model.d.ts.map +0 -1
  1330. package/lib/components/ndf-uploader/models/index.d.ts.map +0 -1
  1331. package/lib/components/ndf-uploader/models/ndf-file.model.d.ts.map +0 -1
  1332. package/lib/components/ndf-uploader/models/provider.model.d.ts.map +0 -1
  1333. package/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.d.ts.map +0 -1
  1334. package/lib/components/ndf-uploader/ndf-uploader.module.d.ts.map +0 -1
  1335. package/lib/components/ndf-uploader/ndf-uploader.service.d.ts.map +0 -1
  1336. package/lib/components/ndf-uploader/providers/index.d.ts.map +0 -1
  1337. package/lib/components/ndf-uploader/providers/nuxeo-provider.service.d.ts.map +0 -1
  1338. package/lib/components/ndf-uploader/providers/s3-provider.service.d.ts.map +0 -1
  1339. package/lib/components/no-data-found/index.d.ts.map +0 -1
  1340. package/lib/components/no-data-found/no-data-found.component.d.ts.map +0 -1
  1341. package/lib/components/no-data-found/no-data.module.d.ts.map +0 -1
  1342. package/lib/components/notifications/components/base-list-notfications.component.d.ts.map +0 -1
  1343. package/lib/components/notifications/components/base-notifications.component.d.ts.map +0 -1
  1344. package/lib/components/notifications/components/index.d.ts.map +0 -1
  1345. package/lib/components/notifications/components/notification-item/get-icon.pipe.d.ts.map +0 -1
  1346. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts.map +0 -1
  1347. package/lib/components/notifications/components/notification-sortby-toggle/notification-sortby-toggle.component.d.ts.map +0 -1
  1348. package/lib/components/notifications/components/notification-source-select/notification-source-select.component.d.ts.map +0 -1
  1349. package/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.d.ts.map +0 -1
  1350. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts.map +0 -1
  1351. package/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.d.ts.map +0 -1
  1352. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts.map +0 -1
  1353. package/lib/components/notifications/components/notifications-list/options.d.ts.map +0 -1
  1354. package/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.d.ts.map +0 -1
  1355. package/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.d.ts.map +0 -1
  1356. package/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.d.ts.map +0 -1
  1357. package/lib/components/notifications/components/notifications-settings/notifications-settings.component.d.ts.map +0 -1
  1358. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.d.ts.map +0 -1
  1359. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.d.ts.map +0 -1
  1360. package/lib/components/notifications/constants/date.d.ts.map +0 -1
  1361. package/lib/components/notifications/constants/index.d.ts.map +0 -1
  1362. package/lib/components/notifications/constants/pagination.d.ts.map +0 -1
  1363. package/lib/components/notifications/constants/panel.d.ts.map +0 -1
  1364. package/lib/components/notifications/constants/status.d.ts.map +0 -1
  1365. package/lib/components/notifications/containers/index.d.ts.map +0 -1
  1366. package/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.d.ts.map +0 -1
  1367. package/lib/components/notifications/containers/notifications-list-container/options.d.ts.map +0 -1
  1368. package/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.d.ts.map +0 -1
  1369. package/lib/components/notifications/directives/button.directive.d.ts.map +0 -1
  1370. package/lib/components/notifications/directives/index.d.ts.map +0 -1
  1371. package/lib/components/notifications/directives/notification.directive.d.ts.map +0 -1
  1372. package/lib/components/notifications/index.d.ts.map +0 -1
  1373. package/lib/components/notifications/models/common.d.ts.map +0 -1
  1374. package/lib/components/notifications/models/index.d.ts.map +0 -1
  1375. package/lib/components/notifications/models/notification-definition.model.d.ts.map +0 -1
  1376. package/lib/components/notifications/models/notification-message.mode.d.ts.map +0 -1
  1377. package/lib/components/notifications/models/notification-options.d.ts.map +0 -1
  1378. package/lib/components/notifications/models/notification-setting.presenter.d.ts.map +0 -1
  1379. package/lib/components/notifications/models/notification-subscription.model.d.ts.map +0 -1
  1380. package/lib/components/notifications/models/notification.model.d.ts.map +0 -1
  1381. package/lib/components/notifications/models/notifications-list-options.d.ts.map +0 -1
  1382. package/lib/components/notifications/models/paging-response.model.d.ts.map +0 -1
  1383. package/lib/components/notifications/models/params.model.d.ts.map +0 -1
  1384. package/lib/components/notifications/models/vocabularies.d.ts.map +0 -1
  1385. package/lib/components/notifications/notifications.module.d.ts.map +0 -1
  1386. package/lib/components/notifications/public-api.d.ts.map +0 -1
  1387. package/lib/components/notifications/services/index.d.ts.map +0 -1
  1388. package/lib/components/notifications/services/listener.service.d.ts.map +0 -1
  1389. package/lib/components/notifications/services/notifications.service.d.ts.map +0 -1
  1390. package/lib/components/notifications/services/params.service.d.ts.map +0 -1
  1391. package/lib/components/notifications/services/response.service.d.ts.map +0 -1
  1392. package/lib/components/notifications/services/socket.service.d.ts.map +0 -1
  1393. package/lib/components/notifications/utilities/index.d.ts.map +0 -1
  1394. package/lib/components/notifications/utilities/response.adapter.d.ts.map +0 -1
  1395. package/lib/components/pagination/pagination/pagination.component.d.ts.map +0 -1
  1396. package/lib/components/pagination/pagination.module.d.ts.map +0 -1
  1397. package/lib/components/pdf-tron/directives/index.d.ts.map +0 -1
  1398. package/lib/components/pdf-tron/directives/ndf-tron-extract-text.directive.d.ts.map +0 -1
  1399. package/lib/components/pdf-tron/models/index.d.ts.map +0 -1
  1400. package/lib/components/pdf-tron/models/tron.model.d.ts.map +0 -1
  1401. package/lib/components/pdf-tron/pdf-tron.module.d.ts.map +0 -1
  1402. package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts.map +0 -1
  1403. package/lib/components/pdf-tron/pdftron/pdftron.service.d.ts.map +0 -1
  1404. package/lib/components/pdf-tron/pdftron/silent-pdftron.service.d.ts.map +0 -1
  1405. package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts.map +0 -1
  1406. package/lib/components/permissions/permission.service.d.ts.map +0 -1
  1407. package/lib/components/permissions/permissions/permissions.component.d.ts.map +0 -1
  1408. package/lib/components/permissions/permissions-template/permissions-template.component.d.ts.map +0 -1
  1409. package/lib/components/permissions/permissions.module.d.ts.map +0 -1
  1410. package/lib/components/reports/chart-panel.d.ts.map +0 -1
  1411. package/lib/components/reports/charts/chart.const.d.ts.map +0 -1
  1412. package/lib/components/reports/charts/chart.token.d.ts.map +0 -1
  1413. package/lib/components/reports/charts/charts.module.d.ts.map +0 -1
  1414. package/lib/components/reports/charts/components/base-chart.component.d.ts.map +0 -1
  1415. package/lib/components/reports/charts/components/chart.component.d.ts.map +0 -1
  1416. package/lib/components/reports/charts/components/data-chart.component.d.ts.map +0 -1
  1417. package/lib/components/reports/charts/components/index.d.ts.map +0 -1
  1418. package/lib/components/reports/charts/defaults/bar.d.ts.map +0 -1
  1419. package/lib/components/reports/charts/defaults/doughnut.d.ts.map +0 -1
  1420. package/lib/components/reports/charts/defaults/index.d.ts.map +0 -1
  1421. package/lib/components/reports/charts/defaults/line.d.ts.map +0 -1
  1422. package/lib/components/reports/charts/defaults/pie.d.ts.map +0 -1
  1423. package/lib/components/reports/charts/index.d.ts.map +0 -1
  1424. package/lib/components/reports/charts/models/index.d.ts.map +0 -1
  1425. package/lib/components/reports/charts/models/options.d.ts.map +0 -1
  1426. package/lib/components/reports/charts/models/plugins-options.d.ts.map +0 -1
  1427. package/lib/components/reports/charts/models/response.d.ts.map +0 -1
  1428. package/lib/components/reports/charts/models/statistic-request-config.d.ts.map +0 -1
  1429. package/lib/components/reports/charts/plugins/data-labels.d.ts.map +0 -1
  1430. package/lib/components/reports/charts/plugins/doughnut-center-text.d.ts.map +0 -1
  1431. package/lib/components/reports/charts/plugins/doughnut-empty-state.d.ts.map +0 -1
  1432. package/lib/components/reports/charts/plugins/index.d.ts.map +0 -1
  1433. package/lib/components/reports/charts/plugins/legend-margin.d.ts.map +0 -1
  1434. package/lib/components/reports/charts/plugins/scrollable-legends.d.ts.map +0 -1
  1435. package/lib/components/reports/charts/public-api.d.ts.map +0 -1
  1436. package/lib/components/reports/charts/services/index.d.ts.map +0 -1
  1437. package/lib/components/reports/charts/services/statistic.service.d.ts.map +0 -1
  1438. package/lib/components/reports/charts/utility/colors.d.ts.map +0 -1
  1439. package/lib/components/reports/charts/utility/common.d.ts.map +0 -1
  1440. package/lib/components/reports/charts/utility/css.d.ts.map +0 -1
  1441. package/lib/components/reports/charts/utility/index.d.ts.map +0 -1
  1442. package/lib/components/reports/index.d.ts.map +0 -1
  1443. package/lib/components/reports/ndf-reports/base/base-chart.d.ts.map +0 -1
  1444. package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts.map +0 -1
  1445. package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts.map +0 -1
  1446. package/lib/components/reports/ndf-reports/base/base-report.d.ts.map +0 -1
  1447. package/lib/components/reports/ndf-reports/base/index.d.ts.map +0 -1
  1448. package/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.d.ts.map +0 -1
  1449. package/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.d.ts.map +0 -1
  1450. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.d.ts.map +0 -1
  1451. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.d.ts.map +0 -1
  1452. package/lib/components/reports/ndf-reports/charts-components/index.d.ts.map +0 -1
  1453. package/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.d.ts.map +0 -1
  1454. package/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.d.ts.map +0 -1
  1455. package/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.d.ts.map +0 -1
  1456. package/lib/components/reports/ndf-reports/components/_parts/index.d.ts.map +0 -1
  1457. package/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.d.ts.map +0 -1
  1458. package/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.d.ts.map +0 -1
  1459. package/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.d.ts.map +0 -1
  1460. package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts.map +0 -1
  1461. package/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.d.ts.map +0 -1
  1462. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts.map +0 -1
  1463. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts.map +0 -1
  1464. package/lib/components/reports/ndf-reports/components/index.d.ts.map +0 -1
  1465. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts.map +0 -1
  1466. package/lib/components/reports/ndf-reports/constants/index.d.ts.map +0 -1
  1467. package/lib/components/reports/ndf-reports/constants/time-group.d.ts.map +0 -1
  1468. package/lib/components/reports/ndf-reports/containers/index.d.ts.map +0 -1
  1469. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts.map +0 -1
  1470. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts.map +0 -1
  1471. package/lib/components/reports/ndf-reports/directives/index.d.ts.map +0 -1
  1472. package/lib/components/reports/ndf-reports/directives/scrollable-div.directive.d.ts.map +0 -1
  1473. package/lib/components/reports/ndf-reports/index.d.ts.map +0 -1
  1474. package/lib/components/reports/ndf-reports/models/base.d.ts.map +0 -1
  1475. package/lib/components/reports/ndf-reports/models/common.d.ts.map +0 -1
  1476. package/lib/components/reports/ndf-reports/models/custom-definition.d.ts.map +0 -1
  1477. package/lib/components/reports/ndf-reports/models/details.d.ts.map +0 -1
  1478. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts.map +0 -1
  1479. package/lib/components/reports/ndf-reports/models/digit.d.ts.map +0 -1
  1480. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts.map +0 -1
  1481. package/lib/components/reports/ndf-reports/models/graph-definition.d.ts.map +0 -1
  1482. package/lib/components/reports/ndf-reports/models/index.d.ts.map +0 -1
  1483. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts.map +0 -1
  1484. package/lib/components/reports/ndf-reports/models/report-config.d.ts.map +0 -1
  1485. package/lib/components/reports/ndf-reports/models/report-data-source.d.ts.map +0 -1
  1486. package/lib/components/reports/ndf-reports/models/report-response.model.d.ts.map +0 -1
  1487. package/lib/components/reports/ndf-reports/models/request.d.ts.map +0 -1
  1488. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts.map +0 -1
  1489. package/lib/components/reports/ndf-reports/options/doughnut.d.ts.map +0 -1
  1490. package/lib/components/reports/ndf-reports/options/horizontal-bar.d.ts.map +0 -1
  1491. package/lib/components/reports/ndf-reports/options/index.d.ts.map +0 -1
  1492. package/lib/components/reports/ndf-reports/options/line.d.ts.map +0 -1
  1493. package/lib/components/reports/ndf-reports/options/pie.d.ts.map +0 -1
  1494. package/lib/components/reports/ndf-reports/options/vertical-bar.d.ts.map +0 -1
  1495. package/lib/components/reports/ndf-reports/public-api.d.ts.map +0 -1
  1496. package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts.map +0 -1
  1497. package/lib/components/reports/ndf-reports/services/chart-callbacks-register.services.d.ts.map +0 -1
  1498. package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts.map +0 -1
  1499. package/lib/components/reports/ndf-reports/services/chart-manager.service.d.ts.map +0 -1
  1500. package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts.map +0 -1
  1501. package/lib/components/reports/ndf-reports/services/chart-theme.service.d.ts.map +0 -1
  1502. package/lib/components/reports/ndf-reports/services/custom-reports-registry.service.d.ts.map +0 -1
  1503. package/lib/components/reports/ndf-reports/services/digit-chart.service.d.ts.map +0 -1
  1504. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts.map +0 -1
  1505. package/lib/components/reports/ndf-reports/services/index.d.ts.map +0 -1
  1506. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts.map +0 -1
  1507. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts.map +0 -1
  1508. package/lib/components/reports/ndf-reports/services/report-configuration.service.d.ts.map +0 -1
  1509. package/lib/components/reports/ndf-reports/services/report-transform.service.d.ts.map +0 -1
  1510. package/lib/components/reports/ndf-reports/services/reports-data-transformers.service.d.ts.map +0 -1
  1511. package/lib/components/reports/ndf-reports/services/reports-dialog.service.d.ts.map +0 -1
  1512. package/lib/components/reports/ndf-reports/services/reports-state.service.d.ts.map +0 -1
  1513. package/lib/components/reports/ndf-reports/utilities/dataset-colors.d.ts.map +0 -1
  1514. package/lib/components/reports/ndf-reports/utilities/index.d.ts.map +0 -1
  1515. package/lib/components/reports/ndf-reports/utilities/reports-table.mapper.d.ts.map +0 -1
  1516. package/lib/components/select/select/select.component.d.ts.map +0 -1
  1517. package/lib/components/select/select.module.d.ts.map +0 -1
  1518. package/lib/components/select-users-by-department/select-users-by-department.module.d.ts.map +0 -1
  1519. package/lib/components/select-users-by-department/select-users-by-departments/department-management.service.d.ts.map +0 -1
  1520. package/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.d.ts.map +0 -1
  1521. package/lib/components/skeleton/index.d.ts.map +0 -1
  1522. package/lib/components/skeleton/skeleton.component.d.ts.map +0 -1
  1523. package/lib/components/skeleton/skeleton.module.d.ts.map +0 -1
  1524. package/lib/components/skeleton/table-skeleton.component.d.ts.map +0 -1
  1525. package/lib/components/spell-checker-field/spell-checker-field.module.d.ts.map +0 -1
  1526. package/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.d.ts.map +0 -1
  1527. package/lib/components/tables/dynamic-table/directives/empty-state.directive.d.ts.map +0 -1
  1528. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts.map +0 -1
  1529. package/lib/components/tables/dynamic-table/dynamic-table.module.d.ts.map +0 -1
  1530. package/lib/components/tables/dynamic-table/index.d.ts.map +0 -1
  1531. package/lib/components/tables/dynamic-table/public-api.d.ts.map +0 -1
  1532. package/lib/components/tables/dynamic-table/services/dynamic-table.service.d.ts.map +0 -1
  1533. package/lib/components/tables/index.d.ts.map +0 -1
  1534. package/lib/components/tables/ndf-table/components/index.d.ts.map +0 -1
  1535. package/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.d.ts.map +0 -1
  1536. package/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.d.ts.map +0 -1
  1537. package/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.d.ts.map +0 -1
  1538. package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts.map +0 -1
  1539. package/lib/components/tables/ndf-table/components/text-search/text-search.component.d.ts.map +0 -1
  1540. package/lib/components/tables/ndf-table/constants/index.d.ts.map +0 -1
  1541. package/lib/components/tables/ndf-table/constants/sizes.d.ts.map +0 -1
  1542. package/lib/components/tables/ndf-table/containers/index.d.ts.map +0 -1
  1543. package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts.map +0 -1
  1544. package/lib/components/tables/ndf-table/directives/actions.directive.d.ts.map +0 -1
  1545. package/lib/components/tables/ndf-table/directives/filter-custom.directive.d.ts.map +0 -1
  1546. package/lib/components/tables/ndf-table/directives/index.d.ts.map +0 -1
  1547. package/lib/components/tables/ndf-table/directives/search.directive.d.ts.map +0 -1
  1548. package/lib/components/tables/ndf-table/index.d.ts.map +0 -1
  1549. package/lib/components/tables/ndf-table/models/index.d.ts.map +0 -1
  1550. package/lib/components/tables/ndf-table/models/payload-types.d.ts.map +0 -1
  1551. package/lib/components/tables/ndf-table/models/search.config.d.ts.map +0 -1
  1552. package/lib/components/tables/ndf-table/models/table-column.d.ts.map +0 -1
  1553. package/lib/components/tables/ndf-table/models/table-config.d.ts.map +0 -1
  1554. package/lib/components/tables/ndf-table/models/table-mode.d.ts.map +0 -1
  1555. package/lib/components/tables/ndf-table/models/table-options.d.ts.map +0 -1
  1556. package/lib/components/tables/ndf-table/models/types.d.ts.map +0 -1
  1557. package/lib/components/tables/ndf-table/ndf-table.module.d.ts.map +0 -1
  1558. package/lib/components/tables/ndf-table/public-api.d.ts.map +0 -1
  1559. package/lib/components/tables/ndf-table/services/index.d.ts.map +0 -1
  1560. package/lib/components/tables/ndf-table/services/ndf-table-configuration.service.d.ts.map +0 -1
  1561. package/lib/components/tables/ndf-table/services/ndf-table.service.d.ts.map +0 -1
  1562. package/lib/components/tables/public-api.d.ts.map +0 -1
  1563. package/lib/components/tables/table/dynamic-column/dynamic-column.component.d.ts.map +0 -1
  1564. package/lib/components/tables/table/dynamic-component.d.ts.map +0 -1
  1565. package/lib/components/tables/table/index.d.ts.map +0 -1
  1566. package/lib/components/tables/table/page-sizes-list/page-sizes-list.component.d.ts.map +0 -1
  1567. package/lib/components/tables/table/public-api.d.ts.map +0 -1
  1568. package/lib/components/tables/table/table/table.component.d.ts.map +0 -1
  1569. package/lib/components/tables/table/table.module.d.ts.map +0 -1
  1570. package/lib/components/toasts/components/notification-toast/notification-toast.component.d.ts.map +0 -1
  1571. package/lib/components/toasts/index.d.ts.map +0 -1
  1572. package/lib/components/toasts/public-api.d.ts.map +0 -1
  1573. package/lib/components/toasts/toasts.module.d.ts.map +0 -1
  1574. package/lib/components/user/user/user.component.d.ts.map +0 -1
  1575. package/lib/components/user/user.module.d.ts.map +0 -1
  1576. package/lib/components/users-card/users-card.component.d.ts.map +0 -1
  1577. package/lib/components/users-card/users-card.module.d.ts.map +0 -1
  1578. package/lib/components/viewer-log/components/viewer-log/viewer-log.component.d.ts.map +0 -1
  1579. package/lib/components/viewer-log/viewer-log.module.d.ts.map +0 -1
  1580. package/lib/components/vocabulary/interfaces/op-type.interface.d.ts.map +0 -1
  1581. package/lib/components/vocabulary/services/vocabulary-api.service.d.ts.map +0 -1
  1582. package/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.d.ts.map +0 -1
  1583. package/lib/components/vocabulary/vocabulary/vocabulary.component.d.ts.map +0 -1
  1584. package/lib/components/vocabulary/vocabulary.module.d.ts.map +0 -1
  1585. package/lib/configuration/app-config.service.d.ts.map +0 -1
  1586. package/lib/configuration/helpers/app-initializer.d.ts.map +0 -1
  1587. package/lib/core/adapters/adapter.service.d.ts.map +0 -1
  1588. package/lib/core/core.module.d.ts.map +0 -1
  1589. package/lib/core/enums/language.enum.d.ts.map +0 -1
  1590. package/lib/core/env/env-manager.d.ts.map +0 -1
  1591. package/lib/core/env/index.d.ts.map +0 -1
  1592. package/lib/core/models/api-response.model.d.ts.map +0 -1
  1593. package/lib/core/models/automation-response.model.d.ts.map +0 -1
  1594. package/lib/core/models/base-response.models.d.ts.map +0 -1
  1595. package/lib/core/models/component.model.d.ts.map +0 -1
  1596. package/lib/core/models/index.d.ts.map +0 -1
  1597. package/lib/core/services/callApi/call-api.service.d.ts.map +0 -1
  1598. package/lib/core/services/column-renderer/column-renderer-registry.service.d.ts.map +0 -1
  1599. package/lib/core/services/column-renderer/index.d.ts.map +0 -1
  1600. package/lib/core/services/extension/action.extensions.d.ts.map +0 -1
  1601. package/lib/core/services/extension/component-register.service.d.ts.map +0 -1
  1602. package/lib/core/services/extension/extenion-utils.d.ts.map +0 -1
  1603. package/lib/core/services/extension/extension-element.d.ts.map +0 -1
  1604. package/lib/core/services/extension/extension-loader.service.d.ts.map +0 -1
  1605. package/lib/core/services/extension/extension.service.d.ts.map +0 -1
  1606. package/lib/core/services/index.d.ts.map +0 -1
  1607. package/lib/core/services/initialization/initialization.service.d.ts.map +0 -1
  1608. package/lib/core/services/localStorag/local-storag.service.d.ts.map +0 -1
  1609. package/lib/core/services/ndf-transform.service.d.ts.map +0 -1
  1610. package/lib/core/services/nuxeo/new-nuxeo-overide.d.ts.map +0 -1
  1611. package/lib/core/services/nuxeo/nuxeo-override.d.ts.map +0 -1
  1612. package/lib/core/services/nuxeo/nuxeo.service.d.ts.map +0 -1
  1613. package/lib/core/services/roles/roles.service.d.ts.map +0 -1
  1614. package/lib/core/services/translation/translate-loader.service.d.ts.map +0 -1
  1615. package/lib/core/services/translation/translation.service.d.ts.map +0 -1
  1616. package/lib/core/services/user/user-preferences.service.d.ts.map +0 -1
  1617. package/lib/core/tokens/index.d.ts.map +0 -1
  1618. package/lib/core/tokens/project.token.d.ts.map +0 -1
  1619. package/lib/core/utilities/moment-date-adapter.d.ts.map +0 -1
  1620. package/lib/core/utilities/utility.service.d.ts.map +0 -1
  1621. package/lib/directive/app-has-role/app-has-role.directive.d.ts.map +0 -1
  1622. package/lib/directive/clickOutSide/click-outside.directive.d.ts.map +0 -1
  1623. package/lib/directive/directive.module.d.ts.map +0 -1
  1624. package/lib/directive/drag-and-drop/drag-and-drop.directive.d.ts.map +0 -1
  1625. package/lib/directive/permissions/evaluators.service.d.ts.map +0 -1
  1626. package/lib/directive/permissions/permissions.directive.d.ts.map +0 -1
  1627. package/lib/directive/rtl/set-dir-rtl.directive.d.ts.map +0 -1
  1628. package/lib/directive/rtl/set-rtl.directive.d.ts.map +0 -1
  1629. package/lib/nuxeo-development-framework.component.d.ts.map +0 -1
  1630. package/lib/nuxeo-development-framework.module.d.ts.map +0 -1
  1631. package/lib/nuxeo-development-framework.service.d.ts.map +0 -1
  1632. package/lib/pipes/file-size.pipe.d.ts.map +0 -1
  1633. package/lib/pipes/hijri-date.pipe.d.ts.map +0 -1
  1634. package/lib/pipes/localized-date.pipe.d.ts.map +0 -1
  1635. package/lib/pipes/multi-value.pipe.d.ts.map +0 -1
  1636. package/lib/pipes/pipes.module.d.ts.map +0 -1
  1637. package/lib/pipes/secure-html.pipe.d.ts.map +0 -1
  1638. package/lib/pipes/secure.pipe.d.ts.map +0 -1
  1639. package/lib/pipes/time-ago.pipe.d.ts.map +0 -1
  1640. package/lib/shared/components/base/base-column.component.d.ts.map +0 -1
  1641. package/lib/shared/components/base/base-dialog.component.d.ts.map +0 -1
  1642. package/lib/shared/components/base/base-selector.component.d.ts.map +0 -1
  1643. package/lib/shared/components/base/base.component.d.ts.map +0 -1
  1644. package/lib/shared/components/base/destroy.subject.d.ts.map +0 -1
  1645. package/lib/shared/components/base/index.d.ts.map +0 -1
  1646. package/lib/shared/components/button/button.component.d.ts.map +0 -1
  1647. package/lib/shared/components/general-notification-popup/general-notification-popup.component.d.ts.map +0 -1
  1648. package/lib/shared/components/index.d.ts.map +0 -1
  1649. package/lib/shared/components/item-list/item-list.component.d.ts.map +0 -1
  1650. package/lib/shared/components/no-data/no-data.component.d.ts.map +0 -1
  1651. package/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.d.ts.map +0 -1
  1652. package/lib/shared/components/nuxeo-dialog/index.d.ts.map +0 -1
  1653. package/lib/shared/components/nuxeo-dialog/models/confirm-options.model.d.ts.map +0 -1
  1654. package/lib/shared/components/nuxeo-dialog/models/dialog-option.model.d.ts.map +0 -1
  1655. package/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.d.ts.map +0 -1
  1656. package/lib/shared/components/nuxeo-dialog/nuxeo.dialog.d.ts.map +0 -1
  1657. package/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.d.ts.map +0 -1
  1658. package/lib/shared/components/read-more/read-more.component.d.ts.map +0 -1
  1659. package/lib/shared/components/search-autocomplete/search-autocomplete.component.d.ts.map +0 -1
  1660. package/lib/shared/components/spinner/spinner.component.d.ts.map +0 -1
  1661. package/lib/shared/components/user-card/user-card.component.d.ts.map +0 -1
  1662. package/lib/shared/constants/editor-config-type.d.ts.map +0 -1
  1663. package/lib/shared/constants/index.d.ts.map +0 -1
  1664. package/lib/shared/directives/copy-to-clipboard.directive.d.ts.map +0 -1
  1665. package/lib/shared/directives/element-height.directive.d.ts.map +0 -1
  1666. package/lib/shared/directives/fluid-height.directive.d.ts.map +0 -1
  1667. package/lib/shared/directives/index.d.ts.map +0 -1
  1668. package/lib/shared/evaluator/evaluator.d.ts.map +0 -1
  1669. package/lib/shared/evaluator/index.d.ts.map +0 -1
  1670. package/lib/shared/evaluator/types.d.ts.map +0 -1
  1671. package/lib/shared/index.d.ts.map +0 -1
  1672. package/lib/shared/libraryShared.module.d.ts.map +0 -1
  1673. package/lib/shared/models/index.d.ts.map +0 -1
  1674. package/lib/shared/models/mapper/index.d.ts.map +0 -1
  1675. package/lib/shared/models/mapper/nuxeo-mapper.d.ts.map +0 -1
  1676. package/lib/shared/models/ndf-request.model.d.ts.map +0 -1
  1677. package/lib/shared/models/nuxeo-response.model.d.ts.map +0 -1
  1678. package/lib/shared/models/task.model.d.ts.map +0 -1
  1679. package/lib/shared/models/type-helpers.d.ts.map +0 -1
  1680. package/lib/shared/services/base/base-editor-config.service.d.ts.map +0 -1
  1681. package/lib/shared/services/base/base.service.d.ts.map +0 -1
  1682. package/lib/shared/services/base/cache-base.service.d.ts.map +0 -1
  1683. package/lib/shared/services/base/config/default-ttl-config.d.ts.map +0 -1
  1684. package/lib/shared/services/base/config/index.d.ts.map +0 -1
  1685. package/lib/shared/services/base/constants/default-cache-options.d.ts.map +0 -1
  1686. package/lib/shared/services/base/constants/index.d.ts.map +0 -1
  1687. package/lib/shared/services/base/http-base.service.d.ts.map +0 -1
  1688. package/lib/shared/services/base/index.d.ts.map +0 -1
  1689. package/lib/shared/services/base/models/cache-info-model.d.ts.map +0 -1
  1690. package/lib/shared/services/base/models/http-options.model.d.ts.map +0 -1
  1691. package/lib/shared/services/base/models/index.d.ts.map +0 -1
  1692. package/lib/shared/services/base/models/operation-options.model.d.ts.map +0 -1
  1693. package/lib/shared/services/base/models/query-options.model.d.ts.map +0 -1
  1694. package/lib/shared/services/base/models/request-options.model.d.ts.map +0 -1
  1695. package/lib/shared/services/index.d.ts.map +0 -1
  1696. package/lib/shared-services/apis-errors-messages.service.d.ts.map +0 -1
  1697. package/lib/shared-services/dialog-mangment.service.d.ts.map +0 -1
  1698. package/lib/shared-services/dynamic-form.service.d.ts.map +0 -1
  1699. package/lib/shared-services/file-manager.adapter.d.ts.map +0 -1
  1700. package/lib/shared-services/file-manager.service.d.ts.map +0 -1
  1701. package/lib/shared-services/global-admin.service.d.ts.map +0 -1
  1702. package/lib/shared-services/global-pdftron.service.d.ts.map +0 -1
  1703. package/lib/shared-services/mainfolder.service.d.ts.map +0 -1
  1704. package/lib/shared-services/publishing-document.service.d.ts.map +0 -1
  1705. package/lib/shared-services/recently-viewed.service.d.ts.map +0 -1
  1706. package/lib/shared-services/shared-docs.service.d.ts.map +0 -1
  1707. package/lib/shared-services/shared-services.module.d.ts.map +0 -1
  1708. package/lib/shared-services/upload-file.service.d.ts.map +0 -1
  1709. package/lib/shared-services/upload-managment.service.d.ts.map +0 -1
  1710. package/lib/shared-services/user.service.d.ts.map +0 -1
  1711. package/nuxeo-development-framework.d.ts.map +0 -1
  1712. package/public-api.d.ts.map +0 -1
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29
29
  ]
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRTs7O0dBR0c7QUFXSCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBVFosbUJBQW1CLGFBRWhDLFlBQVk7UUFDWixlQUFlLGFBR2YsbUJBQW1COytHQUdWLGdCQUFnQixZQVJsQjtZQUNQLFlBQVk7WUFDWixlQUFlO1NBQ2hCOzRGQUtVLGdCQUFnQjtrQkFWNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFDO3dCQUNOLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogUGFnaW5hdGlvbiBNb2R1bGVcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBhZ2luYXRpb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kdWxlIHsgfVxyXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHbkU7OztHQUdHO0FBV0gsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVRaLG1CQUFtQixhQUVoQyxZQUFZO1FBQ1osZUFBZSxhQUdmLG1CQUFtQjsrR0FHVixnQkFBZ0IsWUFSbEI7WUFDUCxZQUFZO1lBQ1osZUFBZTtTQUNoQjs0RkFLVSxnQkFBZ0I7a0JBVjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBQzt3QkFDTixtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9kaXJlY3RpdmUubW9kdWxlJztcclxuXHJcblxyXG4vKipcclxuICogQHRpdGxlXHJcbiAqIFBhZ2luYXRpb24gTW9kdWxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1BhZ2luYXRpb25Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIERpcmVjdGl2ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czpbXHJcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7IH1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export * from './ndf-tron-extract-text.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmRmLXRyb24tZXh0cmFjdC10ZXh0LmRpcmVjdGl2ZSc7XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25kZi10cm9uLWV4dHJhY3QtdGV4dC5kaXJlY3RpdmUnO1xyXG4iXX0=
@@ -200,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
200
200
  }], onExtractText: [{
201
201
  type: Output
202
202
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRyb24tZXh0cmFjdC10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXRyb24vZGlyZWN0aXZlcy9uZGYtdHJvbi1leHRyYWN0LXRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU1oRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQXNCcEQsWUFDa0IsY0FBOEIsRUFDOUIsUUFBbUIsRUFDbkIsUUFBa0I7UUFFbkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXhCcEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHckIsdUJBQWtCLEdBQVM7WUFDbkMsQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLENBQUM7U0FDSixDQUFDO1FBQ08saUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVB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QVUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQyxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25GLENBQUM7O2dIQTdMVyxrQkFBa0I7b0dBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2hDO29KQUlTLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEFmdGVyVmlld0NoZWNrZWQsXHJcblx0RGlyZWN0aXZlLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbmplY3RvcixcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T3V0cHV0LFxyXG5cdFJlbmRlcmVyMixcclxuXHRTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZsYXRNYXAsIG1hcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29vcmRpbmF0ZXMsIFBhZ2UsIFJlY3RhbmdsZUNvb3JkaW5hdGVzLCBSR0JBLCBXb3JkIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IFBkZnRyb25TZXJ2aWNlIH0gZnJvbSAnLi4vcGRmdHJvbi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbbmRmVHJvbkV4dHJhY3RUZXh0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlRyb25FeHRyYWN0VGV4dCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMge1xyXG5cdGxpc3RuZXJBZGRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHJlY3Q6IENvb3JkaW5hdGVzO1xyXG5cdEBJbnB1dCgpIHBhZ2VzWm9uZXM6IHsgcGFnZXM6IEFycmF5PGFueT4gfTtcclxuXHRASW5wdXQoKSBkZXRlY3Rpb25SZWN0Q29sb3I6IFJHQkEgPSB7XHJcblx0XHRSOiAyNTUsXHJcblx0XHRHOiAyMzAsXHJcblx0XHRCOiAxNjIsXHJcblx0XHRBOiAxXHJcblx0fTtcclxuXHRASW5wdXQoKSBmb2N1c2VkRmllbGQ6IHN0cmluZyA9ICcnO1xyXG5cdEBJbnB1dCgpIGZvY3VzZWRGaWVsZFByZWZpeDogc3RyaW5nID0gJyc7XHJcblx0QE91dHB1dCgpIG9uRXh0cmFjdFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRleHRyYWN0ZWRUZXh0OiBzdHJpbmcgPSAnJztcclxuXHRjdXJyZW50UGFnZU51bTogbnVtYmVyO1xyXG5cdGFsbFdvcmRzOiBBcnJheTxXb3JkPjtcclxuXHR0YXJnZXRQYWdlOiBQYWdlO1xyXG5cdHNhdmVkQ29vcmRpbmF0ZXM6IEFycmF5PHtcclxuXHRcdGZpZWxkTmFtZTogc3RyaW5nO1xyXG5cdFx0Y29vcmRpbmF0ZXM6IEFycmF5PFJlY3RhbmdsZUNvb3JkaW5hdGVzPjtcclxuXHR9PiA9IFtdO1xyXG5cdGZvY3VzZWRMYWJlbERpbWVuc2lvbnM6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcGRmVHJvblNlcnZpY2U6IFBkZnRyb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcclxuXHQpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHRcdHRoaXMuaW5pdGlhdGVUZXh0RGltZW5zaW9ucygpO1xyXG5cdFx0dGhpcy5yb3V0ZXJTZXJ2aWNlLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0aWYgKHJlcyBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xyXG5cdFx0XHRcdGNvbnN0IHsgYW5ub3RNYW5hZ2VyLCBkb2NWaWV3ZXIgfSA9IHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlO1xyXG5cdFx0XHRcdGFubm90TWFuYWdlci5vZmYoJ2Fubm90YXRpb25DaGFuZ2VkJywgdGhpcy5vbkFubm90YXRpb25zQ2hhbmdlKTtcclxuXHRcdFx0XHRkb2NWaWV3ZXIub2ZmKCdkb2N1bWVudExvYWRlZCcsIHRoaXMuZW5hYmxlQW5ub3RhdGlvblJlY3RhbmdsZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXMuZm9jdXNlZEZpZWxkIHx8IGNoYW5nZXMucGFnZXNab25lcykge1xyXG5cdFx0XHR0aGlzLmVuYWJsZUFubm90YXRpb25SZWN0YW5nbGUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGVuYWJsZUFubm90YXRpb25SZWN0YW5nbGUoKSB7XHJcblx0XHRpZiAodGhpcy5mb2N1c2VkRmllbGQgJiYgdGhpcy5wYWdlc1pvbmVzLnBhZ2VzPy5sZW5ndGgpIHtcclxuXHRcdFx0dGhpcy5wZGZUcm9uU2VydmljZT8uaW5zdGFuY2U/LnNldFRvb2xNb2RlKCdBbm5vdGF0aW9uQ3JlYXRlUmVjdGFuZ2xlJyk7XHJcblx0XHRcdHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucyA9IHRoaXMuY2FsY3VsYXRlV2lkdGhPZlRleHQoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlPy5zZXRUb29sTW9kZSgnVGV4dFNlbGVjdCcpO1xyXG5cdFx0XHR0aGlzLmluaXRpYXRlVGV4dERpbWVuc2lvbnMoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0bmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlICYmICF0aGlzLmxpc3RuZXJBZGRlZCAmJiB0aGlzLnBhZ2VzWm9uZXMpIHtcclxuXHRcdFx0dGhpcy5saXN0bmVyQWRkZWQgPSB0cnVlO1xyXG5cdFx0XHRjb25zdCB7IGFubm90TWFuYWdlciwgZG9jVmlld2VyIH0gPSB0aGlzLnBkZlRyb25TZXJ2aWNlPy5pbnN0YW5jZTtcclxuXHRcdFx0ZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsIHRoaXMuZW5hYmxlQW5ub3RhdGlvblJlY3RhbmdsZSk7XHJcblx0XHRcdHRoaXMuc2V0Q29sb3JPZlJlY3RhbmdsZShkb2NWaWV3ZXIpO1xyXG5cdFx0XHRhbm5vdE1hbmFnZXIub24oJ2Fubm90YXRpb25DaGFuZ2VkJywgdGhpcy5vbkFubm90YXRpb25zQ2hhbmdlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uQW5ub3RhdGlvbnNDaGFuZ2UgPSAoYW5ub3RhdGlvbnMsIGFjdGlvbikgPT4ge1xyXG5cdFx0dGhpcy5leHRyYWN0ZWRUZXh0ID0gJyc7XHJcblx0XHRjb25zdCB7IGFubm90TWFuYWdlciwgZG9jVmlld2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy5wZGZUcm9uU2VydmljZT8uaW5zdGFuY2U7XHJcblx0XHRpZiAoYWN0aW9uID09PSAnYWRkJykge1xyXG5cdFx0XHRhbm5vdGF0aW9ucy5mb3JFYWNoKChhbm5vdCkgPT4ge1xyXG5cdFx0XHRcdGlmIChhbm5vdCBpbnN0YW5jZW9mIHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlLkFubm90YXRpb25zLlJlY3RhbmdsZUFubm90YXRpb24pIHtcclxuXHRcdFx0XHRcdHRoaXMucmVjdCA9IGFubm90LmdldFJlY3QoKTtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmN1cnJlbnRQYWdlTnVtICE9IGRvY1ZpZXdlci5nZXRDdXJyZW50UGFnZSgpKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudFBhZ2VOdW0gPSBkb2NWaWV3ZXIuZ2V0Q3VycmVudFBhZ2UoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy50YXJnZXRQYWdlID0gdGhpcy5wYWdlc1pvbmVzLnBhZ2VzW3RoaXMuY3VycmVudFBhZ2VOdW0gLSAxXTtcclxuXHRcdFx0XHRcdFx0dGhpcy5hbGxXb3JkcyA9IHRoaXMuZ2V0QWxsV29yZHNJblRoZVBhZ2UoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IHBhZ2VIZWlnaHQgPSB0aGlzLnRhcmdldFBhZ2UucGFnZV9oZWlnaHQ7XHJcblx0XHRcdFx0XHRjb25zdCBwYWdlV2lkdGggPSB0aGlzLnRhcmdldFBhZ2UucGFnZV93aWR0aDtcclxuXHRcdFx0XHRcdGNvbnN0IHN0YW5kYXJkSGVpZ2h0ID0gZG9jVmlld2VyLmdldFBhZ2VIZWlnaHQodGhpcy5jdXJyZW50UGFnZU51bSk7XHJcblx0XHRcdFx0XHRjb25zdCBzdGFuZGFyZFdpZHRoID0gZG9jVmlld2VyLmdldFBhZ2VXaWR0aCh0aGlzLmN1cnJlbnRQYWdlTnVtKTtcclxuXHRcdFx0XHRcdGNvbnN0IHdpZHRoUmF0aW8gPSBwYWdlV2lkdGggLyBzdGFuZGFyZFdpZHRoO1xyXG5cdFx0XHRcdFx0Y29uc3QgaGVpZ2h0UmF0aW8gPSBwYWdlSGVpZ2h0IC8gc3RhbmRhcmRIZWlnaHQ7XHJcblx0XHRcdFx0XHR0aGlzLmFsbFdvcmRzLmZvckVhY2goKHdvcmQpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdHdvcmQuY29vcmRpbmF0ZXMudXBwZXJfbGVmdC54ID49IHdpZHRoUmF0aW8gKiB0aGlzLnJlY3QueDEgJiZcclxuXHRcdFx0XHRcdFx0XHR3b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueSA+PSBoZWlnaHRSYXRpbyAqIHRoaXMucmVjdC55MSAmJlxyXG5cdFx0XHRcdFx0XHRcdHdvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnggPD0gd2lkdGhSYXRpbyAqIHRoaXMucmVjdC54MiAmJlxyXG5cdFx0XHRcdFx0XHRcdHdvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnkgPD0gaGVpZ2h0UmF0aW8gKiB0aGlzLnJlY3QueTJcclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5leHRyYWN0ZWRUZXh0ICs9IHdvcmQudGV4dCArICcgJztcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5leHRyYWN0ZWRUZXh0KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMub25FeHRyYWN0VGV4dC5lbWl0KHRoaXMuZXh0cmFjdGVkVGV4dCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuYWRkRmllbGROYW1lVG9SZWN0YW5nbGUoZG9jVmlld2VyLCBhbm5vdE1hbmFnZXIsIEFubm90YXRpb25zKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5ob2xkRHJhd2VkUmVjdGFuZ2xlQ29vcmRpbmF0ZXMoe1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiB3aWR0aFJhdGlvLFxyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogaGVpZ2h0UmF0aW9cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9O1xyXG5cdHNldENvbG9yT2ZSZWN0YW5nbGUoZG9jVmlld2VyOiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHJlY3RhbmdsZVRvb2wgPSBkb2NWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVJlY3RhbmdsZScpO1xyXG5cdFx0cmVjdGFuZ2xlVG9vbC5kZWZhdWx0cyA9IHtcclxuXHRcdFx0U3Ryb2tlQ29sb3I6IHRoaXMuZGV0ZWN0aW9uUmVjdENvbG9yLFxyXG5cdFx0XHRGaWxsQ29sb3I6IHRoaXMuZGV0ZWN0aW9uUmVjdENvbG9yLFxyXG5cdFx0XHRTdHJva2VUaGlja25lc3M6IDIsXHJcblx0XHRcdE9wYWNpdHk6IDAuNFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdGFkZEZpZWxkTmFtZVRvUmVjdGFuZ2xlKGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyB4MSwgeDIsIHkxLCB5MiB9ID0gdGhpcy5yZWN0O1xyXG5cdFx0aWYgKHRoaXMuZm9jdXNlZEZpZWxkKSB7XHJcblx0XHRcdGNvbnN0IHRleHRBbm5vdCA9IG5ldyBBbm5vdGF0aW9ucy5GcmVlVGV4dEFubm90YXRpb24oKTtcclxuXHRcdFx0dGV4dEFubm90LlBhZ2VOdW1iZXIgPSBkb2NWaWV3ZXIuZ2V0Q3VycmVudFBhZ2UoKTtcclxuXHRcdFx0Y29uc3QgcmVjdFdpZHRoID0geDIgLSB4MTtcclxuXHRcdFx0Y29uc3QgcmVjdEhlaWdodCA9IHkyIC0geTE7XHJcblx0XHRcdGlmICh0aGlzLmZvY3VzZWRMYWJlbERpbWVuc2lvbnMud2lkdGggPiByZWN0V2lkdGggfHwgdGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zLmhlaWdodCA+IHJlY3RIZWlnaHQpIHtcclxuXHRcdFx0XHR0ZXh0QW5ub3QuWCA9IHgxO1xyXG5cdFx0XHRcdHRleHRBbm5vdC5ZID0geTEgLSAxNTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0ZXh0QW5ub3QuWCA9IHgxICsgcmVjdFdpZHRoIC8gMiAtIHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucy53aWR0aCAvIDI7XHJcblx0XHRcdFx0dGV4dEFubm90LlkgPSB5MSArIHJlY3RIZWlnaHQgLyAyIC0gdGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zLmhlaWdodCAvIDI7XHJcblx0XHRcdH1cclxuXHRcdFx0dGV4dEFubm90LldpZHRoID0gdGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zLndpZHRoO1xyXG5cdFx0XHR0ZXh0QW5ub3QuSGVpZ2h0ID0gdGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zLmhlaWdodDtcclxuXHRcdFx0dGV4dEFubm90LkZvbnRTaXplID0gJzI0cHgnO1xyXG5cdFx0XHR0ZXh0QW5ub3Quc2V0UGFkZGluZyhuZXcgQW5ub3RhdGlvbnMuUmVjdCgwLCAwLCAwLCAwKSk7XHJcblx0XHRcdHRleHRBbm5vdC5UZXh0Q29sb3IgPSBuZXcgQW5ub3RhdGlvbnMuQ29sb3IoODMsIDcwLCAxOTkpO1xyXG5cdFx0XHR0ZXh0QW5ub3Quc2V0Q29udGVudHModGhpcy50cmFuc2xhdGVkTGFiZWwpO1xyXG5cdFx0XHR0ZXh0QW5ub3QuU3Ryb2tlVGhpY2tuZXNzID0gMDtcclxuXHRcdFx0YW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb24odGV4dEFubm90KTtcclxuXHRcdFx0YW5ub3RNYW5hZ2VyLnJlZHJhd0Fubm90YXRpb24odGV4dEFubm90KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGhvbGREcmF3ZWRSZWN0YW5nbGVDb29yZGluYXRlcyhyYXRpbzogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9KSB7XHJcblx0XHRjb25zdCBfd2luZG93Q29vcmRpbmF0ZXMgPSB7XHJcblx0XHRcdHgxOiByYXRpby53aWR0aCAqIHRoaXMucmVjdC54MSxcclxuXHRcdFx0eDI6IHJhdGlvLndpZHRoICogdGhpcy5yZWN0LngyLFxyXG5cdFx0XHR5MTogcmF0aW8uaGVpZ2h0ICogdGhpcy5yZWN0LnkxLFxyXG5cdFx0XHR5MjogcmF0aW8uaGVpZ2h0ICogdGhpcy5yZWN0LnkyXHJcblx0XHR9O1xyXG5cdFx0bGV0IGluZGV4ID0gdGhpcy5zYXZlZENvb3JkaW5hdGVzLmZpbmRJbmRleCgoZWxlbSkgPT4gZWxlbS5maWVsZE5hbWUgPT09IHRoaXMuZm9jdXNlZEZpZWxkKTtcclxuXHRcdGlmIChpbmRleCA+IC0xKSB7XHJcblx0XHRcdHRoaXMuc2F2ZWRDb29yZGluYXRlc1tpbmRleF0uY29vcmRpbmF0ZXMucHVzaCh7XHJcblx0XHRcdFx0cGRmVHJvbkNvb3JkaW5hdGU6IHRoaXMucmVjdCxcclxuXHRcdFx0XHR3aW5kb3dDb29yZGluYXRlOiBfd2luZG93Q29vcmRpbmF0ZXNcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnNhdmVkQ29vcmRpbmF0ZXMucHVzaCh7XHJcblx0XHRcdFx0ZmllbGROYW1lOiB0aGlzLmZvY3VzZWRGaWVsZCxcclxuXHRcdFx0XHRjb29yZGluYXRlczogW1xyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRwZGZUcm9uQ29vcmRpbmF0ZTogdGhpcy5yZWN0LFxyXG5cdFx0XHRcdFx0XHR3aW5kb3dDb29yZGluYXRlOiBfd2luZG93Q29vcmRpbmF0ZXNcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRdXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0QWxsV29yZHNJblRoZVBhZ2UoKTogQXJyYXk8V29yZD4ge1xyXG5cdFx0cmV0dXJuIGZsYXRNYXAodGhpcy50YXJnZXRQYWdlLnpvbmVzLCAoem9uZSkgPT5cclxuXHRcdFx0ZmxhdE1hcCh6b25lLnBhcmFncmFwaHMsIChwYXJhZ3JhcGgpID0+IGZsYXRNYXAocGFyYWdyYXBoLmxpbmVzLCAobGluZSkgPT4gbWFwKGxpbmUud29yZHMpKSlcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRpbml0aWF0ZVRleHREaW1lbnNpb25zKCkge1xyXG5cdFx0dGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zID0geyB3aWR0aDogMCwgaGVpZ2h0OiAwIH07XHJcblx0fVxyXG5cdGNhbGN1bGF0ZVdpZHRoT2ZUZXh0KCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB7XHJcblx0XHRjb25zdCBzcGFuOiBIVE1MU3BhbkVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuXHRcdGNvbnN0IHRleHROb2RlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHRoaXMudHJhbnNsYXRlZExhYmVsKTtcclxuXHRcdHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BhbiwgdGV4dE5vZGUpO1xyXG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZShzcGFuLCAnZm9udC1zaXplJywgJzI0cHgnKTtcclxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3BhbiwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XHJcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNwYW4sICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xyXG5cdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBzcGFuKTtcclxuXHRcdGNvbnN0IGRpbWVuc2lvbnMgPSB7IHdpZHRoOiBzcGFuLmNsaWVudFdpZHRoLCBoZWlnaHQ6IHNwYW4uY2xpZW50SGVpZ2h0IH07XHJcblx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHNwYW4pO1xyXG5cdFx0cmV0dXJuIGRpbWVuc2lvbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgdHJhbnNsYXRlZExhYmVsKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuZm9jdXNlZEZpZWxkUHJlZml4ICsgdGhpcy5mb2N1c2VkRmllbGQpO1xyXG5cdH1cclxufVxyXG4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRyb24tZXh0cmFjdC10ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL2RpcmVjdGl2ZXMvbmRmLXRyb24tZXh0cmFjdC10ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBRUwsTUFBTSxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNaEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFzQnBELFlBQ2tCLGNBQThCLEVBQzlCLFFBQW1CLEVBQ25CLFFBQWtCO1FBRW5DLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUF4QnBDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBR3JCLHVCQUFrQixHQUFTO1lBQ25DLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxDQUFDO1NBQ0osQ0FBQztRQUNPLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLHVCQUFrQixHQUFXLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFVLENB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QUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0MsT0FBTyxVQUFVLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksZUFBZTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRixDQUFDOztnSEE3TFcsa0JBQWtCO29HQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO2lCQUNoQztvSkFJUyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRBZnRlclZpZXdDaGVja2VkLFxyXG5cdERpcmVjdGl2ZSxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5qZWN0b3IsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE91dHB1dCxcclxuXHRSZW5kZXJlcjIsXHJcblx0U2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmbGF0TWFwLCBtYXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvb3JkaW5hdGVzLCBQYWdlLCBSZWN0YW5nbGVDb29yZGluYXRlcywgUkdCQSwgV29yZCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBQZGZ0cm9uU2VydmljZSB9IGZyb20gJy4uL3BkZnRyb24vcGRmdHJvbi5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnW25kZlRyb25FeHRyYWN0VGV4dF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUcm9uRXh0cmFjdFRleHQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25DaGFuZ2VzIHtcclxuXHRsaXN0bmVyQWRkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRyZWN0OiBDb29yZGluYXRlcztcclxuXHRASW5wdXQoKSBwYWdlc1pvbmVzOiB7IHBhZ2VzOiBBcnJheTxhbnk+IH07XHJcblx0QElucHV0KCkgZGV0ZWN0aW9uUmVjdENvbG9yOiBSR0JBID0ge1xyXG5cdFx0UjogMjU1LFxyXG5cdFx0RzogMjMwLFxyXG5cdFx0QjogMTYyLFxyXG5cdFx0QTogMVxyXG5cdH07XHJcblx0QElucHV0KCkgZm9jdXNlZEZpZWxkOiBzdHJpbmcgPSAnJztcclxuXHRASW5wdXQoKSBmb2N1c2VkRmllbGRQcmVmaXg6IHN0cmluZyA9ICcnO1xyXG5cdEBPdXRwdXQoKSBvbkV4dHJhY3RUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblx0ZXh0cmFjdGVkVGV4dDogc3RyaW5nID0gJyc7XHJcblx0Y3VycmVudFBhZ2VOdW06IG51bWJlcjtcclxuXHRhbGxXb3JkczogQXJyYXk8V29yZD47XHJcblx0dGFyZ2V0UGFnZTogUGFnZTtcclxuXHRzYXZlZENvb3JkaW5hdGVzOiBBcnJheTx7XHJcblx0XHRmaWVsZE5hbWU6IHN0cmluZztcclxuXHRcdGNvb3JkaW5hdGVzOiBBcnJheTxSZWN0YW5nbGVDb29yZGluYXRlcz47XHJcblx0fT4gPSBbXTtcclxuXHRmb2N1c2VkTGFiZWxEaW1lbnNpb25zOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH07XHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHBkZlRyb25TZXJ2aWNlOiBQZGZ0cm9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yXHJcblx0KSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0XHR0aGlzLmluaXRpYXRlVGV4dERpbWVuc2lvbnMoKTtcclxuXHRcdHRoaXMucm91dGVyU2VydmljZS5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdGlmIChyZXMgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuXHRcdFx0XHRjb25zdCB7IGFubm90TWFuYWdlciwgZG9jVmlld2VyIH0gPSB0aGlzLnBkZlRyb25TZXJ2aWNlPy5pbnN0YW5jZTtcclxuXHRcdFx0XHRhbm5vdE1hbmFnZXIub2ZmKCdhbm5vdGF0aW9uQ2hhbmdlZCcsIHRoaXMub25Bbm5vdGF0aW9uc0NoYW5nZSk7XHJcblx0XHRcdFx0ZG9jVmlld2VyLm9mZignZG9jdW1lbnRMb2FkZWQnLCB0aGlzLmVuYWJsZUFubm90YXRpb25SZWN0YW5nbGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzLmZvY3VzZWRGaWVsZCB8fCBjaGFuZ2VzLnBhZ2VzWm9uZXMpIHtcclxuXHRcdFx0dGhpcy5lbmFibGVBbm5vdGF0aW9uUmVjdGFuZ2xlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRlbmFibGVBbm5vdGF0aW9uUmVjdGFuZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuZm9jdXNlZEZpZWxkICYmIHRoaXMucGFnZXNab25lcy5wYWdlcz8ubGVuZ3RoKSB7XHJcblx0XHRcdHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlPy5zZXRUb29sTW9kZSgnQW5ub3RhdGlvbkNyZWF0ZVJlY3RhbmdsZScpO1xyXG5cdFx0XHR0aGlzLmZvY3VzZWRMYWJlbERpbWVuc2lvbnMgPSB0aGlzLmNhbGN1bGF0ZVdpZHRoT2ZUZXh0KCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnBkZlRyb25TZXJ2aWNlPy5pbnN0YW5jZT8uc2V0VG9vbE1vZGUoJ1RleHRTZWxlY3QnKTtcclxuXHRcdFx0dGhpcy5pbml0aWF0ZVRleHREaW1lbnNpb25zKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnBkZlRyb25TZXJ2aWNlPy5pbnN0YW5jZSAmJiAhdGhpcy5saXN0bmVyQWRkZWQgJiYgdGhpcy5wYWdlc1pvbmVzKSB7XHJcblx0XHRcdHRoaXMubGlzdG5lckFkZGVkID0gdHJ1ZTtcclxuXHRcdFx0Y29uc3QgeyBhbm5vdE1hbmFnZXIsIGRvY1ZpZXdlciB9ID0gdGhpcy5wZGZUcm9uU2VydmljZT8uaW5zdGFuY2U7XHJcblx0XHRcdGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCB0aGlzLmVuYWJsZUFubm90YXRpb25SZWN0YW5nbGUpO1xyXG5cdFx0XHR0aGlzLnNldENvbG9yT2ZSZWN0YW5nbGUoZG9jVmlld2VyKTtcclxuXHRcdFx0YW5ub3RNYW5hZ2VyLm9uKCdhbm5vdGF0aW9uQ2hhbmdlZCcsIHRoaXMub25Bbm5vdGF0aW9uc0NoYW5nZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbkFubm90YXRpb25zQ2hhbmdlID0gKGFubm90YXRpb25zLCBhY3Rpb24pID0+IHtcclxuXHRcdHRoaXMuZXh0cmFjdGVkVGV4dCA9ICcnO1xyXG5cdFx0Y29uc3QgeyBhbm5vdE1hbmFnZXIsIGRvY1ZpZXdlciwgQW5ub3RhdGlvbnMgfSA9IHRoaXMucGRmVHJvblNlcnZpY2U/Lmluc3RhbmNlO1xyXG5cdFx0aWYgKGFjdGlvbiA9PT0gJ2FkZCcpIHtcclxuXHRcdFx0YW5ub3RhdGlvbnMuZm9yRWFjaCgoYW5ub3QpID0+IHtcclxuXHRcdFx0XHRpZiAoYW5ub3QgaW5zdGFuY2VvZiB0aGlzLnBkZlRyb25TZXJ2aWNlPy5pbnN0YW5jZS5Bbm5vdGF0aW9ucy5SZWN0YW5nbGVBbm5vdGF0aW9uKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlY3QgPSBhbm5vdC5nZXRSZWN0KCk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jdXJyZW50UGFnZU51bSAhPSBkb2NWaWV3ZXIuZ2V0Q3VycmVudFBhZ2UoKSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmN1cnJlbnRQYWdlTnVtID0gZG9jVmlld2VyLmdldEN1cnJlbnRQYWdlKCk7XHJcblx0XHRcdFx0XHRcdHRoaXMudGFyZ2V0UGFnZSA9IHRoaXMucGFnZXNab25lcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlTnVtIC0gMV07XHJcblx0XHRcdFx0XHRcdHRoaXMuYWxsV29yZHMgPSB0aGlzLmdldEFsbFdvcmRzSW5UaGVQYWdlKCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zdCBwYWdlSGVpZ2h0ID0gdGhpcy50YXJnZXRQYWdlLnBhZ2VfaGVpZ2h0O1xyXG5cdFx0XHRcdFx0Y29uc3QgcGFnZVdpZHRoID0gdGhpcy50YXJnZXRQYWdlLnBhZ2Vfd2lkdGg7XHJcblx0XHRcdFx0XHRjb25zdCBzdGFuZGFyZEhlaWdodCA9IGRvY1ZpZXdlci5nZXRQYWdlSGVpZ2h0KHRoaXMuY3VycmVudFBhZ2VOdW0pO1xyXG5cdFx0XHRcdFx0Y29uc3Qgc3RhbmRhcmRXaWR0aCA9IGRvY1ZpZXdlci5nZXRQYWdlV2lkdGgodGhpcy5jdXJyZW50UGFnZU51bSk7XHJcblx0XHRcdFx0XHRjb25zdCB3aWR0aFJhdGlvID0gcGFnZVdpZHRoIC8gc3RhbmRhcmRXaWR0aDtcclxuXHRcdFx0XHRcdGNvbnN0IGhlaWdodFJhdGlvID0gcGFnZUhlaWdodCAvIHN0YW5kYXJkSGVpZ2h0O1xyXG5cdFx0XHRcdFx0dGhpcy5hbGxXb3Jkcy5mb3JFYWNoKCh3b3JkKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0XHR3b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueCA+PSB3aWR0aFJhdGlvICogdGhpcy5yZWN0LngxICYmXHJcblx0XHRcdFx0XHRcdFx0d29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnkgPj0gaGVpZ2h0UmF0aW8gKiB0aGlzLnJlY3QueTEgJiZcclxuXHRcdFx0XHRcdFx0XHR3b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC54IDw9IHdpZHRoUmF0aW8gKiB0aGlzLnJlY3QueDIgJiZcclxuXHRcdFx0XHRcdFx0XHR3b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC55IDw9IGhlaWdodFJhdGlvICogdGhpcy5yZWN0LnkyXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXh0cmFjdGVkVGV4dCArPSB3b3JkLnRleHQgKyAnICc7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuZXh0cmFjdGVkVGV4dCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm9uRXh0cmFjdFRleHQuZW1pdCh0aGlzLmV4dHJhY3RlZFRleHQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFkZEZpZWxkTmFtZVRvUmVjdGFuZ2xlKGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyk7XHJcblx0XHRcdFx0XHRcdHRoaXMuaG9sZERyYXdlZFJlY3RhbmdsZUNvb3JkaW5hdGVzKHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDogd2lkdGhSYXRpbyxcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGhlaWdodFJhdGlvXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fTtcclxuXHRzZXRDb2xvck9mUmVjdGFuZ2xlKGRvY1ZpZXdlcjogYW55KTogdm9pZCB7XHJcblx0XHRjb25zdCByZWN0YW5nbGVUb29sID0gZG9jVmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVSZWN0YW5nbGUnKTtcclxuXHRcdHJlY3RhbmdsZVRvb2wuZGVmYXVsdHMgPSB7XHJcblx0XHRcdFN0cm9rZUNvbG9yOiB0aGlzLmRldGVjdGlvblJlY3RDb2xvcixcclxuXHRcdFx0RmlsbENvbG9yOiB0aGlzLmRldGVjdGlvblJlY3RDb2xvcixcclxuXHRcdFx0U3Ryb2tlVGhpY2tuZXNzOiAyLFxyXG5cdFx0XHRPcGFjaXR5OiAwLjRcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRhZGRGaWVsZE5hbWVUb1JlY3RhbmdsZShkb2NWaWV3ZXIsIGFubm90TWFuYWdlciwgQW5ub3RhdGlvbnMpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHsgeDEsIHgyLCB5MSwgeTIgfSA9IHRoaXMucmVjdDtcclxuXHRcdGlmICh0aGlzLmZvY3VzZWRGaWVsZCkge1xyXG5cdFx0XHRjb25zdCB0ZXh0QW5ub3QgPSBuZXcgQW5ub3RhdGlvbnMuRnJlZVRleHRBbm5vdGF0aW9uKCk7XHJcblx0XHRcdHRleHRBbm5vdC5QYWdlTnVtYmVyID0gZG9jVmlld2VyLmdldEN1cnJlbnRQYWdlKCk7XHJcblx0XHRcdGNvbnN0IHJlY3RXaWR0aCA9IHgyIC0geDE7XHJcblx0XHRcdGNvbnN0IHJlY3RIZWlnaHQgPSB5MiAtIHkxO1xyXG5cdFx0XHRpZiAodGhpcy5mb2N1c2VkTGFiZWxEaW1lbnNpb25zLndpZHRoID4gcmVjdFdpZHRoIHx8IHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucy5oZWlnaHQgPiByZWN0SGVpZ2h0KSB7XHJcblx0XHRcdFx0dGV4dEFubm90LlggPSB4MTtcclxuXHRcdFx0XHR0ZXh0QW5ub3QuWSA9IHkxIC0gMTU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGV4dEFubm90LlggPSB4MSArIHJlY3RXaWR0aCAvIDIgLSB0aGlzLmZvY3VzZWRMYWJlbERpbWVuc2lvbnMud2lkdGggLyAyO1xyXG5cdFx0XHRcdHRleHRBbm5vdC5ZID0geTEgKyByZWN0SGVpZ2h0IC8gMiAtIHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucy5oZWlnaHQgLyAyO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRleHRBbm5vdC5XaWR0aCA9IHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucy53aWR0aDtcclxuXHRcdFx0dGV4dEFubm90LkhlaWdodCA9IHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucy5oZWlnaHQ7XHJcblx0XHRcdHRleHRBbm5vdC5Gb250U2l6ZSA9ICcyNHB4JztcclxuXHRcdFx0dGV4dEFubm90LnNldFBhZGRpbmcobmV3IEFubm90YXRpb25zLlJlY3QoMCwgMCwgMCwgMCkpO1xyXG5cdFx0XHR0ZXh0QW5ub3QuVGV4dENvbG9yID0gbmV3IEFubm90YXRpb25zLkNvbG9yKDgzLCA3MCwgMTk5KTtcclxuXHRcdFx0dGV4dEFubm90LnNldENvbnRlbnRzKHRoaXMudHJhbnNsYXRlZExhYmVsKTtcclxuXHRcdFx0dGV4dEFubm90LlN0cm9rZVRoaWNrbmVzcyA9IDA7XHJcblx0XHRcdGFubm90TWFuYWdlci5hZGRBbm5vdGF0aW9uKHRleHRBbm5vdCk7XHJcblx0XHRcdGFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHRleHRBbm5vdCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRob2xkRHJhd2VkUmVjdGFuZ2xlQ29vcmRpbmF0ZXMocmF0aW86IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSkge1xyXG5cdFx0Y29uc3QgX3dpbmRvd0Nvb3JkaW5hdGVzID0ge1xyXG5cdFx0XHR4MTogcmF0aW8ud2lkdGggKiB0aGlzLnJlY3QueDEsXHJcblx0XHRcdHgyOiByYXRpby53aWR0aCAqIHRoaXMucmVjdC54MixcclxuXHRcdFx0eTE6IHJhdGlvLmhlaWdodCAqIHRoaXMucmVjdC55MSxcclxuXHRcdFx0eTI6IHJhdGlvLmhlaWdodCAqIHRoaXMucmVjdC55MlxyXG5cdFx0fTtcclxuXHRcdGxldCBpbmRleCA9IHRoaXMuc2F2ZWRDb29yZGluYXRlcy5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0uZmllbGROYW1lID09PSB0aGlzLmZvY3VzZWRGaWVsZCk7XHJcblx0XHRpZiAoaW5kZXggPiAtMSkge1xyXG5cdFx0XHR0aGlzLnNhdmVkQ29vcmRpbmF0ZXNbaW5kZXhdLmNvb3JkaW5hdGVzLnB1c2goe1xyXG5cdFx0XHRcdHBkZlRyb25Db29yZGluYXRlOiB0aGlzLnJlY3QsXHJcblx0XHRcdFx0d2luZG93Q29vcmRpbmF0ZTogX3dpbmRvd0Nvb3JkaW5hdGVzXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zYXZlZENvb3JkaW5hdGVzLnB1c2goe1xyXG5cdFx0XHRcdGZpZWxkTmFtZTogdGhpcy5mb2N1c2VkRmllbGQsXHJcblx0XHRcdFx0Y29vcmRpbmF0ZXM6IFtcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0cGRmVHJvbkNvb3JkaW5hdGU6IHRoaXMucmVjdCxcclxuXHRcdFx0XHRcdFx0d2luZG93Q29vcmRpbmF0ZTogX3dpbmRvd0Nvb3JkaW5hdGVzXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldEFsbFdvcmRzSW5UaGVQYWdlKCk6IEFycmF5PFdvcmQ+IHtcclxuXHRcdHJldHVybiBmbGF0TWFwKHRoaXMudGFyZ2V0UGFnZS56b25lcywgKHpvbmUpID0+XHJcblx0XHRcdGZsYXRNYXAoem9uZS5wYXJhZ3JhcGhzLCAocGFyYWdyYXBoKSA9PiBmbGF0TWFwKHBhcmFncmFwaC5saW5lcywgKGxpbmUpID0+IG1hcChsaW5lLndvcmRzKSkpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aW5pdGlhdGVUZXh0RGltZW5zaW9ucygpIHtcclxuXHRcdHRoaXMuZm9jdXNlZExhYmVsRGltZW5zaW9ucyA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xyXG5cdH1cclxuXHRjYWxjdWxhdGVXaWR0aE9mVGV4dCgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xyXG5cdFx0Y29uc3Qgc3BhbjogSFRNTFNwYW5FbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcblx0XHRjb25zdCB0ZXh0Tm9kZSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRyYW5zbGF0ZWRMYWJlbCk7XHJcblx0XHR0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIHRleHROb2RlKTtcclxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3BhbiwgJ2ZvbnQtc2l6ZScsICcyNHB4Jyk7XHJcblx0XHR0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHNwYW4sICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xyXG5cdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZShzcGFuLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcclxuXHRcdHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgc3Bhbik7XHJcblx0XHRjb25zdCBkaW1lbnNpb25zID0geyB3aWR0aDogc3Bhbi5jbGllbnRXaWR0aCwgaGVpZ2h0OiBzcGFuLmNsaWVudEhlaWdodCB9O1xyXG5cdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCBzcGFuKTtcclxuXHRcdHJldHVybiBkaW1lbnNpb25zO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRyYW5zbGF0ZWRMYWJlbCgpIHtcclxuXHRcdHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmZvY3VzZWRGaWVsZFByZWZpeCArIHRoaXMuZm9jdXNlZEZpZWxkKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export * from './tron.model';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHJvbi5tb2RlbCc7XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Ryb24ubW9kZWwnO1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXRyb24vbW9kZWxzL3Ryb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGFnZSB7XHJcblx0cGFnZV9oZWlnaHQ6IG51bWJlcjtcclxuXHRwYWdlX3dpZHRoOiBudW1iZXI7XHJcblx0em9uZXM6IEFycmF5PGFueT47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBXb3JkIHtcclxuXHRjb25maWRlbmNlOiBudW1iZXI7XHJcblx0Y29vcmRpbmF0ZXM6IHtcclxuXHRcdGJvdHRvbV9yaWdodDoge1xyXG5cdFx0XHR4OiBudW1iZXI7XHJcblx0XHRcdHk6IG51bWJlcjtcclxuXHRcdH07XHJcblx0XHR1cHBlcl9sZWZ0OiB7XHJcblx0XHRcdHg6IG51bWJlcjtcclxuXHRcdFx0eTogbnVtYmVyO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cdHRleHQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBSR0JBID0ge1xyXG5cdFI6IG51bWJlcjtcclxuXHRHOiBudW1iZXI7XHJcblx0QjogbnVtYmVyO1xyXG5cdEE6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENvb3JkaW5hdGVzID0geyB4MTogbnVtYmVyOyB4MjogbnVtYmVyOyB5MTogbnVtYmVyOyB5MjogbnVtYmVyIH07XHJcbmV4cG9ydCB0eXBlIFJlY3RhbmdsZUNvb3JkaW5hdGVzID0ge1xyXG5cdHBkZlRyb25Db29yZGluYXRlOiBDb29yZGluYXRlcztcclxuXHR3aW5kb3dDb29yZGluYXRlOiBDb29yZGluYXRlcztcclxufTtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL21vZGVscy90cm9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBhZ2Uge1xyXG5cdHBhZ2VfaGVpZ2h0OiBudW1iZXI7XHJcblx0cGFnZV93aWR0aDogbnVtYmVyO1xyXG5cdHpvbmVzOiBBcnJheTxhbnk+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgV29yZCB7XHJcblx0Y29uZmlkZW5jZTogbnVtYmVyO1xyXG5cdGNvb3JkaW5hdGVzOiB7XHJcblx0XHRib3R0b21fcmlnaHQ6IHtcclxuXHRcdFx0eDogbnVtYmVyO1xyXG5cdFx0XHR5OiBudW1iZXI7XHJcblx0XHR9O1xyXG5cdFx0dXBwZXJfbGVmdDoge1xyXG5cdFx0XHR4OiBudW1iZXI7XHJcblx0XHRcdHk6IG51bWJlcjtcclxuXHRcdH07XHJcblx0fTtcclxuXHR0ZXh0OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgUkdCQSA9IHtcclxuXHRSOiBudW1iZXI7XHJcblx0RzogbnVtYmVyO1xyXG5cdEI6IG51bWJlcjtcclxuXHRBOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDb29yZGluYXRlcyA9IHsgeDE6IG51bWJlcjsgeDI6IG51bWJlcjsgeTE6IG51bWJlcjsgeTI6IG51bWJlciB9O1xyXG5leHBvcnQgdHlwZSBSZWN0YW5nbGVDb29yZGluYXRlcyA9IHtcclxuXHRwZGZUcm9uQ29vcmRpbmF0ZTogQ29vcmRpbmF0ZXM7XHJcblx0d2luZG93Q29vcmRpbmF0ZTogQ29vcmRpbmF0ZXM7XHJcbn07XHJcbiJdfQ==
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
16
16
  exports: [PdftronComponent, NdfTronExtractText]
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRyb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGYtdHJvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU9sRCxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhLGlCQUpWLGdCQUFnQixFQUFFLGtCQUFrQixhQUN6QyxZQUFZLGFBQ1osZ0JBQWdCLEVBQUUsa0JBQWtCOzRHQUVsQyxhQUFhLFlBSGhCLENBQUMsWUFBWSxDQUFDOzRGQUdYLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3BELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGRmdHJvbkNvbXBvbmVudCB9IGZyb20gJy4vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5kZlRyb25FeHRyYWN0VGV4dCB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW1BkZnRyb25Db21wb25lbnQsIE5kZlRyb25FeHRyYWN0VGV4dF0sXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcblx0ZXhwb3J0czogW1BkZnRyb25Db21wb25lbnQsIE5kZlRyb25FeHRyYWN0VGV4dF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZlRyb25Nb2R1bGUge31cclxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRyb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXRyb24vcGRmLXRyb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGFBQWE7OzJHQUFiLGFBQWE7NEdBQWIsYUFBYSxpQkFKVixnQkFBZ0IsRUFBRSxrQkFBa0IsYUFDekMsWUFBWSxhQUNaLGdCQUFnQixFQUFFLGtCQUFrQjs0R0FFbEMsYUFBYSxZQUhoQixDQUFDLFlBQVksQ0FBQzs0RkFHWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDO29CQUNwRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBkZnRyb25Db21wb25lbnQgfSBmcm9tICcuL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZGZUcm9uRXh0cmFjdFRleHQgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRkZWNsYXJhdGlvbnM6IFtQZGZ0cm9uQ29tcG9uZW50LCBOZGZUcm9uRXh0cmFjdFRleHRdLFxyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG5cdGV4cG9ydHM6IFtQZGZ0cm9uQ29tcG9uZW50LCBOZGZUcm9uRXh0cmFjdFRleHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZUcm9uTW9kdWxlIHt9XHJcbiJdfQ==
@@ -849,4 +849,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
849
849
  }], SignatureEvent: [{
850
850
  type: Output
851
851
  }] } });
852
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFHTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFLeEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQTZENUIsWUFDUSxHQUFzQixFQUNyQixjQUE4QixFQUM5QixLQUFtQixFQUNJLFFBQWdCLEVBQ3ZDLGtCQUFzQyxFQUN0QyxvQkFBMEMsRUFDbkIsV0FBVztRQU5uQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNJLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDdkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFBOztRQTlEbEMsa0JBQWEsR0FBRyxLQUFL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LE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXpDLFFBQVE7c0JBRFAsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsS0FBSztnQkFDSSxxQkFBcUI7c0JBQTlCLEtBQUs7Z0JBQ0ksMkJBQTJCO3NCQUFwQyxNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFUCxNQUFNO3NCQURMLE1BQU07Z0JBRUcsY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRDb21wb25lbnQsXHJcblx0RWxlbWVudFJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5qZWN0LFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPbkRlc3Ryb3ksXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFdlYlZpZXdlciBmcm9tICdAcGRmdHJvbi93ZWJ2aWV3ZXInO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZGZ0cm9uU2VydmljZSB9IGZyb20gJy4vcGRmdHJvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVBQX0JBU0VfSFJFRiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlY3VyZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9zZWN1cmUucGlwZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaWxlbnRQZGZUcm9uU2VydmljZSB9IGZyb20gJy4vc2lsZW50LXBkZnRyb24uc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSByZXVzYWJsZSBmaWxlIHZpZXdlciBiYXNlZCBvbiBQREZUcm9uIExpYnJhcnlcclxuICogQHRpdGxlXHJcbiAqIFBERlRyb24gVmlld2VyXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxhcHAtcGRmdHJvblxyXG4gKiAgIFtmaWxlRGF0YV09XCJmaWxlRGF0YVwiXHJcbiAqICAgW2VkaXRNb2RlXT1cImZhbHNlXCJcclxuICogICBbZG9jSWRdPVwiZmlsZUlkXCJcclxuICogICBbZmlsZVRpdGxlXT1cImZpbGUudGl0bGVcIlxyXG4gKiA+XHJcbiAqIDwvYXBwLXBkZnRyb24+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wZGZ0cm9uJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGRmdHJvbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vcGRmdHJvbi5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW1NlY3VyZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZ0cm9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblx0QFZpZXdDaGlsZCgnZmlsZVZpZXdlcicsIHsgc3RhdGljOiB0cnVlIH0pIHZpZXdlclJlZjogRWxlbWVudFJlZjtcclxuXHR3ZWJWaWV3ZXJJbnN0YW5jZTtcclxuXHQvKiogRGlzYWJsZS9FbmFibGUgQW5ub3RhdGlvbiAqL1xyXG5cdEBJbnB1dCgpXHJcblx0ZWRpdE1vZGU6IGJvb2xlYW47XHJcblx0QElucHV0KCkgYWN0aW9uQ2xpY2tlZCA9IGZhbHNlOyAvLyB1c2VkIHRvIGtub3cgaWYgdGhlcmUgaXMgYWN0aW9uIGNsaWNrZWQgb3V0c2lkZSB0byBzdGFydCBlZGl0IG1vZGUgb3Igbm90XHJcblx0aXNEb2N1bWVudExvYWRpbmc6IGJvb2xlYW47XHJcblx0aXNGZXRjaGluZzogYm9vbGVhbjtcclxuXHQvKiogRG9jdW1lbnQgdGl0bGUgKi9cclxuXHRASW5wdXQoKVxyXG5cdGZpbGVUaXRsZTogc3RyaW5nO1xyXG5cdC8qKiBEb2N1bWVudCBJRCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0ZG9jSWQ6IHN0cmluZztcclxuXHRASW5wdXQoKVxyXG5cdERPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vcGRmJztcclxuXHRASW5wdXQoKVxyXG5cdGZpbGVEYXRhO1xyXG5cdEBJbnB1dCgpXHJcblx0Zml0TW9kZTogJ0ZpdFdpZHRoJyB8ICdGaXRQYWdlJyB8ICdab29tJyA9ICdGaXRXaWR0aCc7XHJcblx0QElucHV0KClcclxuXHRhdXRoSGVhZGVyOiBzdHJpbmc7XHJcblx0QElucHV0KClcclxuXHRmaWxlVVJMOiBzdHJpbmc7XHJcblx0QElucHV0KClcclxuXHRjb3JyZXNwb25kYW5jZTtcclxuXHJcblx0QElucHV0KCkgc2VjcmVjeVByb3BlcnR5OyAvLyB1c2VkIHRvIGFkZCB3YXRlcm1hcmsgYWNvcmRpbmcgY2VydGFpbiBzZWNyZWN5IGxldmVsXHJcblx0QElucHV0KCkgZWRpdGluZ1R5cGU7XHJcblx0QElucHV0KCkgdXNlclNpZ25hdHVyZXM7XHJcblx0QElucHV0KCkgc2VhcmNoU3RyaW5nID0gJyc7IC8vIHN0cmluZyB0byBzZWFyY2ggZm9yIGl0IGluIHRoZSBkb2N1bWVudFxyXG5cclxuXHRASW5wdXQoKSB0cmFja1NpZ25hdHVyZSA9IGZhbHNlOyAvLyB0byBlbmFibGUgdHJhY2tpbmcgc2lnbmF0dXJlIHBvc2l0aW9uIGFuZCBlbWl0IGl0IGFmdGVyIGV2ZXJ5IGNoYW5nZSBpdCBzaWduYXR1cmVcclxuXHRAT3V0cHV0KCkgb25TaWduYXR1cmVUcmFja2luZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gZXZlbnQgdG8gZW1pdCBzaWduYXR1cmUgY2hhbmdlc1xyXG5cclxuXHRASW5wdXQoKSB1c2VPdXRzaWRlQW5vdGF0aW9ucyA9IGZhbHNlOyAvLyBmbGFnZSB0byBpbmRpY2F0IGlmIHVzaW5nIG91dCBzaWRlIGFub3RhdGlvbnMgb3Igbm90XHJcblx0QElucHV0KCkgaW1wb3J0ZWRBbm90YXRpb25zOyAvLyBpbXBvcnRlZCBhbm90YXRpb25zIGZyb20gb3V0c2lkZVxyXG5cdEBJbnB1dCgpIGFsbG93RG93bmxvYWRTZWNyZXRGaWxlID0gdHJ1ZTsgLy8gYWxsb3cgb3IgcHJldmVudCBkb3dubG9hZCBzY3JlY3QgZmlsZXNcclxuXHRASW5wdXQoKSBhbGxvd1ByaW50U2VjcmV0RmlsZSA9IHRydWU7IC8vIGFsbG93IG9yIHByZXZlbnQgcHJpbnQgc2NyZWN0IGZpbGVzXHJcblx0QElucHV0KCkgbmVnZWxlY3RBZGRpbmdXYXRlck1hcmsgPSBmYWxzZTsgLy8gZG9uJ3QgYWRkIHdhdGVybWFyayBoZXJlIHdoYXRldmVyIGVhcyB0aGUgY29uZGl0aW9ucyAod2UgbWF5IGFkZCBpdCBmcm9tIG91dHNpZGUgb3Igbm90IGFkZCBpdCBhdCBhbGwpXHJcblx0QElucHV0KCkgZmxhdHRlbkFub3RhdGlvbiA9IGZhbHNlOyAvLyB1c2VkIHRvIGZsYXR0ZW4gYW5vdGF0aW9uIGludG8gdGhlIGRvY3VtZW50IHRvIGF2b2lkIGVkaXRpbmcgb24gdGhlbSBhZnRlciBzYXZpbmdcclxuXHRASW5wdXQoKSByZWNvZ25pemVkSnNvbjtcclxuXHRASW5wdXQgKCkgaXNTaWduZWREb2N1bWVudCA9IGZhbHNlOyAvLyBmbGFnZSB0byBpbmRpY2F0ZSBpZiB0aGlzIGRvY3VtZW50IGlzIHNpZ25lZCB3aXRoIG91dHNpZGUgcGxhdGZvcm0gdG8gZW5hYmxlIGRpZmZyZW50IHdheSBvZiBkb3dubG9hZGluZyBpdFxyXG5cdEBJbnB1dCAoKSBhbGxvd1ByaW50RnJvbU91dFNpZGUgPSBmYWxzZTsgLy9mbGFnZSB0byBpbmRpY2F0ZSBpZiB0byB1c2UgcHJpbnQgb2YgcGRmdHJvbiBvciBlbWl0IHRoZSBldmVudCBvdXRzaWRlIHRvIGhhbmRsZSBwcmludGZyb20gb3V0c2lkZVxyXG5cdEBPdXRwdXQoKSBvbkRvd25sb2FkaW5nU2lnbmVkRG9jdW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHVzZWQgdG8gdGVsbCBvdXRzaWRlIHdlIG5lZWQgZG93bmxvYWQgc2lnbmVkIGRvY3VtZW50IHRvIGRvd25sb2FkIGl0IHdpdGggcHJvcGVyIHdheSBkaWZmcmVudCBmcm9tIGV4cG9ydCBvZiBwZGZ0cm9uXHJcblx0QE91dHB1dCgpIG9uQWRkaW5nQW5vdGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyB1c2VkIHRvIGV4cG9ydCBhbGwgYW5vdGF0aW9ucyB0byBvdXRzaWRlXHJcblx0QE91dHB1dCgpXHJcblx0ZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBTaWduYXR1cmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gdXNlZCB0byBleHBvcnQgc2lnbmF0dXJlIHRvIG91dHNpZGVcclxuXHRmaXJzdFRpbWVMb2FkID0gdHJ1ZTsgLy9mbGFnZSB0byBjb250cm9sIGltcG9ydGluZyBzaWduYXR1cmVzIGluIHRoZSBmaXJzdCB0aW1lIGxvYWQgb25seVxyXG5cdGZpcnN0U2lnbmF0dXJlTG9hZCA9IHRydWU7IC8vIGZsYWdlIHRvIHBhc3MgZmlyc3QgbG9hZCBvZiBpbXBvcnRlZCBzaWduYXR1cmVzIHdpdGhvdXQgZW1pdHRpbmcgdGhlIGV2ZW50XHJcblx0bmV3U2lnbkNyZWF0aW9uID0gZmFsc2U7IC8vIGZsYWdlIHRvIGluZGljYXRlIHNpZ25hdHVyZSBjcmVhdGlvbiBpcyBjcmVhdGVkIG9yIGNob29zZWQgZnJvbSBzdG9yZWQgb25lc1xyXG5cdHRyYW5zZWxhdGlvblN1YnNjcml0aW9uOiBTdWJzY3JpcHRpb247XHJcblx0aXNBcmFiaWM7XHJcblxyXG5cdC8vc2lsZW50IHBkZlRyb25cclxuXHRzaWxlbnRQZGZUcm9uOiBIVE1MRWxlbWVudDtcclxuXHRtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xyXG5cdHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByaXZhdGUgcGRmdHJvblNlcnZpY2U6IFBkZnRyb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBudXhlbzogTnV4ZW9TZXJ2aWNlLFxyXG5cdFx0QEluamVjdChBUFBfQkFTRV9IUkVGKSBwcml2YXRlIGJhc2VIcmVmOiBzdHJpbmcsXHJcblx0XHRwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBzaWxlbnRQZGZUcm9uU2VydmljZTogU2lsZW50UGRmVHJvblNlcnZpY2UsXHJcblx0XHRASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuXHQpIHt9XHJcblxyXG5cdGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0dGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuaXNBcmFiaWMgPSByZXM7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnJlY2l2ZWRTZWFyY2hTdHJpbmdzQXJyYXkgPSB0aGlzLnNlYXJjaFN0cmluZy50cmltKCkgPyB0aGlzLnNlYXJjaFN0cmluZy5zcGxpdCgnLCcpIDogW107XHJcblx0XHRpZiAodGhpcy5maWxlVGl0bGUpIHtcclxuXHRcdFx0aWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcucHB0JykpIHtcclxuXHRcdFx0XHR0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcucHB0eCcpKSB7XHJcblx0XHRcdFx0dGhpcy5ET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcuZG9jJykpIHtcclxuXHRcdFx0XHR0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vbXN3b3JkJztcclxuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmZpbGVUaXRsZS5lbmRzV2l0aCgnLmRvY3gnKSkge1xyXG5cdFx0XHRcdHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zaWxlbnRQZGZUcm9uU2VydmljZS5pc0VuYWJsZWQpIHtcclxuXHRcdFx0W3RoaXMuc2lsZW50UGRmVHJvbiwgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZV0gPSBhd2FpdCB0aGlzLnNpbGVudFBkZlRyb25TZXJ2aWNlLmdldFdlYlZpZXdlcigpO1xyXG5cdFx0XHR0aGlzLiNhZnRlckxvYWRXZWJWaWV3ZXIodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSk7XHJcblxyXG5cdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLiN1cGRhdGVTaWxlbnRQZGZUcm9uKCkpO1xyXG5cdFx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcclxuXHJcblx0XHRcdHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy4jdXBkYXRlU2lsZW50UGRmVHJvbigpKTtcclxuXHRcdFx0dGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuXHRcdFx0dGhpcy4jdXBkYXRlU2lsZW50UGRmVHJvbigpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0V2ViVmlld2VyKFxyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdHBhdGg6IHRoaXMuYmFzZUhyZWYgKyAnL2Fzc2V0cy9wZGZ0cm9ucycsXHJcblx0XHRcdFx0XHRmb3JjZUNsaWVudFNpZGVJbml0OiB0cnVlLFxyXG5cdFx0XHRcdFx0c3RyZWFtaW5nOiB0cnVlLFxyXG5cdFx0XHRcdFx0ZnVsbEFQSTogdGhpcy5pbXBvcnRGdWxsQXBpKCksXHJcblx0XHRcdFx0XHRsaWNlbnNlS2V5OiB0aGlzLmVudmlyb25tZW50LnBkZnRyb25MaWNlbmNlS2V5LFxyXG5cdFx0XHRcdFx0Y3NzOiB0aGlzLmlzQXJhYmljXHJcblx0XHRcdFx0XHRcdD8gdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3N0eWxlcy9hci1teXBkZnRyb24uY3NzJ1xyXG5cdFx0XHRcdFx0XHQ6IHRoaXMuYmFzZUhyZWYgKyAnL2Fzc2V0cy9zdHlsZXMvZW4tbXlwZGZ0cm9uLmNzcycsXHJcblx0XHRcdFx0XHRhbm5vdGF0aW9uVXNlcjpcclxuXHRcdFx0XHRcdFx0dGhpcy5udXhlby5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMuZmlyc3ROYW1lICsgJyAnICsgdGhpcy5udXhlby5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMubGFzdE5hbWUsXHJcblx0XHRcdFx0XHRkaXNhYmxlZEVsZW1lbnRzOiBbJ2Rvd25sb2FkQnV0dG9uJywgJ3ByaW50QnV0dG9uJ11cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnRcclxuXHRcdFx0KS50aGVuKGFzeW5jIChpbnN0YW5jZSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuI2FmdGVyTG9hZFdlYlZpZXdlcihpbnN0YW5jZSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjdXBkYXRlU2lsZW50UGRmVHJvbigpIHtcclxuXHRcdGNvbnN0IHJlY3QgPSB0aGlzLnZpZXdlclJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLnNpbGVudFBkZlRyb24uc3R5bGUsIHtcclxuXHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXHJcblx0XHRcdHRvcDogYCR7cmVjdC50b3B9cHhgLFxyXG5cdFx0XHRsZWZ0OiBgJHtyZWN0LmxlZnR9cHhgLFxyXG5cdFx0XHR3aWR0aDogYCR7cmVjdC53aWR0aH1weGAsXHJcblx0XHRcdGhlaWdodDogYCR7cmVjdC5oZWlnaHR9cHhgLFxyXG5cdFx0XHR6SW5kZXg6ICc5OTknLFxyXG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdCNhZnRlckxvYWRXZWJWaWV3ZXIoaW5zdGFuY2UpIHtcclxuXHRcdHRoaXMuaXNBcmFiaWMgPyBpbnN0YW5jZS5zZXRMYW5ndWFnZSgnYXInKSA6IGluc3RhbmNlLnNldExhbmd1YWdlKCdlbicpO1xyXG5cdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuXHRcdGlmICh0aGlzLmNvcnJlc3BvbmRhbmNlLmZhY2V0cy5pbmRleE9mKCdjdG9jcicpID4gLTEgJiYgdGhpcy5jb3JyZXNwb25kYW5jZT8ucHJvcGVydGllcz8uWydjdG9jcjpyZWNvZ25pemVkSnNvbiddKSB7XHJcblx0XHRcdHRoaXMuZmlsZVdpdGhPY3IgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLnBhZ2VzID0gdGhpcy5yZWNvZ25pemVkSnNvbj9KU09OLnBhcnNlKHRoaXMucmVjb2duaXplZEpzb24pIDogSlNPTi5wYXJzZSh0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbJ2N0b2NyOnJlY29nbml6ZWRKc29uJ10pO1xyXG5cdFx0XHQvLyBvdmVycmlkZSBzZWFyY2ggZnVudGlvbiB0byB1c2Ugb3VyIHNlYXJjaCBpbiBvY3Igbm90IGRlZnVsdCBzZWFyY2hcclxuXHRcdFx0aW5zdGFuY2Uub3ZlcnJpZGVTZWFyY2hFeGVjdXRpb24odGhpcy5zZWFyY2hGbik7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBpZiBubyBvY3IgdGhlbiBhZGQgc2VhcmNoIGxpc25lciB0byBsaXNuZSB0byBpbnRlcm5hbCBzZWFyY2ggYW5kIGNhdGNoIHJlc3VsdHNcclxuXHRcdFx0dGhpcy5hZGRTZWFyY2hMaXN0bmVyKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmFkZFByaW50QnV0dG9uKCk7XHJcblx0XHR0aGlzLmFkZERvd25sb2FkQnV0dG9uKCk7XHJcblx0XHR0aGlzLmltcG9ydFNpZ25hdHVyZSgpO1xyXG5cdFx0dGhpcy5leHBvcnRpbmdTaWduYXR1cmUoKTtcclxuXHRcdHRoaXMuZGVsZXRlQW5ub3RhdGlvbigpO1xyXG5cdFx0dGhpcy5leHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpO1xyXG5cdFx0aWYgKHRoaXMudXNlT3V0c2lkZUFub3RhdGlvbnMpIHtcclxuXHRcdFx0dGhpcy5pbXBvcnRBbm90YXRpb25zRnJvbU91dHNpZGUoKTtcclxuXHRcdFx0dGhpcy5leHBvcnRBbm90YXRpb25zVG9PdXRzaWRlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5zZXRTZWFyY2hIaWdobGlnaHRDb2xvcnMoe1xyXG5cdFx0XHQvLyBzZXRTZWFyY2hIaWdobGlnaHRDb2xvcnMgYWNjZXB0cyBib3RoIEFubm90YXRpb25zLkNvbG9yIG9iamVjdHMgb3IgJ3JnYmEnIHN0cmluZ3NcclxuXHRcdFx0c2VhcmNoUmVzdWx0OiBuZXcgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Bbm5vdGF0aW9ucy5Db2xvcigyNTAsIDIwNiwgMCwgMC41MDE5NiksXHJcblx0XHRcdGFjdGl2ZVNlYXJjaFJlc3VsdDogbmV3IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQW5ub3RhdGlvbnMuQ29sb3IoMjUwLCAyMDYsIDAsIDAuNTAxOTYpXHJcblx0XHR9KTtcclxuXHRcdGlmICh0aGlzLnJlY2l2ZWRTZWFyY2hTdHJpbmdzQXJyYXkubGVuZ3RoICE9PSAwKSB7XHJcblx0XHRcdHRoaXMuYXV0b21hdGljU2VhcmNoKHRoaXMucmVjaXZlZFNlYXJjaFN0cmluZ3NBcnJheSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmxvYWREb2N1bWVudCgpO1xyXG5cdH1cclxuXHJcblx0Ly8gZnVudGlvbiB0byBjaGVjayB0byBpbXBvcnQgdGhlIGZ1bGwgYXBpIG9yIG5vdCBhY2NvcmRpbmcgdG8gYWN0aW9uIG9mIGFkZCBzdGlja2VyIGV4aXN0IG9yIG5vdFxyXG5cdGltcG9ydEZ1bGxBcGkoKXtcclxuXHRcdGxldCB1c2VGdWxsQXBpID0gZmFsc2U7XHJcbiAgICAgICAgLy8gbGV0IGFjdGlvbkV4aXN0ID0gWydhZGRRcmNvZGUnICwgJ3NlbGVjdFFyY29kZSddLnNvbWUoaXRlbSA9PiB0aGlzLmNvcnJlc3BvbmRhbmNlLmNvbnRleHRQYXJhbWV0ZXJzLmFjdGlvbnMuaW5jbHVkZXMoaXRlbSkpO1xyXG5cdFx0bGV0IGxvY2tNb2RlRXhpc3QgPSB0aGlzLnBkZnRyb25TZXJ2aWNlLm1vZGUgPT09ICdhZGRRcmNvZGUnO1xyXG5cdFx0aWYodGhpcy5mbGF0dGVuQW5vdGF0aW9uICYmIGxvY2tNb2RlRXhpc3Qpe1xyXG5cdFx0XHR1c2VGdWxsQXBpID0gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB1c2VGdWxsQXBpXHJcblx0fVxyXG5cclxuXHRpbXBvcnRBbm90YXRpb25zRnJvbU91dHNpZGUoKSB7XHJcblx0XHRjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG5cclxuXHRcdGRvY3VtZW50Vmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuaW1wb3J0QW5ub3RhdGlvbnModGhpcy5pbXBvcnRlZEFub3RhdGlvbnMpO1xyXG5cdFx0fSk7XHJcblx0XHQvLyAudGhlbihhbm5vdGF0aW9ucyA9PiB7XHJcblx0XHQvLyAgIGFubm90YXRpb25zLmZvckVhY2goYW5ub3RhdGlvbiA9PiB7XHJcblx0XHQvLyAgICAgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihhbm5vdGF0aW9uKTtcclxuXHRcdC8vICAgfSk7XHJcblx0XHQvLyB9KTtcclxuXHR9XHJcblxyXG5cdC8vIGV4Y3RyYWN0IGFsbCBhbm90YXRpb25zIG9uIHRoZSBmaWxlIGFuZCBzZW5kIGl0IG91dCBzaWRlIHRvIGJlIHNhdmVkIGFuZCBsZWF2ZSB0aGUgZmlsZSBhcyBpdCBpcyB3aXRob3V0IGFueSBhbm90YXRpb25zIG9uIGl0XHJcblx0ZXhwb3J0QW5vdGF0aW9uc1RvT3V0c2lkZSgpIHtcclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLm9uKCdhbm5vdGF0aW9uQ2hhbmdlZCcsIChhbm5vdGF0aW9ucywgYWN0aW9uLCB7IGltcG9ydGVkIH0pID0+IHtcclxuXHRcdFx0aWYgKGltcG9ydGVkKSByZXR1cm47XHJcblx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCkudGhlbigoZXhjdHJhY3RlZEFub3RhdGlvbnMpID0+IHtcclxuXHRcdFx0XHR0aGlzLm9uQWRkaW5nQW5vdGF0aW9uLmVtaXQoZXhjdHJhY3RlZEFub3RhdGlvbnMpO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0Ly8gaWYgdHJhY2tpbmcgc2lnbmF0dXJlIGxvY2F0aW9uIGlzIGVuYWJsZSB0aGVuIGVtaXQgc2lnbmF0dXJlIG91dHNpZGUgd2l0aCBldmVyeSBjaGFuZ2VzIGluIGl0XHJcblx0XHRcdGlmICh0aGlzLnRyYWNrU2lnbmF0dXJlKSB7XHJcblx0XHRcdFx0dGhpcy5vblNpZ25hdHVyZVRyYWNraW5nLmVtaXQoeyBhbm90YXRpb25zOiBhbm5vdGF0aW9ucywgYWN0aW9uOiBhY3Rpb24gfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aW1wb3J0U2lnbmF0dXJlKCkge1xyXG5cdFx0Y29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuXHRcdGNvbnN0IHNpZ25hdHVyZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcblxyXG5cdFx0ZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5maXJzdFRpbWVMb2FkKSB7XHJcblx0XHRcdFx0c2lnbmF0dXJlVG9vbC5pbXBvcnRTaWduYXR1cmVzKFsuLi50aGlzLnVzZXJTaWduYXR1cmVzXSk7XHJcblx0XHRcdFx0dGhpcy5maXJzdFRpbWVMb2FkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0aW5nU2F2ZWRTaWduYXR1cmUoKSB7XHJcblx0XHRjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG5cdFx0Y29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuXHRcdFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ3NpZ25hdHVyZVNhdmVkJywgKGFubm90YXRpb24pID0+IHtcclxuXHRcdFx0aWYgKCF0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdzaWduYXR1cmUgc2F2ZWQgdHJpZ2VyZWQnKTtcclxuXHRcdFx0XHR0aGlzLm5ld1NpZ25DcmVhdGlvbiA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5maXJzdFNpZ25hdHVyZUxvYWQgPSBmYWxzZTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0aW5nU2lnbmF0dXJlKCkge1xyXG5cdFx0Y29uc3QgZG9jdW1lbnRWaWV3ZXIgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlcjtcclxuXHRcdGNvbnN0IFNpZ25hdHVyZUNyZWF0ZVRvb2wgPSBkb2N1bWVudFZpZXdlci5nZXRUb29sKCdBbm5vdGF0aW9uQ3JlYXRlU2lnbmF0dXJlJyk7XHJcblx0XHRTaWduYXR1cmVDcmVhdGVUb29sLm9uKCdhbm5vdGF0aW9uQWRkZWQnLCAoYW5ub3RhdGlvbikgPT4ge1xyXG5cdFx0XHRpZiAoYW5ub3RhdGlvbiAmJiB0aGlzLm5ld1NpZ25DcmVhdGlvbikge1xyXG5cdFx0XHRcdHRoaXMubmV3U2lnbkNyZWF0aW9uID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5leHRyYWN0QW5vdGF0aW9uKGFubm90YXRpb24sIGRvY3VtZW50Vmlld2VyKTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhhbm5vdGF0aW9uKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRleHRyYWN0QW5vdGF0aW9uKGFubm90YXRpb24sIGRvY3VtZW50Vmlld2VyKSB7XHJcblx0XHRpZiAoYW5ub3RhdGlvblsnaW1hZ2UnXSkge1xyXG5cdFx0XHQvLyBjb252ZXJ0IGJhc2U2NCBzaWduYXR1cmUgaW50byBmaWxlIGFuZCBlbWl0IGl0IHRvIG91dCBzaWRlXHJcblx0XHRcdGxldCBiYXNlNjRJbWcgPSBhbm5vdGF0aW9uWydpbWFnZSddWydjdXJyZW50U3JjJ107XHJcblx0XHRcdHZhciBhcnIgPSBiYXNlNjRJbWcuc3BsaXQoJywnKSxcclxuXHRcdFx0XHRtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcblx0XHRcdFx0YnN0ciA9IGF0b2IoYXJyWzFdKSxcclxuXHRcdFx0XHRuID0gYnN0ci5sZW5ndGgsXHJcblx0XHRcdFx0dThhcnIgPSBuZXcgVWludDhBcnJheShuKTtcclxuXHRcdFx0d2hpbGUgKG4tLSkge1xyXG5cdFx0XHRcdHU4YXJyW25dID0gYnN0ci5jaGFyQ29kZUF0KG4pO1xyXG5cdFx0XHR9XHJcblx0XHRcdGxldCBuYW1lID0gbWltZS5yZXBsYWNlKCcvJywgJy4nKTtcclxuXHRcdFx0bGV0IG15RmlsZSA9IG5ldyBGaWxlKFt1OGFycl0sICdteVNpZ25hdHVyZS5wbmcnLCB7IHR5cGU6IG1pbWUgfSk7XHJcblx0XHRcdHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IG15RmlsZSwgZXZlbnROYW1lOiAnZXhwb3J0JyB9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiwgZG9jdW1lbnRWaWV3ZXIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgZXh0cmFjdEFubm90YXRpb25TaWduYXR1cmUoYW5ub3RhdGlvbiwgZG9jVmlld2VyKSB7XHJcblx0XHQvLyBDcmVhdGUgYSBuZXcgQ2FudmFzIHRvIGRyYXcgdGhlIEFubm90YXRpb24gb25cclxuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG5cdFx0Ly8gUmVmZXJlbmNlIHRoZSBhbm5vdGF0aW9uIGZyb20gdGhlIERvY3VtZW50XHJcblx0XHRjb25zdCBwYWdlTWF0cml4ID0gZG9jVmlld2VyLmdldERvY3VtZW50KCkuZ2V0UGFnZU1hdHJpeChhbm5vdGF0aW9uLlBhZ2VOdW1iZXIpO1xyXG5cdFx0Ly8gU2V0IHRoZSBoZWlnaHQgJiB3aWR0aCBvZiB0aGUgY2FudmFzIHRvIG1hZGVsZXRlU2F2ZWRTaWduYXR1cmV0Y2ggdGhlIGFubm90YXRpb25cclxuXHRcdGNhbnZhcy5oZWlnaHQgPSBhbm5vdGF0aW9uLkhlaWdodDtcclxuXHRcdGNhbnZhcy53aWR0aCA9IGFubm90YXRpb24uV2lkdGg7XHJcblx0XHRjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHRcdC8vIFRyYW5zbGF0ZSB0aGUgQW5ub3RhdGlvbiB0byB0aGUgdG9wIFRvcCBMZWZ0IENvcm5lciBvZiB0aGUgQ2FudmFzIGllICgwLCAwKVxyXG5cdFx0Y3R4LnRyYW5zbGF0ZSgtYW5ub3RhdGlvbi5YLCAtYW5ub3RhdGlvbi5ZKTtcclxuXHRcdC8vIERyYXcgdGhlIEFubm90YXRpb24gb250byB0aGUgQ2FudmFzXHJcblx0XHRhbm5vdGF0aW9uLmRyYXcoY3R4LCBwYWdlTWF0cml4KTtcclxuXHRcdC8vIENvbnZlcnQgdGhlIENhbnZhcyB0byBhIEJsb2IgT2JqZWN0IGZvciBVcGxvYWRcclxuXHRcdGNhbnZhcy50b0Jsb2IoKGJsb2IpID0+IHtcclxuXHRcdFx0Ly8gQ2FsbCB5b3VyIEJsb2IgU3RvcmFnZSBVcGxvYWQgRnVuY3Rpb25cclxuXHRcdFx0bGV0IG5hbWUgPSBibG9iLnR5cGUucmVwbGFjZSgnLycsICcuJyk7XHJcblx0XHRcdGxldCBteUZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIG5hbWUpO1xyXG5cdFx0XHR0aGlzLlNpZ25hdHVyZUV2ZW50LmVtaXQoeyBkYXRhOiBteUZpbGUsIGV2ZW50TmFtZTogJ2V4cG9ydCcgfSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRlbGV0ZUFubm90YXRpb24oKSB7XHJcblx0XHRjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG5cdFx0Y29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuXHRcdFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ3NpZ25hdHVyZURlbGV0ZWQnLCAoYW5ub3RhdGlvbiwgaW5kZXgpID0+IHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ3RoZXJlIHdlcmUgYW5ub3RhdGlvbnMgZGVsZXRlZCcpO1xyXG5cdFx0XHR0aGlzLnVzZXJTaWduYXR1cmVzLnNwbGljZShpbmRleCwgMSk7XHJcblx0XHRcdHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IHsgc2lnbmF0dXJlOiBhbm5vdGF0aW9uLCBpbmRleDogaW5kZXggfSwgZXZlbnROYW1lOiAnZGVsZXRlJyB9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YWRkRG93bmxvYWRCdXR0b24oKSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdHRoaXMuYWxsb3dEb3dubG9hZFNlY3JldEZpbGUgfHxcclxuXHRcdFx0KCF0aGlzLmFsbG93RG93bmxvYWRTZWNyZXRGaWxlICYmXHJcblx0XHRcdFx0dGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJlxyXG5cdFx0XHRcdHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gPT09ICdOb3JtYWwnKVxyXG5cdFx0KSB7XHJcblx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG5cdFx0XHRcdGhlYWRlci5wdXNoKHtcclxuXHRcdFx0XHRcdHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG5cdFx0XHRcdFx0aW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrLWFycm93LWRvd25cIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+IDxwYXRoIGQ9XCJNOC41IDYuNWEuNS41IDAgMCAwLTEgMHYzLjc5M0w2LjM1NCA5LjE0NmEuNS41IDAgMSAwLS43MDguNzA4bDIgMmEuNS41IDAgMCAwIC43MDggMGwyLTJhLjUuNSAwIDAgMC0uNzA4LS43MDhMOC41IDEwLjI5M1Y2LjV6XCIvPiA8cGF0aCBkPVwiTTE0IDE0VjQuNUw5LjUgMEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ6TTkuNSAzQTEuNSAxLjUgMCAwIDAgMTEgNC41aDJWMTRhMSAxIDAgMCAxLTEgMUg0YTEgMSAwIDAgMS0xLTFWMmExIDEgMCAwIDEgMS0xaDUuNXYyelwiLz48L3N2Zz4nLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHRoaXMuaXNBcmFiaWMgPyAn2KrZhtiy2YrZhCcgOiAnRG93bmxvYWQnLFxyXG5cdFx0XHRcdFx0b25DbGljazogYXN5bmMgKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyBpZiB3YXNuJ3Qgc2lnbmVkIGRvY3VtZW50IHRoZW4gZG93bmxvYWQgaXQgdXNpbmcgcGRmdHJvbiBub3JtYWwgZG9ud25sb2FkXHJcblx0XHRcdFx0XHRcdGlmKCF0aGlzLmlzU2lnbmVkRG9jdW1lbnQpe1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IHhmZGZTdHJpbmcgPSBhd2FpdCB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90TWFuYWdlci5leHBvcnRBbm5vdGF0aW9ucygpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IG9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHRmaWxlbmFtZTogdGhpcy5jb3JyZXNwb25kYW5jZS50aXRsZSA/IHRoaXMuY29ycmVzcG9uZGFuY2UudGl0bGUgOiAnbXlEb2N1bWVudC5wZGYnLFxyXG5cdFx0XHRcdFx0XHRcdFx0eGZkZlN0cmluZyxcclxuXHRcdFx0XHRcdFx0XHRcdGluY2x1ZGVBbm5vdGF0aW9uczogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRcdGRvd25sb2FkVHlwZTogJ3BkZidcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFxyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuZG93bmxvYWRQZGYob3B0aW9ucyk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ldmVudHMubmV4dCgnZG93bmxvYWQnKTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0Ly8gaWYgaXQgd2FzIHNpZ25lZCBkb2N1bWVudCB0aGVuIGRvd25sb2FkIGl0IGJ5IGZ1bmN0aW9uIGZyb20gb3V0c2lkZSB0byBhdm9pZCBcclxuXHRcdFx0XHRcdFx0XHQvLyBsb29zaW5nIHNpZ25pbmcgaW5mb3JtYXRpb24gdGhhdCBoYXBwZW5zIGlmIGkgZG93bmxvYWQgaXQgZnJvbSBwZGZ0cm9uIGl0c2VsZlxyXG5cdFx0XHRcdFx0XHRcdHRoaXMub25Eb3dubG9hZGluZ1NpZ25lZERvY3VtZW50LmVtaXQoKVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBsZXQgdXJsID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YTtcclxuXHRcdFx0XHRcdFx0Ly8gbGV0IGZpbGVOYW1lID0gdGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzLmNvbnRlbnQubmFtZTtcclxuXHRcdFx0XHRcdFx0Ly8gaWYgKHVybCAmJiBmaWxlTmFtZSkge1xyXG5cdFx0XHRcdFx0XHQvLyAgIGxldCBzYWZlVXJsID0gdGhpcy5zZWN1cmVQaXBlLnRyYW5zZm9ybSh1cmwpO1xyXG5cdFx0XHRcdFx0XHQvLyAgIHNhZmVVcmwuc3Vic2NyaWJlKCh1cmw6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRcdFx0XHRcdFx0Ly8gICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHRcdFx0XHRcdFx0Ly8gICAgIGxpbmsuaHJlZiA9IHVybC5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5O1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuXHRcdFx0XHRcdFx0Ly8gICAgIGxpbmsuY2xpY2soKTtcclxuXHRcdFx0XHRcdFx0Ly8gICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcblx0XHRcdFx0XHRcdC8vICAgICB0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG5cdFx0XHRcdFx0XHQvLyAgIH0pO1xyXG5cdFx0XHRcdFx0XHQvLyB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWRkUHJpbnRCdXR0b24oKSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdHRoaXMuYWxsb3dQcmludFNlY3JldEZpbGUgfHxcclxuXHRcdFx0KCF0aGlzLmFsbG93UHJpbnRTZWNyZXRGaWxlICYmXHJcblx0XHRcdFx0dGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAmJlxyXG5cdFx0XHRcdHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gPT09ICdOb3JtYWwnKVxyXG5cdFx0KSB7XHJcblx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG5cdFx0XHRcdGhlYWRlci5wdXNoKHtcclxuXHRcdFx0XHRcdHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG5cdFx0XHRcdFx0aW1nOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojYWJiMGM0O308L3N0eWxlPjwvZGVmcz48dGl0bGU+aWNvbiAtIGhlYWRlciAtIHByaW50IC0gbGluZTwvdGl0bGU+PHBhdGggY2xhc3M9XCJjbHMtMVwiIGQ9XCJNMjAsNkgxOFYySDZWNkg0QTIsMiwwLDAsMCwyLDh2OWEyLDIsMCwwLDAsMiwySDZ2M0gxOFYxOWgyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjAsNlpNOCw0aDhWNkg4Wm04LDE2SDhWMTZoOFptNC0zSDE4VjE0SDZ2M0g0VjhIMjBabS00LTdoMnYySDE2Wm0tMywwaDJ2MkgxM1pcIj48L3BhdGg+PC9zdmc+JyxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmlzQXJhYmljID8gJ9i32KjYp9i52KknIDogJ1ByaW50JyxcclxuXHRcdFx0XHRcdG9uQ2xpY2s6ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYodGhpcy5hbGxvd1ByaW50RnJvbU91dFNpZGUpe1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXZlbnRzLm5leHQoJ3ByaW50Jyk7XHJcblx0XHRcdFx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UucHJpbnQoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmV2ZW50cy5uZXh0KCdwcmludCcpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoWydwcmludE1vZGFsJ10pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWRkV2F0ZXJtYXJrKCkge1xyXG5cdFx0Y29uc3QgdXNlcmluZm8gPSB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcztcclxuXHRcdHRoaXMucGRmdHJvblNlcnZpY2UuYWRkV2F0ZXJtYXJrKFxyXG5cdFx0XHRgJHt1c2VyaW5mby51c2VybmFtZX0gICAgYFxyXG5cdFx0XHQvLyBgJHt1c2VyaW5mby5maXJzdE5hbWV9ICR7XHJcblx0XHRcdC8vICAgdXNlcmluZm8ubGFzdE5hbWVcclxuXHRcdFx0Ly8gfSBgXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0I2RvY0xvYWRlZCA9ICgpID0+IHtcclxuXHRcdGxldCBmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLkZpdFdpZHRoO1xyXG5cdFx0aWYgKHRoaXMuZml0TW9kZSA9PT0gJ0ZpdFBhZ2UnKSB7XHJcblx0XHRcdGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0UGFnZTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5maXRNb2RlID09PSAnWm9vbScpIHtcclxuXHRcdFx0Zml0TW9kZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuRml0TW9kZS5ab29tO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRGaXRNb2RlKGZpdE1vZGUpO1xyXG5cdH07XHJcblx0bG9hZERvY3VtZW50KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLndlYlZpZXdlckluc3RhbmNlIHx8ICghdGhpcy5maWxlRGF0YSAmJiAhdGhpcy5maWxlVVJMKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCB7IGRvY1ZpZXdlciwgYW5ub3RNYW5hZ2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZTtcclxuXHRcdGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCB0aGlzLiNkb2NMb2FkZWQpO1xyXG5cdFx0aWYgKCF0aGlzLmVkaXRNb2RlKSB7XHJcblx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnNldFJlYWRPbmx5KHRydWUpO1xyXG5cdFx0XHQvLyBpbnN0YW5jZS5lbmFibGVUb29scyhbXSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5maWxlVVJMICYmIHRoaXMuZmlsZVVSTC5sZW5ndGgpIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQodGhpcy5maWxlVVJMLCB7XHJcblx0XHRcdFx0eG9kc3RyZWFtaW5nOiB0cnVlLFxyXG5cdFx0XHRcdGN1c3RvbUhlYWRlcnM6IHtcclxuXHRcdFx0XHRcdEF1dGhvcml6YXRpb246IHRoaXMuYXV0aEhlYWRlclxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5sb2FkRG9jdW1lbnQobmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHRoaXMuZmlsZURhdGEpXSwgeyB0eXBlOiB0aGlzLkRPQ1VNRU5UX1RZUEUgfSksIHtcclxuXHRcdFx0XHRmaWxlbmFtZTogdGhpcy5maWxlVGl0bGVcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5pc0ZldGNoaW5nID0gZmFsc2U7XHJcblx0XHQvLyBpZiBub3QgbmVnZWxjdGluZyBhZGRpbmcgd2F0ZXIgbWFyayB0aGVuIGNoZWNrIGNvbmRpdGlvbnMgZm9yIGFkZGluZyBpdFxyXG5cdFx0aWYgKCF0aGlzLm5lZ2VsZWN0QWRkaW5nV2F0ZXJNYXJrKSB7XHJcblx0XHRcdGlmICh0aGlzLmNvcnJlc3BvbmRhbmNlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHQvLyBpZiB3ZSBuZWVkIHRvIGNoZWNrIG9uIHNlY3JlY3kgbGV2ZWwgZm9yIGFkZGluZyB3YXRlciBtYXJrIG9yIG5vdFxyXG5cdFx0XHRcdGlmICh0aGlzLmVudmlyb25tZW50LmVuYWJsZVZpZXdlcldhdGVyTWFyayAmJiB0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG5cdFx0XHRcdFx0Ly8gY2hlY2sgZm9yIHNlY3JlY3kgbGV2ZWwgYmVmb3IgYWRkaW5nIHdhdGVybWFya1xyXG5cdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICYmXHJcblx0XHRcdFx0XHRcdHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gIT09ICdOb3JtYWwnXHJcblx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5hZGRXYXRlcm1hcmsoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlVmlld2VyV2F0ZXJNYXJrICYmICF0aGlzLnNlY3JlY3lQcm9wZXJ0eSkge1xyXG5cdFx0XHRcdFx0dGhpcy5hZGRXYXRlcm1hcmsoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGV4cG9ydEFzQmxvYigpOiBQcm9taXNlPEJsb2I+IHtcclxuXHRcdGNvbnN0IGRvYyA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldERvY3VtZW50KCk7XHJcblx0XHRjb25zdCB4ZmRmU3RyaW5nID0gYXdhaXQgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKTtcclxuXHRcdGNvbnN0IGRhdGEgPSBhd2FpdCBkb2MuZ2V0RmlsZURhdGEoe1xyXG5cdFx0XHQvLyBzYXZlcyB0aGUgZG9jdW1lbnQgd2l0aCBhbm5vdGF0aW9ucyBpbiBpdFxyXG5cdFx0XHR4ZmRmU3RyaW5nXHJcblx0XHR9KTtcclxuXHRcdGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGRhdGEpO1xyXG5cdFx0Y29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJdLCB7IHR5cGU6IHRoaXMuRE9DVU1FTlRfVFlQRSB9KTtcclxuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoYmxvYik7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVFZGl0KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmFjdGlvbkNsaWNrZWQpIHtcclxuXHRcdFx0Ly8gYWN0aW9uIGNsaWNrZWQgaXMgbm90IGNsaWNrZWQgdGhlbiBubyB1cGRhdGUgbW9kZSBvcGVuZWRcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kaXNhYmxlRWxlbWVudHMoW1xyXG5cdFx0XHRcdCd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuXHRcdFx0XHQndG9vbGJhckdyb3VwLUVkaXQnLFxyXG5cdFx0XHRcdCd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuXHRcdFx0XHQndG9vbGJhckdyb3VwLUFubm90YXRlJ1xyXG5cdFx0XHRdKTtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBlZGl0IG1vZGUgb3BlbmVkIGFuZCBtdXN0IGJlIHdoZW4gYWN0aW9uIGlzIGNsaWNrZWRcclxuXHRcdFx0aWYgKHRoaXMuZWRpdGluZ1R5cGUpIHtcclxuXHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLUVkaXQnLFxyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZSdcclxuXHRcdFx0XHRdKTtcclxuXHRcdFx0XHRsZXQgZ3JvdXA7XHJcblx0XHRcdFx0aWYgKHRoaXMuZWRpdGluZ1R5cGUgPT09ICdzaWduRG9jJykge1xyXG5cdFx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbJ3Rvb2xiYXJHcm91cC1JbnNlcnQnXSk7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLmVkaXRpbmdUeXBlID09PSAnYW5ub3RhdGUnKSB7XHJcblx0XHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmVuYWJsZUVsZW1lbnRzKFsndG9vbGJhckdyb3VwLVNoYXBlcycsICd0b29sYmFyR3JvdXAtRWRpdCcsICd0b29sYmFyR3JvdXAtQW5ub3RhdGUnXSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoW1xyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuXHRcdFx0XHRcdCd0b29sYmFyR3JvdXAtSW5zZXJ0JyxcclxuXHRcdFx0XHRcdCd0b29sYmFyR3JvdXAtQW5ub3RhdGUnXHJcblx0XHRcdFx0XSk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkoZmFsc2UpO1xyXG5cdFx0XHQvLyB0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldFRvb2xiYXJHcm91cCgndG9vbGJhckdyb3VwLUFubm90YXRlJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG5cdFx0XHR0aGlzLnRvZ2dsZUVkaXQoKTtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdGNoYW5nZXMudXJsRmlsZUNvbnRlbnQgJiZcclxuXHRcdFx0XHRjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgJiZcclxuXHRcdFx0XHRjaGFuZ2VzLnVybEZpbGVDb250ZW50LnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXMudXJsRmlsZUNvbnRlbnQuY3VycmVudFZhbHVlXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHRoaXMubmdPbkRlc3Ryb3koKTtcclxuXHRcdFx0XHR0aGlzLm5nT25Jbml0KCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcGRmVHJvbkV2ZW50KGV2ZW50KSB7XHJcblx0XHRpZiAodGhpc1tldmVudC5hY3Rpb25dKSB7XHJcblx0XHRcdC8vIG1ldGhvZCBleGlzdHMgaW4gdGhlIGNvbXBvbmVudFxyXG5cdFx0XHQvLyAgdGhpc1tldmVudC5hY3Rpb25dKGV2ZW50LnBhcmFtcyk7IC8vIGNhbGwgaXRcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc2VhcmNoIHJlc3VsdHMgc2VjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblx0cGFnZXM6IGFueTtcclxuXHRzdGFuZGFyZEhlaWdodDtcclxuXHRzdGFuZGFyZFdpZHRoO1xyXG5cdHBhZ2VIZWlnaHQ7XHJcblx0cGFnZVdpZHRoO1xyXG5cdHNhdmVkQW5vdGF0aW9ucyA9IFtdO1xyXG5cdGZpbGVXaXRoT2NyID0gZmFsc2U7XHJcblx0bmV3QW5ub3RhdGlvbnMgPSBbXTtcclxuXHRteVNlYXJjaFN0cmluZ1Jlc3VsdHMgPSBbXTtcclxuXHRyZWNpdmVkU2VhcmNoU3RyaW5nc0FycmF5ID0gW107XHJcblxyXG5cdC8vIGFkZGluZyBzZWFyY2ggbGlzbmVyIHRvIGxpc2VuIHRvIGludGVybmFsIHNlYXJjaCBmcm9tIHVpIGFuZCB3aXRob3V0IG9jclxyXG5cdGFkZFNlYXJjaExpc3RuZXIoKSB7XHJcblx0XHRjb25zdCB7IGFubm90TWFuYWdlciwgZG9jVmlld2VyLCBBbm5vdGF0aW9ucyB9ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZTtcclxuXHRcdGNvbnN0IHNlYXJjaExpc3RlbmVyID0gKHNlYXJjaFBhdHRlcm4sIG9wdGlvbnMsIHJlc3VsdHMpID0+IHtcclxuXHRcdFx0dGhpcy5teVNlYXJjaFN0cmluZ1Jlc3VsdHMgPSBbXTtcclxuXHRcdFx0aWYgKHRoaXMuc2F2ZWRBbm90YXRpb25zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLnNhdmVkQW5vdGF0aW9ucy5tYXAoKGFubm90YXRpb24pID0+IHtcclxuXHRcdFx0XHRcdGFubm90YXRpb24uSGlkZGVuID0gdHJ1ZTtcclxuXHRcdFx0XHRcdC8vIEFsd2F5cyByZWRyYXcgYW5ub3RhdGlvbiBpZiByZW5kZXJpbmcgd2FzIHVwZGF0ZWRcclxuXHRcdFx0XHRcdGFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKGFubm90YXRpb24pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIGRvbid0IGRvIGFueSBzZWFyY2ggdW50aWwgdGhlcmUgaXMgYSBzZWFyY2ggcGF0dGVyblxyXG5cdFx0XHRpZiAoc2VhcmNoUGF0dGVybi50cmltKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdC8vIGFkZCByZWRhY3Rpb24gYW5ub3RhdGlvbiBmb3IgZWFjaCBzZWFyY2ggcmVzdWx0XHJcblx0XHRcdFx0dGhpcy5uZXdBbm5vdGF0aW9ucyA9IHJlc3VsdHMubWFwKChyZXN1bHQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGFubm90YXRpb24gPSBuZXcgQW5ub3RhdGlvbnMuVGV4dEhpZ2hsaWdodEFubm90YXRpb24oKTtcclxuXHRcdFx0XHRcdGFubm90YXRpb24uUXVhZHMgPSByZXN1bHQucXVhZHMubWFwKChxdWFkKSA9PiBxdWFkLmdldFBvaW50cygpKTtcclxuXHRcdFx0XHRcdGFubm90YXRpb24uUGFnZU51bWJlciA9IHJlc3VsdC5wYWdlTnVtO1xyXG5cdFx0XHRcdFx0YW5ub3RhdGlvbi5TdHJva2VDb2xvciA9IG5ldyBBbm5vdGF0aW9ucy5Db2xvcigyNTAsIDIwNiwgMCwgMC41MDE5Nik7XHJcblx0XHRcdFx0XHRhbm5vdGF0aW9uLkF1dGhvciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmdldEN1cnJlbnRVc2VyKCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gYW5ub3RhdGlvbjtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnNhdmVkQW5vdGF0aW9ucy5wdXNoKC4uLnRoaXMubmV3QW5ub3RhdGlvbnMpO1xyXG5cdFx0XHRcdGFubm90TWFuYWdlci5hZGRBbm5vdGF0aW9ucyh0aGlzLm5ld0Fubm90YXRpb25zKTtcclxuXHRcdFx0XHRhbm5vdE1hbmFnZXIuZHJhd0Fubm90YXRpb25zRnJvbUxpc3QodGhpcy5uZXdBbm5vdGF0aW9ucyk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZG9jVmlld2VyLmNsZWFyU2VhcmNoUmVzdWx0cygpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGRvY1ZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcblx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYWRkU2VhcmNoTGlzdGVuZXIoc2VhcmNoTGlzdGVuZXIpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBwZXJmb3JtIGF1dG9tYXRpYyBzZWFyY2ggd2hlbiBpbnRlcmluZyB0aGUgcGFnZVxyXG5cdGF1dG9tYXRpY1NlYXJjaChzZWFyY2hUZXh0QXJyYXkpIHtcclxuXHRcdGNvbnN0IHsgYW5ub3RNYW5hZ2VyLCBkb2NWaWV3ZXIsIEFubm90YXRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlO1xyXG5cdFx0bGV0IHNlYXJjaE9wdGlvbnM7XHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLm9wZW5FbGVtZW50cyhbJ3NlYXJjaFBhbmVsJ10pO1xyXG5cdFx0ZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuXHRcdFx0Y29uc3QgbW9kZSA9XHJcblx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Db3JlQ29udHJvbHMuU2VhcmNoLk1vZGUuUEFHRV9TVE9QIHxcclxuXHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLkNvcmVDb250cm9scy5TZWFyY2guTW9kZS5ISUdITElHSFQgfFxyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzLlNlYXJjaC5Nb2RlLkFNQklFTlRfU1RSSU5HO1xyXG5cdFx0XHR0aGlzLm15U2VhcmNoU3RyaW5nUmVzdWx0cyA9IFtdOyAvLyBlbXB0eSBteSBzZWFyY2ggcmVzdWx0IHdoZW4gc3RhcnRpbmcgbmV3IHNlYXJjaFxyXG5cdFx0XHRpZiAodGhpcy5maWxlV2l0aE9jcikge1xyXG5cdFx0XHRcdC8vIGFkZCByZWRhY3Rpb24gYW5ub3RhdGlvbiBmb3IgZWFjaCBzZWFyY2ggcmVzdWx0XHJcblx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvbiA9IG5ldyBBbm5vdGF0aW9ucy5UZXh0SGlnaGxpZ2h0QW5ub3RhdGlvbigpO1xyXG5cdFx0XHRcdHNlYXJjaFRleHRBcnJheS5tYXAoKHNlYXJjaFRleHQpID0+IHtcclxuXHRcdFx0XHRcdGxldCBteVNlYXJjaCA9IHNlYXJjaFRleHQuc3BsaXQoJyAnKTtcclxuXHRcdFx0XHRcdGlmIChteVNlYXJjaC5sZW5ndGggPiAxKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoZW4gaSBhbSBzZWFyY2hpbmcgd2l0aCBtb3JlIHRoYW4gb25lIHdvcmRcclxuXHRcdFx0XHRcdFx0dGhpcy5wYWdlcy5wYWdlcy5mb3JFYWNoKChwYWdlLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGFnZUhlaWdodCA9IHBhZ2UucGFnZV9oZWlnaHQ7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wYWdlV2lkdGggPSBwYWdlLnBhZ2Vfd2lkdGg7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zdGFuZGFyZEhlaWdodCA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VIZWlnaHQoaW5kZXggKyAxKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0YW5kYXJkV2lkdGggPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlV2lkdGgoaW5kZXggKyAxKTtcclxuXHRcdFx0XHRcdFx0XHRwYWdlLnpvbmVzLmZvckVhY2goKHpvbmUpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdHpvbmUucGFyYWdyYXBocy5mb3JFYWNoKChwYXJhZ3JhcGgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGFyYWdyYXBoLmxpbmVzLmZvckVhY2goKGxpbmUpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAobGluZS50ZXh0LmluY2x1ZGVzKHNlYXJjaFRleHQpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLlNlYXJjaEZvcldvcmRJbkxpbmUobXlTZWFyY2gsIGxpbmUsIGluZGV4ICsgMSwgcGFnZSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoZW4gaSBhbSBzZWFyY2hpbmcgd2l0aCBvbmx5IG9uZSB3b3JkXHJcblx0XHRcdFx0XHRcdHRoaXMuc2VhcmNoRm9yV29yZEluQWxsUGFnZXMoc2VhcmNoVGV4dCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0ZG9jVmlld2VyLmNsZWFyU2VhcmNoUmVzdWx0cygpO1xyXG5cdFx0XHRcdHRoaXMuZGlzcGFsYXlTZWFyY2hSZXN1bHRzKGRvY1ZpZXdlcik7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0c2VhcmNoT3B0aW9ucyA9IHtcclxuXHRcdFx0XHRcdC8vIElmIHRydWUsIGEgc2VhcmNoIG9mIHRoZSBlbnRpcmUgZG9jdW1lbnQgd2lsbCBiZSBwZXJmb3JtZWQuIE90aGVyd2lzZSwgYSBzaW5nbGUgc2VhcmNoIHdpbGwgYmUgcGVyZm9ybWVkLlxyXG5cdFx0XHRcdFx0ZnVsbFNlYXJjaDogdHJ1ZSxcclxuXHRcdFx0XHRcdC8vIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBzZWFyY2ggcmV0dXJucyBhIHJlc3VsdC5cclxuXHRcdFx0XHRcdG9uUmVzdWx0OiAocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIHdpdGggJ1BBR0VfU1RPUCcgbW9kZSwgdGhlIGNhbGxiYWNrIGlzIGludm9rZWQgYWZ0ZXIgZWFjaCBwYWdlIGhhcyBiZWVuIHNlYXJjaGVkLlxyXG5cdFx0XHRcdFx0XHRpZiAocmVzdWx0LnJlc3VsdENvZGUgPT09IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzLlNlYXJjaC5SZXN1bHRDb2RlLkZPVU5EKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvbiA9IG5ldyBBbm5vdGF0aW9ucy5UZXh0SGlnaGxpZ2h0QW5ub3RhdGlvbigpO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24uUXVhZHMgPSByZXN1bHQucXVhZHMubWFwKChxdWFkKSA9PiBxdWFkLmdldFBvaW50cygpKTtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhhbm5vdGF0aW9uLlF1YWRzKTtcclxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uLlBhZ2VOdW1iZXIgPSByZXN1bHQucGFnZU51bTtcclxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uLlN0cm9rZUNvbG9yID0gbmV3IEFubm90YXRpb25zLkNvbG9yKDI1MCwgMjA2LCAwLCAwLjUwMTk2KTtcclxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uLkF1dGhvciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmdldEN1cnJlbnRVc2VyKCk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zYXZlZEFub3RhdGlvbnMucHVzaChhbm5vdGF0aW9uKTtcclxuXHRcdFx0XHRcdFx0XHRhbm5vdE1hbmFnZXIuYWRkQW5ub3RhdGlvbnMoW2Fubm90YXRpb25dKTtcclxuXHRcdFx0XHRcdFx0XHRhbm5vdE1hbmFnZXIuZHJhd0Fubm90YXRpb25zRnJvbUxpc3QoW2Fubm90YXRpb25dKTtcclxuXHRcdFx0XHRcdFx0XHRkb2NWaWV3ZXIuZGlzcGxheUFkZGl0aW9uYWxTZWFyY2hSZXN1bHRzKFtyZXN1bHRdKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0c2VhcmNoVGV4dEFycmF5Lm1hcCgoc2VhcmNoZWRUZXh0KSA9PiB7XHJcblx0XHRcdFx0XHRkb2NWaWV3ZXIudGV4dFNlYXJjaEluaXQoc2VhcmNoZWRUZXh0LCBtb2RlLCBzZWFyY2hPcHRpb25zKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBzZWFyY2ggZm9yIHNpbmdsZSB3b3JkIGluIGFsbCBwYWdlc1xyXG5cdHNlYXJjaEZvcldvcmRJbkFsbFBhZ2VzKHNlYXJjaGVkV29yZCkge1xyXG5cdFx0dGhpcy5wYWdlcy5wYWdlcy5mb3JFYWNoKChwYWdlLCBpbmRleCkgPT4ge1xyXG5cdFx0XHR0aGlzLnBhZ2VIZWlnaHQgPSBwYWdlLnBhZ2VfaGVpZ2h0O1xyXG5cdFx0XHR0aGlzLnBhZ2VXaWR0aCA9IHBhZ2UucGFnZV93aWR0aDtcclxuXHRcdFx0dGhpcy5zdGFuZGFyZEhlaWdodCA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VIZWlnaHQoaW5kZXggKyAxKTtcclxuXHRcdFx0dGhpcy5zdGFuZGFyZFdpZHRoID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZVdpZHRoKGluZGV4ICsgMSk7XHJcblx0XHRcdGNvbnN0IHggPSB0aGlzLnBhZ2VXaWR0aCAvIHRoaXMuc3RhbmRhcmRXaWR0aDsgLy8gd2lkdGggcmF0aW9cclxuXHRcdFx0Y29uc3QgeSA9IHRoaXMucGFnZUhlaWdodCAvIHRoaXMuc3RhbmRhcmRIZWlnaHQ7IC8vIGhlaWdodCByYXRpb1xyXG5cdFx0XHRwYWdlLnpvbmVzLmZvckVhY2goKHpvbmUpID0+IHtcclxuXHRcdFx0XHR6b25lLnBhcmFncmFwaHMuZm9yRWFjaCgocGFyYWdyYXBoKSA9PiB7XHJcblx0XHRcdFx0XHRwYXJhZ3JhcGgubGluZXMuZm9yRWFjaCgobGluZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsaW5lLndvcmRzLmZvckVhY2goKHdvcmQpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAod29yZC50ZXh0LmluY2x1ZGVzKHNlYXJjaGVkV29yZCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGFubm90YXRpb24uUGFnZU51bWJlciA9IGluZGV4KzE7XHJcblx0XHRcdFx0XHRcdFx0XHRsZXQgcXVhZHMgPSBbXHJcblx0XHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR4MTogd29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnggLyB4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHgyOiB3b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC54IC8geCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR4Mzogd29yZC5jb29yZGluYXRlcy5ib3R0b21fcmlnaHQueCAvIHgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eDQ6IHdvcmQuY29vcmRpbmF0ZXMudXBwZXJfbGVmdC54IC8geCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR5MTogd29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnkgLyB5LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHkyOiB3b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueSAvIHksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eTM6IHdvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnkgLyB5LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHk0OiB3b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC55IC8geVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRdO1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5oaWdsaWdodFRleHQocXVhZHMsIGluZGV4ICsgMSk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmNvbnN0cnVjdFNlYXJjaFJlc3VsdChzZWFyY2hlZFdvcmQsIGluZGV4ICsgMSwgcXVhZHMsIGxpbmUudGV4dCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gc2VhcmNoIGZvciB3b3JkIGluIHNpbmdsZSBsaW5lXHJcblx0U2VhcmNoRm9yV29yZEluTGluZShsaXN0T2ZTZWFyY2hlZFdvcmRzLCBsaW5lLCBwYWdlbnVtYmVyLCBwYWdlKSB7XHJcblx0XHR0aGlzLnBhZ2VIZWlnaHQgPSBwYWdlLnBhZ2VfaGVpZ2h0O1xyXG5cdFx0dGhpcy5wYWdlV2lkdGggPSBwYWdlLnBhZ2Vfd2lkdGg7XHJcblx0XHR0aGlzLnN0YW5kYXJkSGVpZ2h0ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZUhlaWdodChwYWdlbnVtYmVyKTtcclxuXHRcdHRoaXMuc3RhbmRhcmRXaWR0aCA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VXaWR0aChwYWdlbnVtYmVyKTtcclxuXHRcdGNvbnN0IHggPSB0aGlzLnBhZ2VXaWR0aCAvIHRoaXMuc3RhbmRhcmRXaWR0aDsgLy8gd2lkdGggcmF0aW9cclxuXHRcdGNvbnN0IHkgPSB0aGlzLnBhZ2VIZWlnaHQgLyB0aGlzLnN0YW5kYXJkSGVpZ2h0OyAvLyBoZWlnaHQgcmF0aW9cclxuXHRcdC8vIGZpbmQgb25seSB3b3JkcyByZWxhdGVkIHRvIG15IHNlYXJjaCBmb3JtIHRoZSBsaW5lXHJcblx0XHRsZXQgbXlGb3VuZGVkUmVzdWx0cyA9IFtdO1xyXG5cdFx0bGV0IGNvcnJlY3RSZXN1bHRzID0gW107XHJcblx0XHRsaW5lLndvcmRzLmZvckVhY2goKHdvcmQsIHdvcmRJbmRleCkgPT4ge1xyXG5cdFx0XHRpZiAobGlzdE9mU2VhcmNoZWRXb3Jkcy5pbmRleE9mKHdvcmQudGV4dCkgPiAtMSkge1xyXG5cdFx0XHRcdG15Rm91bmRlZFJlc3VsdHMucHVzaCh7IHdvcmQ6IHdvcmQsIHdvcmRJbmRleDogd29yZEluZGV4IH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyBmaW5kIG9ubHkgd29yZHMgZXhpc3QgaW4gbXkgc2VhcmNoIHNlbnRlbmNlIGFuZCBub3Qgc2luZ2xlIGFuZCByZXBlYXRlZCB3b3JkXHJcblx0XHRteUZvdW5kZWRSZXN1bHRzLm1hcCgocmVzdWx0LCBpbmRleCkgPT4ge1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0bXlGb3VuZGVkUmVzdWx0c1tpbmRleF1bJ3dvcmRJbmRleCddIC0gMSA9PT1cclxuXHRcdFx0XHRcdChteUZvdW5kZWRSZXN1bHRzW2luZGV4IC0gMV0gJiYgbXlGb3VuZGVkUmVzdWx0c1tpbmRleCAtIDFdWyd3b3JkSW5kZXgnXSkgfHxcclxuXHRcdFx0XHQobXlGb3VuZGVkUmVzdWx0c1tpbmRleCArIDFdICYmXHJcblx0XHRcdFx0XHRteUZvdW5kZWRSZXN1bHRzW2luZGV4ICsgMV1bJ3dvcmRJbmRleCddIC0gMSA9PT0gbXlGb3VuZGVkUmVzdWx0c1tpbmRleF1bJ3dvcmRJbmRleCddKVxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHRjb3JyZWN0UmVzdWx0cy5wdXNoKHJlc3VsdCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIGhpZ2hsaWh0IHRoZXNlIHdvcmRzIGFmdGVyIGVsZW1pbmF0aW5nIGFsbCByZXBlYXRlZCBhbmQgcmVsYXRlZCB3b3Jkc1xyXG5cdFx0Ly8gbXVzdCBiZSBmb3IgbG9vcCBzcCBpIGNhbiBjb250cm9sIHRoZSBzdGVwIGluIGVhY2ggbG9vcFxyXG5cdFx0bGV0IHF1YWRzID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNvcnJlY3RSZXN1bHRzLmxlbmd0aDsgaSA9IGkgKyBsaXN0T2ZTZWFyY2hlZFdvcmRzLmxlbmd0aCkge1xyXG5cdFx0XHRxdWFkcy5wdXNoKHtcclxuXHRcdFx0XHR4MTogY29ycmVjdFJlc3VsdHNbaSArIGxpc3RPZlNlYXJjaGVkV29yZHMubGVuZ3RoIC0gMV0ud29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnggLyB4LFxyXG5cdFx0XHRcdHgyOiBjb3JyZWN0UmVzdWx0c1tpXS53b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC54IC8geCxcclxuXHRcdFx0XHR4MzogY29ycmVjdFJlc3VsdHNbaV0ud29yZC5jb29yZGluYXRlcy5ib3R0b21fcmlnaHQueCAvIHgsXHJcblx0XHRcdFx0eDQ6IGNvcnJlY3RSZXN1bHRzW2kgKyBsaXN0T2ZTZWFyY2hlZFdvcmRzLmxlbmd0aCAtIDFdLndvcmQuY29vcmRpbmF0ZXMudXBwZXJfbGVmdC54IC8geCxcclxuXHRcdFx0XHR5MTogY29ycmVjdFJlc3VsdHNbaV0ud29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnkgLyB5LFxyXG5cdFx0XHRcdHkyOiBjb3JyZWN0UmVzdWx0c1tpICsgbGlzdE9mU2VhcmNoZWRXb3Jkcy5sZW5ndGggLSAxXS53b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueSAvIHksXHJcblx0XHRcdFx0eTM6IGNvcnJlY3RSZXN1bHRzW2kgKyBsaXN0T2ZTZWFyY2hlZFdvcmRzLmxlbmd0aCAtIDFdLndvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnkgLyB5LFxyXG5cdFx0XHRcdHk0OiBjb3JyZWN0UmVzdWx0c1tpXS53b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC55IC8geVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5oaWdsaWdodFRleHQocXVhZHMsIHBhZ2VudW1iZXIpO1xyXG5cdFx0XHR0aGlzLmNvbnN0cnVjdFNlYXJjaFJlc3VsdChsaXN0T2ZTZWFyY2hlZFdvcmRzLmpvaW4oJyAnKSwgcGFnZW51bWJlciwgcXVhZHMsIGxpbmUudGV4dCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3RTZWFyY2hSZXN1bHQoc2VhcmNoZWRUZXh0LCBwYWdlTnVtLCBxdWFkcywgbGluZSkge1xyXG5cdFx0bGV0IG15U2VhcmNoU3RhcnRUZXh0SW5kZXggPSBsaW5lLmluZGV4T2Yoc2VhcmNoZWRUZXh0KTtcclxuXHRcdGxldCBteVNlZWFyY2hlZFRleHRFbmRJbmRleCA9IG15U2VhcmNoU3RhcnRUZXh0SW5kZXggKyBzZWFyY2hlZFRleHQubGVuZ3RoO1xyXG5cdFx0bGV0IHNlYXJjaFJlc3VsdE9iamVjdCA9IHtcclxuXHRcdFx0YW1iaWVudFN0cjogbGluZSxcclxuXHRcdFx0cmVzdWx0U3RyOiBzZWFyY2hlZFRleHQsXHJcblx0XHRcdHJlc3VsdFN0clN0YXJ0OiBteVNlYXJjaFN0YXJ0VGV4dEluZGV4LFxyXG5cdFx0XHRyZXN1bHRTdHJFbmQ6IG15U2VlYXJjaGVkVGV4dEVuZEluZGV4LFxyXG5cdFx0XHRwYWdlTnVtOiBwYWdlTnVtLFxyXG5cdFx0XHRyZXN1bHRDb2RlOiAyLFxyXG5cdFx0XHRxdWFkczogW1xyXG5cdFx0XHRcdHtcclxuXHRcdFx0XHRcdGVhOiBxdWFkc1swXVsneTMnXSxcclxuXHRcdFx0XHRcdGZhOiBxdWFkc1swXVsneTQnXSxcclxuXHRcdFx0XHRcdGhhOiBxdWFkc1swXVsneDEnXSxcclxuXHRcdFx0XHRcdGlhOiBxdWFkc1swXVsneDInXSxcclxuXHRcdFx0XHRcdHBCOiBxdWFkc1swXVsneDMnXSxcclxuXHRcdFx0XHRcdHFCOiBxdWFkc1swXVsneDQnXSxcclxuXHRcdFx0XHRcdHJCOiBxdWFkc1swXVsneTEnXSxcclxuXHRcdFx0XHRcdHNCOiBxdWFkc1swXVsneTInXVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XVxyXG5cdFx0fTtcclxuXHRcdHRoaXMubXlTZWFyY2hTdHJpbmdSZXN1bHRzLnB1c2goc2VhcmNoUmVzdWx0T2JqZWN0KTtcclxuXHRcdGNvbnNvbGUubG9nKHRoaXMubXlTZWFyY2hTdHJpbmdSZXN1bHRzKTtcclxuXHR9XHJcblxyXG5cdGRpc3BhbGF5U2VhcmNoUmVzdWx0cyhkb2NWaWV3ZXIpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRkb2NWaWV3ZXIuZGlzcGxheUFkZGl0aW9uYWxTZWFyY2hSZXN1bHRzKHRoaXMubXlTZWFyY2hTdHJpbmdSZXN1bHRzKTtcclxuXHRcdH0sIDUwMCk7XHJcblx0fVxyXG5cclxuXHQvLyBkcmF3IGhpbGlndGhpbmcgYXJvdW5kIGNlcnRhaW4gY2hhcmF0YWN0ZXJzXHJcblx0aGlnbGlnaHRUZXh0KHF1YWRzLCBwYWdlTnVtYmVyKSB7XHJcblx0XHRjb25zdCBoaWdobGlnaHRpbmdBbm5vdCA9IG5ldyB0aGlzLndlYlZpZXdlckluc3RhbmNlLkFubm90YXRpb25zLlRleHRIaWdobGlnaHRBbm5vdGF0aW9uKCk7XHJcblx0XHRoaWdobGlnaHRpbmdBbm5vdC5TdHJva2VDb2xvciA9IG5ldyB0aGlzLndlYlZpZXdlckluc3RhbmNlLkFubm90YXRpb25zLkNvbG9yKDI1MCwgMjA2LCAwLCAwLjUwMTk2KTtcclxuXHRcdGhpZ2hsaWdodGluZ0Fubm90LlF1YWRzID0gcXVhZHM7XHJcblx0XHRoaWdobGlnaHRpbmdBbm5vdC5QYWdlTnVtYmVyID0gcGFnZU51bWJlcjtcclxuXHRcdGhpZ2hsaWdodGluZ0Fubm90LkF1dGhvciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmdldEN1cnJlbnRVc2VyKCk7XHJcblx0XHR0aGlzLnNhdmVkQW5vdGF0aW9ucy5wdXNoKGhpZ2hsaWdodGluZ0Fubm90KTtcclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb24oaGlnaGxpZ2h0aW5nQW5ub3QpO1xyXG5cclxuXHRcdC8vIG5lZWQgdG8gZHJhdyB0aGUgYW5ub3RhdGlvbiBvdGhlcndpc2UgaXQgd29uJ3Qgc2hvdyB1cCB1bnRpbCB0aGUgcGFnZSBpcyByZWZyZXNoZWRcclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnJlZHJhd0Fubm90YXRpb24oaGlnaGxpZ2h0aW5nQW5ub3QpO1xyXG5cdH1cclxuXHJcblx0c2VhcmNoRm4gPSAoc2VhcmNoVmFsdWUsIG9wdGlvbnMpID0+IHtcclxuXHRcdHRoaXMubXlTZWFyY2hTdHJpbmdSZXN1bHRzID0gW107XHJcblx0XHRpZiAodGhpcy5zYXZlZEFub3RhdGlvbnMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLnNhdmVkQW5vdGF0aW9ucy5tYXAoKGFubm90YXRpb24pID0+IHtcclxuXHRcdFx0XHRhbm5vdGF0aW9uLkhpZGRlbiA9IHRydWU7XHJcblx0XHRcdFx0Ly8gQWx3YXlzIHJlZHJhdyBhbm5vdGF0aW9uIGlmIHJlbmRlcmluZyB3YXMgdXBkYXRlZFxyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuYW5ub3RNYW5hZ2VyLnJlZHJhd0Fubm90YXRpb24oYW5ub3RhdGlvbik7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdFx0Ly8gZG9uJ3QgZG8gYW55IHNlYXJjaCB1bnRpbCB0aGVyZSBpcyBhIHNlYXJjaCBwYXR0ZXJuXHJcblx0XHRpZiAoc2VhcmNoVmFsdWUudHJpbSgpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0aWYgKHRoaXMuZmlsZVdpdGhPY3IpIHtcclxuXHRcdFx0XHQvLyBhZGQgcmVkYWN0aW9uIGFubm90YXRpb24gZm9yIGVhY2ggc2VhcmNoIHJlc3VsdFxyXG5cdFx0XHRcdC8vIGNvbnN0IGFubm90YXRpb24gPSBuZXcgQW5ub3RhdGlvbnMuVGV4dEhpZ2hsaWdodEFubm90YXRpb24oKTtcclxuXHRcdFx0XHRsZXQgbXlTZWFyY2ggPSBzZWFyY2hWYWx1ZS5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdGlmIChteVNlYXJjaC5sZW5ndGggPiAxKSB7XHJcblx0XHRcdFx0XHQvLyB0aGVuIGkgYW0gc2VhcmNoaW5nIHdpdGggbW9yZSB0aGFuIG9uZSB3b3JkXHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VzLnBhZ2VzLmZvckVhY2goKHBhZ2UsIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMucGFnZUhlaWdodCA9IHBhZ2UucGFnZV9oZWlnaHQ7XHJcblx0XHRcdFx0XHRcdHRoaXMucGFnZVdpZHRoID0gcGFnZS5wYWdlX3dpZHRoO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0YW5kYXJkSGVpZ2h0ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZUhlaWdodChpbmRleCArIDEpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnN0YW5kYXJkV2lkdGggPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlV2lkdGgoaW5kZXggKyAxKTtcclxuXHRcdFx0XHRcdFx0cGFnZS56b25lcy5mb3JFYWNoKCh6b25lKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0em9uZS5wYXJhZ3JhcGhzLmZvckVhY2goKHBhcmFncmFwaCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0cGFyYWdyYXBoLmxpbmVzLmZvckVhY2goKGxpbmUpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGxpbmUudGV4dC5pbmNsdWRlcyhzZWFyY2hWYWx1ZSkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLlNlYXJjaEZvcldvcmRJbkxpbmUobXlTZWFyY2gsIGxpbmUsIGluZGV4ICsgMSwgcGFnZSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyB0aGVuIGkgYW0gc2VhcmNoaW5nIHdpdGggb25seSBvbmUgd29yZFxyXG5cdFx0XHRcdFx0dGhpcy5zZWFyY2hGb3JXb3JkSW5BbGxQYWdlcyhzZWFyY2hWYWx1ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmNsZWFyU2VhcmNoUmVzdWx0cygpO1xyXG5cdFx0XHRcdHRoaXMuZGlzcGFsYXlTZWFyY2hSZXN1bHRzKHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuY2xlYXJTZWFyY2hSZXN1bHRzKCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLnNpbGVudFBkZlRyb25TZXJ2aWNlLmlzRW5hYmxlZCkge1xyXG5cdFx0XHR0aGlzLiNyZXNldCgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKHRoaXMud2ViVmlld2VySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmNsb3NlRG9jdW1lbnQoKS50aGVuKCgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24gPyB0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uLnVuc3Vic2NyaWJlKCkgOiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0I3Jlc2V0KCkge1xyXG5cdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5jbG9zZURvY3VtZW50KCkudGhlbigoKSA9PiB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCdkb2N1bWVudCBjbG9zZWQhJyk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UgPSBudWxsO1xyXG5cdFx0dGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA/IHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcblxyXG5cdFx0dGhpcy5zaWxlbnRQZGZUcm9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblx0XHR0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcblx0XHR0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuXHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEhlYWRlckl0ZW1zKChoZWFkZXIpID0+IHtcclxuXHRcdFx0aGVhZGVyLmhlYWRlcnMuZGVmYXVsdCA9IGhlYWRlci5oZWFkZXJzLmRlZmF1bHQuZmlsdGVyKChxKSA9PiAhcS5pbWc/LmluY2x1ZGVzKCc8c3ZnJykpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5vZmYoJ2RvY3VtZW50TG9hZGVkJywgdGhpcy4jZG9jTG9hZGVkKTtcclxuXHRcdC8vIG1heWJlIHdpbGwgbmVlZCB0byByZXNldCBzaWduYXR1cmUgJiBhbm5vdGF0aW9uc1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2ICNmaWxlVmlld2VyIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcIj48L2Rpdj5cclxuIl19
852
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmdHJvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGZ0cm9uL3BkZnRyb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXRyb24vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUdOLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQUt4RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBNkQ1QixZQUNRLEdBQXNCLEVBQ3JCLGNBQThCLEVBQzlCLEtBQW1CLEVBQ0ksUUFBZ0IsRUFDdkMsa0JBQXNDLEVBQ3RDLG9CQUEwQyxFQUNuQixXQUFXO1FBTm5DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUN2Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQUE7O1FBOURsQyxrQkFBYSxHQUFHLEtBQUssQ0FBQyxDQUFD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LElBQUksRUFBRTtnQkFJekMsUUFBUTtzQkFEUCxLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVFLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixLQUFLO2dCQUNJLHFCQUFxQjtzQkFBOUIsS0FBSztnQkFDSSwyQkFBMkI7c0JBQXBDLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVQLE1BQU07c0JBREwsTUFBTTtnQkFFRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRBZnRlclZpZXdJbml0LFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFbGVtZW50UmVmLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbmplY3QsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViVmlld2VyIGZyb20gJ0BwZGZ0cm9uL3dlYnZpZXdlcic7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZnRyb25TZXJ2aWNlIH0gZnJvbSAnLi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUFBfQkFTRV9IUkVGIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU2VjdXJlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3NlY3VyZS5waXBlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNpbGVudFBkZlRyb25TZXJ2aWNlIH0gZnJvbSAnLi9zaWxlbnQtcGRmdHJvbi5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIHJldXNhYmxlIGZpbGUgdmlld2VyIGJhc2VkIG9uIFBERlRyb24gTGlicmFyeVxyXG4gKiBAdGl0bGVcclxuICogUERGVHJvbiBWaWV3ZXJcclxuICogQGV4YW1wbGVcclxuICogPGFwcC1wZGZ0cm9uXHJcbiAqICAgW2ZpbGVEYXRhXT1cImZpbGVEYXRhXCJcclxuICogICBbZWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gKiAgIFtkb2NJZF09XCJmaWxlSWRcIlxyXG4gKiAgIFtmaWxlVGl0bGVdPVwiZmlsZS50aXRsZVwiXHJcbiAqID5cclxuICogPC9hcHAtcGRmdHJvbj5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLXBkZnRyb24nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wZGZ0cm9uLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wZGZ0cm9uLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0cHJvdmlkZXJzOiBbU2VjdXJlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZnRyb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHRAVmlld0NoaWxkKCdmaWxlVmlld2VyJywgeyBzdGF0aWM6IHRydWUgfSkgdmlld2VyUmVmOiBFbGVtZW50UmVmO1xyXG5cdHdlYlZpZXdlckluc3RhbmNlO1xyXG5cdC8qKiBEaXNhYmxlL0VuYWJsZSBBbm5vdGF0aW9uICovXHJcblx0QElucHV0KClcclxuXHRlZGl0TW9kZTogYm9vbGVhbjtcclxuXHRASW5wdXQoKSBhY3Rpb25DbGlja2VkID0gZmFsc2U7IC8vIHVzZWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhY3Rpb24gY2xpY2tlZCBvdXRzaWRlIHRvIHN0YXJ0IGVkaXQgbW9kZSBvciBub3RcclxuXHRpc0RvY3VtZW50TG9hZGluZzogYm9vbGVhbjtcclxuXHRpc0ZldGNoaW5nOiBib29sZWFuO1xyXG5cdC8qKiBEb2N1bWVudCB0aXRsZSAqL1xyXG5cdEBJbnB1dCgpXHJcblx0ZmlsZVRpdGxlOiBzdHJpbmc7XHJcblx0LyoqIERvY3VtZW50IElEICovXHJcblx0QElucHV0KClcclxuXHRkb2NJZDogc3RyaW5nO1xyXG5cdEBJbnB1dCgpXHJcblx0RE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9wZGYnO1xyXG5cdEBJbnB1dCgpXHJcblx0ZmlsZURhdGE7XHJcblx0QElucHV0KClcclxuXHRmaXRNb2RlOiAnRml0V2lkdGgnIHwgJ0ZpdFBhZ2UnIHwgJ1pvb20nID0gJ0ZpdFdpZHRoJztcclxuXHRASW5wdXQoKVxyXG5cdGF1dGhIZWFkZXI6IHN0cmluZztcclxuXHRASW5wdXQoKVxyXG5cdGZpbGVVUkw6IHN0cmluZztcclxuXHRASW5wdXQoKVxyXG5cdGNvcnJlc3BvbmRhbmNlO1xyXG5cclxuXHRASW5wdXQoKSBzZWNyZWN5UHJvcGVydHk7IC8vIHVzZWQgdG8gYWRkIHdhdGVybWFyayBhY29yZGluZyBjZXJ0YWluIHNlY3JlY3kgbGV2ZWxcclxuXHRASW5wdXQoKSBlZGl0aW5nVHlwZTtcclxuXHRASW5wdXQoKSB1c2VyU2lnbmF0dXJlcztcclxuXHRASW5wdXQoKSBzZWFyY2hTdHJpbmcgPSAnJzsgLy8gc3RyaW5nIHRvIHNlYXJjaCBmb3IgaXQgaW4gdGhlIGRvY3VtZW50XHJcblxyXG5cdEBJbnB1dCgpIHRyYWNrU2lnbmF0dXJlID0gZmFsc2U7IC8vIHRvIGVuYWJsZSB0cmFja2luZyBzaWduYXR1cmUgcG9zaXRpb24gYW5kIGVtaXQgaXQgYWZ0ZXIgZXZlcnkgY2hhbmdlIGl0IHNpZ25hdHVyZVxyXG5cdEBPdXRwdXQoKSBvblNpZ25hdHVyZVRyYWNraW5nID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyBldmVudCB0byBlbWl0IHNpZ25hdHVyZSBjaGFuZ2VzXHJcblxyXG5cdEBJbnB1dCgpIHVzZU91dHNpZGVBbm90YXRpb25zID0gZmFsc2U7IC8vIGZsYWdlIHRvIGluZGljYXQgaWYgdXNpbmcgb3V0IHNpZGUgYW5vdGF0aW9ucyBvciBub3RcclxuXHRASW5wdXQoKSBpbXBvcnRlZEFub3RhdGlvbnM7IC8vIGltcG9ydGVkIGFub3RhdGlvbnMgZnJvbSBvdXRzaWRlXHJcblx0QElucHV0KCkgYWxsb3dEb3dubG9hZFNlY3JldEZpbGUgPSB0cnVlOyAvLyBhbGxvdyBvciBwcmV2ZW50IGRvd25sb2FkIHNjcmVjdCBmaWxlc1xyXG5cdEBJbnB1dCgpIGFsbG93UHJpbnRTZWNyZXRGaWxlID0gdHJ1ZTsgLy8gYWxsb3cgb3IgcHJldmVudCBwcmludCBzY3JlY3QgZmlsZXNcclxuXHRASW5wdXQoKSBuZWdlbGVjdEFkZGluZ1dhdGVyTWFyayA9IGZhbHNlOyAvLyBkb24ndCBhZGQgd2F0ZXJtYXJrIGhlcmUgd2hhdGV2ZXIgZWFzIHRoZSBjb25kaXRpb25zICh3ZSBtYXkgYWRkIGl0IGZyb20gb3V0c2lkZSBvciBub3QgYWRkIGl0IGF0IGFsbClcclxuXHRASW5wdXQoKSBmbGF0dGVuQW5vdGF0aW9uID0gZmFsc2U7IC8vIHVzZWQgdG8gZmxhdHRlbiBhbm90YXRpb24gaW50byB0aGUgZG9jdW1lbnQgdG8gYXZvaWQgZWRpdGluZyBvbiB0aGVtIGFmdGVyIHNhdmluZ1xyXG5cdEBJbnB1dCgpIHJlY29nbml6ZWRKc29uO1xyXG5cdEBJbnB1dCAoKSBpc1NpZ25lZERvY3VtZW50ID0gZmFsc2U7IC8vIGZsYWdlIHRvIGluZGljYXRlIGlmIHRoaXMgZG9jdW1lbnQgaXMgc2lnbmVkIHdpdGggb3V0c2lkZSBwbGF0Zm9ybSB0byBlbmFibGUgZGlmZnJlbnQgd2F5IG9mIGRvd25sb2FkaW5nIGl0XHJcblx0QElucHV0ICgpIGFsbG93UHJpbnRGcm9tT3V0U2lkZSA9IGZhbHNlOyAvL2ZsYWdlIHRvIGluZGljYXRlIGlmIHRvIHVzZSBwcmludCBvZiBwZGZ0cm9uIG9yIGVtaXQgdGhlIGV2ZW50IG91dHNpZGUgdG8gaGFuZGxlIHByaW50ZnJvbSBvdXRzaWRlXHJcblx0QE91dHB1dCgpIG9uRG93bmxvYWRpbmdTaWduZWREb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gdXNlZCB0byB0ZWxsIG91dHNpZGUgd2UgbmVlZCBkb3dubG9hZCBzaWduZWQgZG9jdW1lbnQgdG8gZG93bmxvYWQgaXQgd2l0aCBwcm9wZXIgd2F5IGRpZmZyZW50IGZyb20gZXhwb3J0IG9mIHBkZnRyb25cclxuXHRAT3V0cHV0KCkgb25BZGRpbmdBbm90YXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHVzZWQgdG8gZXhwb3J0IGFsbCBhbm90YXRpb25zIHRvIG91dHNpZGVcclxuXHRAT3V0cHV0KClcclxuXHRldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIFNpZ25hdHVyZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyB1c2VkIHRvIGV4cG9ydCBzaWduYXR1cmUgdG8gb3V0c2lkZVxyXG5cdGZpcnN0VGltZUxvYWQgPSB0cnVlOyAvL2ZsYWdlIHRvIGNvbnRyb2wgaW1wb3J0aW5nIHNpZ25hdHVyZXMgaW4gdGhlIGZpcnN0IHRpbWUgbG9hZCBvbmx5XHJcblx0Zmlyc3RTaWduYXR1cmVMb2FkID0gdHJ1ZTsgLy8gZmxhZ2UgdG8gcGFzcyBmaXJzdCBsb2FkIG9mIGltcG9ydGVkIHNpZ25hdHVyZXMgd2l0aG91dCBlbWl0dGluZyB0aGUgZXZlbnRcclxuXHRuZXdTaWduQ3JlYXRpb24gPSBmYWxzZTsgLy8gZmxhZ2UgdG8gaW5kaWNhdGUgc2lnbmF0dXJlIGNyZWF0aW9uIGlzIGNyZWF0ZWQgb3IgY2hvb3NlZCBmcm9tIHN0b3JlZCBvbmVzXHJcblx0dHJhbnNlbGF0aW9uU3Vic2NyaXRpb246IFN1YnNjcmlwdGlvbjtcclxuXHRpc0FyYWJpYztcclxuXHJcblx0Ly9zaWxlbnQgcGRmVHJvblxyXG5cdHNpbGVudFBkZlRyb246IEhUTUxFbGVtZW50O1xyXG5cdG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcblx0cmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBwZGZ0cm9uU2VydmljZTogUGRmdHJvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIG51eGVvOiBOdXhlb1NlcnZpY2UsXHJcblx0XHRASW5qZWN0KEFQUF9CQVNFX0hSRUYpIHByaXZhdGUgYmFzZUhyZWY6IHN0cmluZyxcclxuXHRcdHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNpbGVudFBkZlRyb25TZXJ2aWNlOiBTaWxlbnRQZGZUcm9uU2VydmljZSxcclxuXHRcdEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG5cdCkge31cclxuXHJcblx0YXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHR0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0dGhpcy5pc0FyYWJpYyA9IHJlcztcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMucmVjaXZlZFNlYXJjaFN0cmluZ3NBcnJheSA9IHRoaXMuc2VhcmNoU3RyaW5nLnRyaW0oKSA/IHRoaXMuc2VhcmNoU3RyaW5nLnNwbGl0KCcsJykgOiBbXTtcclxuXHRcdGlmICh0aGlzLmZpbGVUaXRsZSkge1xyXG5cdFx0XHRpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHQnKSkge1xyXG5cdFx0XHRcdHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5wcHR4JykpIHtcclxuXHRcdFx0XHR0aGlzLkRPQ1VNRU5UX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic7XHJcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5maWxlVGl0bGUuZW5kc1dpdGgoJy5kb2MnKSkge1xyXG5cdFx0XHRcdHRoaXMuRE9DVU1FTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9tc3dvcmQnO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuZmlsZVRpdGxlLmVuZHNXaXRoKCcuZG9jeCcpKSB7XHJcblx0XHRcdFx0dGhpcy5ET0NVTUVOVF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLnNpbGVudFBkZlRyb25TZXJ2aWNlLmlzRW5hYmxlZCkge1xyXG5cdFx0XHRbdGhpcy5zaWxlbnRQZGZUcm9uLCB0aGlzLndlYlZpZXdlckluc3RhbmNlXSA9IGF3YWl0IHRoaXMuc2lsZW50UGRmVHJvblNlcnZpY2UuZ2V0V2ViVmlld2VyKCk7XHJcblx0XHRcdHRoaXMuI2FmdGVyTG9hZFdlYlZpZXdlcih0aGlzLndlYlZpZXdlckluc3RhbmNlKTtcclxuXHJcblx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMuI3VwZGF0ZVNpbGVudFBkZlRyb24oKSk7XHJcblx0XHRcdHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xyXG5cclxuXHRcdFx0dGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLiN1cGRhdGVTaWxlbnRQZGZUcm9uKCkpO1xyXG5cdFx0XHR0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy52aWV3ZXJSZWYubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0XHR0aGlzLiN1cGRhdGVTaWxlbnRQZGZUcm9uKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRXZWJWaWV3ZXIoXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0cGF0aDogdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3BkZnRyb25zJyxcclxuXHRcdFx0XHRcdGZvcmNlQ2xpZW50U2lkZUluaXQ6IHRydWUsXHJcblx0XHRcdFx0XHRzdHJlYW1pbmc6IHRydWUsXHJcblx0XHRcdFx0XHRmdWxsQVBJOiB0aGlzLmltcG9ydEZ1bGxBcGkoKSxcclxuXHRcdFx0XHRcdGxpY2Vuc2VLZXk6IHRoaXMuZW52aXJvbm1lbnQucGRmdHJvbkxpY2VuY2VLZXksXHJcblx0XHRcdFx0XHRjc3M6IHRoaXMuaXNBcmFiaWNcclxuXHRcdFx0XHRcdFx0PyB0aGlzLmJhc2VIcmVmICsgJy9hc3NldHMvc3R5bGVzL2FyLW15cGRmdHJvbi5jc3MnXHJcblx0XHRcdFx0XHRcdDogdGhpcy5iYXNlSHJlZiArICcvYXNzZXRzL3N0eWxlcy9lbi1teXBkZnRyb24uY3NzJyxcclxuXHRcdFx0XHRcdGFubm90YXRpb25Vc2VyOlxyXG5cdFx0XHRcdFx0XHR0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5maXJzdE5hbWUgKyAnICcgKyB0aGlzLm51eGVvLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy5sYXN0TmFtZSxcclxuXHRcdFx0XHRcdGRpc2FibGVkRWxlbWVudHM6IFsnZG93bmxvYWRCdXR0b24nLCAncHJpbnRCdXR0b24nXVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhpcy52aWV3ZXJSZWYubmF0aXZlRWxlbWVudFxyXG5cdFx0XHQpLnRoZW4oYXN5bmMgKGluc3RhbmNlKSA9PiB7XHJcblx0XHRcdFx0dGhpcy4jYWZ0ZXJMb2FkV2ViVmlld2VyKGluc3RhbmNlKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdCN1cGRhdGVTaWxlbnRQZGZUcm9uKCkge1xyXG5cdFx0Y29uc3QgcmVjdCA9IHRoaXMudmlld2VyUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblx0XHRPYmplY3QuYXNzaWduKHRoaXMuc2lsZW50UGRmVHJvbi5zdHlsZSwge1xyXG5cdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcclxuXHRcdFx0dG9wOiBgJHtyZWN0LnRvcH1weGAsXHJcblx0XHRcdGxlZnQ6IGAke3JlY3QubGVmdH1weGAsXHJcblx0XHRcdHdpZHRoOiBgJHtyZWN0LndpZHRofXB4YCxcclxuXHRcdFx0aGVpZ2h0OiBgJHtyZWN0LmhlaWdodH1weGAsXHJcblx0XHRcdHpJbmRleDogJzk5OScsXHJcblx0XHRcdGRpc3BsYXk6ICdibG9jaydcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0I2FmdGVyTG9hZFdlYlZpZXdlcihpbnN0YW5jZSkge1xyXG5cdFx0dGhpcy5pc0FyYWJpYyA/IGluc3RhbmNlLnNldExhbmd1YWdlKCdhcicpIDogaW5zdGFuY2Uuc2V0TGFuZ3VhZ2UoJ2VuJyk7XHJcblx0XHR0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IGluc3RhbmNlO1xyXG5cdFx0aWYgKHRoaXMuY29ycmVzcG9uZGFuY2UuZmFjZXRzLmluZGV4T2YoJ2N0b2NyJykgPiAtMSAmJiB0aGlzLmNvcnJlc3BvbmRhbmNlPy5wcm9wZXJ0aWVzPy5bJ2N0b2NyOnJlY29nbml6ZWRKc29uJ10pIHtcclxuXHRcdFx0dGhpcy5maWxlV2l0aE9jciA9IHRydWU7XHJcblx0XHRcdHRoaXMucGFnZXMgPSB0aGlzLnJlY29nbml6ZWRKc29uP0pTT04ucGFyc2UodGhpcy5yZWNvZ25pemVkSnNvbikgOiBKU09OLnBhcnNlKHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1snY3RvY3I6cmVjb2duaXplZEpzb24nXSk7XHJcblx0XHRcdC8vIG92ZXJyaWRlIHNlYXJjaCBmdW50aW9uIHRvIHVzZSBvdXIgc2VhcmNoIGluIG9jciBub3QgZGVmdWx0IHNlYXJjaFxyXG5cdFx0XHRpbnN0YW5jZS5vdmVycmlkZVNlYXJjaEV4ZWN1dGlvbih0aGlzLnNlYXJjaEZuKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGlmIG5vIG9jciB0aGVuIGFkZCBzZWFyY2ggbGlzbmVyIHRvIGxpc25lIHRvIGludGVybmFsIHNlYXJjaCBhbmQgY2F0Y2ggcmVzdWx0c1xyXG5cdFx0XHR0aGlzLmFkZFNlYXJjaExpc3RuZXIoKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuYWRkUHJpbnRCdXR0b24oKTtcclxuXHRcdHRoaXMuYWRkRG93bmxvYWRCdXR0b24oKTtcclxuXHRcdHRoaXMuaW1wb3J0U2lnbmF0dXJlKCk7XHJcblx0XHR0aGlzLmV4cG9ydGluZ1NpZ25hdHVyZSgpO1xyXG5cdFx0dGhpcy5kZWxldGVBbm5vdGF0aW9uKCk7XHJcblx0XHR0aGlzLmV4cG9ydGluZ1NhdmVkU2lnbmF0dXJlKCk7XHJcblx0XHRpZiAodGhpcy51c2VPdXRzaWRlQW5vdGF0aW9ucykge1xyXG5cdFx0XHR0aGlzLmltcG9ydEFub3RhdGlvbnNGcm9tT3V0c2lkZSgpO1xyXG5cdFx0XHR0aGlzLmV4cG9ydEFub3RhdGlvbnNUb091dHNpZGUoKTtcclxuXHRcdH1cclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLnNldFNlYXJjaEhpZ2hsaWdodENvbG9ycyh7XHJcblx0XHRcdC8vIHNldFNlYXJjaEhpZ2hsaWdodENvbG9ycyBhY2NlcHRzIGJvdGggQW5ub3RhdGlvbnMuQ29sb3Igb2JqZWN0cyBvciAncmdiYScgc3RyaW5nc1xyXG5cdFx0XHRzZWFyY2hSZXN1bHQ6IG5ldyB0aGlzLndlYlZpZXdlckluc3RhbmNlLkFubm90YXRpb25zLkNvbG9yKDI1MCwgMjA2LCAwLCAwLjUwMTk2KSxcclxuXHRcdFx0YWN0aXZlU2VhcmNoUmVzdWx0OiBuZXcgdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Bbm5vdGF0aW9ucy5Db2xvcigyNTAsIDIwNiwgMCwgMC41MDE5NilcclxuXHRcdH0pO1xyXG5cdFx0aWYgKHRoaXMucmVjaXZlZFNlYXJjaFN0cmluZ3NBcnJheS5sZW5ndGggIT09IDApIHtcclxuXHRcdFx0dGhpcy5hdXRvbWF0aWNTZWFyY2godGhpcy5yZWNpdmVkU2VhcmNoU3RyaW5nc0FycmF5KTtcclxuXHRcdH1cclxuXHRcdHRoaXMubG9hZERvY3VtZW50KCk7XHJcblx0fVxyXG5cclxuXHQvLyBmdW50aW9uIHRvIGNoZWNrIHRvIGltcG9ydCB0aGUgZnVsbCBhcGkgb3Igbm90IGFjY29yZGluZyB0byBhY3Rpb24gb2YgYWRkIHN0aWNrZXIgZXhpc3Qgb3Igbm90XHJcblx0aW1wb3J0RnVsbEFwaSgpe1xyXG5cdFx0bGV0IHVzZUZ1bGxBcGkgPSBmYWxzZTtcclxuICAgICAgICAvLyBsZXQgYWN0aW9uRXhpc3QgPSBbJ2FkZFFyY29kZScgLCAnc2VsZWN0UXJjb2RlJ10uc29tZShpdGVtID0+IHRoaXMuY29ycmVzcG9uZGFuY2UuY29udGV4dFBhcmFtZXRlcnMuYWN0aW9ucy5pbmNsdWRlcyhpdGVtKSk7XHJcblx0XHRsZXQgbG9ja01vZGVFeGlzdCA9IHRoaXMucGRmdHJvblNlcnZpY2UubW9kZSA9PT0gJ2FkZFFyY29kZSc7XHJcblx0XHRpZih0aGlzLmZsYXR0ZW5Bbm90YXRpb24gJiYgbG9ja01vZGVFeGlzdCl7XHJcblx0XHRcdHVzZUZ1bGxBcGkgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHVzZUZ1bGxBcGlcclxuXHR9XHJcblxyXG5cdGltcG9ydEFub3RhdGlvbnNGcm9tT3V0c2lkZSgpIHtcclxuXHRcdGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcblxyXG5cdFx0ZG9jdW1lbnRWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5pbXBvcnRBbm5vdGF0aW9ucyh0aGlzLmltcG9ydGVkQW5vdGF0aW9ucyk7XHJcblx0XHR9KTtcclxuXHRcdC8vIC50aGVuKGFubm90YXRpb25zID0+IHtcclxuXHRcdC8vICAgYW5ub3RhdGlvbnMuZm9yRWFjaChhbm5vdGF0aW9uID0+IHtcclxuXHRcdC8vICAgICB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKGFubm90YXRpb24pO1xyXG5cdFx0Ly8gICB9KTtcclxuXHRcdC8vIH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gZXhjdHJhY3QgYWxsIGFub3RhdGlvbnMgb24gdGhlIGZpbGUgYW5kIHNlbmQgaXQgb3V0IHNpZGUgdG8gYmUgc2F2ZWQgYW5kIGxlYXZlIHRoZSBmaWxlIGFzIGl0IGlzIHdpdGhvdXQgYW55IGFub3RhdGlvbnMgb24gaXRcclxuXHRleHBvcnRBbm90YXRpb25zVG9PdXRzaWRlKCkge1xyXG5cdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIub24oJ2Fubm90YXRpb25DaGFuZ2VkJywgKGFubm90YXRpb25zLCBhY3Rpb24sIHsgaW1wb3J0ZWQgfSkgPT4ge1xyXG5cdFx0XHRpZiAoaW1wb3J0ZWQpIHJldHVybjtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZXhwb3J0QW5ub3RhdGlvbnMoKS50aGVuKChleGN0cmFjdGVkQW5vdGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdHRoaXMub25BZGRpbmdBbm90YXRpb24uZW1pdChleGN0cmFjdGVkQW5vdGF0aW9ucyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHQvLyBpZiB0cmFja2luZyBzaWduYXR1cmUgbG9jYXRpb24gaXMgZW5hYmxlIHRoZW4gZW1pdCBzaWduYXR1cmUgb3V0c2lkZSB3aXRoIGV2ZXJ5IGNoYW5nZXMgaW4gaXRcclxuXHRcdFx0aWYgKHRoaXMudHJhY2tTaWduYXR1cmUpIHtcclxuXHRcdFx0XHR0aGlzLm9uU2lnbmF0dXJlVHJhY2tpbmcuZW1pdCh7IGFub3RhdGlvbnM6IGFubm90YXRpb25zLCBhY3Rpb246IGFjdGlvbiB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRpbXBvcnRTaWduYXR1cmUoKSB7XHJcblx0XHRjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG5cdFx0Y29uc3Qgc2lnbmF0dXJlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuXHJcblx0XHRkb2N1bWVudFZpZXdlci5vbignZG9jdW1lbnRMb2FkZWQnLCAoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpcnN0VGltZUxvYWQpIHtcclxuXHRcdFx0XHRzaWduYXR1cmVUb29sLmltcG9ydFNpZ25hdHVyZXMoWy4uLnRoaXMudXNlclNpZ25hdHVyZXNdKTtcclxuXHRcdFx0XHR0aGlzLmZpcnN0VGltZUxvYWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRleHBvcnRpbmdTYXZlZFNpZ25hdHVyZSgpIHtcclxuXHRcdGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcblx0XHRjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpO1xyXG5cdFx0U2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignc2lnbmF0dXJlU2F2ZWQnLCAoYW5ub3RhdGlvbikgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMuZmlyc3RTaWduYXR1cmVMb2FkKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3NpZ25hdHVyZSBzYXZlZCB0cmlnZXJlZCcpO1xyXG5cdFx0XHRcdHRoaXMubmV3U2lnbkNyZWF0aW9uID0gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmZpcnN0U2lnbmF0dXJlTG9hZCA9IGZhbHNlO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRleHBvcnRpbmdTaWduYXR1cmUoKSB7XHJcblx0XHRjb25zdCBkb2N1bWVudFZpZXdlciA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyO1xyXG5cdFx0Y29uc3QgU2lnbmF0dXJlQ3JlYXRlVG9vbCA9IGRvY3VtZW50Vmlld2VyLmdldFRvb2woJ0Fubm90YXRpb25DcmVhdGVTaWduYXR1cmUnKTtcclxuXHRcdFNpZ25hdHVyZUNyZWF0ZVRvb2wub24oJ2Fubm90YXRpb25BZGRlZCcsIChhbm5vdGF0aW9uKSA9PiB7XHJcblx0XHRcdGlmIChhbm5vdGF0aW9uICYmIHRoaXMubmV3U2lnbkNyZWF0aW9uKSB7XHJcblx0XHRcdFx0dGhpcy5uZXdTaWduQ3JlYXRpb24gPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiwgZG9jdW1lbnRWaWV3ZXIpO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKGFubm90YXRpb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGV4dHJhY3RBbm90YXRpb24oYW5ub3RhdGlvbiwgZG9jdW1lbnRWaWV3ZXIpIHtcclxuXHRcdGlmIChhbm5vdGF0aW9uWydpbWFnZSddKSB7XHJcblx0XHRcdC8vIGNvbnZlcnQgYmFzZTY0IHNpZ25hdHVyZSBpbnRvIGZpbGUgYW5kIGVtaXQgaXQgdG8gb3V0IHNpZGVcclxuXHRcdFx0bGV0IGJhc2U2NEltZyA9IGFubm90YXRpb25bJ2ltYWdlJ11bJ2N1cnJlbnRTcmMnXTtcclxuXHRcdFx0dmFyIGFyciA9IGJhc2U2NEltZy5zcGxpdCgnLCcpLFxyXG5cdFx0XHRcdG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxcclxuXHRcdFx0XHRic3RyID0gYXRvYihhcnJbMV0pLFxyXG5cdFx0XHRcdG4gPSBic3RyLmxlbmd0aCxcclxuXHRcdFx0XHR1OGFyciA9IG5ldyBVaW50OEFycmF5KG4pO1xyXG5cdFx0XHR3aGlsZSAobi0tKSB7XHJcblx0XHRcdFx0dThhcnJbbl0gPSBic3RyLmNoYXJDb2RlQXQobik7XHJcblx0XHRcdH1cclxuXHRcdFx0bGV0IG5hbWUgPSBtaW1lLnJlcGxhY2UoJy8nLCAnLicpO1xyXG5cdFx0XHRsZXQgbXlGaWxlID0gbmV3IEZpbGUoW3U4YXJyXSwgJ215U2lnbmF0dXJlLnBuZycsIHsgdHlwZTogbWltZSB9KTtcclxuXHRcdFx0dGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogbXlGaWxlLCBldmVudE5hbWU6ICdleHBvcnQnIH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5leHRyYWN0QW5ub3RhdGlvblNpZ25hdHVyZShhbm5vdGF0aW9uLCBkb2N1bWVudFZpZXdlcik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHRyYWN0QW5ub3RhdGlvblNpZ25hdHVyZShhbm5vdGF0aW9uLCBkb2NWaWV3ZXIpIHtcclxuXHRcdC8vIENyZWF0ZSBhIG5ldyBDYW52YXMgdG8gZHJhdyB0aGUgQW5ub3RhdGlvbiBvblxyXG5cdFx0Y29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcblx0XHQvLyBSZWZlcmVuY2UgdGhlIGFubm90YXRpb24gZnJvbSB0aGUgRG9jdW1lbnRcclxuXHRcdGNvbnN0IHBhZ2VNYXRyaXggPSBkb2NWaWV3ZXIuZ2V0RG9jdW1lbnQoKS5nZXRQYWdlTWF0cml4KGFubm90YXRpb24uUGFnZU51bWJlcik7XHJcblx0XHQvLyBTZXQgdGhlIGhlaWdodCAmIHdpZHRoIG9mIHRoZSBjYW52YXMgdG8gbWFkZWxldGVTYXZlZFNpZ25hdHVyZXRjaCB0aGUgYW5ub3RhdGlvblxyXG5cdFx0Y2FudmFzLmhlaWdodCA9IGFubm90YXRpb24uSGVpZ2h0O1xyXG5cdFx0Y2FudmFzLndpZHRoID0gYW5ub3RhdGlvbi5XaWR0aDtcclxuXHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cdFx0Ly8gVHJhbnNsYXRlIHRoZSBBbm5vdGF0aW9uIHRvIHRoZSB0b3AgVG9wIExlZnQgQ29ybmVyIG9mIHRoZSBDYW52YXMgaWUgKDAsIDApXHJcblx0XHRjdHgudHJhbnNsYXRlKC1hbm5vdGF0aW9uLlgsIC1hbm5vdGF0aW9uLlkpO1xyXG5cdFx0Ly8gRHJhdyB0aGUgQW5ub3RhdGlvbiBvbnRvIHRoZSBDYW52YXNcclxuXHRcdGFubm90YXRpb24uZHJhdyhjdHgsIHBhZ2VNYXRyaXgpO1xyXG5cdFx0Ly8gQ29udmVydCB0aGUgQ2FudmFzIHRvIGEgQmxvYiBPYmplY3QgZm9yIFVwbG9hZFxyXG5cdFx0Y2FudmFzLnRvQmxvYigoYmxvYikgPT4ge1xyXG5cdFx0XHQvLyBDYWxsIHlvdXIgQmxvYiBTdG9yYWdlIFVwbG9hZCBGdW5jdGlvblxyXG5cdFx0XHRsZXQgbmFtZSA9IGJsb2IudHlwZS5yZXBsYWNlKCcvJywgJy4nKTtcclxuXHRcdFx0bGV0IG15RmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgbmFtZSk7XHJcblx0XHRcdHRoaXMuU2lnbmF0dXJlRXZlbnQuZW1pdCh7IGRhdGE6IG15RmlsZSwgZXZlbnROYW1lOiAnZXhwb3J0JyB9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlQW5ub3RhdGlvbigpIHtcclxuXHRcdGNvbnN0IGRvY3VtZW50Vmlld2VyID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXI7XHJcblx0XHRjb25zdCBTaWduYXR1cmVDcmVhdGVUb29sID0gZG9jdW1lbnRWaWV3ZXIuZ2V0VG9vbCgnQW5ub3RhdGlvbkNyZWF0ZVNpZ25hdHVyZScpO1xyXG5cdFx0U2lnbmF0dXJlQ3JlYXRlVG9vbC5vbignc2lnbmF0dXJlRGVsZXRlZCcsIChhbm5vdGF0aW9uLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRjb25zb2xlLmxvZygndGhlcmUgd2VyZSBhbm5vdGF0aW9ucyBkZWxldGVkJyk7XHJcblx0XHRcdHRoaXMudXNlclNpZ25hdHVyZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdFx0dGhpcy5TaWduYXR1cmVFdmVudC5lbWl0KHsgZGF0YTogeyBzaWduYXR1cmU6IGFubm90YXRpb24sIGluZGV4OiBpbmRleCB9LCBldmVudE5hbWU6ICdkZWxldGUnIH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhZGREb3dubG9hZEJ1dHRvbigpIHtcclxuXHRcdGlmIChcclxuXHRcdFx0dGhpcy5hbGxvd0Rvd25sb2FkU2VjcmV0RmlsZSB8fFxyXG5cdFx0XHQoIXRoaXMuYWxsb3dEb3dubG9hZFNlY3JldEZpbGUgJiZcclxuXHRcdFx0XHR0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICYmXHJcblx0XHRcdFx0dGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSA9PT0gJ05vcm1hbCcpXHJcblx0XHQpIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRIZWFkZXJJdGVtcygoaGVhZGVyKSA9PiB7XHJcblx0XHRcdFx0aGVhZGVyLnB1c2goe1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcblx0XHRcdFx0XHRpbWc6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgY2xhc3M9XCJiaSBiaS1maWxlLWVhcm1hcmstYXJyb3ctZG93blwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj4gPHBhdGggZD1cIk04LjUgNi41YS41LjUgMCAwIDAtMSAwdjMuNzkzTDYuMzU0IDkuMTQ2YS41LjUgMCAxIDAtLjcwOC43MDhsMiAyYS41LjUgMCAwIDAgLjcwOCAwbDItMmEuNS41IDAgMCAwLS43MDgtLjcwOEw4LjUgMTAuMjkzVjYuNXpcIi8+IDxwYXRoIGQ9XCJNMTQgMTRWNC41TDkuNSAwSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMnpNOS41IDNBMS41IDEuNSAwIDAgMCAxMSA0LjVoMlYxNGExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyYTEgMSAwIDAgMSAxLTFoNS41djJ6XCIvPjwvc3ZnPicsXHJcblx0XHRcdFx0XHR0aXRsZTogdGhpcy5pc0FyYWJpYyA/ICfYqtmG2LLZitmEJyA6ICdEb3dubG9hZCcsXHJcblx0XHRcdFx0XHRvbkNsaWNrOiBhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGlmIHdhc24ndCBzaWduZWQgZG9jdW1lbnQgdGhlbiBkb3dubG9hZCBpdCB1c2luZyBwZGZ0cm9uIG5vcm1hbCBkb253bmxvYWRcclxuXHRcdFx0XHRcdFx0aWYoIXRoaXMuaXNTaWduZWREb2N1bWVudCl7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgeGZkZlN0cmluZyA9IGF3YWl0IHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmV4cG9ydEFubm90YXRpb25zKCk7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9ucyA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdGZpbGVuYW1lOiB0aGlzLmNvcnJlc3BvbmRhbmNlLnRpdGxlID8gdGhpcy5jb3JyZXNwb25kYW5jZS50aXRsZSA6ICdteURvY3VtZW50LnBkZicsXHJcblx0XHRcdFx0XHRcdFx0XHR4ZmRmU3RyaW5nLFxyXG5cdFx0XHRcdFx0XHRcdFx0aW5jbHVkZUFubm90YXRpb25zOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZG93bmxvYWRUeXBlOiAncGRmJ1xyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb3dubG9hZFBkZihvcHRpb25zKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmV2ZW50cy5uZXh0KCdkb3dubG9hZCcpO1xyXG5cdFx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0XHQvLyBpZiBpdCB3YXMgc2lnbmVkIGRvY3VtZW50IHRoZW4gZG93bmxvYWQgaXQgYnkgZnVuY3Rpb24gZnJvbSBvdXRzaWRlIHRvIGF2b2lkIFxyXG5cdFx0XHRcdFx0XHRcdC8vIGxvb3Npbmcgc2lnbmluZyBpbmZvcm1hdGlvbiB0aGF0IGhhcHBlbnMgaWYgaSBkb3dubG9hZCBpdCBmcm9tIHBkZnRyb24gaXRzZWxmXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5vbkRvd25sb2FkaW5nU2lnbmVkRG9jdW1lbnQuZW1pdCgpXHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIGxldCB1cmwgPSB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXMuY29udGVudC5kYXRhO1xyXG5cdFx0XHRcdFx0XHQvLyBsZXQgZmlsZU5hbWUgPSB0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXMuY29udGVudC5uYW1lO1xyXG5cdFx0XHRcdFx0XHQvLyBpZiAodXJsICYmIGZpbGVOYW1lKSB7XHJcblx0XHRcdFx0XHRcdC8vICAgbGV0IHNhZmVVcmwgPSB0aGlzLnNlY3VyZVBpcGUudHJhbnNmb3JtKHVybCk7XHJcblx0XHRcdFx0XHRcdC8vICAgc2FmZVVybC5zdWJzY3JpYmUoKHVybDogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgbGluay5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgbGluay5ocmVmID0gdXJsLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk7XHJcblx0XHRcdFx0XHRcdC8vICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcblx0XHRcdFx0XHRcdC8vICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgbGluay5jbGljaygpO1xyXG5cdFx0XHRcdFx0XHQvLyAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuXHRcdFx0XHRcdFx0Ly8gICAgIHRoaXMuZXZlbnRzLm5leHQoJ2Rvd25sb2FkJyk7XHJcblx0XHRcdFx0XHRcdC8vICAgfSk7XHJcblx0XHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhZGRQcmludEJ1dHRvbigpIHtcclxuXHRcdGlmIChcclxuXHRcdFx0dGhpcy5hbGxvd1ByaW50U2VjcmV0RmlsZSB8fFxyXG5cdFx0XHQoIXRoaXMuYWxsb3dQcmludFNlY3JldEZpbGUgJiZcclxuXHRcdFx0XHR0aGlzLmNvcnJlc3BvbmRhbmNlLnByb3BlcnRpZXNbdGhpcy5zZWNyZWN5UHJvcGVydHldICYmXHJcblx0XHRcdFx0dGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSA9PT0gJ05vcm1hbCcpXHJcblx0XHQpIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5zZXRIZWFkZXJJdGVtcygoaGVhZGVyKSA9PiB7XHJcblx0XHRcdFx0aGVhZGVyLnB1c2goe1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FjdGlvbkJ1dHRvbicsXHJcblx0XHRcdFx0XHRpbWc6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhYmIwYzQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5pY29uIC0gaGVhZGVyIC0gcHJpbnQgLSBsaW5lPC90aXRsZT48cGF0aCBjbGFzcz1cImNscy0xXCIgZD1cIk0yMCw2SDE4VjJINlY2SDRBMiwyLDAsMCwwLDIsOHY5YTIsMiwwLDAsMCwyLDJINnYzSDE4VjE5aDJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyMCw2Wk04LDRoOFY2SDhabTgsMTZIOFYxNmg4Wm00LTNIMThWMTRINnYzSDRWOEgyMFptLTQtN2gydjJIMTZabS0zLDBoMnYySDEzWlwiPjwvcGF0aD48L3N2Zz4nLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHRoaXMuaXNBcmFiaWMgPyAn2LfYqNin2LnYqScgOiAnUHJpbnQnLFxyXG5cdFx0XHRcdFx0b25DbGljazogKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZih0aGlzLmFsbG93UHJpbnRGcm9tT3V0U2lkZSl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5ldmVudHMubmV4dCgncHJpbnQnKTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5wcmludCgpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZXZlbnRzLm5leHQoJ3ByaW50Jyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbJ3ByaW50TW9kYWwnXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhZGRXYXRlcm1hcmsoKSB7XHJcblx0XHRjb25zdCB1c2VyaW5mbyA9IHRoaXMubnV4ZW8ubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzO1xyXG5cdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5hZGRXYXRlcm1hcmsoXHJcblx0XHRcdGAke3VzZXJpbmZvLnVzZXJuYW1lfSAgICBgXHJcblx0XHRcdC8vIGAke3VzZXJpbmZvLmZpcnN0TmFtZX0gJHtcclxuXHRcdFx0Ly8gICB1c2VyaW5mby5sYXN0TmFtZVxyXG5cdFx0XHQvLyB9IGBcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHQjZG9jTG9hZGVkID0gKCkgPT4ge1xyXG5cdFx0bGV0IGZpdE1vZGUgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLkZpdE1vZGUuRml0V2lkdGg7XHJcblx0XHRpZiAodGhpcy5maXRNb2RlID09PSAnRml0UGFnZScpIHtcclxuXHRcdFx0Zml0TW9kZSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuRml0TW9kZS5GaXRQYWdlO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpdE1vZGUgPT09ICdab29tJykge1xyXG5cdFx0XHRmaXRNb2RlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5GaXRNb2RlLlpvb207XHJcblx0XHR9XHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLnNldEZpdE1vZGUoZml0TW9kZSk7XHJcblx0fTtcclxuXHRsb2FkRG9jdW1lbnQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMud2ViVmlld2VySW5zdGFuY2UgfHwgKCF0aGlzLmZpbGVEYXRhICYmICF0aGlzLmZpbGVVUkwpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHsgZG9jVmlld2VyLCBhbm5vdE1hbmFnZXIsIEFubm90YXRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlO1xyXG5cdFx0ZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsIHRoaXMuI2RvY0xvYWRlZCk7XHJcblx0XHRpZiAoIXRoaXMuZWRpdE1vZGUpIHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcblx0XHRcdC8vIGluc3RhbmNlLmVuYWJsZVRvb2xzKFtdKTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLmZpbGVVUkwgJiYgdGhpcy5maWxlVVJMLmxlbmd0aCkge1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudCh0aGlzLmZpbGVVUkwsIHtcclxuXHRcdFx0XHR4b2RzdHJlYW1pbmc6IHRydWUsXHJcblx0XHRcdFx0Y3VzdG9tSGVhZGVyczoge1xyXG5cdFx0XHRcdFx0QXV0aG9yaXphdGlvbjogdGhpcy5hdXRoSGVhZGVyXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC8vIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmxvYWREb2N1bWVudChuZXcgQmxvYihbbmV3IFVpbnQ4QXJyYXkodGhpcy5maWxlRGF0YSldLCB7IHR5cGU6IHRoaXMuRE9DVU1FTlRfVFlQRSB9KSwge1xyXG5cdFx0XHRcdGZpbGVuYW1lOiB0aGlzLmZpbGVUaXRsZVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuXHRcdC8vIGlmIG5vdCBuZWdlbGN0aW5nIGFkZGluZyB3YXRlciBtYXJrIHRoZW4gY2hlY2sgY29uZGl0aW9ucyBmb3IgYWRkaW5nIGl0XHJcblx0XHRpZiAoIXRoaXMubmVnZWxlY3RBZGRpbmdXYXRlck1hcmspIHtcclxuXHRcdFx0aWYgKHRoaXMuY29ycmVzcG9uZGFuY2UgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdC8vIGlmIHdlIG5lZWQgdG8gY2hlY2sgb24gc2VjcmVjeSBsZXZlbCBmb3IgYWRkaW5nIHdhdGVyIG1hcmsgb3Igbm90XHJcblx0XHRcdFx0aWYgKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlVmlld2VyV2F0ZXJNYXJrICYmIHRoaXMuc2VjcmVjeVByb3BlcnR5KSB7XHJcblx0XHRcdFx0XHQvLyBjaGVjayBmb3Igc2VjcmVjeSBsZXZlbCBiZWZvciBhZGRpbmcgd2F0ZXJtYXJrXHJcblx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdHRoaXMuY29ycmVzcG9uZGFuY2UucHJvcGVydGllc1t0aGlzLnNlY3JlY3lQcm9wZXJ0eV0gJiZcclxuXHRcdFx0XHRcdFx0dGhpcy5jb3JyZXNwb25kYW5jZS5wcm9wZXJ0aWVzW3RoaXMuc2VjcmVjeVByb3BlcnR5XSAhPT0gJ05vcm1hbCdcclxuXHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFkZFdhdGVybWFyaygpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5lbnZpcm9ubWVudC5lbmFibGVWaWV3ZXJXYXRlck1hcmsgJiYgIXRoaXMuc2VjcmVjeVByb3BlcnR5KSB7XHJcblx0XHRcdFx0XHR0aGlzLmFkZFdhdGVybWFyaygpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0QXNCbG9iKCk6IFByb21pc2U8QmxvYj4ge1xyXG5cdFx0Y29uc3QgZG9jID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0RG9jdW1lbnQoKTtcclxuXHRcdGNvbnN0IHhmZGZTdHJpbmcgPSBhd2FpdCB0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5leHBvcnRBbm5vdGF0aW9ucygpO1xyXG5cdFx0Y29uc3QgZGF0YSA9IGF3YWl0IGRvYy5nZXRGaWxlRGF0YSh7XHJcblx0XHRcdC8vIHNhdmVzIHRoZSBkb2N1bWVudCB3aXRoIGFubm90YXRpb25zIGluIGl0XHJcblx0XHRcdHhmZGZTdHJpbmdcclxuXHRcdH0pO1xyXG5cdFx0Y29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XHJcblx0XHRjb25zdCBibG9iID0gbmV3IEJsb2IoW2Fycl0sIHsgdHlwZTogdGhpcy5ET0NVTUVOVF9UWVBFIH0pO1xyXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShibG9iKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZUVkaXQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuYWN0aW9uQ2xpY2tlZCkge1xyXG5cdFx0XHQvLyBhY3Rpb24gY2xpY2tlZCBpcyBub3QgY2xpY2tlZCB0aGVuIG5vIHVwZGF0ZSBtb2RlIG9wZW5lZFxyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRpc2FibGVFbGVtZW50cyhbXHJcblx0XHRcdFx0J3Rvb2xiYXJHcm91cC1TaGFwZXMnLFxyXG5cdFx0XHRcdCd0b29sYmFyR3JvdXAtRWRpdCcsXHJcblx0XHRcdFx0J3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG5cdFx0XHRcdCd0b29sYmFyR3JvdXAtQW5ub3RhdGUnXHJcblx0XHRcdF0pO1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seSh0cnVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGVkaXQgbW9kZSBvcGVuZWQgYW5kIG11c3QgYmUgd2hlbiBhY3Rpb24gaXMgY2xpY2tlZFxyXG5cdFx0XHRpZiAodGhpcy5lZGl0aW5nVHlwZSkge1xyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuXHRcdFx0XHRcdCd0b29sYmFyR3JvdXAtU2hhcGVzJyxcclxuXHRcdFx0XHRcdCd0b29sYmFyR3JvdXAtRWRpdCcsXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLUluc2VydCcsXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLUFubm90YXRlJ1xyXG5cdFx0XHRcdF0pO1xyXG5cdFx0XHRcdGxldCBncm91cDtcclxuXHRcdFx0XHRpZiAodGhpcy5lZGl0aW5nVHlwZSA9PT0gJ3NpZ25Eb2MnKSB7XHJcblx0XHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmVuYWJsZUVsZW1lbnRzKFsndG9vbGJhckdyb3VwLUluc2VydCddKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMuZWRpdGluZ1R5cGUgPT09ICdhbm5vdGF0ZScpIHtcclxuXHRcdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZW5hYmxlRWxlbWVudHMoWyd0b29sYmFyR3JvdXAtU2hhcGVzJywgJ3Rvb2xiYXJHcm91cC1FZGl0JywgJ3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZSddKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5lbmFibGVFbGVtZW50cyhbXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcblx0XHRcdFx0XHQndG9vbGJhckdyb3VwLUVkaXQnLFxyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1JbnNlcnQnLFxyXG5cdFx0XHRcdFx0J3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZSdcclxuXHRcdFx0XHRdKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcblx0XHRcdC8vIHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0VG9vbGJhckdyb3VwKCd0b29sYmFyR3JvdXAtQW5ub3RhdGUnKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLndlYlZpZXdlckluc3RhbmNlKSB7XHJcblx0XHRcdHRoaXMudG9nZ2xlRWRpdCgpO1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0Y2hhbmdlcy51cmxGaWxlQ29udGVudCAmJlxyXG5cdFx0XHRcdGNoYW5nZXMudXJsRmlsZUNvbnRlbnQucHJldmlvdXNWYWx1ZSAmJlxyXG5cdFx0XHRcdGNoYW5nZXMudXJsRmlsZUNvbnRlbnQucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy51cmxGaWxlQ29udGVudC5jdXJyZW50VmFsdWVcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy5uZ09uRGVzdHJveSgpO1xyXG5cdFx0XHRcdHRoaXMubmdPbkluaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwZGZUcm9uRXZlbnQoZXZlbnQpIHtcclxuXHRcdGlmICh0aGlzW2V2ZW50LmFjdGlvbl0pIHtcclxuXHRcdFx0Ly8gbWV0aG9kIGV4aXN0cyBpbiB0aGUgY29tcG9uZW50XHJcblx0XHRcdC8vICB0aGlzW2V2ZW50LmFjdGlvbl0oZXZlbnQucGFyYW1zKTsgLy8gY2FsbCBpdFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzZWFyY2ggcmVzdWx0cyBzZWN0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHRwYWdlczogYW55O1xyXG5cdHN0YW5kYXJkSGVpZ2h0O1xyXG5cdHN0YW5kYXJkV2lkdGg7XHJcblx0cGFnZUhlaWdodDtcclxuXHRwYWdlV2lkdGg7XHJcblx0c2F2ZWRBbm90YXRpb25zID0gW107XHJcblx0ZmlsZVdpdGhPY3IgPSBmYWxzZTtcclxuXHRuZXdBbm5vdGF0aW9ucyA9IFtdO1xyXG5cdG15U2VhcmNoU3RyaW5nUmVzdWx0cyA9IFtdO1xyXG5cdHJlY2l2ZWRTZWFyY2hTdHJpbmdzQXJyYXkgPSBbXTtcclxuXHJcblx0Ly8gYWRkaW5nIHNlYXJjaCBsaXNuZXIgdG8gbGlzZW4gdG8gaW50ZXJuYWwgc2VhcmNoIGZyb20gdWkgYW5kIHdpdGhvdXQgb2NyXHJcblx0YWRkU2VhcmNoTGlzdG5lcigpIHtcclxuXHRcdGNvbnN0IHsgYW5ub3RNYW5hZ2VyLCBkb2NWaWV3ZXIsIEFubm90YXRpb25zIH0gPSB0aGlzLndlYlZpZXdlckluc3RhbmNlO1xyXG5cdFx0Y29uc3Qgc2VhcmNoTGlzdGVuZXIgPSAoc2VhcmNoUGF0dGVybiwgb3B0aW9ucywgcmVzdWx0cykgPT4ge1xyXG5cdFx0XHR0aGlzLm15U2VhcmNoU3RyaW5nUmVzdWx0cyA9IFtdO1xyXG5cdFx0XHRpZiAodGhpcy5zYXZlZEFub3RhdGlvbnMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuc2F2ZWRBbm90YXRpb25zLm1hcCgoYW5ub3RhdGlvbikgPT4ge1xyXG5cdFx0XHRcdFx0YW5ub3RhdGlvbi5IaWRkZW4gPSB0cnVlO1xyXG5cdFx0XHRcdFx0Ly8gQWx3YXlzIHJlZHJhdyBhbm5vdGF0aW9uIGlmIHJlbmRlcmluZyB3YXMgdXBkYXRlZFxyXG5cdFx0XHRcdFx0YW5ub3RNYW5hZ2VyLnJlZHJhd0Fubm90YXRpb24oYW5ub3RhdGlvbik7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gZG9uJ3QgZG8gYW55IHNlYXJjaCB1bnRpbCB0aGVyZSBpcyBhIHNlYXJjaCBwYXR0ZXJuXHJcblx0XHRcdGlmIChzZWFyY2hQYXR0ZXJuLnRyaW0oKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0Ly8gYWRkIHJlZGFjdGlvbiBhbm5vdGF0aW9uIGZvciBlYWNoIHNlYXJjaCByZXN1bHRcclxuXHRcdFx0XHR0aGlzLm5ld0Fubm90YXRpb25zID0gcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvbiA9IG5ldyBBbm5vdGF0aW9ucy5UZXh0SGlnaGxpZ2h0QW5ub3RhdGlvbigpO1xyXG5cdFx0XHRcdFx0YW5ub3RhdGlvbi5RdWFkcyA9IHJlc3VsdC5xdWFkcy5tYXAoKHF1YWQpID0+IHF1YWQuZ2V0UG9pbnRzKCkpO1xyXG5cdFx0XHRcdFx0YW5ub3RhdGlvbi5QYWdlTnVtYmVyID0gcmVzdWx0LnBhZ2VOdW07XHJcblx0XHRcdFx0XHRhbm5vdGF0aW9uLlN0cm9rZUNvbG9yID0gbmV3IEFubm90YXRpb25zLkNvbG9yKDI1MCwgMjA2LCAwLCAwLjUwMTk2KTtcclxuXHRcdFx0XHRcdGFubm90YXRpb24uQXV0aG9yID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZ2V0Q3VycmVudFVzZXIoKTtcclxuXHRcdFx0XHRcdHJldHVybiBhbm5vdGF0aW9uO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMuc2F2ZWRBbm90YXRpb25zLnB1c2goLi4udGhpcy5uZXdBbm5vdGF0aW9ucyk7XHJcblx0XHRcdFx0YW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb25zKHRoaXMubmV3QW5ub3RhdGlvbnMpO1xyXG5cdFx0XHRcdGFubm90TWFuYWdlci5kcmF3QW5ub3RhdGlvbnNGcm9tTGlzdCh0aGlzLm5ld0Fubm90YXRpb25zKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRkb2NWaWV3ZXIuY2xlYXJTZWFyY2hSZXN1bHRzKCk7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblxyXG5cdFx0ZG9jVmlld2VyLm9uKCdkb2N1bWVudExvYWRlZCcsICgpID0+IHtcclxuXHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hZGRTZWFyY2hMaXN0ZW5lcihzZWFyY2hMaXN0ZW5lcik7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIHBlcmZvcm0gYXV0b21hdGljIHNlYXJjaCB3aGVuIGludGVyaW5nIHRoZSBwYWdlXHJcblx0YXV0b21hdGljU2VhcmNoKHNlYXJjaFRleHRBcnJheSkge1xyXG5cdFx0Y29uc3QgeyBhbm5vdE1hbmFnZXIsIGRvY1ZpZXdlciwgQW5ub3RhdGlvbnMgfSA9IHRoaXMud2ViVmlld2VySW5zdGFuY2U7XHJcblx0XHRsZXQgc2VhcmNoT3B0aW9ucztcclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2Uub3BlbkVsZW1lbnRzKFsnc2VhcmNoUGFuZWwnXSk7XHJcblx0XHRkb2NWaWV3ZXIub24oJ2RvY3VtZW50TG9hZGVkJywgKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBtb2RlID1cclxuXHRcdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLkNvcmVDb250cm9scy5TZWFyY2guTW9kZS5QQUdFX1NUT1AgfFxyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuQ29yZUNvbnRyb2xzLlNlYXJjaC5Nb2RlLkhJR0hMSUdIVCB8XHJcblx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Db3JlQ29udHJvbHMuU2VhcmNoLk1vZGUuQU1CSUVOVF9TVFJJTkc7XHJcblx0XHRcdHRoaXMubXlTZWFyY2hTdHJpbmdSZXN1bHRzID0gW107IC8vIGVtcHR5IG15IHNlYXJjaCByZXN1bHQgd2hlbiBzdGFydGluZyBuZXcgc2VhcmNoXHJcblx0XHRcdGlmICh0aGlzLmZpbGVXaXRoT2NyKSB7XHJcblx0XHRcdFx0Ly8gYWRkIHJlZGFjdGlvbiBhbm5vdGF0aW9uIGZvciBlYWNoIHNlYXJjaCByZXN1bHRcclxuXHRcdFx0XHRjb25zdCBhbm5vdGF0aW9uID0gbmV3IEFubm90YXRpb25zLlRleHRIaWdobGlnaHRBbm5vdGF0aW9uKCk7XHJcblx0XHRcdFx0c2VhcmNoVGV4dEFycmF5Lm1hcCgoc2VhcmNoVGV4dCkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IG15U2VhcmNoID0gc2VhcmNoVGV4dC5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdFx0aWYgKG15U2VhcmNoLmxlbmd0aCA+IDEpIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhlbiBpIGFtIHNlYXJjaGluZyB3aXRoIG1vcmUgdGhhbiBvbmUgd29yZFxyXG5cdFx0XHRcdFx0XHR0aGlzLnBhZ2VzLnBhZ2VzLmZvckVhY2goKHBhZ2UsIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5wYWdlSGVpZ2h0ID0gcGFnZS5wYWdlX2hlaWdodDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnBhZ2VXaWR0aCA9IHBhZ2UucGFnZV93aWR0aDtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN0YW5kYXJkSGVpZ2h0ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZUhlaWdodChpbmRleCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RhbmRhcmRXaWR0aCA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VXaWR0aChpbmRleCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdHBhZ2Uuem9uZXMuZm9yRWFjaCgoem9uZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0em9uZS5wYXJhZ3JhcGhzLmZvckVhY2goKHBhcmFncmFwaCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwYXJhZ3JhcGgubGluZXMuZm9yRWFjaCgobGluZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChsaW5lLnRleHQuaW5jbHVkZXMoc2VhcmNoVGV4dCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuU2VhcmNoRm9yV29yZEluTGluZShteVNlYXJjaCwgbGluZSwgaW5kZXggKyAxLCBwYWdlKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhlbiBpIGFtIHNlYXJjaGluZyB3aXRoIG9ubHkgb25lIHdvcmRcclxuXHRcdFx0XHRcdFx0dGhpcy5zZWFyY2hGb3JXb3JkSW5BbGxQYWdlcyhzZWFyY2hUZXh0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRkb2NWaWV3ZXIuY2xlYXJTZWFyY2hSZXN1bHRzKCk7XHJcblx0XHRcdFx0dGhpcy5kaXNwYWxheVNlYXJjaFJlc3VsdHMoZG9jVmlld2VyKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzZWFyY2hPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0Ly8gSWYgdHJ1ZSwgYSBzZWFyY2ggb2YgdGhlIGVudGlyZSBkb2N1bWVudCB3aWxsIGJlIHBlcmZvcm1lZC4gT3RoZXJ3aXNlLCBhIHNpbmdsZSBzZWFyY2ggd2lsbCBiZSBwZXJmb3JtZWQuXHJcblx0XHRcdFx0XHRmdWxsU2VhcmNoOiB0cnVlLFxyXG5cdFx0XHRcdFx0Ly8gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHNlYXJjaCByZXR1cm5zIGEgcmVzdWx0LlxyXG5cdFx0XHRcdFx0b25SZXN1bHQ6IChyZXN1bHQpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gd2l0aCAnUEFHRV9TVE9QJyBtb2RlLCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZCBhZnRlciBlYWNoIHBhZ2UgaGFzIGJlZW4gc2VhcmNoZWQuXHJcblx0XHRcdFx0XHRcdGlmIChyZXN1bHQucmVzdWx0Q29kZSA9PT0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5Db3JlQ29udHJvbHMuU2VhcmNoLlJlc3VsdENvZGUuRk9VTkQpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBhbm5vdGF0aW9uID0gbmV3IEFubm90YXRpb25zLlRleHRIaWdobGlnaHRBbm5vdGF0aW9uKCk7XHJcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbi5RdWFkcyA9IHJlc3VsdC5xdWFkcy5tYXAoKHF1YWQpID0+IHF1YWQuZ2V0UG9pbnRzKCkpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGFubm90YXRpb24uUXVhZHMpO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24uUGFnZU51bWJlciA9IHJlc3VsdC5wYWdlTnVtO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24uU3Ryb2tlQ29sb3IgPSBuZXcgQW5ub3RhdGlvbnMuQ29sb3IoMjUwLCAyMDYsIDAsIDAuNTAxOTYpO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24uQXV0aG9yID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZ2V0Q3VycmVudFVzZXIoKTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNhdmVkQW5vdGF0aW9ucy5wdXNoKGFubm90YXRpb24pO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90TWFuYWdlci5hZGRBbm5vdGF0aW9ucyhbYW5ub3RhdGlvbl0pO1xyXG5cdFx0XHRcdFx0XHRcdGFubm90TWFuYWdlci5kcmF3QW5ub3RhdGlvbnNGcm9tTGlzdChbYW5ub3RhdGlvbl0pO1xyXG5cdFx0XHRcdFx0XHRcdGRvY1ZpZXdlci5kaXNwbGF5QWRkaXRpb25hbFNlYXJjaFJlc3VsdHMoW3Jlc3VsdF0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRzZWFyY2hUZXh0QXJyYXkubWFwKChzZWFyY2hlZFRleHQpID0+IHtcclxuXHRcdFx0XHRcdGRvY1ZpZXdlci50ZXh0U2VhcmNoSW5pdChzZWFyY2hlZFRleHQsIG1vZGUsIHNlYXJjaE9wdGlvbnMpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIHNlYXJjaCBmb3Igc2luZ2xlIHdvcmQgaW4gYWxsIHBhZ2VzXHJcblx0c2VhcmNoRm9yV29yZEluQWxsUGFnZXMoc2VhcmNoZWRXb3JkKSB7XHJcblx0XHR0aGlzLnBhZ2VzLnBhZ2VzLmZvckVhY2goKHBhZ2UsIGluZGV4KSA9PiB7XHJcblx0XHRcdHRoaXMucGFnZUhlaWdodCA9IHBhZ2UucGFnZV9oZWlnaHQ7XHJcblx0XHRcdHRoaXMucGFnZVdpZHRoID0gcGFnZS5wYWdlX3dpZHRoO1xyXG5cdFx0XHR0aGlzLnN0YW5kYXJkSGVpZ2h0ID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZUhlaWdodChpbmRleCArIDEpO1xyXG5cdFx0XHR0aGlzLnN0YW5kYXJkV2lkdGggPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlV2lkdGgoaW5kZXggKyAxKTtcclxuXHRcdFx0Y29uc3QgeCA9IHRoaXMucGFnZVdpZHRoIC8gdGhpcy5zdGFuZGFyZFdpZHRoOyAvLyB3aWR0aCByYXRpb1xyXG5cdFx0XHRjb25zdCB5ID0gdGhpcy5wYWdlSGVpZ2h0IC8gdGhpcy5zdGFuZGFyZEhlaWdodDsgLy8gaGVpZ2h0IHJhdGlvXHJcblx0XHRcdHBhZ2Uuem9uZXMuZm9yRWFjaCgoem9uZSkgPT4ge1xyXG5cdFx0XHRcdHpvbmUucGFyYWdyYXBocy5mb3JFYWNoKChwYXJhZ3JhcGgpID0+IHtcclxuXHRcdFx0XHRcdHBhcmFncmFwaC5saW5lcy5mb3JFYWNoKChsaW5lKSA9PiB7XHJcblx0XHRcdFx0XHRcdGxpbmUud29yZHMuZm9yRWFjaCgod29yZCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh3b3JkLnRleHQuaW5jbHVkZXMoc2VhcmNoZWRXb3JkKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gYW5ub3RhdGlvbi5QYWdlTnVtYmVyID0gaW5kZXgrMTtcclxuXHRcdFx0XHRcdFx0XHRcdGxldCBxdWFkcyA9IFtcclxuXHRcdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHgxOiB3b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueCAvIHgsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eDI6IHdvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnggLyB4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHgzOiB3b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC54IC8geCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR4NDogd29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnggLyB4LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHkxOiB3b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueSAvIHksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eTI6IHdvcmQuY29vcmRpbmF0ZXMudXBwZXJfbGVmdC55IC8geSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR5Mzogd29yZC5jb29yZGluYXRlcy5ib3R0b21fcmlnaHQueSAvIHksXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eTQ6IHdvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnkgLyB5XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdF07XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmhpZ2xpZ2h0VGV4dChxdWFkcywgaW5kZXggKyAxKTtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuY29uc3RydWN0U2VhcmNoUmVzdWx0KHNlYXJjaGVkV29yZCwgaW5kZXggKyAxLCBxdWFkcywgbGluZS50ZXh0KTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBzZWFyY2ggZm9yIHdvcmQgaW4gc2luZ2xlIGxpbmVcclxuXHRTZWFyY2hGb3JXb3JkSW5MaW5lKGxpc3RPZlNlYXJjaGVkV29yZHMsIGxpbmUsIHBhZ2VudW1iZXIsIHBhZ2UpIHtcclxuXHRcdHRoaXMucGFnZUhlaWdodCA9IHBhZ2UucGFnZV9oZWlnaHQ7XHJcblx0XHR0aGlzLnBhZ2VXaWR0aCA9IHBhZ2UucGFnZV93aWR0aDtcclxuXHRcdHRoaXMuc3RhbmRhcmRIZWlnaHQgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlSGVpZ2h0KHBhZ2VudW1iZXIpO1xyXG5cdFx0dGhpcy5zdGFuZGFyZFdpZHRoID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZVdpZHRoKHBhZ2VudW1iZXIpO1xyXG5cdFx0Y29uc3QgeCA9IHRoaXMucGFnZVdpZHRoIC8gdGhpcy5zdGFuZGFyZFdpZHRoOyAvLyB3aWR0aCByYXRpb1xyXG5cdFx0Y29uc3QgeSA9IHRoaXMucGFnZUhlaWdodCAvIHRoaXMuc3RhbmRhcmRIZWlnaHQ7IC8vIGhlaWdodCByYXRpb1xyXG5cdFx0Ly8gZmluZCBvbmx5IHdvcmRzIHJlbGF0ZWQgdG8gbXkgc2VhcmNoIGZvcm0gdGhlIGxpbmVcclxuXHRcdGxldCBteUZvdW5kZWRSZXN1bHRzID0gW107XHJcblx0XHRsZXQgY29ycmVjdFJlc3VsdHMgPSBbXTtcclxuXHRcdGxpbmUud29yZHMuZm9yRWFjaCgod29yZCwgd29yZEluZGV4KSA9PiB7XHJcblx0XHRcdGlmIChsaXN0T2ZTZWFyY2hlZFdvcmRzLmluZGV4T2Yod29yZC50ZXh0KSA+IC0xKSB7XHJcblx0XHRcdFx0bXlGb3VuZGVkUmVzdWx0cy5wdXNoKHsgd29yZDogd29yZCwgd29yZEluZGV4OiB3b3JkSW5kZXggfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIGZpbmQgb25seSB3b3JkcyBleGlzdCBpbiBteSBzZWFyY2ggc2VudGVuY2UgYW5kIG5vdCBzaW5nbGUgYW5kIHJlcGVhdGVkIHdvcmRcclxuXHRcdG15Rm91bmRlZFJlc3VsdHMubWFwKChyZXN1bHQsIGluZGV4KSA9PiB7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHRteUZvdW5kZWRSZXN1bHRzW2luZGV4XVsnd29yZEluZGV4J10gLSAxID09PVxyXG5cdFx0XHRcdFx0KG15Rm91bmRlZFJlc3VsdHNbaW5kZXggLSAxXSAmJiBteUZvdW5kZWRSZXN1bHRzW2luZGV4IC0gMV1bJ3dvcmRJbmRleCddKSB8fFxyXG5cdFx0XHRcdChteUZvdW5kZWRSZXN1bHRzW2luZGV4ICsgMV0gJiZcclxuXHRcdFx0XHRcdG15Rm91bmRlZFJlc3VsdHNbaW5kZXggKyAxXVsnd29yZEluZGV4J10gLSAxID09PSBteUZvdW5kZWRSZXN1bHRzW2luZGV4XVsnd29yZEluZGV4J10pXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdGNvcnJlY3RSZXN1bHRzLnB1c2gocmVzdWx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gaGlnaGxpaHQgdGhlc2Ugd29yZHMgYWZ0ZXIgZWxlbWluYXRpbmcgYWxsIHJlcGVhdGVkIGFuZCByZWxhdGVkIHdvcmRzXHJcblx0XHQvLyBtdXN0IGJlIGZvciBsb29wIHNwIGkgY2FuIGNvbnRyb2wgdGhlIHN0ZXAgaW4gZWFjaCBsb29wXHJcblx0XHRsZXQgcXVhZHMgPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY29ycmVjdFJlc3VsdHMubGVuZ3RoOyBpID0gaSArIGxpc3RPZlNlYXJjaGVkV29yZHMubGVuZ3RoKSB7XHJcblx0XHRcdHF1YWRzLnB1c2goe1xyXG5cdFx0XHRcdHgxOiBjb3JyZWN0UmVzdWx0c1tpICsgbGlzdE9mU2VhcmNoZWRXb3Jkcy5sZW5ndGggLSAxXS53b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueCAvIHgsXHJcblx0XHRcdFx0eDI6IGNvcnJlY3RSZXN1bHRzW2ldLndvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnggLyB4LFxyXG5cdFx0XHRcdHgzOiBjb3JyZWN0UmVzdWx0c1tpXS53b3JkLmNvb3JkaW5hdGVzLmJvdHRvbV9yaWdodC54IC8geCxcclxuXHRcdFx0XHR4NDogY29ycmVjdFJlc3VsdHNbaSArIGxpc3RPZlNlYXJjaGVkV29yZHMubGVuZ3RoIC0gMV0ud29yZC5jb29yZGluYXRlcy51cHBlcl9sZWZ0LnggLyB4LFxyXG5cdFx0XHRcdHkxOiBjb3JyZWN0UmVzdWx0c1tpXS53b3JkLmNvb3JkaW5hdGVzLnVwcGVyX2xlZnQueSAvIHksXHJcblx0XHRcdFx0eTI6IGNvcnJlY3RSZXN1bHRzW2kgKyBsaXN0T2ZTZWFyY2hlZFdvcmRzLmxlbmd0aCAtIDFdLndvcmQuY29vcmRpbmF0ZXMudXBwZXJfbGVmdC55IC8geSxcclxuXHRcdFx0XHR5MzogY29ycmVjdFJlc3VsdHNbaSArIGxpc3RPZlNlYXJjaGVkV29yZHMubGVuZ3RoIC0gMV0ud29yZC5jb29yZGluYXRlcy5ib3R0b21fcmlnaHQueSAvIHksXHJcblx0XHRcdFx0eTQ6IGNvcnJlY3RSZXN1bHRzW2ldLndvcmQuY29vcmRpbmF0ZXMuYm90dG9tX3JpZ2h0LnkgLyB5XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmhpZ2xpZ2h0VGV4dChxdWFkcywgcGFnZW51bWJlcik7XHJcblx0XHRcdHRoaXMuY29uc3RydWN0U2VhcmNoUmVzdWx0KGxpc3RPZlNlYXJjaGVkV29yZHMuam9pbignICcpLCBwYWdlbnVtYmVyLCBxdWFkcywgbGluZS50ZXh0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdFNlYXJjaFJlc3VsdChzZWFyY2hlZFRleHQsIHBhZ2VOdW0sIHF1YWRzLCBsaW5lKSB7XHJcblx0XHRsZXQgbXlTZWFyY2hTdGFydFRleHRJbmRleCA9IGxpbmUuaW5kZXhPZihzZWFyY2hlZFRleHQpO1xyXG5cdFx0bGV0IG15U2VlYXJjaGVkVGV4dEVuZEluZGV4ID0gbXlTZWFyY2hTdGFydFRleHRJbmRleCArIHNlYXJjaGVkVGV4dC5sZW5ndGg7XHJcblx0XHRsZXQgc2VhcmNoUmVzdWx0T2JqZWN0ID0ge1xyXG5cdFx0XHRhbWJpZW50U3RyOiBsaW5lLFxyXG5cdFx0XHRyZXN1bHRTdHI6IHNlYXJjaGVkVGV4dCxcclxuXHRcdFx0cmVzdWx0U3RyU3RhcnQ6IG15U2VhcmNoU3RhcnRUZXh0SW5kZXgsXHJcblx0XHRcdHJlc3VsdFN0ckVuZDogbXlTZWVhcmNoZWRUZXh0RW5kSW5kZXgsXHJcblx0XHRcdHBhZ2VOdW06IHBhZ2VOdW0sXHJcblx0XHRcdHJlc3VsdENvZGU6IDIsXHJcblx0XHRcdHF1YWRzOiBbXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0ZWE6IHF1YWRzWzBdWyd5MyddLFxyXG5cdFx0XHRcdFx0ZmE6IHF1YWRzWzBdWyd5NCddLFxyXG5cdFx0XHRcdFx0aGE6IHF1YWRzWzBdWyd4MSddLFxyXG5cdFx0XHRcdFx0aWE6IHF1YWRzWzBdWyd4MiddLFxyXG5cdFx0XHRcdFx0cEI6IHF1YWRzWzBdWyd4MyddLFxyXG5cdFx0XHRcdFx0cUI6IHF1YWRzWzBdWyd4NCddLFxyXG5cdFx0XHRcdFx0ckI6IHF1YWRzWzBdWyd5MSddLFxyXG5cdFx0XHRcdFx0c0I6IHF1YWRzWzBdWyd5MiddXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRdXHJcblx0XHR9O1xyXG5cdFx0dGhpcy5teVNlYXJjaFN0cmluZ1Jlc3VsdHMucHVzaChzZWFyY2hSZXN1bHRPYmplY3QpO1xyXG5cdFx0Y29uc29sZS5sb2codGhpcy5teVNlYXJjaFN0cmluZ1Jlc3VsdHMpO1xyXG5cdH1cclxuXHJcblx0ZGlzcGFsYXlTZWFyY2hSZXN1bHRzKGRvY1ZpZXdlcikge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdGRvY1ZpZXdlci5kaXNwbGF5QWRkaXRpb25hbFNlYXJjaFJlc3VsdHModGhpcy5teVNlYXJjaFN0cmluZ1Jlc3VsdHMpO1xyXG5cdFx0fSwgNTAwKTtcclxuXHR9XHJcblxyXG5cdC8vIGRyYXcgaGlsaWd0aGluZyBhcm91bmQgY2VydGFpbiBjaGFyYXRhY3RlcnNcclxuXHRoaWdsaWdodFRleHQocXVhZHMsIHBhZ2VOdW1iZXIpIHtcclxuXHRcdGNvbnN0IGhpZ2hsaWdodGluZ0Fubm90ID0gbmV3IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQW5ub3RhdGlvbnMuVGV4dEhpZ2hsaWdodEFubm90YXRpb24oKTtcclxuXHRcdGhpZ2hsaWdodGluZ0Fubm90LlN0cm9rZUNvbG9yID0gbmV3IHRoaXMud2ViVmlld2VySW5zdGFuY2UuQW5ub3RhdGlvbnMuQ29sb3IoMjUwLCAyMDYsIDAsIDAuNTAxOTYpO1xyXG5cdFx0aGlnaGxpZ2h0aW5nQW5ub3QuUXVhZHMgPSBxdWFkcztcclxuXHRcdGhpZ2hsaWdodGluZ0Fubm90LlBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyO1xyXG5cdFx0aGlnaGxpZ2h0aW5nQW5ub3QuQXV0aG9yID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuZ2V0Q3VycmVudFVzZXIoKTtcclxuXHRcdHRoaXMuc2F2ZWRBbm90YXRpb25zLnB1c2goaGlnaGxpZ2h0aW5nQW5ub3QpO1xyXG5cdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIuYWRkQW5ub3RhdGlvbihoaWdobGlnaHRpbmdBbm5vdCk7XHJcblxyXG5cdFx0Ly8gbmVlZCB0byBkcmF3IHRoZSBhbm5vdGF0aW9uIG90aGVyd2lzZSBpdCB3b24ndCBzaG93IHVwIHVudGlsIHRoZSBwYWdlIGlzIHJlZnJlc2hlZFxyXG5cdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihoaWdobGlnaHRpbmdBbm5vdCk7XHJcblx0fVxyXG5cclxuXHRzZWFyY2hGbiA9IChzZWFyY2hWYWx1ZSwgb3B0aW9ucykgPT4ge1xyXG5cdFx0dGhpcy5teVNlYXJjaFN0cmluZ1Jlc3VsdHMgPSBbXTtcclxuXHRcdGlmICh0aGlzLnNhdmVkQW5vdGF0aW9ucy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuc2F2ZWRBbm90YXRpb25zLm1hcCgoYW5ub3RhdGlvbikgPT4ge1xyXG5cdFx0XHRcdGFubm90YXRpb24uSGlkZGVuID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyBBbHdheXMgcmVkcmF3IGFubm90YXRpb24gaWYgcmVuZGVyaW5nIHdhcyB1cGRhdGVkXHJcblx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihhbm5vdGF0aW9uKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHQvLyBkb24ndCBkbyBhbnkgc2VhcmNoIHVudGlsIHRoZXJlIGlzIGEgc2VhcmNoIHBhdHRlcm5cclxuXHRcdGlmIChzZWFyY2hWYWx1ZS50cmltKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRpZiAodGhpcy5maWxlV2l0aE9jcikge1xyXG5cdFx0XHRcdC8vIGFkZCByZWRhY3Rpb24gYW5ub3RhdGlvbiBmb3IgZWFjaCBzZWFyY2ggcmVzdWx0XHJcblx0XHRcdFx0Ly8gY29uc3QgYW5ub3RhdGlvbiA9IG5ldyBBbm5vdGF0aW9ucy5UZXh0SGlnaGxpZ2h0QW5ub3RhdGlvbigpO1xyXG5cdFx0XHRcdGxldCBteVNlYXJjaCA9IHNlYXJjaFZhbHVlLnNwbGl0KCcgJyk7XHJcblx0XHRcdFx0aWYgKG15U2VhcmNoLmxlbmd0aCA+IDEpIHtcclxuXHRcdFx0XHRcdC8vIHRoZW4gaSBhbSBzZWFyY2hpbmcgd2l0aCBtb3JlIHRoYW4gb25lIHdvcmRcclxuXHRcdFx0XHRcdHRoaXMucGFnZXMucGFnZXMuZm9yRWFjaCgocGFnZSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5wYWdlSGVpZ2h0ID0gcGFnZS5wYWdlX2hlaWdodDtcclxuXHRcdFx0XHRcdFx0dGhpcy5wYWdlV2lkdGggPSBwYWdlLnBhZ2Vfd2lkdGg7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RhbmRhcmRIZWlnaHQgPSB0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5nZXRQYWdlSGVpZ2h0KGluZGV4ICsgMSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RhbmRhcmRXaWR0aCA9IHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VXaWR0aChpbmRleCArIDEpO1xyXG5cdFx0XHRcdFx0XHRwYWdlLnpvbmVzLmZvckVhY2goKHpvbmUpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR6b25lLnBhcmFncmFwaHMuZm9yRWFjaCgocGFyYWdyYXBoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRwYXJhZ3JhcGgubGluZXMuZm9yRWFjaCgobGluZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAobGluZS50ZXh0LmluY2x1ZGVzKHNlYXJjaFZhbHVlKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuU2VhcmNoRm9yV29yZEluTGluZShteVNlYXJjaCwgbGluZSwgaW5kZXggKyAxLCBwYWdlKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIHRoZW4gaSBhbSBzZWFyY2hpbmcgd2l0aCBvbmx5IG9uZSB3b3JkXHJcblx0XHRcdFx0XHR0aGlzLnNlYXJjaEZvcldvcmRJbkFsbFBhZ2VzKHNlYXJjaFZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIuY2xlYXJTZWFyY2hSZXN1bHRzKCk7XHJcblx0XHRcdFx0dGhpcy5kaXNwYWxheVNlYXJjaFJlc3VsdHModGhpcy53ZWJWaWV3ZXJJbnN0YW5jZS5kb2NWaWV3ZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmRvY1ZpZXdlci5jbGVhclNlYXJjaFJlc3VsdHMoKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuc2lsZW50UGRmVHJvblNlcnZpY2UuaXNFbmFibGVkKSB7XHJcblx0XHRcdHRoaXMuI3Jlc2V0KCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuY2xvc2VEb2N1bWVudCgpLnRoZW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ2RvY3VtZW50IGNsb3NlZCEnKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlID0gdGhpcy53ZWJWaWV3ZXJJbnN0YW5jZSA9IG51bGw7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbiA/IHRoaXMudHJhbnNlbGF0aW9uU3Vic2NyaXRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQjcmVzZXQoKSB7XHJcblx0XHR0aGlzLndlYlZpZXdlckluc3RhbmNlLmNsb3NlRG9jdW1lbnQoKS50aGVuKCgpID0+IHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ2RvY3VtZW50IGNsb3NlZCEnKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZSA9IG51bGw7XHJcblx0XHR0aGlzLnRyYW5zZWxhdGlvblN1YnNjcml0aW9uID8gdGhpcy50cmFuc2VsYXRpb25TdWJzY3JpdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuXHJcblx0XHR0aGlzLnNpbGVudFBkZlRyb24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHRcdHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuXHRcdHRoaXMubXV0YXRpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG5cclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2Uuc2V0SGVhZGVySXRlbXMoKGhlYWRlcikgPT4ge1xyXG5cdFx0XHRoZWFkZXIuaGVhZGVycy5kZWZhdWx0ID0gaGVhZGVyLmhlYWRlcnMuZGVmYXVsdC5maWx0ZXIoKHEpID0+ICFxLmltZz8uaW5jbHVkZXMoJzxzdmcnKSk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMud2ViVmlld2VySW5zdGFuY2UuZG9jVmlld2VyLm9mZignZG9jdW1lbnRMb2FkZWQnLCB0aGlzLiNkb2NMb2FkZWQpO1xyXG5cdFx0Ly8gbWF5YmUgd2lsbCBuZWVkIHRvIHJlc2V0IHNpZ25hdHVyZSAmIGFubm90YXRpb25zXHJcblx0fVxyXG59XHJcbiIsIjxkaXYgI2ZpbGVWaWV3ZXIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1wiPjwvZGl2PlxyXG4iXX0=