nuxeo-development-framework 6.2.4 → 6.2.6
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.
- package/bundles/nuxeo-development-framework.umd.js +145 -264
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +1 -1
- package/esm2015/lib/components/activities-log/activities-log.module.js +1 -1
- package/esm2015/lib/components/activity/activity/activity.component.js +1 -1
- package/esm2015/lib/components/activity/activity.module.js +1 -1
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +2 -2
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +1 -1
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +1 -1
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +1 -1
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +1 -1
- package/esm2015/lib/components/avatar/avatar.module.js +1 -1
- package/esm2015/lib/components/card/card.component.js +1 -1
- package/esm2015/lib/components/card/card.module.js +1 -1
- package/esm2015/lib/components/comments/comments.module.js +1 -1
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +2 -2
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +1 -1
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +1 -1
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +1 -1
- package/esm2015/lib/components/comments/constants/comment.js +1 -1
- package/esm2015/lib/components/comments/services/comment-api.service.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +1 -1
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +5 -2
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +5 -2
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +1 -1
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +1 -1
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +1 -1
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +1 -1
- package/esm2015/lib/components/create-entity/create-entity.module.js +1 -1
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +2 -2
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +1 -1
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -1
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +1 -1
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +1 -1
- package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +1 -1
- package/esm2015/lib/components/diagrams/components/base-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/custom-connection.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/custom-socket.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/index.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-icon.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-inputs.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-outputs.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-ports.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/remove-button.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/status-icon.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/zoom-control.component.js +1 -1
- package/esm2015/lib/components/diagrams/constants/defaults.js +1 -1
- package/esm2015/lib/components/diagrams/constants/direction.js +1 -1
- package/esm2015/lib/components/diagrams/constants/index.js +1 -1
- package/esm2015/lib/components/diagrams/constants/message-type.js +1 -1
- package/esm2015/lib/components/diagrams/constants/node-type.js +1 -1
- package/esm2015/lib/components/diagrams/constants/notify-events.js +1 -1
- package/esm2015/lib/components/diagrams/constants/sizes.js +1 -1
- package/esm2015/lib/components/diagrams/constants/status.js +1 -1
- package/esm2015/lib/components/diagrams/diagrams.module.js +1 -1
- package/esm2015/lib/components/diagrams/directive/diagram.directive.js +1 -1
- package/esm2015/lib/components/diagrams/directive/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/customize.js +1 -1
- package/esm2015/lib/components/diagrams/editor/editor.js +1 -1
- package/esm2015/lib/components/diagrams/editor/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +1 -1
- package/esm2015/lib/components/diagrams/editor/overrides/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/path-plugin.js +1 -1
- package/esm2015/lib/components/diagrams/editor/socket-position-watcher.js +1 -1
- package/esm2015/lib/components/diagrams/index.js +1 -1
- package/esm2015/lib/components/diagrams/models/base-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/circle-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/content-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/gate-way.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/index.js +1 -1
- package/esm2015/lib/components/diagrams/models/ports.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/socket.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/template-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/public-api.js +1 -1
- package/esm2015/lib/components/diagrams/services/diagram-plugins.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/diagram.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/index.js +1 -1
- package/esm2015/lib/components/diagrams/services/message.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/workflow.service.js +1 -1
- package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/connection-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/connection-label.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/customization.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/emitter-type.js +1 -1
- package/esm2015/lib/components/diagrams/types/index.js +1 -1
- package/esm2015/lib/components/diagrams/types/layout.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-content.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-status.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/node.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/notify-event.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/ports-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/schemes.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/socket.type.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/common.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/index.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/random.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/remove.util.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/serialize.js +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +1 -1
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
- package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
- package/esm2015/lib/components/documents/constants/document-templates.js +1 -1
- package/esm2015/lib/components/documents/constants/documents.js +1 -1
- package/esm2015/lib/components/documents/documents.module.js +1 -1
- package/esm2015/lib/components/documents/services/document-templates.service.js +1 -1
- package/esm2015/lib/components/documents/services/documents.service.js +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +1 -1
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +1 -1
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +1 -1
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +2 -2
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/constants/department.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +1 -1
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-baseitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-boolitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-dateitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-mapitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-selectitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-textitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form.models.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/dynamic-component-mapper.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/vocabulary-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/length-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/regex-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/required-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/value-validator.js +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +1 -1
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +1 -1
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +1 -1
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +1 -1
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +1 -1
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/move/move.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +1 -1
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +1 -1
- package/esm2015/lib/components/file-manger/file-manger.module.js +1 -1
- package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +1 -1
- package/esm2015/lib/components/file-manger/models/index.js +1 -1
- package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +1 -1
- package/esm2015/lib/components/file-manger/models/pagination-response.model.js +1 -1
- package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
- package/esm2015/lib/components/filter/filter.module.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/consts.js +1 -1
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +1 -1
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +1 -1
- package/esm2015/lib/components/latest-activity/constants/activitylog.js +1 -1
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +1 -1
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +1 -1
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +1 -1
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/config.token.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/mode.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/query.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/metadata-token.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/config.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/payload-data.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/public/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/public-api.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/utility/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/utility/json.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/hijri-adapter.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/moment-adapter.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/base/base-value-accessor.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/base/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/base-datepicker.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/input-date.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/input-range-date.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-locale-keys.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-picker.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-type.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/formats.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/hijri-dates-names.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/datepicker-container.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/data-types.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/value-object.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.component.js +2 -2
- package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.module.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/calendar.service.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/localize-state.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-aggregation-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-checkbox-radio.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-custom-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-predicate-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-value-accessor.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/field-header.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-empty-message.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-options-sort/filter-options-sort.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-search-input/filter-search-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/html-dialog/html-dialog.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-checkbox/aggregation-checkbox.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-radio/aggregation-radio.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-switch/aggregation-switch.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/constants/common.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/field.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/operators.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/sort.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/type.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/base-field.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/custom-field/custom-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/user-types.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/aggregation-group.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/map-aggregation-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/autocomplete-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/checkbox-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/custom-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/date-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/dropdown-label-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/dropdown-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/radio-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/switch-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/aggregation-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/aggregation-response.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/common.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/custom-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-config.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/autocomplete-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/checkbox-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/common-utils.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/custom-fields-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/custom-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/date-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/dropdown-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/input-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/radio-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/switch-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/form-query-request.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/operator-value-object.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/predicate-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/types-helper.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/value-object.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/evaluate-label.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/filter.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/hash-translate.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/localized-label.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/roles-filters.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/sanitizer.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/sort.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/tooltip.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/public-api.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/filters-mapper.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/filters-query.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/nxql-query.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/nxql.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/object.js +1 -1
- package/esm2015/lib/components/ndf-panel/component/ndf-panel.component.js +1 -1
- package/esm2015/lib/components/ndf-panel/index.js +1 -1
- package/esm2015/lib/components/ndf-panel/ndf-panel.module.js +1 -1
- package/esm2015/lib/components/ndf-scanner/index.js +1 -1
- package/esm2015/lib/components/ndf-scanner/ndf-scanner.component.js +2 -2
- package/esm2015/lib/components/ndf-scanner/ndf-scanner.module.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/dialogs/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/services/emdha.service.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/services/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.js +1 -1
- package/esm2015/lib/components/ndf-signatures/ndf-signatures.module.js +1 -1
- package/esm2015/lib/components/ndf-signatures/services/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/services/signatures.service.js +1 -1
- package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +1 -1
- package/esm2015/lib/components/ndf-tabs/index.js +1 -1
- package/esm2015/lib/components/ndf-tabs/ndf-tabs.module.js +1 -1
- package/esm2015/lib/components/ndf-tabs/tab.type.js +1 -1
- package/esm2015/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.js +2 -2
- package/esm2015/lib/components/ndf-uploader/components/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/config/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/config/uploader.config.js +1 -1
- package/esm2015/lib/components/ndf-uploader/constant/file-content.js +1 -1
- package/esm2015/lib/components/ndf-uploader/constant/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/helpers/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/helpers/uploader.helper.js +1 -1
- package/esm2015/lib/components/ndf-uploader/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/batch.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/ndf-file.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/provider.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader.module.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/nuxeo-base-url.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/nuxeo-provider.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/s3-provider.service.js +1 -1
- package/esm2015/lib/components/no-data-found/index.js +1 -1
- package/esm2015/lib/components/no-data-found/no-data-found.component.js +1 -1
- package/esm2015/lib/components/no-data-found/no-data.module.js +1 -1
- package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +1 -1
- package/esm2015/lib/components/notifications/components/base-notifications.component.js +1 -1
- package/esm2015/lib/components/notifications/components/index.js +1 -1
- package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +1 -1
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-sortby-toggle/notification-sortby-toggle.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-list/options.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +1 -1
- package/esm2015/lib/components/notifications/constants/date.js +1 -1
- package/esm2015/lib/components/notifications/constants/index.js +1 -1
- package/esm2015/lib/components/notifications/constants/pagination.js +1 -1
- package/esm2015/lib/components/notifications/constants/panel.js +1 -1
- package/esm2015/lib/components/notifications/constants/status.js +1 -1
- package/esm2015/lib/components/notifications/containers/index.js +1 -1
- package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +2 -2
- package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +1 -1
- package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +1 -1
- package/esm2015/lib/components/notifications/directives/button.directive.js +1 -1
- package/esm2015/lib/components/notifications/directives/index.js +1 -1
- package/esm2015/lib/components/notifications/directives/notification.directive.js +1 -1
- package/esm2015/lib/components/notifications/index.js +1 -1
- package/esm2015/lib/components/notifications/models/common.js +1 -1
- package/esm2015/lib/components/notifications/models/index.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-definition.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-options.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-subscription.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notification.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
- package/esm2015/lib/components/notifications/models/paging-response.model.js +1 -1
- package/esm2015/lib/components/notifications/models/params.model.js +1 -1
- package/esm2015/lib/components/notifications/models/vocabularies.js +1 -1
- package/esm2015/lib/components/notifications/notifications.module.js +1 -1
- package/esm2015/lib/components/notifications/public-api.js +1 -1
- package/esm2015/lib/components/notifications/services/index.js +1 -1
- package/esm2015/lib/components/notifications/services/listener.service.js +1 -1
- package/esm2015/lib/components/notifications/services/notifications.service.js +1 -1
- package/esm2015/lib/components/notifications/services/params.service.js +1 -1
- package/esm2015/lib/components/notifications/services/response.service.js +1 -1
- package/esm2015/lib/components/notifications/services/socket.service.js +1 -1
- package/esm2015/lib/components/notifications/utilities/index.js +1 -1
- package/esm2015/lib/components/notifications/utilities/response.adapter.js +1 -1
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +1 -1
- package/esm2015/lib/components/pagination/pagination.module.js +1 -1
- package/esm2015/lib/components/pdf-tron/directives/index.js +1 -1
- package/esm2015/lib/components/pdf-tron/directives/ndf-tron-extract-text.directive.js +1 -1
- package/esm2015/lib/components/pdf-tron/models/index.js +1 -1
- package/esm2015/lib/components/pdf-tron/models/tron.model.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/silent-pdftron.service.js +1 -1
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +1 -1
- package/esm2015/lib/components/permissions/permission.service.js +1 -1
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +1 -1
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +1 -1
- package/esm2015/lib/components/permissions/permissions.module.js +1 -1
- package/esm2015/lib/components/reports/chart-panel.js +1 -1
- package/esm2015/lib/components/reports/charts/chart.const.js +1 -1
- package/esm2015/lib/components/reports/charts/chart.token.js +1 -1
- package/esm2015/lib/components/reports/charts/charts.module.js +1 -1
- package/esm2015/lib/components/reports/charts/components/base-chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/data-chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/index.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/bar.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/doughnut.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/index.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/line.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/pie.js +1 -1
- package/esm2015/lib/components/reports/charts/index.js +1 -1
- package/esm2015/lib/components/reports/charts/models/index.js +1 -1
- package/esm2015/lib/components/reports/charts/models/options.js +1 -1
- package/esm2015/lib/components/reports/charts/models/plugins-options.js +1 -1
- package/esm2015/lib/components/reports/charts/models/response.js +1 -1
- package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/data-labels.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/index.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +1 -1
- package/esm2015/lib/components/reports/charts/public-api.js +1 -1
- package/esm2015/lib/components/reports/charts/services/index.js +1 -1
- package/esm2015/lib/components/reports/charts/services/statistic.service.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/colors.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/common.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/css.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/index.js +1 -1
- package/esm2015/lib/components/reports/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/directives/empty-content-template.directive.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/directives/header-panel-template.directive.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/directives/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/digit.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/request.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/line.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/pie.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/public-api.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-callbacks-register.services.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-data-transformers.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-dialog.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +1 -1
- package/esm2015/lib/components/select/select/select.component.js +1 -1
- package/esm2015/lib/components/select/select.module.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
- package/esm2015/lib/components/skeleton/index.js +1 -1
- package/esm2015/lib/components/skeleton/skeleton.component.js +1 -1
- package/esm2015/lib/components/skeleton/skeleton.module.js +1 -1
- package/esm2015/lib/components/skeleton/table-skeleton.component.js +1 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/directives/empty-state.directive.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +2 -2
- package/esm2015/lib/components/tables/dynamic-table/dynamic-table.module.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/index.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/public-api.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/services/dynamic-table.service.js +1 -1
- package/esm2015/lib/components/tables/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/table-export/table-export.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/constants/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/constants/sizes.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/containers/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +68 -25
- package/esm2015/lib/components/tables/ndf-table/directives/actions.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/filter-custom.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/search.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/search.config.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-column.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/types.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/public-api.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +1 -1
- package/esm2015/lib/components/tables/public-api.js +1 -1
- package/esm2015/lib/components/tables/shared/index.js +1 -1
- package/esm2015/lib/components/tables/shared/table-hooks.service.js +1 -1
- package/esm2015/lib/components/tables/table/dynamic-column/dynamic-column.component.js +1 -1
- package/esm2015/lib/components/tables/table/dynamic-component.js +1 -1
- package/esm2015/lib/components/tables/table/index.js +1 -1
- package/esm2015/lib/components/tables/table/page-sizes-list/page-sizes-list.component.js +1 -1
- package/esm2015/lib/components/tables/table/public-api.js +1 -1
- package/esm2015/lib/components/tables/table/table/table.component.js +2 -2
- package/esm2015/lib/components/tables/table/table.module.js +1 -1
- package/esm2015/lib/components/toasts/components/notification-toast/notification-toast.component.js +1 -1
- package/esm2015/lib/components/toasts/index.js +1 -1
- package/esm2015/lib/components/toasts/public-api.js +1 -1
- package/esm2015/lib/components/toasts/toasts.module.js +1 -1
- package/esm2015/lib/components/user/user/user.component.js +1 -1
- package/esm2015/lib/components/user/user.module.js +1 -1
- package/esm2015/lib/components/users-card/users-card.component.js +2 -2
- package/esm2015/lib/components/users-card/users-card.module.js +1 -1
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +1 -1
- package/esm2015/lib/components/vocabulary/interfaces/op-type.interface.js +1 -1
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +1 -1
- package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +1 -1
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +1 -1
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +1 -1
- package/esm2015/lib/configuration/app-config.service.js +1 -1
- package/esm2015/lib/configuration/helpers/app-initializer.js +1 -1
- package/esm2015/lib/core/adapters/adapter.service.js +1 -1
- package/esm2015/lib/core/core.module.js +1 -1
- package/esm2015/lib/core/enums/language.enum.js +1 -1
- package/esm2015/lib/core/env/env-manager.js +1 -1
- package/esm2015/lib/core/env/index.js +1 -1
- package/esm2015/lib/core/models/api-response.model.js +1 -1
- package/esm2015/lib/core/models/automation-response.model.js +1 -1
- package/esm2015/lib/core/models/base-response.models.js +1 -1
- package/esm2015/lib/core/models/component.model.js +1 -1
- package/esm2015/lib/core/models/index.js +1 -1
- package/esm2015/lib/core/services/callApi/call-api.service.js +1 -1
- package/esm2015/lib/core/services/column-renderer/column-renderer-registry.service.js +1 -1
- package/esm2015/lib/core/services/column-renderer/index.js +1 -1
- package/esm2015/lib/core/services/extension/action.extensions.js +1 -1
- package/esm2015/lib/core/services/extension/component-register.service.js +1 -1
- package/esm2015/lib/core/services/extension/extenion-utils.js +1 -1
- package/esm2015/lib/core/services/extension/extension-element.js +1 -1
- package/esm2015/lib/core/services/extension/extension-loader.service.js +1 -1
- package/esm2015/lib/core/services/extension/extension.service.js +1 -1
- package/esm2015/lib/core/services/index.js +1 -1
- package/esm2015/lib/core/services/initialization/initialization.service.js +1 -1
- package/esm2015/lib/core/services/localStorag/local-storag.service.js +1 -1
- package/esm2015/lib/core/services/ndf-transform.service.js +1 -1
- package/esm2015/lib/core/services/nuxeo/new-nuxeo-overide.js +1 -1
- package/esm2015/lib/core/services/nuxeo/nuxeo-override.js +1 -1
- package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +1 -1
- package/esm2015/lib/core/services/roles/roles.service.js +1 -1
- package/esm2015/lib/core/services/translation/translate-loader.service.js +1 -1
- package/esm2015/lib/core/services/translation/translation.service.js +1 -1
- package/esm2015/lib/core/services/user/user-preferences.service.js +1 -1
- package/esm2015/lib/core/tokens/index.js +1 -1
- package/esm2015/lib/core/tokens/project.token.js +1 -1
- package/esm2015/lib/core/utilities/moment-date-adapter.js +1 -1
- package/esm2015/lib/core/utilities/utility.service.js +1 -1
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +1 -1
- package/esm2015/lib/directive/directive.module.js +1 -1
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +1 -1
- package/esm2015/lib/directive/permissions/evaluators.service.js +1 -1
- package/esm2015/lib/directive/permissions/permissions.directive.js +1 -1
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +1 -1
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.component.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.module.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.service.js +1 -1
- package/esm2015/lib/pipes/escape.pipe.js +1 -1
- package/esm2015/lib/pipes/file-size.pipe.js +1 -1
- package/esm2015/lib/pipes/hijri-date.pipe.js +1 -1
- package/esm2015/lib/pipes/localized-date.pipe.js +1 -1
- package/esm2015/lib/pipes/multi-value.pipe.js +1 -1
- package/esm2015/lib/pipes/pipes.module.js +1 -1
- package/esm2015/lib/pipes/secure-html.pipe.js +1 -1
- package/esm2015/lib/pipes/secure.pipe.js +1 -1
- package/esm2015/lib/pipes/time-ago.pipe.js +1 -1
- package/esm2015/lib/shared/components/base/base-column.component.js +1 -1
- package/esm2015/lib/shared/components/base/base-dialog.component.js +1 -1
- package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
- package/esm2015/lib/shared/components/base/base.component.js +1 -1
- package/esm2015/lib/shared/components/base/destroy.subject.js +1 -1
- package/esm2015/lib/shared/components/base/index.js +1 -1
- package/esm2015/lib/shared/components/button/button.component.js +1 -1
- package/esm2015/lib/shared/components/general-notification-popup/general-notification-popup.component.js +1 -1
- package/esm2015/lib/shared/components/index.js +1 -1
- package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
- package/esm2015/lib/shared/components/no-data/no-data.component.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/index.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/models/confirm-options.model.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/models/dialog-option.model.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +2 -2
- package/esm2015/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.js +1 -1
- package/esm2015/lib/shared/components/read-more/read-more.component.js +1 -1
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +1 -1
- package/esm2015/lib/shared/components/spinner/spinner.component.js +1 -1
- package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
- package/esm2015/lib/shared/constants/editor-config-type.js +1 -1
- package/esm2015/lib/shared/constants/index.js +1 -1
- package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +1 -1
- package/esm2015/lib/shared/directives/element-height.directive.js +1 -1
- package/esm2015/lib/shared/directives/fluid-height.directive.js +1 -1
- package/esm2015/lib/shared/directives/index.js +1 -1
- package/esm2015/lib/shared/index.js +1 -1
- package/esm2015/lib/shared/libraryShared.module.js +1 -1
- package/esm2015/lib/shared/models/index.js +1 -1
- package/esm2015/lib/shared/models/mapper/index.js +1 -1
- package/esm2015/lib/shared/models/mapper/nuxeo-mapper.js +1 -1
- package/esm2015/lib/shared/models/ndf-request.model.js +1 -1
- package/esm2015/lib/shared/models/nuxeo-response.model.js +1 -1
- package/esm2015/lib/shared/models/task.model.js +1 -1
- package/esm2015/lib/shared/models/type-helpers.js +1 -1
- package/esm2015/lib/shared/services/base/base-editor-config.service.js +1 -1
- package/esm2015/lib/shared/services/base/base.service.js +1 -1
- package/esm2015/lib/shared/services/base/cache-base.service.js +1 -1
- package/esm2015/lib/shared/services/base/config/default-ttl-config.js +1 -1
- package/esm2015/lib/shared/services/base/config/index.js +1 -1
- package/esm2015/lib/shared/services/base/constants/default-cache-options.js +1 -1
- package/esm2015/lib/shared/services/base/constants/index.js +1 -1
- package/esm2015/lib/shared/services/base/http-base.service.js +1 -1
- package/esm2015/lib/shared/services/base/index.js +1 -1
- package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
- package/esm2015/lib/shared/services/base/models/http-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/index.js +1 -1
- package/esm2015/lib/shared/services/base/models/operation-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/query-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/request-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/override-token.service.js +1 -1
- package/esm2015/lib/shared/services/index.js +1 -1
- package/esm2015/lib/shared-services/apis-errors-messages.service.js +1 -1
- package/esm2015/lib/shared-services/dialog-mangment.service.js +1 -1
- package/esm2015/lib/shared-services/dynamic-form.service.js +1 -1
- package/esm2015/lib/shared-services/file-manager.adapter.js +1 -1
- package/esm2015/lib/shared-services/file-manager.service.js +1 -1
- package/esm2015/lib/shared-services/global-admin.service.js +1 -1
- package/esm2015/lib/shared-services/global-pdftron.service.js +1 -1
- package/esm2015/lib/shared-services/mainfolder.service.js +1 -1
- package/esm2015/lib/shared-services/publishing-document.service.js +1 -1
- package/esm2015/lib/shared-services/recently-viewed.service.js +1 -1
- package/esm2015/lib/shared-services/shared-docs.service.js +1 -1
- package/esm2015/lib/shared-services/shared-services.module.js +1 -1
- package/esm2015/lib/shared-services/upload-file.service.js +1 -1
- package/esm2015/lib/shared-services/upload-managment.service.js +1 -1
- package/esm2015/lib/shared-services/user.service.js +1 -1
- package/esm2015/nuxeo-development-framework.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/nuxeo-development-framework.js +121 -74
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +2 -1
- package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts +2 -1
- package/lib/components/diagrams/components/custom-connection.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts +1 -1
- package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts +1 -1
- package/lib/components/reports/charts/components/base-chart.component.d.ts +1 -1
- package/lib/components/reports/ndf-reports/base/base-chart.d.ts +1 -1
- package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +17 -1
- package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +1 -1
- package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +15 -14
- package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +1 -1
- package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts +1 -1
- package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +29 -2
- package/lib/components/tables/ndf-table/models/table-config.d.ts +1 -0
- package/package.json +1 -1
|
@@ -8,6 +8,7 @@ import { DestroySubject } from '../../../../../shared/components';
|
|
|
8
8
|
import { COMPARISON_OPERATOR, HtmlDialogComponent, } from '../../../../ndf-filters';
|
|
9
9
|
import { PAGE_SIZE } from '../../constants';
|
|
10
10
|
import { ACTIONS_TABLE_TEMPLATE, FILTER_CUSTOM_TEMPLATE, SEARCH_TABLE_TEMPLATE, } from '../../directives';
|
|
11
|
+
import { Breakpoints } from '@angular/cdk/layout';
|
|
11
12
|
import { NDF_EDITOR_TYPE } from '../../../../../shared';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "../../../../ndf-filters/services";
|
|
@@ -18,28 +19,36 @@ import * as i5 from "../../../../custom-toastr/services/custom-toastr.service";
|
|
|
18
19
|
import * as i6 from "../../../../../core/services/user/user-preferences.service";
|
|
19
20
|
import * as i7 from "../../../shared";
|
|
20
21
|
import * as i8 from "@angular/material/dialog";
|
|
21
|
-
import * as i9 from "
|
|
22
|
-
import * as i10 from "
|
|
22
|
+
import * as i9 from "@angular/cdk/layout";
|
|
23
|
+
import * as i10 from "../../../../ndf-filters/containers/filters-panel/filters-panel.component";
|
|
23
24
|
import * as i11 from "@angular/material/icon";
|
|
24
|
-
import * as i12 from "
|
|
25
|
-
import * as i13 from "
|
|
26
|
-
import * as i14 from "
|
|
27
|
-
import * as i15 from "../../components/
|
|
28
|
-
import * as i16 from "../../components/
|
|
29
|
-
import * as i17 from "../../components/
|
|
30
|
-
import * as i18 from "
|
|
31
|
-
import * as i19 from "
|
|
32
|
-
import * as i20 from "
|
|
33
|
-
import * as i21 from "
|
|
34
|
-
import * as i22 from "
|
|
35
|
-
import * as i23 from "
|
|
36
|
-
import * as i24 from "
|
|
37
|
-
import * as i25 from "
|
|
25
|
+
import * as i12 from "@angular/material/button";
|
|
26
|
+
import * as i13 from "../../components/text-search/text-search.component";
|
|
27
|
+
import * as i14 from "../../../../ndf-config-editor/public/editor-navigate-button";
|
|
28
|
+
import * as i15 from "../../components/table-export/table-export.component";
|
|
29
|
+
import * as i16 from "../../components/sorting-list/sorting-list.component";
|
|
30
|
+
import * as i17 from "../../components/table-columns-toggler/table-columns-toggler.component";
|
|
31
|
+
import * as i18 from "../../components/mode-toggler/mode-toggler.component";
|
|
32
|
+
import * as i19 from "../../../dynamic-table/dynamic-table/dynamic-table.component";
|
|
33
|
+
import * as i20 from "@angular/material/progress-spinner";
|
|
34
|
+
import * as i21 from "../../../../no-data-found/no-data-found.component";
|
|
35
|
+
import * as i22 from "../../../table/table/table.component";
|
|
36
|
+
import * as i23 from "@angular/common";
|
|
37
|
+
import * as i24 from "../../../../../shared/directives/fluid-height.directive";
|
|
38
|
+
import * as i25 from "@angular/cdk/bidi";
|
|
39
|
+
import * as i26 from "../../../dynamic-table/directives/empty-state.directive";
|
|
40
|
+
const SCREEN_SIZE = {
|
|
41
|
+
xs: 'xs',
|
|
42
|
+
sm: 'sm',
|
|
43
|
+
md: 'md',
|
|
44
|
+
lg: 'lg',
|
|
45
|
+
xl: 'xl',
|
|
46
|
+
};
|
|
38
47
|
export class NdfTableComponent extends DestroySubject {
|
|
39
48
|
/**
|
|
40
49
|
*
|
|
41
50
|
*/
|
|
42
|
-
constructor(_filtersMapper, _dynamicTableService, _translateService, _ngTableService, _toastrService, _userPreferencesService, _ndfTableConfigurationService, _tableHooksService, _dialog) {
|
|
51
|
+
constructor(_filtersMapper, _dynamicTableService, _translateService, _ngTableService, _toastrService, _userPreferencesService, _ndfTableConfigurationService, _tableHooksService, _dialog, _breakpointObserver) {
|
|
43
52
|
super();
|
|
44
53
|
this._filtersMapper = _filtersMapper;
|
|
45
54
|
this._dynamicTableService = _dynamicTableService;
|
|
@@ -50,6 +59,7 @@ export class NdfTableComponent extends DestroySubject {
|
|
|
50
59
|
this._ndfTableConfigurationService = _ndfTableConfigurationService;
|
|
51
60
|
this._tableHooksService = _tableHooksService;
|
|
52
61
|
this._dialog = _dialog;
|
|
62
|
+
this._breakpointObserver = _breakpointObserver;
|
|
53
63
|
_NdfTableComponent_instances.add(this);
|
|
54
64
|
this._aggregationsSub = new BehaviorSubject(null);
|
|
55
65
|
this._displayedColumnsSub = new BehaviorSubject([]);
|
|
@@ -102,6 +112,16 @@ export class NdfTableComponent extends DestroySubject {
|
|
|
102
112
|
pageSize: 10,
|
|
103
113
|
length: 0,
|
|
104
114
|
};
|
|
115
|
+
this.screenSizes = SCREEN_SIZE;
|
|
116
|
+
this.currentScreenSize = 'Unknown';
|
|
117
|
+
this.breakpointDisplayNames = new Map([
|
|
118
|
+
['(max-width: 767.98px)', SCREEN_SIZE.xs],
|
|
119
|
+
[Breakpoints.XSmall, SCREEN_SIZE.xs],
|
|
120
|
+
[Breakpoints.Small, SCREEN_SIZE.sm],
|
|
121
|
+
[Breakpoints.Medium, SCREEN_SIZE.md],
|
|
122
|
+
[Breakpoints.Large, SCREEN_SIZE.lg],
|
|
123
|
+
[Breakpoints.XLarge, SCREEN_SIZE.xl],
|
|
124
|
+
]);
|
|
105
125
|
this.editorType = NDF_EDITOR_TYPE.TABLES;
|
|
106
126
|
this.togglePanel = () => {
|
|
107
127
|
this.isPanelOpened = !this.isPanelOpened;
|
|
@@ -195,7 +215,26 @@ export class NdfTableComponent extends DestroySubject {
|
|
|
195
215
|
var _a;
|
|
196
216
|
return (_a = this.options) === null || _a === void 0 ? void 0 : _a.export;
|
|
197
217
|
}
|
|
218
|
+
getContext() {
|
|
219
|
+
return {
|
|
220
|
+
$implicit: this.tableConfig,
|
|
221
|
+
panelOpened: this.isPanelOpened,
|
|
222
|
+
togglePanel: this.togglePanel,
|
|
223
|
+
openModal: this.openSearchModal,
|
|
224
|
+
search: this.onTextSearch,
|
|
225
|
+
clear: this.onClearSearch,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
198
228
|
ngOnInit() {
|
|
229
|
+
this._breakpointObserver
|
|
230
|
+
.observe([...this.breakpointDisplayNames.keys()])
|
|
231
|
+
.pipe(takeUntil(this.destroy$))
|
|
232
|
+
.subscribe((result) => {
|
|
233
|
+
var _a;
|
|
234
|
+
const activeQuery = Object.keys(result.breakpoints).find((query) => result.breakpoints[query]);
|
|
235
|
+
this.currentScreenSize =
|
|
236
|
+
(_a = this.breakpointDisplayNames.get(activeQuery !== null && activeQuery !== void 0 ? activeQuery : '')) !== null && _a !== void 0 ? _a : 'Unknown';
|
|
237
|
+
});
|
|
199
238
|
}
|
|
200
239
|
ngOnChanges(changes) {
|
|
201
240
|
var _a, _b;
|
|
@@ -245,7 +284,7 @@ export class NdfTableComponent extends DestroySubject {
|
|
|
245
284
|
}
|
|
246
285
|
columnsChanged(columns) {
|
|
247
286
|
this._displayedColumnsSub.next(columns);
|
|
248
|
-
this._userPreferencesService.set(this.tableConfig.key, this._displayedColumnsSub.value.map(q => q.prop).join());
|
|
287
|
+
this._userPreferencesService.set(this.tableConfig.key, this._displayedColumnsSub.value.map((q) => q.prop).join());
|
|
249
288
|
}
|
|
250
289
|
sortChanged(sort) {
|
|
251
290
|
this._sortValue = { sortBy: sort.value, sortOrder: sort.direction };
|
|
@@ -420,17 +459,21 @@ export class NdfTableComponent extends DestroySubject {
|
|
|
420
459
|
}
|
|
421
460
|
_NdfTableComponent_instances = new WeakSet(), _NdfTableComponent_initDisplayedKeys = function _NdfTableComponent_initDisplayedKeys() {
|
|
422
461
|
var _a;
|
|
423
|
-
const displayedKeys = (_a = this._userPreferencesService
|
|
462
|
+
const displayedKeys = (_a = this._userPreferencesService
|
|
463
|
+
.get(this.tableConfig.key)) === null || _a === void 0 ? void 0 : _a.split(',');
|
|
424
464
|
if (displayedKeys === null || displayedKeys === void 0 ? void 0 : displayedKeys.length) {
|
|
425
|
-
this.tableConfig.columns
|
|
426
|
-
.
|
|
465
|
+
this.tableConfig.columns
|
|
466
|
+
.filter((col) => col.type != 'actions')
|
|
467
|
+
.forEach((col) => {
|
|
468
|
+
col.defaultVisible = displayedKeys.includes(col.prop);
|
|
469
|
+
});
|
|
427
470
|
this._displayedColumnsSub.next([
|
|
428
471
|
...this.tableConfig.columns.filter((col) => col.defaultVisible),
|
|
429
472
|
]);
|
|
430
473
|
}
|
|
431
474
|
};
|
|
432
|
-
NdfTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableComponent, deps: [{ token: i1.FiltersMapperService }, { token: i2.DynamicTableService }, { token: i3.TranslateService }, { token: i4.NdfTableService }, { token: i5.CustomToastrService }, { token: i6.UserPreferencesService }, { token: i4.NdfTableConfigurationService }, { token: i7.TableHooksService }, { token: i8.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
433
|
-
NdfTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", styleClass: "styleClass", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n *ngIf=\"tableConfig\"\r\n class=\"ndf-table__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n cssVar=\"--ndf-table-height\"\r\n [calculate]=\"autoCalculateHeight\"\r\n>\r\n <div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n <app-filters-panel\r\n [fields]=\"filtersConfig.fields\"\r\n [aggregations]=\"aggregations$ | async\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeQuery\"\r\n class=\"ndf-table__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n <div class=\"ndf-table__content\">\r\n <div class=\"ndf-table__header flex\">\r\n <div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch\r\n }\"\r\n ></ng-container>\r\n\r\n <ng-template #defaultActionTemplate>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"isPanelToggleAvailable && !!filtersConfig.fields?.length\"\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-text-search\r\n *ngIf=\"textSearchConfig\"\r\n [searchConfig]=\"textSearchConfig\"\r\n (openModal)=\"openSearchModal()\"\r\n [search]=\"textSearch$ | async\"\r\n (searchChange)=\"onTextSearch($event)\"\r\n (clear)=\"onClearSearch()\"\r\n ></app-text-search>\r\n </ng-template>\r\n </div>\r\n <div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n [key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <ndf-table-export\r\n *ngIf=\"exportTableConfig?.enabled\"\r\n [config]=\"exportTableConfig\"\r\n (onExport)=\"exportTable($event)\"\r\n ></ndf-table-export>\r\n\r\n <table-sorting-list\r\n *ngIf=\"!!sortList?.length\"\r\n [sortList]=\"sortList\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></table-sorting-list>\r\n <table-columns-toggler\r\n *ngIf=\"columnToggle\"\r\n [columns]=\"tableConfig.columns\"\r\n [prefix]=\"tableConfig.prefix\"\r\n [sortable]=\"columnsOptions?.sortable\"\r\n (columnsChanged)=\"columnsChanged($event)\"\r\n ></table-columns-toggler>\r\n <mode-toggler\r\n *ngIf=\"tableMode?.toggleMode\"\r\n [mode]=\"tableMode.mode || 'list'\"\r\n [modesList]=\"tableMode?.availableMode\"\r\n (modeChanged)=\"modeChanged($event)\"\r\n ></mode-toggler>\r\n <ng-container\r\n [ngTemplateOutlet]=\"actionsTableTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch\r\n }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n\r\n <cts-dynamic-table\r\n *ngIf=\"!tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [ngClass]=\"styleClass\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [pageSize]=\"tableConfig.pageSize || 10\"\r\n [pageNumber]=\"tableConfig.pageNumber || 1\"\r\n [pageProvider]=\"tableConfig.pageProvider\"\r\n [customUrl]=\"tableConfig.customUrl\"\r\n [quickFilter]=\"\r\n tableConfig.quickFilters\r\n ? { quickFilters: tableConfig.quickFilters }\r\n : undefined\r\n \"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [sortingBy]=\"sortOption$ | async\"\r\n [entityType]=\"'all'\"\r\n [fields]=\"tableConfig.fields\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [range]=\"tableConfig?.range\"\r\n [isSearchPage]=\"tableConfig?.isSearchPage\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [filterParams]=\"tableConfig?.filterParams\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [rowCursor]=\"true\"\r\n [queryParam]=\"tableConfig.queryParam\"\r\n [customFilters]=\"searchAndFilters$ | async\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [requestActions]=\"tableConfig?.requestActions\"\r\n [headers]=\"tableConfig.headers\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onGettingData)=\"onGettingData.emit($event)\"\r\n (onLoad)=\"onLoad($event)\"\r\n (onInitialize)=\"onInitialize($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (onLoading)=\"onLoading.emit($event)\"\r\n (onPage)=\"onPageChanged($event)\"\r\n [isLegacyMode]=\"false\"\r\n [showTotalRecord]=\"true\"\r\n (sortChanged)=\"onSortChanged($event)\"\r\n >\r\n <ng-template\r\n emptyTemplate\r\n let-isLoading\r\n let-rows=\"rows\"\r\n let-initialized=\"initialized\"\r\n >\r\n <div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <div\r\n class=\"flex items-center justify-center h-5/6\"\r\n *ngIf=\"!isLoading && !rows.length\"\r\n >\r\n <app-no-data-found\r\n class=\"mt-4\"\r\n [message]=\"emptyMessage\"\r\n ></app-no-data-found>\r\n </div>\r\n </ng-template>\r\n </cts-dynamic-table>\r\n\r\n <cts-table\r\n *ngIf=\"tableConfig.isDataProvided\"\r\n [ngClass]=\"styleClass\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [rowCursor]=\"true\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [entityType]=\"'all'\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onSorting)=\"onSortChanged($event)\"\r\n ></cts-table>\r\n </div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - calc(var(--ndf-tbl-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:var(--ndf-tbl-content-height, auto)}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-data-backdrop-filter, blur(3px));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: i9.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: i13.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i14.TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: i15.SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: i16.TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: i17.ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: i18.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "higlightUnread", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i19.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i20.NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: i21.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "higlightUnread", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i22.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i23.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i24.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i22.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i22.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i22.AsyncPipe } });
|
|
475
|
+
NdfTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableComponent, deps: [{ token: i1.FiltersMapperService }, { token: i2.DynamicTableService }, { token: i3.TranslateService }, { token: i4.NdfTableService }, { token: i5.CustomToastrService }, { token: i6.UserPreferencesService }, { token: i4.NdfTableConfigurationService }, { token: i7.TableHooksService }, { token: i8.MatDialog }, { token: i9.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
476
|
+
NdfTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", styleClass: "styleClass", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n *ngIf=\"tableConfig\"\r\n class=\"ndf-table__container ndf-table--size-{{ currentScreenSize }}\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n cssVar=\"--ndf-table-height\"\r\n [calculate]=\"autoCalculateHeight\"\r\n>\r\n <div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n <app-filters-panel\r\n [fields]=\"filtersConfig.fields\"\r\n [aggregations]=\"aggregations$ | async\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeQuery\"\r\n class=\"ndf-table__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n >\r\n <div filters-actions class=\"panel-toolbar-area\">\r\n <button (click)=\"togglePanel()\">\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n </app-filters-panel>\r\n </div>\r\n <div class=\"ndf-table__content\">\r\n <div class=\"ndf-table__header flex\">\r\n <div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n [ngTemplateOutletContext]=\"getContext()\"\r\n ></ng-container>\r\n\r\n <ng-template #defaultActionTemplate>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"isPanelToggleAvailable && !!filtersConfig.fields?.length\"\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-text-search\r\n *ngIf=\"textSearchConfig\"\r\n [searchConfig]=\"textSearchConfig\"\r\n (openModal)=\"openSearchModal()\"\r\n [search]=\"textSearch$ | async\"\r\n (searchChange)=\"onTextSearch($event)\"\r\n (clear)=\"onClearSearch()\"\r\n ></app-text-search>\r\n </ng-template>\r\n </div>\r\n <div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n [key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <ndf-table-export\r\n *ngIf=\"exportTableConfig?.enabled\"\r\n [config]=\"exportTableConfig\"\r\n (onExport)=\"exportTable($event)\"\r\n ></ndf-table-export>\r\n\r\n <table-sorting-list\r\n *ngIf=\"!!sortList?.length\"\r\n [sortList]=\"sortList\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></table-sorting-list>\r\n <table-columns-toggler\r\n *ngIf=\"columnToggle && currentScreenSize !== screenSizes.xs\"\r\n [columns]=\"tableConfig.columns\"\r\n [prefix]=\"tableConfig.prefix\"\r\n [sortable]=\"columnsOptions?.sortable\"\r\n (columnsChanged)=\"columnsChanged($event)\"\r\n ></table-columns-toggler>\r\n <mode-toggler\r\n *ngIf=\"tableMode?.toggleMode && currentScreenSize !== screenSizes.xs\"\r\n [mode]=\"tableMode.mode || 'list'\"\r\n [modesList]=\"tableMode?.availableMode\"\r\n (modeChanged)=\"modeChanged($event)\"\r\n ></mode-toggler>\r\n <ng-container\r\n [ngTemplateOutlet]=\"actionsTableTemplate\"\r\n [ngTemplateOutletContext]=\"getContext()\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n\r\n <cts-dynamic-table\r\n *ngIf=\"!tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [ngClass]=\"styleClass\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"tableConfig?.cardColumns || []\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [pageSize]=\"tableConfig.pageSize || 10\"\r\n [pageNumber]=\"tableConfig.pageNumber || 1\"\r\n [pageProvider]=\"tableConfig.pageProvider\"\r\n [customUrl]=\"tableConfig.customUrl\"\r\n [quickFilter]=\"\r\n tableConfig.quickFilters\r\n ? { quickFilters: tableConfig.quickFilters }\r\n : undefined\r\n \"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [sortingBy]=\"sortOption$ | async\"\r\n [entityType]=\"'all'\"\r\n [fields]=\"tableConfig.fields\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [range]=\"tableConfig?.range\"\r\n [isSearchPage]=\"tableConfig?.isSearchPage\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [filterParams]=\"tableConfig?.filterParams\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [rowCursor]=\"true\"\r\n [queryParam]=\"tableConfig.queryParam\"\r\n [customFilters]=\"searchAndFilters$ | async\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [requestActions]=\"tableConfig?.requestActions\"\r\n [headers]=\"tableConfig.headers\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onGettingData)=\"onGettingData.emit($event)\"\r\n (onLoad)=\"onLoad($event)\"\r\n (onInitialize)=\"onInitialize($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (onLoading)=\"onLoading.emit($event)\"\r\n (onPage)=\"onPageChanged($event)\"\r\n [isLegacyMode]=\"false\"\r\n [showTotalRecord]=\"true\"\r\n (sortChanged)=\"onSortChanged($event)\"\r\n >\r\n <ng-template\r\n emptyTemplate\r\n let-isLoading\r\n let-rows=\"rows\"\r\n let-initialized=\"initialized\"\r\n >\r\n <div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <div\r\n class=\"flex items-center justify-center h-5/6\"\r\n *ngIf=\"!isLoading && !rows.length\"\r\n >\r\n <app-no-data-found\r\n class=\"mt-4\"\r\n [message]=\"emptyMessage\"\r\n ></app-no-data-found>\r\n </div>\r\n </ng-template>\r\n </cts-dynamic-table>\r\n\r\n <cts-table\r\n *ngIf=\"tableConfig.isDataProvided\"\r\n [ngClass]=\"styleClass\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"tableConfig?.cardColumns || []\"\r\n [rowCursor]=\"true\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [entityType]=\"'all'\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onSorting)=\"onSortChanged($event)\"\r\n ></cts-table>\r\n </div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc( var(--ndf-table-height, auto) - calc( var(--ndf-tbl-block-padding, 1rem) * 2.5 ) ));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container .panel-toolbar-area{display:var(--panel-toolbar-area-display, none)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:var(--ndf-table-panel-index, 10)}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:var(--ndf-tbl-content-height, auto)}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px;flex-shrink:0}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.ndf-table--size-xs{--panel-toolbar-area-display: block}.ndf-table--size-xs.panel-opened{--ndf-tbl-content-pis: 0}.ndf-table--size-xs .columns-toggler,.ndf-table--size-xs .mode-toggler{display:none}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: i10.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i13.TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: i14.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i15.TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: i16.SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: i17.TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: i18.ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: i19.DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "higlightUnread", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i20.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i21.NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: i22.TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "higlightUnread", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i23.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i24.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i25.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i23.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i23.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i26.EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i23.AsyncPipe } });
|
|
434
477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableComponent, decorators: [{
|
|
435
478
|
type: Component,
|
|
436
479
|
args: [{
|
|
@@ -442,7 +485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
442
485
|
'[dir]': 'direction',
|
|
443
486
|
},
|
|
444
487
|
}]
|
|
445
|
-
}], ctorParameters: function () { return [{ type: i1.FiltersMapperService }, { type: i2.DynamicTableService }, { type: i3.TranslateService }, { type: i4.NdfTableService }, { type: i5.CustomToastrService }, { type: i6.UserPreferencesService }, { type: i4.NdfTableConfigurationService }, { type: i7.TableHooksService }, { type: i8.MatDialog }]; }, propDecorators: { rows: [{
|
|
488
|
+
}], ctorParameters: function () { return [{ type: i1.FiltersMapperService }, { type: i2.DynamicTableService }, { type: i3.TranslateService }, { type: i4.NdfTableService }, { type: i5.CustomToastrService }, { type: i6.UserPreferencesService }, { type: i4.NdfTableConfigurationService }, { type: i7.TableHooksService }, { type: i8.MatDialog }, { type: i9.BreakpointObserver }]; }, propDecorators: { rows: [{
|
|
446
489
|
type: Input
|
|
447
490
|
}], totalRecords: [{
|
|
448
491
|
type: Input
|
|
@@ -500,4 +543,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
500
543
|
type: ContentChild,
|
|
501
544
|
args: [FILTER_CUSTOM_TEMPLATE, { read: TemplateRef }]
|
|
502
545
|
}] } });
|
|
503
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixRQUFRLEVBQ1IsSUFBSSxFQUVKLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdsRSxPQUFPLEVBRUwsbUJBQW1CLEVBRW5CLG1CQUFtQixHQUVwQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixxQkFBcUIs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bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvci9wYWdpbmF0b3InO1xyXG5pbXBvcnQgXywgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7XHJcbiAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gIGNvbWJpbmVMYXRlc3QsXHJcbiAgZm9ya0pvaW4sXHJcbiAgZnJvbSxcclxuICBPYnNlcnZhYmxlLFxyXG4gIG9mLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgZmlsdGVyLFxyXG4gIG1hcCxcclxuICBzdGFydFdpdGgsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBOdXhlb1BhZ2luYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG4gIENPTVBBUklTT05fT1BFUkFUT1IsXHJcbiAgRm9ybVF1ZXJ5TW9kZWwsXHJcbiAgSHRtbERpYWxvZ0NvbXBvbmVudCxcclxuICBIdG1sRGlhbG9nQ29uZmlnLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2R5bmFtaWMtdGFibGUnO1xyXG5pbXBvcnQgeyBQQUdFX1NJWkUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIEFDVElPTlNfVEFCTEVfVEVNUExBVEUsXHJcbiAgRklMVEVSX0NVU1RPTV9URU1QTEFURSxcclxuICBTRUFSQ0hfVEFCTEVfVEVNUExBVEUsXHJcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VzdG9tQ3JpdGVyaWFNb2RlbCxcclxuICBFeHBvcnRUeXBlLFxyXG4gIE5kZkV4cG9ydFBheWxvYWQsXHJcbiAgTmRmVGFibGVDb25maWcsXHJcbiAgU29ydFRhYmxlSXRlbSxcclxuICBUYWJsZUNvbHVtbkNvbmZpZyxcclxuICBUYWJsZVNvcnRPcHRpb25zLFxyXG4gIFRhYmxlVmlld01vZGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZSwgTmRmVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5cclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgRmlsdGVyc01hcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycy9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRhYmxlSG9va3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmRmLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZGYtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ25kZi10YWJsZScsXHJcbiAgICAnW2Rpcl0nOiAnZGlyZWN0aW9uJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmVGFibGVDb21wb25lbnQgZXh0ZW5kcyBEZXN0cm95U3ViamVjdCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWdncmVnYXRpb25zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+XHJcbiAgPihudWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFRhYmxlQ29sdW1uQ29uZmlnW11cclxuICA+KFtdKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0T3B0aW9uU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVNvcnRPcHRpb25zPihudWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3TW9kZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVWaWV3TW9kZT4oJ2xpc3QnKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90ZXh0U2VhcmNoU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmF0ZWRDcml0ZXJpYVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG4gICAgcHJldmlvdXNWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAgIGN1cnJlbnRWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9PihudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ3JpdGVyaWFTdWIgPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21Dcml0ZXJpYU1vZGVsPih7XHJcbiAgICAgIHBhcmFtczoge30sXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBwcmVkaWNhdGVMaXN0OiBbXSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICByZWFkb25seSBhZ2dyZWdhdGlvbnMkID0gdGhpcy5fYWdncmVnYXRpb25zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBzb3J0T3B0aW9uJCA9IHRoaXMuX3NvcnRPcHRpb25TdWIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdmlld01vZGUkID0gdGhpcy5fdmlld01vZGVTdWIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY3VzdG9tRmlsdGVycyQgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB0ZXh0U2VhcmNoJCA9IHRoaXMuX3RleHRTZWFyY2hTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHJlYWRvbmx5IHNlYXJjaEFuZEZpbHRlcnMkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICB0aGlzLnRleHRTZWFyY2gkLFxyXG4gICAgdGhpcy5jdXN0b21GaWx0ZXJzJCxcclxuICBdKS5waXBlKG1hcCgocmVzKSA9PiB0aGlzLl9wcmVwYXJlU2VhcmNoKHJlcykpKTtcclxuICBASW5wdXQoKSByb3dzOiBBcnJheTx1bmtub3duPjtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcjtcclxuICBASW5wdXQoKSBhdXRvQ2FsY3VsYXRlSGVpZ2h0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAndGFibGVfbm9EYXRhJztcclxuICBASW5wdXQoKSBhY3RpdmVRdWVyeTogRm9ybVF1ZXJ5TW9kZWw7XHJcbiAgQElucHV0KCkgY29uZmlnUGF0aDogc3RyaW5nID0gJ3RhYmxlcyc7XHJcbiAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZ1RyYW5zZm9ybWVyOiAoXHJcbiAgICBjb25maWc6IE5kZlRhYmxlQ29uZmlnXHJcbiAgKSA9PiBPYnNlcnZhYmxlPE5kZlRhYmxlQ29uZmlnPjtcclxuICBASW5wdXQoKSB0YWJsZUtleTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9jb25maWc6IE5kZlRhYmxlQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykge1xyXG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhYmxlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlQ29uZmlnU3ViLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgY3VzdG9tQ3JpdGVyaWEoY3JpdGVyaWE6IEN1c3RvbUNyaXRlcmlhTW9kZWwpIHtcclxuICAgIGlmIChjcml0ZXJpYSkge1xyXG4gICAgICB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KGNyaXRlcmlhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzZWFyY2hUZXJtKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTXVsdGlSb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Mb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25QYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG4gIEBPdXRwdXQoKSBvbkxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TnV4ZW9QYWdpbmF0aW9uPGFueT4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBvblF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlU29ydE9wdGlvbnM+KCk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQUNUSU9OU19UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGFjdGlvbnNUYWJsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoU0VBUkNIX1RBQkxFX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgc2VhcmNoVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBmaWx0ZXJDdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBfdGFibGVDb25maWdTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5kZlRhYmxlQ29uZmlnPihudWxsKTtcclxuXHJcbiAgZ2V0IG9wdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZUNvbmZpZz8ub3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJzQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldCBzb3J0TGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnNvcnRMaXN0IHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbHVtbnNPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM/LmNvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBnZXQgY29sdW1uVG9nZ2xlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1uc09wdGlvbnM/LnRvZ2dsZSA/PyB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhYmxlTW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnRhYmxlTW9kZTtcclxuICB9XHJcblxyXG4gIGdldCBwYW5lbENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUGFuZWxUb2dnbGVBdmFpbGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYW5lbENvbmZpZz8udG9nZ2xlQnV0dG9uID8/IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdGV4dFNlYXJjaENvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LnNlYXJjaDtcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJSZWxvYWRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5yZWxvYWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZXhwb3J0VGFibGVDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5leHBvcnQ7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBkZWZhdWx0U29ydCA9IFt7IHByb3A6ICdwcm9wZXJ0aWVzLmNyZWF0ZWRBdCcsIGRpcjogJ2Rlc2MnIH1dO1xyXG5cclxuICBkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG4gIGlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuICByZWFkb25seSBkZWZhdWx0UGFnZVNpemVzID0gUEFHRV9TSVpFO1xyXG5cclxuICBwcml2YXRlIF9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF90YWJsZUluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9hY3RpdmVQYWdlOiBQYWdlRXZlbnQgPSB7XHJcbiAgICBwYWdlSW5kZXg6IDEsXHJcbiAgICBwYWdlU2l6ZTogMTAsXHJcbiAgICBsZW5ndGg6IDAsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfc29ydFZhbHVlOiBUYWJsZVNvcnRPcHRpb25zO1xyXG5cclxuICBlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlRBQkxFUztcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9keW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX25nVGFibGVTZXJ2aWNlOiBOZGZUYWJsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90b2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdXNlclByZWZlcmVuY2VzU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgX25kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2U6IE5kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90YWJsZUhvb2tzU2VydmljZTogVGFibGVIb29rc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN0YXJ0V2l0aCh7IGxhbmc6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSByZXMubGFuZyA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGVQYW5lbCA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB0YWJsZUtleSA9IGNoYW5nZXMudGFibGVLZXk/LmN1cnJlbnRWYWx1ZTtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgaWYgKHRhYmxlS2V5ICYmIGNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1lvdSBjYW5ub3Qgc2V0IGJvdGggdGFibGVLZXkgYW5kIHRhYmxlQ29uZmlnIGF0IHRoZSBzYW1lIHRpbWUuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5fYXBwbHlUYWJsZUNvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0YWJsZUtleSkge1xyXG4gICAgICB0aGlzLl9sb2FkVGFibGVDb25maWcodGFibGVLZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Mb2FkKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTG9hZGVkLmVtaXQoZGF0YSk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLl90YWJsZUluaXRpYWxpemVkIHx8XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ25ldmVyJyB8fFxyXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCB8fFxyXG4gICAgICB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdhbHdheXMnXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuICAgICAgY29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlIHx8IHt9O1xyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzVmFsdWUgfHwge307XHJcblxyXG4gICAgICBjb25zdCB1cGRhdGVkS2V5cyA9IF8udW5pb24oXHJcbiAgICAgICAgXy5rZXlzKHByZXZpb3VzVmFsdWUpLFxyXG4gICAgICAgIF8ua2V5cyhjdXJyZW50VmFsdWUpXHJcbiAgICAgICkuZmlsdGVyKChrZXkpID0+ICFfLmlzRXF1YWwocHJldmlvdXNWYWx1ZVtrZXldLCBjdXJyZW50VmFsdWVba2V5XSkpO1xyXG5cclxuICAgICAgY29uc3QgdHJpZ2dlcktleXMgPSB0aGlzLmZpbHRlclJlbG9hZENvbmZpZy50cmlnZ2VyRmllbGRzIHx8IFtdO1xyXG4gICAgICBjb25zdCBzaG91bGRSZWxvYWQgPSB0cmlnZ2VyS2V5cy5zb21lKChrZXkpID0+IHVwZGF0ZWRLZXlzLmluY2x1ZGVzKGtleSkpO1xyXG4gICAgICBpZiAoc2hvdWxkUmVsb2FkKSB7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Jbml0aWFsaXplKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG4gICAgdGhpcy5fdGFibGVJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuICAgIHRoaXMub25Jbml0aWFsaXplZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY29sdW1uc0NoYW5nZWQoY29sdW1uczogVGFibGVDb2x1bW5Db25maWdbXSkge1xyXG4gICAgdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5uZXh0KGNvbHVtbnMpO1xyXG4gICAgdGhpcy5fdXNlclByZWZlcmVuY2VzU2VydmljZS5zZXQodGhpcy50YWJsZUNvbmZpZy5rZXksIHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIudmFsdWUubWFwKHEgPT4gcS5wcm9wKS5qb2luKCkpO1xyXG4gIH1cclxuXHJcbiAgc29ydENoYW5nZWQoc29ydDogU29ydFRhYmxlSXRlbSkge1xyXG4gICAgdGhpcy5fc29ydFZhbHVlID0geyBzb3J0Qnk6IHNvcnQudmFsdWUsIHNvcnRPcmRlcjogc29ydC5kaXJlY3Rpb24gfTtcclxuICAgIHRoaXMuX3NvcnRPcHRpb25TdWIubmV4dCh0aGlzLl9zb3J0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbW9kZUNoYW5nZWQobW9kZTogVGFibGVWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5fdmlld01vZGVTdWIubmV4dChtb2RlKTtcclxuICB9XHJcblxyXG4gIG9uU29ydENoYW5nZWQoc29ydDogVGFibGVTb3J0T3B0aW9ucykge1xyXG4gICAgdGhpcy5fc29ydFZhbHVlID0gc29ydDtcclxuICAgIHRoaXMub25Tb3J0LmVtaXQoc29ydCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUYWJsZSh0eXBlOiBFeHBvcnRUeXBlKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gXy5jbG9uZURlZXAodGhpcy5leHBvcnRUYWJsZUNvbmZpZz8ucmVxdWVzdCk7XHJcbiAgICBpZiAoIXJlcXVlc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIuZ2V0VmFsdWUoKTtcclxuICAgIGNvbnN0IGZpZWxkcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5oZWFkZXJDbGFzcyB8fCBjb2w/LmZpbGVkS2V5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBjb2x1bW5zLm1hcChcclxuICAgICAgKGNvbCkgPT4gKHRoaXMudGFibGVDb25maWcucHJlZml4IHx8ICcnKSArIGNvbC5uYW1lXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKTtcclxuXHJcbiAgICByZXF1ZXN0LnBhcmFtcyA9IG1lcmdlKFxyXG4gICAgICB7fSxcclxuICAgICAgY3JpdGVyaWEucGFyYW1zLFxyXG4gICAgICB0aGlzLl9zb3J0VmFsdWUgfHwge30sXHJcbiAgICAgIHRoaXMudGFibGVDb25maWc/LnF1aWNrRmlsdGVyc1xyXG4gICAgICAgID8geyBxdWlja0ZpbHRlcnM6IHRoaXMudGFibGVDb25maWcucXVpY2tGaWx0ZXJzIH1cclxuICAgICAgICA6IHt9LFxyXG4gICAgICByZXF1ZXN0Py5wYXJhbXNcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgYmxvYk5hbWVLZXkgPSB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5ibG9iTmFtZTtcclxuICAgIGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSBtZXJnZShcclxuICAgICAge30sXHJcbiAgICAgIHJlcXVlc3Q/LnBheWxvYWQgfHwge30sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgcHJlZGljYXRlTGlzdDogY3JpdGVyaWEucGF5bG9hZC5wcmVkaWNhdGVMaXN0IHx8IFtdLFxyXG4gICAgICAgIHJlcG9ydE1ldGFEYXRhOiB7XHJcbiAgICAgICAgICBibG9iTmFtZTogJycsXHJcbiAgICAgICAgICBkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuICAgICAgICAgIGZpbGVUeXBlOiB0eXBlLFxyXG4gICAgICAgICAgbG9jYWxlOlxyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5sb2NhbGUgfHxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcclxuICAgICAgICAgIGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuICAgICAgICAgIGhlYWRlcnM6IFtdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBhcjogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXRUcmFuc2xhdGlvbignYXInKSxcclxuICAgICAgZW46IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oJ2VuJyksXHJcbiAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudFRyYW5zbGF0aW9ucyA9XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uc1t0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nXTtcclxuICAgICAgICAgIHBheWxvYWQucmVwb3J0TWV0YURhdGEuaGVhZGVycyA9IGhlYWRlcnMubWFwKChjb2wpID0+XHJcbiAgICAgICAgICAgIF8uZ2V0KGN1cnJlbnRUcmFuc2xhdGlvbnMsIGNvbClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBwYXlsb2FkLnJlcG9ydE1ldGFEYXRhLmJsb2JOYW1lID0gXy5nZXQoXHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uc1snYXInXSxcclxuICAgICAgICAgICAgYmxvYk5hbWVLZXlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBwYXlsb2FkLnJlcG9ydE1ldGFEYXRhLmJsb2JOYW1lRW4gPSBfLmdldChcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25zWydlbiddLFxyXG4gICAgICAgICAgICBibG9iTmFtZUtleVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5fdGFibGVIb29rc1NlcnZpY2UuZXhlY3V0ZUJlZm9yZUV4cG9ydChwYXlsb2FkLCByZXF1ZXN0KVxyXG4gICAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHsgcGF5bG9hZCwgcmVxdWVzdCB9KSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuX25nVGFibGVTZXJ2aWNlLmV4cG9ydFRhYmxlKHJlcXVlc3QsIHBheWxvYWQpXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5fdG9hc3RyU2VydmljZS5zdWNjZXNzKCdUQUJMRS5FWFBPUlQucmVxdWVzdFN1Y2Nlc3MnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fdG9hc3RyU2VydmljZS5lcnJvcignVEFCTEUuRVhQT1JULnJlcXVlc3RFcnJvcicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJDaGFuZ2VkKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICB0aGlzLl90cmlnZ2VyQ3JpdGVyaWFDaGFuZ2VzKGNyaXRlcmlhKTtcclxuICAgIGlmICh0aGlzLmZpbHRlcnNDb25maWc/Lm1vZGUgIT09ICdwYXlsb2FkJykge1xyXG4gICAgICBjb25zdCBpc1N0cmluZ2lmeVBhcmFtcyA9IHRoaXMuZmlsdGVyc0NvbmZpZz8uc3RyaW5naWZ5UGFyYW1zO1xyXG4gICAgICBjb25zdCB2YWx1ZSA9ICFpc1N0cmluZ2lmeVBhcmFtc1xyXG4gICAgICAgID8gY3JpdGVyaWFcclxuICAgICAgICA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcbiAgICAgIHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZChcclxuICAgICAgdGhpcy5maWx0ZXJzQ29uZmlnLmZpZWxkcyxcclxuICAgICAgY3JpdGVyaWFcclxuICAgICk7XHJcbiAgICB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0U2VhcmNoID0gKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgaWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgIHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcbiAgfTtcclxuXHJcbiAgb3BlblNlYXJjaE1vZGFsID0gKCkgPT4ge1xyXG4gICAgY29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcbiAgICBpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oXHJcbiAgICAgIEh0bWxEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBwYW5lbENsYXNzOiAncC0wJyxcclxuICAgICAgICBtaW5XaWR0aDogJ21pbig1MDBweCw2MHZ3KScsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbixcclxuICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgb25DbGVhclNlYXJjaCA9ICgpID0+IHtcclxuICAgIHRoaXMuX3RleHRTZWFyY2hTdWIubmV4dChudWxsKTtcclxuICB9O1xyXG5cclxuICBvblBhZ2VDaGFuZ2VkKHBhZ2U6IFBhZ2VFdmVudCkge1xyXG4gICAgdGhpcy5fcGFnZUNoYW5nZWQgPVxyXG4gICAgICB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VJbmRleCAhPT0gcGFnZS5wYWdlSW5kZXggfHxcclxuICAgICAgdGhpcy5fYWN0aXZlUGFnZS5wYWdlU2l6ZSAhPT0gcGFnZS5wYWdlU2l6ZTtcclxuICAgIGlmICh0aGlzLl9wYWdlQ2hhbmdlZCkge1xyXG4gICAgICB0aGlzLm9uUGFnZS5lbWl0KHBhZ2UpO1xyXG4gICAgICB0aGlzLl9hY3RpdmVQYWdlID0gcGFnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlckJ5VmlzaWJpbGl0eShcclxuICAgIGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW11cclxuICApOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuICAgIHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG4gICAgc3RyaW5nLFxyXG4gICAge1xyXG4gICAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgICBwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAgIH1cclxuICBdKTogYW55IHtcclxuICAgIHtcclxuICAgICAgY29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzPy5wYXlsb2FkIHx8IHsgcHJlZGljYXRlTGlzdDogW10gfTtcclxuICAgICAgY29uc3QgX2tleSA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uZmllbGRLZXk7XHJcbiAgICAgIGNvbnN0IHNlYXJjaEluZGV4ID0gcHJlZGljYXRlTGlzdC5maW5kSW5kZXgoKGl0bSkgPT4gaXRtLm5hbWUgPT09IF9rZXkpO1xyXG4gICAgICBpZiAoc2VhcmNoICYmIF9rZXkpIHtcclxuICAgICAgICBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgcHJlZGljYXRlTGlzdFtzZWFyY2hJbmRleF0udmFsdWUgPSBgJyR7c2VhcmNofSdgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcmVkaWNhdGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBfa2V5LFxyXG4gICAgICAgICAgICBvcGVyYXRvcjpcclxuICAgICAgICAgICAgICB0aGlzLnRleHRTZWFyY2hDb25maWc/Lm9wZXJhdG9yIHx8IENPTVBBUklTT05fT1BFUkFUT1IuZXF1YWxzLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCcke3NlYXJjaH0nYCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChzZWFyY2hJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgcHJlZGljYXRlTGlzdC5zcGxpY2Uoc2VhcmNoSW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBfLmNsb25lRGVlcCh7IC4uLmZpbHRlcnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdHJpbmdpZnlWYWx1ZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjcml0ZXJpYSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICBhY2Nba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmlnZ2VyQ3JpdGVyaWFDaGFuZ2VzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBpZiAodGhpcy5fdGFibGVJbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHsgLi4udGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKSB9O1xyXG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWU7XHJcbiAgICB0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5uZXh0KHtcclxuICAgICAgcHJldmlvdXNWYWx1ZTogcHJldmlvdXNWYWx1ZSxcclxuICAgICAgY3VycmVudFZhbHVlOiBjcml0ZXJpYSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuICAgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcbiAgICB0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuICAgIGlmIChjb25maWcuY29sdW1ucykge1xyXG4gICAgICB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG4gICAgICB0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG4gICAgICB0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuICAgICAgdGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcbiAgICB9XHJcbiAgICB0aGlzLiNpbml0RGlzcGxheWVkS2V5cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBAZGVzY3JpcHRpb24gTG9hZHMgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBhbmQgYXBwbGllcyBpdC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB1c2VkIHRvIGZldGNoIHRoZSB0YWJsZSBjb25maWd1cmF0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2xvYWRUYWJsZUNvbmZpZyhrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgICAuZ2V0VGFibGVDb25maWd1cmF0aW9uKGtleSwgdGhpcy5jb25maWdQYXRoKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKGNvbmZpZykgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIgJiYgXy5pc0Z1bmN0aW9uKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ1RyYW5zZm9ybWVyKGNvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoY29uZmlnKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgICB0aGlzLl9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAjaW5pdERpc3BsYXllZEtleXMoKSB7XHJcbiAgICBjb25zdCBkaXNwbGF5ZWRLZXlzID0gdGhpcy5fdXNlclByZWZlcmVuY2VzU2VydmljZS5nZXQodGhpcy50YWJsZUNvbmZpZy5rZXkpPy5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKGRpc3BsYXllZEtleXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRhYmxlQ29uZmlnLmNvbHVtbnMuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlICE9ICdhY3Rpb25zJylcclxuICAgICAgICAuZm9yRWFjaChjb2wgPT4geyBjb2wuZGVmYXVsdFZpc2libGUgPSBkaXNwbGF5ZWRLZXlzLmluY2x1ZGVzKGNvbC5wcm9wKSB9KTtcclxuXHJcbiAgICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIubmV4dChbXHJcbiAgICAgICAgLi4udGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwidGFibGVDb25maWdcIlxyXG4gIGNsYXNzPVwibmRmLXRhYmxlX19jb250YWluZXJcIlxyXG4gIFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuICBbZGlyXT1cImRpcmVjdGlvblwiXHJcbiAgbmRmRmx1aWRIZWlnaHRcclxuICBjc3NWYXI9XCItLW5kZi10YWJsZS1oZWlnaHRcIlxyXG4gIFtjYWxjdWxhdGVdPVwiYXV0b0NhbGN1bGF0ZUhlaWdodFwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19wYW5lbFwiICpuZ0lmPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCI+XHJcbiAgICA8YXBwLWZpbHRlcnMtcGFuZWxcclxuICAgICAgW2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnLmZpZWxkc1wiXHJcbiAgICAgIFthZ2dyZWdhdGlvbnNdPVwiYWdncmVnYXRpb25zJCB8IGFzeW5jXCJcclxuICAgICAgKGZpbHRlckNoYW5nZWQpPVwiZmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgW2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZVF1ZXJ5XCJcclxuICAgICAgY2xhc3M9XCJuZGYtdGFibGVfX2ZpbHRlcnNcIlxyXG4gICAgICBbY3VzdG9tVGVtcGxhdGVSZWZdPVwiZmlsdGVyQ3VzdG9tVGVtcGxhdGVcIlxyXG4gICAgPjwvYXBwLWZpbHRlcnMtcGFuZWw+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyIGZsZXhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19jdXN0b20tYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoVGFibGVUZW1wbGF0ZSB8fCBkZWZhdWx0QWN0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuICAgICAgICAgICAgJGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuICAgICAgICAgICAgcGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcbiAgICAgICAgICAgIHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuICAgICAgICAgICAgb3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcbiAgICAgICAgICAgIHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG4gICAgICAgICAgICBjbGVhcjogb25DbGVhclNlYXJjaFxyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRBY3Rpb25UZW1wbGF0ZT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNQYW5lbFRvZ2dsZUF2YWlsYWJsZSAmJiAhIWZpbHRlcnNDb25maWcuZmllbGRzPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1idXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGFuZWwoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxhcHAtdGV4dC1zZWFyY2hcclxuICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuICAgICAgICAgICAgW3NlYXJjaENvbmZpZ109XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuICAgICAgICAgICAgKG9wZW5Nb2RhbCk9XCJvcGVuU2VhcmNoTW9kYWwoKVwiXHJcbiAgICAgICAgICAgIFtzZWFyY2hdPVwidGV4dFNlYXJjaCQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgIChzZWFyY2hDaGFuZ2UpPVwib25UZXh0U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgICAoY2xlYXIpPVwib25DbGVhclNlYXJjaCgpXCJcclxuICAgICAgICAgID48L2FwcC10ZXh0LXNlYXJjaD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19hY3Rpb25zIGZsZXggZ2FwLXgtNCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8YXBwLWVkaXRvci1idXR0b25cclxuICAgICAgICAgICpuZ0lmPVwianNvbkVkaXRvckVuYWJsZWQgJiYgKHRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXkpXCJcclxuICAgICAgICAgIFtrZXldPVwidGFibGVLZXkgfHwgdGFibGVDb25maWc/LmtleVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJlZGl0b3JUeXBlXCJcclxuICAgICAgICA+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuICAgICAgICA8bmRmLXRhYmxlLWV4cG9ydFxyXG4gICAgICAgICAgKm5nSWY9XCJleHBvcnRUYWJsZUNvbmZpZz8uZW5hYmxlZFwiXHJcbiAgICAgICAgICBbY29uZmlnXT1cImV4cG9ydFRhYmxlQ29uZmlnXCJcclxuICAgICAgICAgIChvbkV4cG9ydCk9XCJleHBvcnRUYWJsZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9uZGYtdGFibGUtZXhwb3J0PlxyXG5cclxuICAgICAgICA8dGFibGUtc29ydGluZy1saXN0XHJcbiAgICAgICAgICAqbmdJZj1cIiEhc29ydExpc3Q/Lmxlbmd0aFwiXHJcbiAgICAgICAgICBbc29ydExpc3RdPVwic29ydExpc3RcIlxyXG4gICAgICAgICAgKHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgID48L3RhYmxlLXNvcnRpbmctbGlzdD5cclxuICAgICAgICA8dGFibGUtY29sdW1ucy10b2dnbGVyXHJcbiAgICAgICAgICAqbmdJZj1cImNvbHVtblRvZ2dsZVwiXHJcbiAgICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbmZpZy5jb2x1bW5zXCJcclxuICAgICAgICAgIFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4XCJcclxuICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW5zT3B0aW9ucz8uc29ydGFibGVcIlxyXG4gICAgICAgICAgKGNvbHVtbnNDaGFuZ2VkKT1cImNvbHVtbnNDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgID48L3RhYmxlLWNvbHVtbnMtdG9nZ2xlcj5cclxuICAgICAgICA8bW9kZS10b2dnbGVyXHJcbiAgICAgICAgICAqbmdJZj1cInRhYmxlTW9kZT8udG9nZ2xlTW9kZVwiXHJcbiAgICAgICAgICBbbW9kZV09XCJ0YWJsZU1vZGUubW9kZSB8fCAnbGlzdCdcIlxyXG4gICAgICAgICAgW21vZGVzTGlzdF09XCJ0YWJsZU1vZGU/LmF2YWlsYWJsZU1vZGVcIlxyXG4gICAgICAgICAgKG1vZGVDaGFuZ2VkKT1cIm1vZGVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgID48L21vZGUtdG9nZ2xlcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVGFibGVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICAgICAgICAgICAkaW1wbGljaXQ6IHRhYmxlQ29uZmlnLFxyXG4gICAgICAgICAgICBwYW5lbE9wZW5lZDogaXNQYW5lbE9wZW5lZCxcclxuICAgICAgICAgICAgdG9nZ2xlUGFuZWw6IHRvZ2dsZVBhbmVsLFxyXG4gICAgICAgICAgICBvcGVuTW9kYWw6IG9wZW5TZWFyY2hNb2RhbCxcclxuICAgICAgICAgICAgc2VhcmNoOiBvblRleHRTZWFyY2gsXHJcbiAgICAgICAgICAgIGNsZWFyOiBvbkNsZWFyU2VhcmNoXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGN0cy1keW5hbWljLXRhYmxlXHJcbiAgICAgICpuZ0lmPVwiIXRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuICAgICAgY2xhc3M9XCJuZGYtdGFibGVfX3RhYmxlIHRhYmxlLXN0eWxlXCJcclxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXHJcbiAgICAgIFtjb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG4gICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcbiAgICAgIFtmdWxsV2lkdGhdPVwidGFibGVDb25maWcuZnVsbFdpZHRoIHx8ICdhdXRvJ1wiXHJcbiAgICAgIFtwYWdlU2l6ZV09XCJ0YWJsZUNvbmZpZy5wYWdlU2l6ZSB8fCAxMFwiXHJcbiAgICAgIFtwYWdlTnVtYmVyXT1cInRhYmxlQ29uZmlnLnBhZ2VOdW1iZXIgfHwgMVwiXHJcbiAgICAgIFtwYWdlUHJvdmlkZXJdPVwidGFibGVDb25maWcucGFnZVByb3ZpZGVyXCJcclxuICAgICAgW2N1c3RvbVVybF09XCJ0YWJsZUNvbmZpZy5jdXN0b21VcmxcIlxyXG4gICAgICBbcXVpY2tGaWx0ZXJdPVwiXHJcbiAgICAgICAgdGFibGVDb25maWcucXVpY2tGaWx0ZXJzXHJcbiAgICAgICAgICA/IHsgcXVpY2tGaWx0ZXJzOiB0YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgfVxyXG4gICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgICAgXCJcclxuICAgICAgW2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG4gICAgICBbc29ydGluZ0J5XT1cInNvcnRPcHRpb24kIHwgYXN5bmNcIlxyXG4gICAgICBbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcbiAgICAgIFtmaWVsZHNdPVwidGFibGVDb25maWcuZmllbGRzXCJcclxuICAgICAgW3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcbiAgICAgIFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG4gICAgICBbcmFuZ2VdPVwidGFibGVDb25maWc/LnJhbmdlXCJcclxuICAgICAgW2lzU2VhcmNoUGFnZV09XCJ0YWJsZUNvbmZpZz8uaXNTZWFyY2hQYWdlXCJcclxuICAgICAgW211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuICAgICAgW2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcbiAgICAgIFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwidGFibGVDb25maWc/LmhpZ2hsaWdodFNlbGVjdGVkQ2FyZFwiXHJcbiAgICAgIFtzaG93QWN0aW9uc0FzTWVudV09XCJ0YWJsZUNvbmZpZz8uc2hvd0FjdGlvbnNBc01lbnVcIlxyXG4gICAgICBbZmlsdGVyUGFyYW1zXT1cInRhYmxlQ29uZmlnPy5maWx0ZXJQYXJhbXNcIlxyXG4gICAgICBbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG4gICAgICBbcGFnZVNpemVzXT1cInRhYmxlQ29uZmlnPy5wYWdlU2l6ZXMgfHwgZGVmYXVsdFBhZ2VTaXplc1wiXHJcbiAgICAgIFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuICAgICAgW3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuICAgICAgW3F1ZXJ5UGFyYW1dPVwidGFibGVDb25maWcucXVlcnlQYXJhbVwiXHJcbiAgICAgIFtjdXN0b21GaWx0ZXJzXT1cInNlYXJjaEFuZEZpbHRlcnMkIHwgYXN5bmNcIlxyXG4gICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQ29uZmlnLnRhYmxlQWN0aW9uc1wiXHJcbiAgICAgIFtyZXF1ZXN0QWN0aW9uc109XCJ0YWJsZUNvbmZpZz8ucmVxdWVzdEFjdGlvbnNcIlxyXG4gICAgICBbaGVhZGVyc109XCJ0YWJsZUNvbmZpZy5oZWFkZXJzXCJcclxuICAgICAgKG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uR2V0dGluZ0RhdGEpPVwib25HZXR0aW5nRGF0YS5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25Mb2FkKT1cIm9uTG9hZCgkZXZlbnQpXCJcclxuICAgICAgKG9uSW5pdGlhbGl6ZSk9XCJvbkluaXRpYWxpemUoJGV2ZW50KVwiXHJcbiAgICAgIChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkxvYWRpbmcpPVwib25Mb2FkaW5nLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvblBhZ2UpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgW2lzTGVnYWN5TW9kZV09XCJmYWxzZVwiXHJcbiAgICAgIFtzaG93VG90YWxSZWNvcmRdPVwidHJ1ZVwiXHJcbiAgICAgIChzb3J0Q2hhbmdlZCk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBlbXB0eVRlbXBsYXRlXHJcbiAgICAgICAgbGV0LWlzTG9hZGluZ1xyXG4gICAgICAgIGxldC1yb3dzPVwicm93c1wiXHJcbiAgICAgICAgbGV0LWluaXRpYWxpemVkPVwiaW5pdGlhbGl6ZWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctZGF0YVwiICpuZ0lmPVwiaXNMb2FkaW5nICYmIGluaXRpYWxpemVkXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTUvNlwiXHJcbiAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIXJvd3MubGVuZ3RoXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YXBwLW5vLWRhdGEtZm91bmRcclxuICAgICAgICAgICAgY2xhc3M9XCJtdC00XCJcclxuICAgICAgICAgICAgW21lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlXCJcclxuICAgICAgICAgID48L2FwcC1uby1kYXRhLWZvdW5kPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9jdHMtZHluYW1pYy10YWJsZT5cclxuXHJcbiAgICA8Y3RzLXRhYmxlXHJcbiAgICAgICpuZ0lmPVwidGFibGVDb25maWcuaXNEYXRhUHJvdmlkZWRcIlxyXG4gICAgICBbbmdDbGFzc109XCJzdHlsZUNsYXNzXCJcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgW2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcbiAgICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuICAgICAgW3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuICAgICAgW2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuICAgICAgW2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG4gICAgICBbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcbiAgICAgIFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG4gICAgICBbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuICAgICAgW211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuICAgICAgW2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuICAgICAgW3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcbiAgICAgIFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuICAgICAgW2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuICAgICAgW2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuICAgICAgKG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uU29ydGluZyk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPjwvY3RzLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
546
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvY29udGFpbmVycy9uZGYtdGFibGUvbmRmLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvY29udGFpbmVycy9uZGYtdGFibGUvbmRmLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFFBQVEsRUFDUixJQUFJLEVBRUosRUFBRSxHQUNILE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2xFLE9BQU8sRUFFTCxtQkFBbUIsRUFFbkIsbUJBQW1CLEdBRXBCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixHQUN0QixNQUFN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Q0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFHUCxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUczRCxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUcxRCxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yL3BhZ2luYXRvcic7XHJcbmltcG9ydCBfLCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBmb3JrSm9pbixcclxuICBmcm9tLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgb2YsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgY2F0Y2hFcnJvcixcclxuICBmaWx0ZXIsXHJcbiAgbWFwLFxyXG4gIHN0YXJ0V2l0aCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFrZVVudGlsLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGVzdHJveVN1YmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE51eGVvUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcbiAgQ09NUEFSSVNPTl9PUEVSQVRPUixcclxuICBGb3JtUXVlcnlNb2RlbCxcclxuICBIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG4gIEh0bWxEaWFsb2dDb25maWcsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy10YWJsZSc7XHJcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcbiAgQUNUSU9OU19UQUJMRV9URU1QTEFURSxcclxuICBGSUxURVJfQ1VTVE9NX1RFTVBMQVRFLFxyXG4gIFNFQVJDSF9UQUJMRV9URU1QTEFURSxcclxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHtcclxuICBDdXN0b21Dcml0ZXJpYU1vZGVsLFxyXG4gIEV4cG9ydFR5cGUsXHJcbiAgTmRmRXhwb3J0UGF5bG9hZCxcclxuICBOZGZUYWJsZUNvbmZpZyxcclxuICBTb3J0VGFibGVJdGVtLFxyXG4gIFRhYmxlQ29sdW1uQ29uZmlnLFxyXG4gIFRhYmxlU29ydE9wdGlvbnMsXHJcbiAgVGFibGVWaWV3TW9kZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBOZGZUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgRmlsdGVyc01hcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycy9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRhYmxlSG9va3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkJztcclxuXHJcbmNvbnN0IFNDUkVFTl9TSVpFID0ge1xyXG4gIHhzOiAneHMnLFxyXG4gIHNtOiAnc20nLFxyXG4gIG1kOiAnbWQnLFxyXG4gIGxnOiAnbGcnLFxyXG4gIHhsOiAneGwnLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmRmLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZGYtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ25kZi10YWJsZScsXHJcbiAgICAnW2Rpcl0nOiAnZGlyZWN0aW9uJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmVGFibGVDb21wb25lbnQgZXh0ZW5kcyBEZXN0cm95U3ViamVjdCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWdncmVnYXRpb25zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+XHJcbiAgPihudWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFRhYmxlQ29sdW1uQ29uZmlnW11cclxuICA+KFtdKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0T3B0aW9uU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVNvcnRPcHRpb25zPihudWxsKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3TW9kZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVWaWV3TW9kZT4oJ2xpc3QnKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90ZXh0U2VhcmNoU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmF0ZWRDcml0ZXJpYVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG4gICAgcHJldmlvdXNWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICAgIGN1cnJlbnRWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9PihudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ3JpdGVyaWFTdWIgPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21Dcml0ZXJpYU1vZGVsPih7XHJcbiAgICAgIHBhcmFtczoge30sXHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBwcmVkaWNhdGVMaXN0OiBbXSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICByZWFkb25seSBhZ2dyZWdhdGlvbnMkID0gdGhpcy5fYWdncmVnYXRpb25zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBzb3J0T3B0aW9uJCA9IHRoaXMuX3NvcnRPcHRpb25TdWIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdmlld01vZGUkID0gdGhpcy5fdmlld01vZGVTdWIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgY3VzdG9tRmlsdGVycyQgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB0ZXh0U2VhcmNoJCA9IHRoaXMuX3RleHRTZWFyY2hTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHJlYWRvbmx5IHNlYXJjaEFuZEZpbHRlcnMkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICB0aGlzLnRleHRTZWFyY2gkLFxyXG4gICAgdGhpcy5jdXN0b21GaWx0ZXJzJCxcclxuICBdKS5waXBlKG1hcCgocmVzKSA9PiB0aGlzLl9wcmVwYXJlU2VhcmNoKHJlcykpKTtcclxuICBASW5wdXQoKSByb3dzOiBBcnJheTx1bmtub3duPjtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcjtcclxuICBASW5wdXQoKSBhdXRvQ2FsY3VsYXRlSGVpZ2h0ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAndGFibGVfbm9EYXRhJztcclxuICBASW5wdXQoKSBhY3RpdmVRdWVyeTogRm9ybVF1ZXJ5TW9kZWw7XHJcbiAgQElucHV0KCkgY29uZmlnUGF0aDogc3RyaW5nID0gJ3RhYmxlcyc7XHJcbiAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZ1RyYW5zZm9ybWVyOiAoXHJcbiAgICBjb25maWc6IE5kZlRhYmxlQ29uZmlnLFxyXG4gICkgPT4gT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz47XHJcbiAgQElucHV0KCkgdGFibGVLZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkganNvbkVkaXRvckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfY29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmVGFibGVDb25maWcpIHtcclxuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuICB9XHJcblxyXG4gIGdldCB0YWJsZUNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGN1c3RvbUNyaXRlcmlhKGNyaXRlcmlhOiBDdXN0b21Dcml0ZXJpYU1vZGVsKSB7XHJcbiAgICBpZiAoY3JpdGVyaWEpIHtcclxuICAgICAgdGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIubmV4dChjcml0ZXJpYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgc2VhcmNoVGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkdldHRpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvbkluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxOdXhlb1BhZ2luYXRpb248YW55Pj4oKTtcclxuICBAT3V0cHV0KCkgb25Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cclxuICBAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Tb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnRPcHRpb25zPigpO1xyXG5cclxuICBAQ29udGVudENoaWxkKEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBhY3Rpb25zVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKFNFQVJDSF9UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIHNlYXJjaFRhYmxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZChGSUxURVJfQ1VTVE9NX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgZmlsdGVyQ3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHByaXZhdGUgX3RhYmxlQ29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZGZUYWJsZUNvbmZpZz4obnVsbCk7XHJcblxyXG4gIGdldCBvcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXQgc29ydExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5zb3J0TGlzdCB8fCBbXTtcclxuICB9XHJcblxyXG4gIGdldCBjb2x1bW5zT3B0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlQ29uZmlnPy5vcHRpb25zPy5jb2x1bW5zO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbHVtblRvZ2dsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbHVtbnNPcHRpb25zPy50b2dnbGUgPz8gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCB0YWJsZU1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy50YWJsZU1vZGU7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFuZWxDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5wYW5lbDtcclxuICB9XHJcblxyXG4gIGdldCBpc1BhbmVsVG9nZ2xlQXZhaWxhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFuZWxDb25maWc/LnRvZ2dsZUJ1dHRvbiA/PyB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRleHRTZWFyY2hDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5zZWFyY2g7XHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyUmVsb2FkQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycz8ucmVsb2FkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGV4cG9ydFRhYmxlQ29uZmlnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZXhwb3J0O1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgZGVmYXVsdFNvcnQgPSBbeyBwcm9wOiAncHJvcGVydGllcy5jcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XTtcclxuXHJcbiAgZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuICBpc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgZGVmYXVsdFBhZ2VTaXplcyA9IFBBR0VfU0laRTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdGFibGVJbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlUGFnZTogUGFnZUV2ZW50ID0ge1xyXG4gICAgcGFnZUluZGV4OiAxLFxyXG4gICAgcGFnZVNpemU6IDEwLFxyXG4gICAgbGVuZ3RoOiAwLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NvcnRWYWx1ZTogVGFibGVTb3J0T3B0aW9ucztcclxuICByZWFkb25seSBzY3JlZW5TaXplcyA9IFNDUkVFTl9TSVpFO1xyXG4gIGN1cnJlbnRTY3JlZW5TaXplOlxyXG4gICAgfCAodHlwZW9mIFNDUkVFTl9TSVpFKVtrZXlvZiB0eXBlb2YgU0NSRUVOX1NJWkVdXHJcbiAgICB8ICdVbmtub3duJyA9ICdVbmtub3duJztcclxuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnREaXNwbGF5TmFtZXMgPSBuZXcgTWFwKFtcclxuICAgIFsnKG1heC13aWR0aDogNzY3Ljk4cHgpJywgU0NSRUVOX1NJWkUueHNdLFxyXG4gICAgW0JyZWFrcG9pbnRzLlhTbWFsbCwgU0NSRUVOX1NJWkUueHNdLFxyXG4gICAgW0JyZWFrcG9pbnRzLlNtYWxsLCBTQ1JFRU5fU0laRS5zbV0sXHJcbiAgICBbQnJlYWtwb2ludHMuTWVkaXVtLCBTQ1JFRU5fU0laRS5tZF0sXHJcbiAgICBbQnJlYWtwb2ludHMuTGFyZ2UsIFNDUkVFTl9TSVpFLmxnXSxcclxuICAgIFtCcmVha3BvaW50cy5YTGFyZ2UsIFNDUkVFTl9TSVpFLnhsXSxcclxuICBdKTtcclxuXHJcbiAgZWRpdG9yVHlwZSA9IE5ERl9FRElUT1JfVFlQRS5UQUJMRVM7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNNYXBwZXI6IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHluYW1pY1RhYmxlU2VydmljZTogRHluYW1pY1RhYmxlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9uZ1RhYmxlU2VydmljZTogTmRmVGFibGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3VzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdGFibGVIb29rc1NlcnZpY2U6IFRhYmxlSG9va3NTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9icmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzdGFydFdpdGgoeyBsYW5nOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH0pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVQYW5lbCA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcbiAgfTtcclxuXHJcbiAgZ2V0Q29udGV4dCgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICRpbXBsaWNpdDogdGhpcy50YWJsZUNvbmZpZyxcclxuICAgICAgcGFuZWxPcGVuZWQ6IHRoaXMuaXNQYW5lbE9wZW5lZCxcclxuICAgICAgdG9nZ2xlUGFuZWw6IHRoaXMudG9nZ2xlUGFuZWwsXHJcbiAgICAgIG9wZW5Nb2RhbDogdGhpcy5vcGVuU2VhcmNoTW9kYWwsXHJcbiAgICAgIHNlYXJjaDogdGhpcy5vblRleHRTZWFyY2gsXHJcbiAgICAgIGNsZWFyOiB0aGlzLm9uQ2xlYXJTZWFyY2gsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXJcclxuICAgICAgLm9ic2VydmUoWy4uLnRoaXMuYnJlYWtwb2ludERpc3BsYXlOYW1lcy5rZXlzKCldKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZVF1ZXJ5ID0gT2JqZWN0LmtleXMocmVzdWx0LmJyZWFrcG9pbnRzKS5maW5kKFxyXG4gICAgICAgICAgKHF1ZXJ5KSA9PiByZXN1bHQuYnJlYWtwb2ludHNbcXVlcnldLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudFNjcmVlblNpemUgPVxyXG4gICAgICAgICAgdGhpcy5icmVha3BvaW50RGlzcGxheU5hbWVzLmdldChhY3RpdmVRdWVyeSA/PyAnJykgPz8gJ1Vua25vd24nO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHRhYmxlS2V5ID0gY2hhbmdlcy50YWJsZUtleT8uY3VycmVudFZhbHVlO1xyXG4gICAgY29uc3QgY29uZmlnID0gY2hhbmdlcy5jb25maWc/LmN1cnJlbnRWYWx1ZTtcclxuXHJcbiAgICBpZiAodGFibGVLZXkgJiYgY29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnWW91IGNhbm5vdCBzZXQgYm90aCB0YWJsZUtleSBhbmQgdGFibGVDb25maWcgYXQgdGhlIHNhbWUgdGltZS4nLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5fYXBwbHlUYWJsZUNvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0YWJsZUtleSkge1xyXG4gICAgICB0aGlzLl9sb2FkVGFibGVDb25maWcodGFibGVLZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Mb2FkKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTG9hZGVkLmVtaXQoZGF0YSk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLl90YWJsZUluaXRpYWxpemVkIHx8XHJcbiAgICAgIHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ25ldmVyJyB8fFxyXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCB8fFxyXG4gICAgICB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdhbHdheXMnXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuICAgICAgY29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlIHx8IHt9O1xyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzVmFsdWUgfHwge307XHJcblxyXG4gICAgICBjb25zdCB1cGRhdGVkS2V5cyA9IF8udW5pb24oXHJcbiAgICAgICAgXy5rZXlzKHByZXZpb3VzVmFsdWUpLFxyXG4gICAgICAgIF8ua2V5cyhjdXJyZW50VmFsdWUpLFxyXG4gICAgICApLmZpbHRlcigoa2V5KSA9PiAhXy5pc0VxdWFsKHByZXZpb3VzVmFsdWVba2V5XSwgY3VycmVudFZhbHVlW2tleV0pKTtcclxuXHJcbiAgICAgIGNvbnN0IHRyaWdnZXJLZXlzID0gdGhpcy5maWx0ZXJSZWxvYWRDb25maWcudHJpZ2dlckZpZWxkcyB8fCBbXTtcclxuICAgICAgY29uc3Qgc2hvdWxkUmVsb2FkID0gdHJpZ2dlcktleXMuc29tZSgoa2V5KSA9PiB1cGRhdGVkS2V5cy5pbmNsdWRlcyhrZXkpKTtcclxuICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xyXG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5pdGlhbGl6ZShkYXRhOiBOdXhlb1BhZ2luYXRpb248YW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuICAgIHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5faXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uSW5pdGlhbGl6ZWQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIGNvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pIHtcclxuICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIubmV4dChjb2x1bW5zKTtcclxuICAgIHRoaXMuX3VzZXJQcmVmZXJlbmNlc1NlcnZpY2Uuc2V0KFxyXG4gICAgICB0aGlzLnRhYmxlQ29uZmlnLmtleSxcclxuICAgICAgdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi52YWx1ZS5tYXAoKHEpID0+IHEucHJvcCkuam9pbigpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNvcnRDaGFuZ2VkKHNvcnQ6IFNvcnRUYWJsZUl0ZW0pIHtcclxuICAgIHRoaXMuX3NvcnRWYWx1ZSA9IHsgc29ydEJ5OiBzb3J0LnZhbHVlLCBzb3J0T3JkZXI6IHNvcnQuZGlyZWN0aW9uIH07XHJcbiAgICB0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQodGhpcy5fc29ydFZhbHVlKTtcclxuICB9XHJcblxyXG4gIG1vZGVDaGFuZ2VkKG1vZGU6IFRhYmxlVmlld01vZGUpIHtcclxuICAgIHRoaXMuX3ZpZXdNb2RlU3ViLm5leHQobW9kZSk7XHJcbiAgfVxyXG5cclxuICBvblNvcnRDaGFuZ2VkKHNvcnQ6IFRhYmxlU29ydE9wdGlvbnMpIHtcclxuICAgIHRoaXMuX3NvcnRWYWx1ZSA9IHNvcnQ7XHJcbiAgICB0aGlzLm9uU29ydC5lbWl0KHNvcnQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VGFibGUodHlwZTogRXhwb3J0VHlwZSkge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IF8uY2xvbmVEZWVwKHRoaXMuZXhwb3J0VGFibGVDb25maWc/LnJlcXVlc3QpO1xyXG4gICAgaWYgKCFyZXF1ZXN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLmdldFZhbHVlKCk7XHJcbiAgICBjb25zdCBmaWVsZHMgPSBjb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuaGVhZGVyQ2xhc3MgfHwgY29sPy5maWxlZEtleSk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gY29sdW1ucy5tYXAoXHJcbiAgICAgIChjb2wpID0+ICh0aGlzLnRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJykgKyBjb2wubmFtZSxcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG5cclxuICAgIHJlcXVlc3QucGFyYW1zID0gbWVyZ2UoXHJcbiAgICAgIHt9LFxyXG4gICAgICBjcml0ZXJpYS5wYXJhbXMsXHJcbiAgICAgIHRoaXMuX3NvcnRWYWx1ZSB8fCB7fSxcclxuICAgICAgdGhpcy50YWJsZUNvbmZpZz8ucXVpY2tGaWx0ZXJzXHJcbiAgICAgICAgPyB7IHF1aWNrRmlsdGVyczogdGhpcy50YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgfVxyXG4gICAgICAgIDoge30sXHJcbiAgICAgIHJlcXVlc3Q/LnBhcmFtcyxcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgYmxvYk5hbWVLZXkgPSB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5ibG9iTmFtZTtcclxuICAgIGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSBtZXJnZShcclxuICAgICAge30sXHJcbiAgICAgIHJlcXVlc3Q/LnBheWxvYWQgfHwge30sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgcHJlZGljYXRlTGlzdDogY3JpdGVyaWEucGF5bG9hZC5wcmVkaWNhdGVMaXN0IHx8IFtdLFxyXG4gICAgICAgIHJlcG9ydE1ldGFEYXRhOiB7XHJcbiAgICAgICAgICBibG9iTmFtZTogJycsXHJcbiAgICAgICAgICBkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuICAgICAgICAgIGZpbGVUeXBlOiB0eXBlLFxyXG4gICAgICAgICAgbG9jYWxlOlxyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5sb2NhbGUgfHxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcclxuICAgICAgICAgIGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuICAgICAgICAgIGhlYWRlcnM6IFtdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG5cclxuICAgIGZvcmtKb2luKHtcclxuICAgICAgYXI6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oJ2FyJyksXHJcbiAgICAgIGVuOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKCdlbicpLFxyXG4gICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGlvbnMgPVxyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnNbdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ107XHJcbiAgICAgICAgICBwYXlsb2FkLnJlcG9ydE1ldGFEYXRhLmhlYWRlcnMgPSBoZWFkZXJzLm1hcCgoY29sKSA9PlxyXG4gICAgICAgICAgICBfLmdldChjdXJyZW50VHJhbnNsYXRpb25zLCBjb2wpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHBheWxvYWQucmVwb3J0TWV0YURhdGEuYmxvYk5hbWUgPSBfLmdldChcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25zWydhciddLFxyXG4gICAgICAgICAgICBibG9iTmFtZUtleSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBwYXlsb2FkLnJlcG9ydE1ldGFEYXRhLmJsb2JOYW1lRW4gPSBfLmdldChcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25zWydlbiddLFxyXG4gICAgICAgICAgICBibG9iTmFtZUtleSxcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICAgIHRoaXMuX3RhYmxlSG9va3NTZXJ2aWNlLmV4ZWN1dGVCZWZvcmVFeHBvcnQocGF5bG9hZCwgcmVxdWVzdCksXHJcbiAgICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBwYXlsb2FkLCByZXF1ZXN0IH0pID0+XHJcbiAgICAgICAgICAgICAgdGhpcy5fbmdUYWJsZVNlcnZpY2UuZXhwb3J0VGFibGUocmVxdWVzdCwgcGF5bG9hZCksXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0U3VjY2VzcycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl90b2FzdHJTZXJ2aWNlLmVycm9yKCdUQUJMRS5FWFBPUlQucmVxdWVzdEVycm9yJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlckNoYW5nZWQoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuX3RyaWdnZXJDcml0ZXJpYUNoYW5nZXMoY3JpdGVyaWEpO1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyc0NvbmZpZz8ubW9kZSAhPT0gJ3BheWxvYWQnKSB7XHJcbiAgICAgIGNvbnN0IGlzU3RyaW5naWZ5UGFyYW1zID0gdGhpcy5maWx0ZXJzQ29uZmlnPy5zdHJpbmdpZnlQYXJhbXM7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gIWlzU3RyaW5naWZ5UGFyYW1zXHJcbiAgICAgICAgPyBjcml0ZXJpYVxyXG4gICAgICAgIDogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKTtcclxuICAgICAgdGhpcy5fZHluYW1pY1RhYmxlU2VydmljZS5yZWZyZXNoRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLl9maWx0ZXJzTWFwcGVyLnByZXBhcmVQYXlsb2FkKFxyXG4gICAgICB0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLFxyXG4gICAgICBjcml0ZXJpYSxcclxuICAgICk7XHJcbiAgICB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0U2VhcmNoID0gKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgaWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgIHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcbiAgfTtcclxuXHJcbiAgb3BlblNlYXJjaE1vZGFsID0gKCkgPT4ge1xyXG4gICAgY29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcbiAgICBpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oXHJcbiAgICAgIEh0bWxEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBwYW5lbENsYXNzOiAncC0wJyxcclxuICAgICAgICBtaW5XaWR0aDogJ21pbig1MDBweCw2MHZ3KScsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbixcclxuICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIG9uQ2xlYXJTZWFyY2ggPSAoKSA9PiB7XHJcbiAgICB0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQobnVsbCk7XHJcbiAgfTtcclxuXHJcbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBQYWdlRXZlbnQpIHtcclxuICAgIHRoaXMuX3BhZ2VDaGFuZ2VkID1cclxuICAgICAgdGhpcy5fYWN0aXZlUGFnZS5wYWdlSW5kZXggIT09IHBhZ2UucGFnZUluZGV4IHx8XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgIT09IHBhZ2UucGFnZVNpemU7XHJcbiAgICBpZiAodGhpcy5fcGFnZUNoYW5nZWQpIHtcclxuICAgICAgdGhpcy5vblBhZ2UuZW1pdChwYWdlKTtcclxuICAgICAgdGhpcy5fYWN0aXZlUGFnZSA9IHBhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXJCeVZpc2liaWxpdHkoXHJcbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbkNvbmZpZ1tdLFxyXG4gICk6IFRhYmxlQ29sdW1uQ29uZmlnW10ge1xyXG4gICAgcmV0dXJuIGNvbHVtbnMuZmlsdGVyKChjb2wpID0+IGNvbC5kZWZhdWx0VmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlU2VhcmNoKFtzZWFyY2gsIGZpbHRlcnNdOiBbXHJcbiAgICBzdHJpbmcsXHJcbiAgICB7XHJcbiAgICAgIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgICAgIHBheWxvYWQ/OiB7IHByZWRpY2F0ZUxpc3Q6IGFueVtdIH0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgfSxcclxuICBdKTogYW55IHtcclxuICAgIHtcclxuICAgICAgY29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzPy5wYXlsb2FkIHx8IHsgcHJlZGljYXRlTGlzdDogW10gfTtcclxuICAgICAgY29uc3QgX2tleSA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uZmllbGRLZXk7XHJcbiAgICAgIGNvbnN0IHNlYXJjaEluZGV4ID0gcHJlZGljYXRlTGlzdC5maW5kSW5kZXgoKGl0bSkgPT4gaXRtLm5hbWUgPT09IF9rZXkpO1xyXG4gICAgICBpZiAoc2VhcmNoICYmIF9rZXkpIHtcclxuICAgICAgICBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgcHJlZGljYXRlTGlzdFtzZWFyY2hJbmRleF0udmFsdWUgPSBgJyR7c2VhcmNofSdgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwcmVkaWNhdGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBfa2V5LFxyXG4gICAgICAgICAgICBvcGVyYXRvcjpcclxuICAgICAgICAgICAgICB0aGlzLnRleHRTZWFyY2hDb25maWc/Lm9wZXJhdG9yIHx8IENPTVBBUklTT05fT1BFUkFUT1IuZXF1YWxzLFxyXG4gICAgICAgICAgICB2YWx1ZTogYCcke3NlYXJjaH0nYCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChzZWFyY2hJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgcHJlZGljYXRlTGlzdC5zcGxpY2Uoc2VhcmNoSW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBfLmNsb25lRGVlcCh7IC4uLmZpbHRlcnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdHJpbmdpZnlWYWx1ZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjcml0ZXJpYSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICBhY2Nba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmlnZ2VyQ3JpdGVyaWFDaGFuZ2VzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBpZiAodGhpcy5fdGFibGVJbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHsgLi4udGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKSB9O1xyXG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWU7XHJcbiAgICB0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5uZXh0KHtcclxuICAgICAgcHJldmlvdXNWYWx1ZTogcHJldmlvdXNWYWx1ZSxcclxuICAgICAgY3VycmVudFZhbHVlOiBjcml0ZXJpYSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuICAgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcbiAgICB0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuICAgIGlmIChjb25maWcuY29sdW1ucykge1xyXG4gICAgICB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG4gICAgICB0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG4gICAgICB0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuICAgICAgdGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcbiAgICB9XHJcbiAgICB0aGlzLiNpbml0RGlzcGxheWVkS2V5cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBAZGVzY3JpcHRpb24gTG9hZHMgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBhbmQgYXBwbGllcyBpdC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB1c2VkIHRvIGZldGNoIHRoZSB0YWJsZSBjb25maWd1cmF0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2xvYWRUYWJsZUNvbmZpZyhrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgICAuZ2V0VGFibGVDb25maWd1cmF0aW9uKGtleSwgdGhpcy5jb25maWdQYXRoKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKGNvbmZpZykgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIgJiYgXy5pc0Z1bmN0aW9uKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ1RyYW5zZm9ybWVyKGNvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoY29uZmlnKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fYXBwbHlUYWJsZUNvbmZpZyhjb25maWcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgI2luaXREaXNwbGF5ZWRLZXlzKCkge1xyXG4gICAgY29uc3QgZGlzcGxheWVkS2V5cyA9IHRoaXMuX3VzZXJQcmVmZXJlbmNlc1NlcnZpY2VcclxuICAgICAgLmdldCh0aGlzLnRhYmxlQ29uZmlnLmtleSlcclxuICAgICAgPy5zcGxpdCgnLCcpO1xyXG4gICAgaWYgKGRpc3BsYXllZEtleXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRhYmxlQ29uZmlnLmNvbHVtbnNcclxuICAgICAgICAuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlICE9ICdhY3Rpb25zJylcclxuICAgICAgICAuZm9yRWFjaCgoY29sKSA9PiB7XHJcbiAgICAgICAgICBjb2wuZGVmYXVsdFZpc2libGUgPSBkaXNwbGF5ZWRLZXlzLmluY2x1ZGVzKGNvbC5wcm9wKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIubmV4dChbXHJcbiAgICAgICAgLi4udGhpcy50YWJsZUNvbmZpZy5jb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwidGFibGVDb25maWdcIlxyXG4gIGNsYXNzPVwibmRmLXRhYmxlX19jb250YWluZXIgbmRmLXRhYmxlLS1zaXplLXt7IGN1cnJlbnRTY3JlZW5TaXplIH19XCJcclxuICBbY2xhc3MucGFuZWwtb3BlbmVkXT1cImlzUGFuZWxPcGVuZWQgJiYgZmlsdGVyc0NvbmZpZ1wiXHJcbiAgW2Rpcl09XCJkaXJlY3Rpb25cIlxyXG4gIG5kZkZsdWlkSGVpZ2h0XHJcbiAgY3NzVmFyPVwiLS1uZGYtdGFibGUtaGVpZ2h0XCJcclxuICBbY2FsY3VsYXRlXT1cImF1dG9DYWxjdWxhdGVIZWlnaHRcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fcGFuZWxcIiAqbmdJZj1cImZpbHRlcnNDb25maWc/LmZpZWxkc1wiPlxyXG4gICAgPGFwcC1maWx0ZXJzLXBhbmVsXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZy5maWVsZHNcIlxyXG4gICAgICBbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9ucyQgfCBhc3luY1wiXHJcbiAgICAgIChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgIFthY3RpdmVRdWVyeV09XCJhY3RpdmVRdWVyeVwiXHJcbiAgICAgIGNsYXNzPVwibmRmLXRhYmxlX19maWx0ZXJzXCJcclxuICAgICAgW2N1c3RvbVRlbXBsYXRlUmVmXT1cImZpbHRlckN1c3RvbVRlbXBsYXRlXCJcclxuICAgID5cclxuICAgICAgPGRpdiBmaWx0ZXJzLWFjdGlvbnMgY2xhc3M9XCJwYW5lbC10b29sYmFyLWFyZWFcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+IGNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2NvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlciBmbGV4XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fY3VzdG9tLWFjdGlvbnMgZmxleCBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFRhYmxlVGVtcGxhdGUgfHwgZGVmYXVsdEFjdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDb250ZXh0KClcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uVGVtcGxhdGU+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImlzUGFuZWxUb2dnbGVBdmFpbGFibGUgJiYgISFmaWx0ZXJzQ29uZmlnLmZpZWxkcz8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YXBwLXRleHQtc2VhcmNoXHJcbiAgICAgICAgICAgICpuZ0lmPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcbiAgICAgICAgICAgIFtzZWFyY2hDb25maWddPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcbiAgICAgICAgICAgIChvcGVuTW9kYWwpPVwib3BlblNlYXJjaE1vZGFsKClcIlxyXG4gICAgICAgICAgICBbc2VhcmNoXT1cInRleHRTZWFyY2gkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAoc2VhcmNoQ2hhbmdlKT1cIm9uVGV4dFNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNsZWFyKT1cIm9uQ2xlYXJTZWFyY2goKVwiXHJcbiAgICAgICAgICA+PC9hcHAtdGV4dC1zZWFyY2g+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGFwcC1lZGl0b3ItYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmICh0YWJsZUtleSB8fCB0YWJsZUNvbmZpZz8ua2V5KVwiXHJcbiAgICAgICAgICBba2V5XT1cInRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXlcIlxyXG4gICAgICAgICAgW3R5cGVdPVwiZWRpdG9yVHlwZVwiXHJcbiAgICAgICAgPjwvYXBwLWVkaXRvci1idXR0b24+XHJcbiAgICAgICAgPG5kZi10YWJsZS1leHBvcnRcclxuICAgICAgICAgICpuZ0lmPVwiZXhwb3J0VGFibGVDb25maWc/LmVuYWJsZWRcIlxyXG4gICAgICAgICAgW2NvbmZpZ109XCJleHBvcnRUYWJsZUNvbmZpZ1wiXHJcbiAgICAgICAgICAob25FeHBvcnQpPVwiZXhwb3J0VGFibGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvbmRmLXRhYmxlLWV4cG9ydD5cclxuXHJcbiAgICAgICAgPHRhYmxlLXNvcnRpbmctbGlzdFxyXG4gICAgICAgICAgKm5nSWY9XCIhIXNvcnRMaXN0Py5sZW5ndGhcIlxyXG4gICAgICAgICAgW3NvcnRMaXN0XT1cInNvcnRMaXN0XCJcclxuICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJzb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICA+PC90YWJsZS1zb3J0aW5nLWxpc3Q+XHJcbiAgICAgICAgPHRhYmxlLWNvbHVtbnMtdG9nZ2xlclxyXG4gICAgICAgICAgKm5nSWY9XCJjb2x1bW5Ub2dnbGUgJiYgY3VycmVudFNjcmVlblNpemUgIT09IHNjcmVlblNpemVzLnhzXCJcclxuICAgICAgICAgIFtjb2x1bW5zXT1cInRhYmxlQ29uZmlnLmNvbHVtbnNcIlxyXG4gICAgICAgICAgW3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXhcIlxyXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbnNPcHRpb25zPy5zb3J0YWJsZVwiXHJcbiAgICAgICAgICAoY29sdW1uc0NoYW5nZWQpPVwiY29sdW1uc0NoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdGFibGUtY29sdW1ucy10b2dnbGVyPlxyXG4gICAgICAgIDxtb2RlLXRvZ2dsZXJcclxuICAgICAgICAgICpuZ0lmPVwidGFibGVNb2RlPy50b2dnbGVNb2RlICYmIGN1cnJlbnRTY3JlZW5TaXplICE9PSBzY3JlZW5TaXplcy54c1wiXHJcbiAgICAgICAgICBbbW9kZV09XCJ0YWJsZU1vZGUubW9kZSB8fCAnbGlzdCdcIlxyXG4gICAgICAgICAgW21vZGVzTGlzdF09XCJ0YWJsZU1vZGU/LmF2YWlsYWJsZU1vZGVcIlxyXG4gICAgICAgICAgKG1vZGVDaGFuZ2VkKT1cIm1vZGVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgID48L21vZGUtdG9nZ2xlcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVGFibGVUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Q29udGV4dCgpXCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGN0cy1keW5hbWljLXRhYmxlXHJcbiAgICAgICpuZ0lmPVwiIXRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuICAgICAgY2xhc3M9XCJuZGYtdGFibGVfX3RhYmxlIHRhYmxlLXN0eWxlXCJcclxuICAgICAgW25nQ2xhc3NdPVwic3R5bGVDbGFzc1wiXHJcbiAgICAgIFtjb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG4gICAgICBbcmVzcG9uc2l2ZUNvbHVtbnNdPVwidGFibGVDb25maWc/LmNhcmRDb2x1bW5zIHx8IFtdXCJcclxuICAgICAgW2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuICAgICAgW3BhZ2VTaXplXT1cInRhYmxlQ29uZmlnLnBhZ2VTaXplIHx8IDEwXCJcclxuICAgICAgW3BhZ2VOdW1iZXJdPVwidGFibGVDb25maWcucGFnZU51bWJlciB8fCAxXCJcclxuICAgICAgW3BhZ2VQcm92aWRlcl09XCJ0YWJsZUNvbmZpZy5wYWdlUHJvdmlkZXJcIlxyXG4gICAgICBbY3VzdG9tVXJsXT1cInRhYmxlQ29uZmlnLmN1c3RvbVVybFwiXHJcbiAgICAgIFtxdWlja0ZpbHRlcl09XCJcclxuICAgICAgICB0YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnNcclxuICAgICAgICAgID8geyBxdWlja0ZpbHRlcnM6IHRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9XHJcbiAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICBcIlxyXG4gICAgICBbZGVmdWx0U29ydF09XCJ0YWJsZUNvbmZpZy5kZWZhdWx0U29ydCB8fCBkZWZhdWx0U29ydFwiXHJcbiAgICAgIFtzb3J0aW5nQnldPVwic29ydE9wdGlvbiQgfCBhc3luY1wiXHJcbiAgICAgIFtlbnRpdHlUeXBlXT1cIidhbGwnXCJcclxuICAgICAgW2ZpZWxkc109XCJ0YWJsZUNvbmZpZy5maWVsZHNcIlxyXG4gICAgICBbdGFibGVNb2RlXT1cInZpZXdNb2RlJCB8IGFzeW5jXCJcclxuICAgICAgW2NvbXBvbmVudE5hbWVdPVwidGFibGVNb2RlPy5bJ2NvbXBvbmVudE5hbWUnXVwiXHJcbiAgICAgIFtyYW5nZV09XCJ0YWJsZUNvbmZpZz8ucmFuZ2VcIlxyXG4gICAgICBbaXNTZWFyY2hQYWdlXT1cInRhYmxlQ29uZmlnPy5pc1NlYXJjaFBhZ2VcIlxyXG4gICAgICBbbXVsdGlTZWxlY3RSb3dzXT1cInRhYmxlQ29uZmlnPy5tdWx0aVNlbGVjdFJvd3NcIlxyXG4gICAgICBbY3VzdG9tRmlyc3RSb3ddPVwidGFibGVDb25maWc/LmN1c3RvbUZpcnN0Um93XCJcclxuICAgICAgW2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuICAgICAgW3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcbiAgICAgIFtmaWx0ZXJQYXJhbXNdPVwidGFibGVDb25maWc/LmZpbHRlclBhcmFtc1wiXHJcbiAgICAgIFtmb3JtYXRdPVwidGFibGVDb25maWc/LmZvcm1hdCB8fCAnTU1NTSBkLCB5J1wiXHJcbiAgICAgIFtwYWdlU2l6ZXNdPVwidGFibGVDb25maWc/LnBhZ2VTaXplcyB8fCBkZWZhdWx0UGFnZVNpemVzXCJcclxuICAgICAgW3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXggfHwgJydcIlxyXG4gICAgICBbcm93Q3Vyc29yXT1cInRydWVcIlxyXG4gICAgICBbcXVlcnlQYXJhbV09XCJ0YWJsZUNvbmZpZy5xdWVyeVBhcmFtXCJcclxuICAgICAgW2N1c3RvbUZpbHRlcnNdPVwic2VhcmNoQW5kRmlsdGVycyQgfCBhc3luY1wiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuICAgICAgW3JlcXVlc3RBY3Rpb25zXT1cInRhYmxlQ29uZmlnPy5yZXF1ZXN0QWN0aW9uc1wiXHJcbiAgICAgIFtoZWFkZXJzXT1cInRhYmxlQ29uZmlnLmhlYWRlcnNcIlxyXG4gICAgICAob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25HZXR0aW5nRGF0YSk9XCJvbkdldHRpbmdEYXRhLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkxvYWQpPVwib25Mb2FkKCRldmVudClcIlxyXG4gICAgICAob25Jbml0aWFsaXplKT1cIm9uSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuICAgICAgKG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uTG9hZGluZyk9XCJvbkxvYWRpbmcuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uUGFnZSk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICBbaXNMZWdhY3lNb2RlXT1cImZhbHNlXCJcclxuICAgICAgW3Nob3dUb3RhbFJlY29yZF09XCJ0cnVlXCJcclxuICAgICAgKHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgIGVtcHR5VGVtcGxhdGVcclxuICAgICAgICBsZXQtaXNMb2FkaW5nXHJcbiAgICAgICAgbGV0LXJvd3M9XCJyb3dzXCJcclxuICAgICAgICBsZXQtaW5pdGlhbGl6ZWQ9XCJpbml0aWFsaXplZFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1kYXRhXCIgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaW5pdGlhbGl6ZWRcIj5cclxuICAgICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGgtNS82XCJcclxuICAgICAgICAgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhcm93cy5sZW5ndGhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxhcHAtbm8tZGF0YS1mb3VuZFxyXG4gICAgICAgICAgICBjbGFzcz1cIm10LTRcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJlbXB0eU1lc3NhZ2VcIlxyXG4gICAgICAgICAgPjwvYXBwLW5vLWRhdGEtZm91bmQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2N0cy1keW5hbWljLXRhYmxlPlxyXG5cclxuICAgIDxjdHMtdGFibGVcclxuICAgICAgKm5nSWY9XCJ0YWJsZUNvbmZpZy5pc0RhdGFQcm92aWRlZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInN0eWxlQ2xhc3NcIlxyXG4gICAgICBbcm93c109XCJyb3dzXCJcclxuICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICBbY29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuICAgICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInRhYmxlQ29uZmlnPy5jYXJkQ29sdW1ucyB8fCBbXVwiXHJcbiAgICAgIFtyb3dDdXJzb3JdPVwidHJ1ZVwiXHJcbiAgICAgIFtmdWxsV2lkdGhdPVwidGFibGVDb25maWcuZnVsbFdpZHRoIHx8ICdhdXRvJ1wiXHJcbiAgICAgIFtlbnRpdHlUeXBlXT1cIidhbGwnXCJcclxuICAgICAgW3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXggfHwgJydcIlxyXG4gICAgICBbdGFibGVNb2RlXT1cInZpZXdNb2RlJCB8IGFzeW5jXCJcclxuICAgICAgW2NvbXBvbmVudE5hbWVdPVwidGFibGVNb2RlPy5bJ2NvbXBvbmVudE5hbWUnXVwiXHJcbiAgICAgIFttdWx0aVNlbGVjdFJvd3NdPVwidGFibGVDb25maWc/Lm11bHRpU2VsZWN0Um93c1wiXHJcbiAgICAgIFtjdXN0b21GaXJzdFJvd109XCJ0YWJsZUNvbmZpZz8uY3VzdG9tRmlyc3RSb3dcIlxyXG4gICAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQ29uZmlnLnRhYmxlQWN0aW9uc1wiXHJcbiAgICAgIFtzaG93QWN0aW9uc0FzTWVudV09XCJ0YWJsZUNvbmZpZz8uc2hvd0FjdGlvbnNBc01lbnVcIlxyXG4gICAgICBbZGVmdWx0U29ydF09XCJ0YWJsZUNvbmZpZy5kZWZhdWx0U29ydCB8fCBkZWZhdWx0U29ydFwiXHJcbiAgICAgIFtmb3JtYXRdPVwidGFibGVDb25maWc/LmZvcm1hdCB8fCAnTU1NTSBkLCB5J1wiXHJcbiAgICAgIFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwidGFibGVDb25maWc/LmhpZ2hsaWdodFNlbGVjdGVkQ2FyZFwiXHJcbiAgICAgIChvblJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uUm93SW5kZXhTZWxlY3RlZCk9XCJvblJvd0luZGV4U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKGFjdGlvbk9uUm93KT1cImFjdGlvbk9uUm93LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvblNvcnRpbmcpPVwib25Tb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuICAgID48L2N0cy10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
25
25
|
]
|
|
26
26
|
}]
|
|
27
27
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2RpcmVjdGl2ZXMvYWN0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBRXZFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFnQywrQkFBK0IsQ0FBQyxDQUFDO0FBV3pILE1BQU0sT0FBTyw2QkFBNkI7SUFDekMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBRyxDQUFDOzsySEFEckMsNkJBQTZCOytHQUE3Qiw2QkFBNkIsZ0RBUDlCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFdBQVcsRUFBRSw2QkFBNkI7U0FDMUM7S0FDRDs0RkFFVyw2QkFBNkI7a0JBVHpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsK0JBQStCO3lCQUMxQztxQkFDRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQUNUSU9OU19UQUJMRV9URU1QTEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25zVGFibGVUZW1wbGF0ZURpcmVjdGl2ZT4oJ0FjdGlvbnNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlJyk7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ1toZWFkZXJUYWJsZVRlbXBsYXRlXScsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IEFDVElPTlNfVEFCTEVfVEVNUExBVEUsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBBY3Rpb25zVGFibGVUZW1wbGF0ZURpcmVjdGl2ZVxyXG5cdFx0fVxyXG5cdF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbnNUYWJsZVRlbXBsYXRlRGlyZWN0aXZlIHtcclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHt9XHJcbn1cclxuIl19
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
25
25
|
]
|
|
26
26
|
}]
|
|
27
27
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2RpcmVjdGl2ZXMvZmlsdGVyLWN1c3RvbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBRXZFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN2RCwrQkFBK0IsQ0FDL0IsQ0FBQztBQVdGLE1BQU0sT0FBTyw2QkFBNkI7SUFDekMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBRyxDQUFDOzsySEFEckMsNkJBQTZCOytHQUE3Qiw2QkFBNkIsaURBUDlCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFdBQVcsRUFBRSw2QkFBNkI7U0FDMUM7S0FDRDs0RkFFVyw2QkFBNkI7a0JBVHpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsK0JBQStCO3lCQUMxQztxQkFDRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRklMVEVSX0NVU1RPTV9URU1QTEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGaWx0ZXJDdXN0b21UZW1wbGF0ZURpcmVjdGl2ZT4oXHJcblx0J0ZpbHRlckN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlJ1xyXG4pO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbZmlsdGVyQ3VzdG9tVGVtcGxhdGVdJyxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogRklMVEVSX0NVU1RPTV9URU1QTEFURSxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IEZpbHRlckN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlXHJcblx0XHR9XHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUge1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cclxufVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './actions.directive';
|
|
2
2
|
export * from './search.directive';
|
|
3
3
|
export * from './filter-custom.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbnMuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2guZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItY3VzdG9tLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
25
25
|
]
|
|
26
26
|
}]
|
|
27
27
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZGlyZWN0aXZlcy9zZWFyY2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUV2RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBK0IsOEJBQThCLENBQUMsQ0FBQztBQVd0SCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUcsQ0FBQzs7MEhBRHRDLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLGdEQVA1QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixXQUFXLEVBQUUsNEJBQTRCO1NBQzFDO0tBQ0Y7NEZBRVUsNEJBQTRCO2tCQVR4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLDhCQUE4Qjt5QkFDMUM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFQVJDSF9UQUJMRV9URU1QTEFURSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWFyY2hUYWJsZVRlbXBsYXRlRGlyZWN0aXZlPignU2VhcmNoVGFibGVUZW1wbGF0ZURpcmVjdGl2ZScpO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2VhcmNoVGFibGVUZW1wbGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBTRUFSQ0hfVEFCTEVfVEVNUExBVEUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTZWFyY2hUYWJsZVRlbXBsYXRlRGlyZWN0aXZlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './public-api';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcclxuIl19
|
|
@@ -5,4 +5,4 @@ export * from './table-mode';
|
|
|
5
5
|
export * from './table-options';
|
|
6
6
|
export * from './types';
|
|
7
7
|
export * from './search.config';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BheWxvYWQtdHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNvbHVtbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1tb2RlJztcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLmNvbmZpZyc7XHJcbiJdfQ==
|