nuxeo-development-framework 3.4.6 → 3.4.7
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 +1001 -1053
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/Core/adapters/adapter.service.js +4 -4
- package/esm2015/lib/Core/core.module.js +5 -5
- package/esm2015/lib/Core/services/callApi/call-api.service.js +4 -4
- package/esm2015/lib/Core/services/extension/component-register.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension-loader.service.js +4 -4
- package/esm2015/lib/Core/services/extension/extension.service.js +4 -4
- package/esm2015/lib/Core/services/initialization/initialization.service.js +4 -4
- package/esm2015/lib/Core/services/localStorag/local-storag.service.js +4 -4
- package/esm2015/lib/Core/services/nuxeo/nuxeo.service.js +4 -4
- package/esm2015/lib/Core/services/roles/roles.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translate-loader.service.js +4 -4
- package/esm2015/lib/Core/services/translation/translation.service.js +4 -4
- package/esm2015/lib/Core/services/user/user-preferences.service.js +4 -4
- package/esm2015/lib/Core/utilities/moment-date-adapter.js +4 -4
- package/esm2015/lib/Core/utilities/utility.service.js +4 -4
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +4 -4
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +4 -4
- package/esm2015/lib/components/activities-log/activities-log.module.js +5 -5
- package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
- package/esm2015/lib/components/activity/activity.module.js +5 -5
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +4 -4
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +5 -5
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +5 -5
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
- package/esm2015/lib/components/avatar/avatar.module.js +5 -5
- package/esm2015/lib/components/card/card.component.js +4 -4
- package/esm2015/lib/components/card/card.module.js +5 -5
- package/esm2015/lib/components/comments/comments.module.js +5 -5
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +4 -4
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +6 -5
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +4 -4
- package/esm2015/lib/components/comments/services/comment-api.service.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +4 -4
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +7 -6
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -4
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +4 -4
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -4
- package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +4 -4
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +4 -4
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +4 -4
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +4 -4
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +5 -5
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
- package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
- package/esm2015/lib/components/documents/documents.module.js +5 -5
- package/esm2015/lib/components/documents/services/document-templates.service.js +4 -4
- package/esm2015/lib/components/documents/services/documents.service.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
- package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +4 -4
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +4 -4
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +5 -5
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +4 -4
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +4 -4
- package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
- package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +4 -4
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/move/move.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +4 -4
- package/esm2015/lib/components/file-manger/file-manger.module.js +5 -5
- package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
- package/esm2015/lib/components/filter/filter.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +6 -5
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +80 -5
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +4 -4
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +4 -4
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +5 -5
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -4
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -4
- package/esm2015/lib/components/notifications/notifications.module.js +5 -5
- package/esm2015/lib/components/notifications/notifications.service.js +4 -4
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
- package/esm2015/lib/components/pagination/pagination.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +62 -50
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +4 -4
- package/esm2015/lib/components/permissions/permission.service.js +4 -4
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +4 -4
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +4 -4
- package/esm2015/lib/components/permissions/permissions.module.js +5 -5
- package/esm2015/lib/components/select/select/select.component.js +4 -4
- package/esm2015/lib/components/select/select.module.js +5 -5
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +5 -5
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +4 -4
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +4 -4
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +4 -4
- package/esm2015/lib/components/table/table/table.component.js +4 -4
- package/esm2015/lib/components/table/table.module.js +5 -5
- package/esm2015/lib/components/user/user/user.component.js +4 -4
- package/esm2015/lib/components/user/user.module.js +5 -5
- package/esm2015/lib/components/users-card/users-card.component.js +4 -4
- package/esm2015/lib/components/users-card/users-card.module.js +5 -5
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
- package/esm2015/lib/configuration/app-config.service.js +4 -4
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +4 -4
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
- package/esm2015/lib/directive/directive.module.js +5 -5
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +4 -4
- package/esm2015/lib/directive/permissions/evaluators.service.js +4 -4
- package/esm2015/lib/directive/permissions/permissions.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +4 -4
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
- package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
- package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
- package/esm2015/lib/pipes/file-size.pipe.js +4 -4
- package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
- package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
- package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
- package/esm2015/lib/pipes/pipes.module.js +5 -5
- package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
- package/esm2015/lib/pipes/secure.pipe.js +4 -4
- package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
- package/esm2015/lib/shared/components/button/button.component.js +4 -4
- package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
- package/esm2015/lib/shared/components/no-data/no-data.component.js +9 -5
- package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
- package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
- package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
- package/esm2015/lib/shared/libraryShared.module.js +5 -5
- package/esm2015/lib/shared-services/dialog-mangment.service.js +4 -4
- package/esm2015/lib/shared-services/dynamic-form.service.js +4 -4
- package/esm2015/lib/shared-services/file-manager.adapter.js +4 -4
- package/esm2015/lib/shared-services/file-manager.service.js +4 -4
- package/esm2015/lib/shared-services/global-admin.service.js +4 -4
- package/esm2015/lib/shared-services/global-pdftron.service.js +4 -4
- package/esm2015/lib/shared-services/mainfolder.service.js +4 -4
- package/esm2015/lib/shared-services/publishing-document.service.js +4 -4
- package/esm2015/lib/shared-services/recently-viewed.service.js +4 -4
- package/esm2015/lib/shared-services/shared-docs.service.js +4 -4
- package/esm2015/lib/shared-services/shared-services.module.js +5 -5
- package/esm2015/lib/shared-services/upload-file.service.js +4 -4
- package/esm2015/lib/shared-services/upload-managment.service.js +4 -4
- package/esm2015/lib/shared-services/user.service.js +4 -4
- package/fesm2015/nuxeo-development-framework.js +936 -843
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/latest-activity/components/single-activity/single-activity.component.d.ts +74 -0
- package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +6 -2
- package/lib/shared/components/no-data/no-data.component.d.ts +2 -1
- package/package.json +1 -1
package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js
CHANGED
|
@@ -277,9 +277,9 @@ export class ShareDialogComponent {
|
|
|
277
277
|
this.subscriptions$.forEach(sub => sub.unsubscribe());
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
|
-
ShareDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
281
|
-
ShareDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ShareDialogComponent, selector: "app-share-dialog", ngImport: i0, template: "<form [formGroup]=\"shareForm\" class=\"h-full p-5 overflow-auto\" SetRtl>\r\n\r\n <div class=\"flex flex-col justify-between h-full\">\r\n <!--Form Section-->\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\">\r\n {{ \"share.shareDialogTitle\" | translate }}\r\n </span>\r\n <div class=\"mt-5 selectorsWrapper\">\r\n <app-select-users-by-departments\r\n formControlName=\"depAnditsUsers\"\r\n [allowMultipleUsers]= \"true\"\r\n [userLabel]=\"'share.users' | translate\"\r\n [depLabel]=\"'share.Dep' | translate\"\r\n [display]=\"'column'\">\r\n </app-select-users-by-departments>\r\n </div>\r\n <div *ngIf=\"forbiddenUsers.length\" class=\"flex\">\r\n <ng-container *ngFor=\"let p of forbiddenUsers; let i as index\">\r\n <span class=\"text-red-500 text-base\">\r\n {{p}} \r\n </span>\r\n </ng-container>\r\n <span class=\"text-red-500 text-base\">\r\n <p *ngIf=\"forbiddenUsers.length == 1\">\r\n {{ \"share.single_forbidden\" | translate }}\r\n </p>\r\n <p *ngIf=\"forbiddenUsers.length > 1\">\r\n {{ \"share.multi_forbidden\" | translate }}\r\n </p>\r\n </span>\r\n </div>\r\n <div *ngIf=\"sameCurrentUser\">\r\n <span class=\"text-red-500 text-base\">\r\n {{ \"share.shareWithLoggedInUser\" | translate }}\r\n </span>\r\n </div>\r\n <div *ngIf=\"isSharedBefore.length\" class=\"flex\">\r\n <span class=\"text-red-500 text-base\">\r\n {{ \"share.share_exists\" | translate }}\r\n <ng-container *ngFor=\"let p of isSharedBefore\">\r\n {{p}}\r\n </ng-container>\r\n {{ \"share.before\" | translate }}\r\n </span>\r\n </div>\r\n <div class=\"mt-4 rightsSelector\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"share.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\" \r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n formControlName=\"rights\"\r\n (change)=\"setRight($event)\"\r\n >\r\n </ng-select>\r\n </div>\r\n <div *ngIf=\"sharedList.length\" class=\"mt-4\">\r\n <div>\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"share.fileUrl\" | translate }}\r\n </label>\r\n <div class=\"flex relative\">\r\n <input \r\n #fileUrl\r\n [value]=\"shareableUrl\"\r\n disabled\r\n class=\"appearance-none block w-full bg-accent-100 text-gray-700 border border-gray-200 rounded py-2.5 px-4 \r\n leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\r\n type=\"text\"\r\n >\r\n <button class=\"absolute pt-2.5 bg-accent-100\"\r\n [matTooltip] = \"'BUTTONS.COPY' | translate\"\r\n [ngClass]=\"(locale === 'en') ? 'right-2' : 'left-2'\"\r\n [cdkCopyToClipboard]=\"fileUrl.value\"\r\n (click)=\"copy()\">\r\n <mat-icon svgIcon=\"mat_solid:content_copy\" class=\"icon-size-6\"></mat-icon>\r\n </button>\r\n <div *ngIf=\"copied\" class=\"flex absolute justify-around w-24 -mt-10 border \r\n border-red-700 h-7 rounded bg-gray-200\"\r\n [ngClass]=\"(locale === 'en') ? 'right-0' : 'left-0'\">\r\n <div class=\"w-3 h-3 justify-center bg-gray-200 transform rotate-45 border\r\n mt-5 borders-color\">\r\n </div>\r\n <span class=\"absolute font-extralight\">{{ \"share.copied\" | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Shares Section-->\r\n <div *ngIf=\"sharedList.length\">\r\n <div class=\"flex flex-row justify-between h-7 border-b-2 border-accent-100 mt-2\">\r\n <span class=\"text-base font-bold\">\r\n {{ \"share.shares\" | translate }}\r\n </span>\r\n <button mat-icon-button *permission=\"{name: 'canRemoveShare', entity: selectedItem.entity}\"\r\n matTooltip=\"{{'share.Rm_All_shares' | translate}}\" (click)=\"openDialog('Rem_ALL_shares')\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:trash'\"\r\n [ngClass]=\"(locale === 'en') ? 'mr-2' : 'ml-2'\"></mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"h-52 overflow-y-auto\">\r\n <div class=\"flex flex-row justify-between mt-2.5\">\r\n <span class=\"w-1/2 text-base font-bold\">{{\"share.shareWith\" | translate}}</span>\r\n <span class=\"w-1/4 text-base font-bold\">{{\"share.share_date\" | translate}}</span>\r\n <span class=\"w-1/4 text-base font-bold\">{{\"share.permission\" | translate}}</span>\r\n <span> </span>\r\n </div>\r\n <ng-container *ngFor=\"let d of sharedList\">\r\n <div class=\"flex flex-row justify-between mt-2.5\">\r\n <div class=\"flex flex-row w-1/2\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\">\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: d.user.properties?.firstName,\r\n lastName: d.user.properties?.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col -mt-2 px-2 break-all\">\r\n <span>{{d.user.fullName}}</span>\r\n <span>{{d.user.properties.email}}</span>\r\n </div>\r\n </div>\r\n <div class=\"w-1/4 mt-1.5 break-all px-2.5\">\r\n <span>{{d.sharedDate | localizedDate:\"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')}}</span>\r\n </div>\r\n <div class=\"w-1/4 mt-1.5 break-all px-4\">\r\n <span>{{\"rights.\" + d.sharedMode | translate}}</span>\r\n </div>\r\n <div class=\"mt-1.5\">\r\n <button mat-icon-button *permission=\"{name: 'canRemoveShare', entity: selectedItem.entity}\"\r\n matTooltip=\"{{'share.Rm_custom_share' | translate}}\"\r\n (click)=\"openDialog('Rem_custom_share',d.user.properties.username,d.sharedMode)\">\r\n <i class=\"ms-Icon ms-Icon--ChromeClose\" aria-hidden=\"true\"\r\n [ngClass]=\"(locale === 'en') ? 'mr-2.5' : 'ml-2.5'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!--Buttons Section-->\r\n <div class=\"flex flex-row justify-between mt-2 py-1\">\r\n <button class=\"submission-button\" [disabled]=\"disabled\" (click)=\"share()\">\r\n {{ \"share.shareButton\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button\" (click)=\"close()\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".share-dialog-wrapper .mat-dialog-container{overflow:hidden;padding:0!important}.share-dialog-wrapper .borders-color{--tw-border-opacity: 1;border-bottom-color:rgba(185,28,28,var(--tw-border-opacity))!important;border-right-color:rgba(185,28,28,var(--tw-border-opacity))!important}.share-dialog-wrapper .rightsSelector .ng-select-container .ng-value-container .ng-placeholder{font-size:12px;margin-top:3px}.share-dialog-wrapper .selectorsWrapper .dep-label,.share-dialog-wrapper .selectorsWrapper .users-label{@apply text-base font-bold mb-0;}\n"], components: [{ type: i8.SelectUsersByDepartmentsComponent, selector: "app-select-users-by-departments", inputs: ["display", "depLabel", "userLabel", "allowMultipleUsers"], outputs: ["formChanged"] }, { type: i9.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.AvatarComponent, selector: "cts-avatar", inputs: ["user"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i12.SetRtlDirective, selector: "[SetRtl]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }], pipes: { "translate": i16.TranslatePipe, "localizedDate": i17.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
280
|
+
ShareDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ShareDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.FormBuilder }, { token: i3.SharedDocsService }, { token: i4.CustomToastrService }, { token: i5.TranslationService }, { token: i6.NuxeoService }, { token: i7.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
281
|
+
ShareDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: ShareDialogComponent, selector: "app-share-dialog", ngImport: i0, template: "<form [formGroup]=\"shareForm\" class=\"h-full p-5 overflow-auto\" SetRtl>\r\n\r\n <div class=\"flex flex-col justify-between h-full\">\r\n <!--Form Section-->\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\">\r\n {{ \"share.shareDialogTitle\" | translate }}\r\n </span>\r\n <div class=\"mt-5 selectorsWrapper\">\r\n <app-select-users-by-departments\r\n formControlName=\"depAnditsUsers\"\r\n [allowMultipleUsers]= \"true\"\r\n [userLabel]=\"'share.users' | translate\"\r\n [depLabel]=\"'share.Dep' | translate\"\r\n [display]=\"'column'\">\r\n </app-select-users-by-departments>\r\n </div>\r\n <div *ngIf=\"forbiddenUsers.length\" class=\"flex\">\r\n <ng-container *ngFor=\"let p of forbiddenUsers; let i as index\">\r\n <span class=\"text-red-500 text-base\">\r\n {{p}} \r\n </span>\r\n </ng-container>\r\n <span class=\"text-red-500 text-base\">\r\n <p *ngIf=\"forbiddenUsers.length == 1\">\r\n {{ \"share.single_forbidden\" | translate }}\r\n </p>\r\n <p *ngIf=\"forbiddenUsers.length > 1\">\r\n {{ \"share.multi_forbidden\" | translate }}\r\n </p>\r\n </span>\r\n </div>\r\n <div *ngIf=\"sameCurrentUser\">\r\n <span class=\"text-red-500 text-base\">\r\n {{ \"share.shareWithLoggedInUser\" | translate }}\r\n </span>\r\n </div>\r\n <div *ngIf=\"isSharedBefore.length\" class=\"flex\">\r\n <span class=\"text-red-500 text-base\">\r\n {{ \"share.share_exists\" | translate }}\r\n <ng-container *ngFor=\"let p of isSharedBefore\">\r\n {{p}}\r\n </ng-container>\r\n {{ \"share.before\" | translate }}\r\n </span>\r\n </div>\r\n <div class=\"mt-4 rightsSelector\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"share.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\" \r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n formControlName=\"rights\"\r\n (change)=\"setRight($event)\"\r\n >\r\n </ng-select>\r\n </div>\r\n <div *ngIf=\"sharedList.length\" class=\"mt-4\">\r\n <div>\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"share.fileUrl\" | translate }}\r\n </label>\r\n <div class=\"flex relative\">\r\n <input \r\n #fileUrl\r\n [value]=\"shareableUrl\"\r\n disabled\r\n class=\"appearance-none block w-full bg-accent-100 text-gray-700 border border-gray-200 rounded py-2.5 px-4 \r\n leading-tight focus:outline-none focus:bg-white focus:border-gray-500\"\r\n type=\"text\"\r\n >\r\n <button class=\"absolute pt-2.5 bg-accent-100\"\r\n [matTooltip] = \"'BUTTONS.COPY' | translate\"\r\n [ngClass]=\"(locale === 'en') ? 'right-2' : 'left-2'\"\r\n [cdkCopyToClipboard]=\"fileUrl.value\"\r\n (click)=\"copy()\">\r\n <mat-icon svgIcon=\"mat_solid:content_copy\" class=\"icon-size-6\"></mat-icon>\r\n </button>\r\n <div *ngIf=\"copied\" class=\"flex absolute justify-around w-24 -mt-10 border \r\n border-red-700 h-7 rounded bg-gray-200\"\r\n [ngClass]=\"(locale === 'en') ? 'right-0' : 'left-0'\">\r\n <div class=\"w-3 h-3 justify-center bg-gray-200 transform rotate-45 border\r\n mt-5 borders-color\">\r\n </div>\r\n <span class=\"absolute font-extralight\">{{ \"share.copied\" | translate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Shares Section-->\r\n <div *ngIf=\"sharedList.length\">\r\n <div class=\"flex flex-row justify-between h-7 border-b-2 border-accent-100 mt-2\">\r\n <span class=\"text-base font-bold\">\r\n {{ \"share.shares\" | translate }}\r\n </span>\r\n <button mat-icon-button *permission=\"{name: 'canRemoveShare', entity: selectedItem.entity}\"\r\n matTooltip=\"{{'share.Rm_All_shares' | translate}}\" (click)=\"openDialog('Rem_ALL_shares')\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:trash'\"\r\n [ngClass]=\"(locale === 'en') ? 'mr-2' : 'ml-2'\"></mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"h-52 overflow-y-auto\">\r\n <div class=\"flex flex-row justify-between mt-2.5\">\r\n <span class=\"w-1/2 text-base font-bold\">{{\"share.shareWith\" | translate}}</span>\r\n <span class=\"w-1/4 text-base font-bold\">{{\"share.share_date\" | translate}}</span>\r\n <span class=\"w-1/4 text-base font-bold\">{{\"share.permission\" | translate}}</span>\r\n <span> </span>\r\n </div>\r\n <ng-container *ngFor=\"let d of sharedList\">\r\n <div class=\"flex flex-row justify-between mt-2.5\">\r\n <div class=\"flex flex-row w-1/2\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\">\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: d.user.properties?.firstName,\r\n lastName: d.user.properties?.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col -mt-2 px-2 break-all\">\r\n <span>{{d.user.fullName}}</span>\r\n <span>{{d.user.properties.email}}</span>\r\n </div>\r\n </div>\r\n <div class=\"w-1/4 mt-1.5 break-all px-2.5\">\r\n <span>{{d.sharedDate | localizedDate:\"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')}}</span>\r\n </div>\r\n <div class=\"w-1/4 mt-1.5 break-all px-4\">\r\n <span>{{\"rights.\" + d.sharedMode | translate}}</span>\r\n </div>\r\n <div class=\"mt-1.5\">\r\n <button mat-icon-button *permission=\"{name: 'canRemoveShare', entity: selectedItem.entity}\"\r\n matTooltip=\"{{'share.Rm_custom_share' | translate}}\"\r\n (click)=\"openDialog('Rem_custom_share',d.user.properties.username,d.sharedMode)\">\r\n <i class=\"ms-Icon ms-Icon--ChromeClose\" aria-hidden=\"true\"\r\n [ngClass]=\"(locale === 'en') ? 'mr-2.5' : 'ml-2.5'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <!--Buttons Section-->\r\n <div class=\"flex flex-row justify-between mt-2 py-1\">\r\n <button class=\"submission-button\" [disabled]=\"disabled\" (click)=\"share()\">\r\n {{ \"share.shareButton\" | translate }}\r\n </button>\r\n <button class=\"cancelation-button\" (click)=\"close()\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</form>", styles: [".share-dialog-wrapper .mat-dialog-container{overflow:hidden;padding:0!important}.share-dialog-wrapper .borders-color{--tw-border-opacity: 1;border-bottom-color:rgba(185,28,28,var(--tw-border-opacity))!important;border-right-color:rgba(185,28,28,var(--tw-border-opacity))!important}.share-dialog-wrapper .rightsSelector .ng-select-container .ng-value-container .ng-placeholder{font-size:12px;margin-top:3px}.share-dialog-wrapper .selectorsWrapper .dep-label,.share-dialog-wrapper .selectorsWrapper .users-label{@apply text-base font-bold mb-0;}\n"], components: [{ type: i8.SelectUsersByDepartmentsComponent, selector: "app-select-users-by-departments", inputs: ["display", "depLabel", "userLabel", "allowMultipleUsers"], outputs: ["formChanged"] }, { type: i9.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.AvatarComponent, selector: "cts-avatar", inputs: ["user"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i12.SetRtlDirective, selector: "[SetRtl]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }], pipes: { "translate": i16.TranslatePipe, "localizedDate": i17.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: ShareDialogComponent, decorators: [{
|
|
283
283
|
type: Component,
|
|
284
284
|
args: [{
|
|
285
285
|
selector: 'app-share-dialog',
|
|
@@ -291,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
291
291
|
type: Inject,
|
|
292
292
|
args: [MAT_DIALOG_DATA]
|
|
293
293
|
}] }, { type: i1.MatDialogRef }, { type: i1.MatDialog }, { type: i2.FormBuilder }, { type: i3.SharedDocsService }, { type: i4.CustomToastrService }, { type: i5.TranslationService }, { type: i6.NuxeoService }, { type: i7.UserPreferencesService }]; } });
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaGFyZS1kaWFsb2cvc2hhcmUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaGFyZS1kaWFsb2cvc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3RELE9BQU8sRUFBMEIsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVU3SCxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixZQUE0QyxJQUFJLEVBQ3RDLFNBQTZDLEVBQzdDLE1BQWtCLEVBQ2xCLEVBQWUsRUFDZixNQUF5QixFQUN6QixhQUFrQyxFQUNsQyxnQkFBb0MsRUFDcEMsWUFBMEIsRUFDMUIscUJBQTZDOztRQVJYLFNBQUksR0FBSixJQUFJLENBQUE7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFDN0MsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQTNCdkQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBQ3BDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBVzFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLElBQUksQ0FBQyxxQkFBcUI7aUJBQ3ZCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7aUJBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1o7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUNoRCxLQUFLLEVBQUUsTUFBTTthQUNkO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlO2dCQUM3RCxLQUFLLEVBQUUsV0FBVzthQUNuQjtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFdBQVcsMENBQUUsSUFBSSwwQ0FBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzdFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUMvRixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUN4SDthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO2FBQ3pCO2lCQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUE7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUE7YUFDeEI7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLDBCQUEwQixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsOEJBQThCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQzlNO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hFLElBQUksR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssRUFBRTtnQkFDZCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUN6QixDQUFDLENBQUMsSUFBSSxDQUFBO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxLQUFLO1FBQzFCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7YUFDN0I7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDdEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBSztRQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUM5SSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixJQUFJLE9BQU8sR0FBRztnQkFDWixRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRO2dCQUNyQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDL0QsQ0FBQTtZQUNELEdBQUcsQ0FBQyxJQUFJLENBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNyQixPQUFPLEVBQUUsaUJBQUcsT0FBTyxJQUFLLEdBQUcsRUFBRyxDQUFBO1lBQ2hDLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUN4RDtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLE9BQU8sR0FBRztZQUNaLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7U0FDekMsQ0FBQTtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQzFILElBQUksR0FBRztvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztnQkFDckYsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUM7U0FDRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFBO1NBQ25FO2FBQ0k7WUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7bUJBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksUUFBUSxFQUFFO2dCQUNqRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO3dCQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7d0JBQzFELENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7cUJBQ3JDO2dCQUNILENBQUMsQ0FBQyxDQUFBO2FBQ0g7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDMUQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUyxFQUFFLFVBQVc7UUFDN0MsSUFBSSxPQUFZLENBQUM7UUFDakIsQ0FBQyxZQUFZLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLDhCQUE4QjtZQUM1RSxDQUFDLENBQUMsT0FBTyxHQUFHLGdDQUFnQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFHO1lBQ2pFLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNGLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO2dCQUM3RCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLGFBQWEsRUFBRyxnQkFBZ0I7Z0JBQ2hDLFlBQVksRUFBRyxnQkFBZ0I7YUFDbEM7WUFDRCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUE7UUFDRix1REFBdUQ7UUFDdkQsTUFBTTtRQUNOLHlCQUF5QjtRQUN6QixxRUFBcUU7UUFDckUsdURBQXVEO1FBQ3ZELGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsc0JBQXNCO1FBQ3RCLGtFQUFrRTtRQUNsRSx3QkFBd0I7UUFDeEIsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsa0VBQWtFO1FBQ2xFLFVBQVU7UUFDVixRQUFRO1FBQ1IsTUFBTTtRQUNOLEtBQUs7UUFDTCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxZQUFZLEtBQUssZ0JBQWdCLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTs0QkFDbEgsSUFBSSxHQUFHLEVBQUU7Z0NBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLCtCQUErQixDQUFDLENBQUM7Z0NBQ3ZGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzs2QkFDbkI7d0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsNEJBQTRCLENBQUMsQ0FBQzt3QkFDbEYsQ0FBQyxDQUFDO3FCQUNELENBQUMsQ0FBQTtpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLE9BQU8sR0FBRzt3QkFDWixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsVUFBVTtxQkFDakIsQ0FBQTtvQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQzt3QkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7NEJBQzFGLElBQUksR0FBRyxFQUFFO2dDQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dDQUMxRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7NkJBQ25CO3dCQUNILENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTs0QkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDLENBQUM7d0JBQ3JGLENBQUMsQ0FBQztxQkFDSCxDQUFDLENBQUE7aUJBQ0g7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDOUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDNUQsQ0FBQyxDQUFDLENBQUE7aUJBQ0g7WUFDSCxDQUFDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7a0hBelFVLG9CQUFvQixrQkF3QlgsZUFBZTtzR0F4QnhCLG9CQUFvQix3RENyQmpDLG1yT0E4Sk87NEZEeklNLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzswQkF5QmMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSwgVXNlclByZWZlcmVuY2VWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hhcmVkRG9jc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvc2hhcmVkLWRvY3Muc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2hhcmUtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtVHlwZTogYW55O1xyXG4gIHNoYXJlRm9ybTogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBteVNoYXJlZGF0YTogYW55ID0gW107XHJcbiAgc2hhcmVkTGlzdCA9IFtdO1xyXG4gIHNoYXJlZExpc3RVc2VyID0gW107XHJcbiAgZGVwVXNlcnMgPSBbXTtcclxuICBhbGxvd1VzZXJzVG9TaGFyZSA9IFtdO1xyXG4gIGZvcmJpZGRlblVzZXJzID0gW107XHJcbiAgaXNTaGFyZWRCZWZvcmUgPSBbXTtcclxuICBjdXJyZW50VXNlcjogYW55O1xyXG4gIHNhbWVDdXJyZW50VXNlciA9IGZhbHNlO1xyXG4gIGRpc2FibGVkID0gdHJ1ZTtcclxuICByaWdodHMgPSBbXTtcclxuICBjb3BpZWQgPSBmYWxzZTtcclxuICBzaGFyZWFibGVVcmwgPSAnJztcclxuICB0eXBlVG9Vcmw6IGFueTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgbG9jYWxlO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSxcclxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2hhcmVEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBkaWFsb2cgOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgc2hhcmVkOiBTaGFyZWREb2NzU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9zdGVyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2VcclxuICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2NhbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xyXG4gICAgICAgICAgKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IHRoaXMuaXNBcmFiaWMgPSBmYWxzZSA6IHRoaXMuaXNBcmFiaWMgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yaWdodHMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IFwiUmVhZFwiIDogXCLZgtix2KfYodipXCIsXHJcbiAgICAgICAgdmFsdWU6IFwiUmVhZFwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IFwiUmVhZFdyaXRlXCIgOiBcItmC2LHYp9ih2Kkg2Ygg2KrYudiv2YrZhFwiLFxyXG4gICAgICAgIHZhbHVlOiBcIlJlYWRXcml0ZVwiXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5udXhlb1NlcnZpY2U/Lm51eGVvQ2xpZW50Py51c2VyPy5wcm9wZXJ0aWVzLnVzZXJuYW1lO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBkYXRhLnNlbGVjdGVkSXRlbTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSA9PT0gXCJGb2xkZXJcIiB8fCB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSA9PT0gXCJEbXNGb2xkZXJcIikge1xyXG4gICAgICB0aGlzLnNoYXJlYWJsZVVybCA9IGAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7d2luZG93LmxvY2F0aW9uLmhvc3R9L2Rtcy9maWxlcz9pZD0ke3RoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWR9YFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1UeXBlID0gdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2ZpbGU6Y29udGVudCddWydtaW1lLXR5cGUnXTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtVHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ2ltYWdlJ1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtVHlwZS5pbmNsdWRlcygndmlkZW8nKSkge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ3ZpZGVvJ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ2ZpbGUnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaGFyZWFibGVVcmwgPSBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fS9kbXMvc2hhcmUodmlld2VyOnZpZXcvJHt0aGlzLnR5cGVUb1VybH0vJHt0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudWlkfSk/bG9jYXRpb249L3NoYXJlJmZvcm1UeXBlPSR7dGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGV9YFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNoYXJlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBkZXBBbmRpdHNVc2VyczogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgcmlnaHRzOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNoYXJlRm9ybS5nZXQoJ2RlcEFuZGl0c1VzZXJzJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzPy51c2Vycykge1xyXG4gICAgICAgIChKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkVXNlcnMpICE9IEpTT04uc3RyaW5naWZ5KHJlcy51c2VycykpXHJcbiAgICAgICAgICA/IHRoaXMuc2V0VXNlcihyZXMudXNlcnMpXHJcbiAgICAgICAgICA6IG51bGxcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc2hhcmVGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICB9XHJcbiAgcmVtb3ZlRnJvbUZvcmJpZGRlbkFycihldmVudCkge1xyXG4gICAgKHRoaXMuZm9yYmlkZGVuVXNlcnMuaW5jbHVkZXMoZXZlbnQubGFiZWwpKSA/XHJcbiAgICAgIHRoaXMuZm9yYmlkZGVuVXNlcnMuc3BsaWNlKHRoaXMuZm9yYmlkZGVuVXNlcnMuaW5kZXhPZihldmVudC5sYWJlbCksIDEpIDogJyc7XHJcbiAgfVxyXG4gIGNvcHkoKSB7XHJcbiAgICB0aGlzLmNvcGllZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb3BpZWQgPSBmYWxzZTtcclxuICAgIH0sIDIwMDApXHJcbiAgfVxyXG4gIHNldFVzZXIodXNlcnMpIHtcclxuICAgIHRoaXMuaXNTaGFyZWRCZWZvcmUgPSBbXTtcclxuICAgIHRoaXMuc2FtZUN1cnJlbnRVc2VyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB1c2VycztcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LnByb3BlcnRpZXMudXNlcm5hbWUgPT09IHRoaXMuY3VycmVudFVzZXIpIHtcclxuICAgICAgICB0aGlzLnNhbWVDdXJyZW50VXNlciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2hhcmVkTGlzdFVzZXIuaW5jbHVkZXMoZWxlbWVudC5wcm9wZXJ0aWVzLnVzZXJuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuaXNTaGFyZWRCZWZvcmUucHVzaChlbGVtZW50LnByb3BlcnRpZXMuZnVsbE5hbWUpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRSaWdodChldmVudCkge1xyXG4gICAgKCF0aGlzLnNhbWVDdXJyZW50VXNlciAmJiAhdGhpcy5pc1NoYXJlZEJlZm9yZS5sZW5ndGggJiYgdGhpcy5zaGFyZUZvcm0uZ2V0KCdyaWdodHMnKS52YWx1ZSkgPyB0aGlzLmRpc2FibGVkID0gZmFsc2UgOiB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSWZDYW5WaWV3U2VjcmV0KCkge1xyXG4gICAgdGhpcy5mb3JiaWRkZW5Vc2VycyA9IFtdO1xyXG4gICAgbGV0IGFyciA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzLm1hcChlbGVtZW50ID0+IHtcclxuICAgICAgbGV0IGNvbnRleHQgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGVsZW1lbnQucHJvcGVydGllcy51c2VybmFtZSxcclxuICAgICAgICBzZWNyZWN5TGV2ZWw6IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS5wcm9wZXJ0aWVzLnNlY3JlY3lMZXZlbFxyXG4gICAgICB9XHJcbiAgICAgIGFyci5wdXNoKFxyXG4gICAgICAgIHRoaXMuc2hhcmVkLmNhblNlZVNlY3JldGRvY3MoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIHN3aXRjaE1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHsgZWxlbWVudCwgLi4ucmVzIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfSlcclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGFycikucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJlcy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgaWYgKCFlLmNhblZpZXdTZWNyZXRGaWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcmJpZGRlblVzZXJzLnB1c2goZS5lbGVtZW50LnByb3BlcnRpZXMuZnVsbE5hbWUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5mb3JiaWRkZW5Vc2VycylcclxuICAgICAgfSkpXHJcbiAgfVxyXG4gIGRvU2hhcmUodXNlcnMpIHtcclxuICAgIGxldCBjb250ZXh0ID0ge1xyXG4gICAgICB1c2VyczogdXNlcnMsXHJcbiAgICAgIG1vZGU6IHRoaXMuc2hhcmVGb3JtLmdldCgncmlnaHRzJykudmFsdWVcclxuICAgIH1cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFt0aGlzLnNoYXJlZC5zaGFyZURvY3VtZW50V2l0aFVzZXIoY29udGV4dCwgdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKVxyXG4gICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5zaGFyZV9Eb2Nfc3VjY2Vzc1wiKTtcclxuICAgICAgdGhpcy5kZXBVc2VycyA9IFtdO1xyXG4gICAgICB0aGlzLnNoYXJlRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRNeVNoYXJlKCk7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsICdUT0FTVEVSLnNoYXJlX0RvY19mYWlsJyk7XHJcbiAgICB9KVxyXG4gICAgXSlcclxuICB9XHJcblxyXG4gIHNoYXJlKCkge1xyXG4gICAgaWYgKHRoaXMuc2hhcmVGb3JtLmludmFsaWQpIHtcclxuICAgICAgYWxlcnQodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJzaGFyZS5zZWxlY3RfdXNlcl90b19zaGFyZVwiKSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmFsbG93VXNlcnNUb1NoYXJlID0gW107XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllcy5zZWNyZWN5TGV2ZWxcclxuICAgICAgICAmJiB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllcy5zZWNyZWN5TGV2ZWwgIT0gXCJOb3JtYWxcIikge1xyXG4gICAgICAgIHRoaXMuY2hlY2tJZkNhblZpZXdTZWNyZXQoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghcmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93VXNlcnNUb1NoYXJlLnB1c2goZWxlbWVudC5wcm9wZXJ0aWVzLnVzZXJuYW1lKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5kb1NoYXJlKHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUucHVzaChlbGVtZW50LnByb3BlcnRpZXMudXNlcm5hbWUpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5kb1NoYXJlKHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5EaWFsb2coZnVuY3Rpb25Ub0RvLCB1c2VybmFtZT8sIHNoYXJlZE1vZGU/KSB7XHJcbiAgICBsZXQgbWVzc2FnZTogYW55O1xyXG4gICAgKGZ1bmN0aW9uVG9EbyA9PT0gXCJSZW1fQUxMX3NoYXJlc1wiKSA/IG1lc3NhZ2UgPSBcImNvbmZpcm1EaWFsb2cuUmVtX0FsbF9zaGFyZXNcIlxyXG4gICAgICA6IG1lc3NhZ2UgPSBcImNvbmZpcm1EaWFsb2cuUmVtX2N1c3RvbV9zaGFyZVwiO1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCAsIHtcclxuICAgICAgd2lkdGg6ICc1MTBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImNvbmZpcm1EaWFsb2cuY29uZmlybVwiKSxcclxuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UpLFxyXG4gICAgICAgICAgY29uZmlybUJ1dHRvbiA6IGBCVVRUT05TLlJlbW92ZWAsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b24gOiBcIkJVVFRPTlMuQ2FuY2VsXCJcclxuICAgICAgfSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgfSlcclxuICAgIC8vIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZnVzZUNvbmZpcm1hdGlvblNlcnZpY2Uub3BlbihcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIGRpc21pc3NpYmxlOiB0cnVlLFxyXG4gICAgLy8gICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImNvbmZpcm1EaWFsb2cuY29uZmlybVwiKSxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSxcclxuICAgIC8vICAgICBhY3Rpb25zOiB7XHJcbiAgICAvLyAgICAgICBjb25maXJtOiB7XHJcbiAgICAvLyAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAvLyAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcIkJVVFRPTlMuUmVtb3ZlXCIpLFxyXG4gICAgLy8gICAgICAgICBjb2xvcjogXCJ3YXJuXCJcclxuICAgIC8vICAgICAgIH0sXHJcbiAgICAvLyAgICAgICBjYW5jZWw6IHtcclxuICAgIC8vICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgIC8vICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiQlVUVE9OUy5DYW5jZWxcIiksXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyApO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGlmIChmdW5jdGlvblRvRG8gPT09IFwiUmVtX0FMTF9zaGFyZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMuc2hhcmVkLnJlbW92ZUFsbFNoYXJlc2ZvckRvY3ModGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ3N1Y2Nlc3MnLCAnVE9BU1RFUi5TVUNDRVNTJywgXCJUT0FTVEVSLlJtX0FsbF9TaGFyZXNfc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5SbV9BbGxfU2hhcmVzX2ZhaWwnKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBdKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgY29udGV4dCA9IHtcclxuICAgICAgICAgICAgdXNlcjogdXNlcm5hbWUsXHJcbiAgICAgICAgICAgIG1vZGU6IHNoYXJlZE1vZGVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFtcclxuICAgICAgICAgICAgdGhpcy5zaGFyZWQucmVtb3ZlQ3VzdG9tU2hhcmUoY29udGV4dCwgdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5SZW1fY3VzdG9tX3NoYXJlX3N1Y2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5SZW1fY3VzdG9tX3NoYXJlX2ZhaWwnKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIF0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE15U2hhcmUoKSB7XHJcbiAgICB0aGlzLnNoYXJlZExpc3RVc2VyID0gdGhpcy5zaGFyZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbXHJcbiAgICAgIHRoaXMuc2hhcmVkLmdldFNoYXJlc0J5TWUodGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCwgdHJ1ZSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnNoYXJlZExpc3QgPSByZXM7XHJcbiAgICAgICAgaWYgKHRoaXMuc2hhcmVkTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNoYXJlZExpc3RVc2VyLnB1c2goZWxlbWVudC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWUpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzaGFyZUZvcm1cIiBjbGFzcz1cImgtZnVsbCBwLTUgb3ZlcmZsb3ctYXV0b1wiIFNldFJ0bD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGgtZnVsbFwiPlxyXG4gICAgPCEtLUZvcm0gU2VjdGlvbi0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1wZXJtc2lvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCI+XHJcbiAgICAgICAge3sgXCJzaGFyZS5zaGFyZURpYWxvZ1RpdGxlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNSBzZWxlY3RvcnNXcmFwcGVyXCI+XHJcbiAgICAgICAgPGFwcC1zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudHNcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlcEFuZGl0c1VzZXJzXCJcclxuICAgICAgICAgIFthbGxvd011bHRpcGxlVXNlcnNdPSBcInRydWVcIlxyXG4gICAgICAgICAgW3VzZXJMYWJlbF09XCInc2hhcmUudXNlcnMnICB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBbZGVwTGFiZWxdPVwiJ3NoYXJlLkRlcCcgIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFtkaXNwbGF5XT1cIidjb2x1bW4nXCI+XHJcbiAgICAgICAgPC9hcHAtc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnRzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcmJpZGRlblVzZXJzLmxlbmd0aFwiIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHAgb2YgZm9yYmlkZGVuVXNlcnM7IGxldCBpIGFzIGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAge3twfX0mbmJzcDtcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICA8cCAqbmdJZj1cImZvcmJpZGRlblVzZXJzLmxlbmd0aCA9PSAxXCI+XHJcbiAgICAgICAgICAgIHt7IFwic2hhcmUuc2luZ2xlX2ZvcmJpZGRlblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgIDxwICpuZ0lmPVwiZm9yYmlkZGVuVXNlcnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICB7eyBcInNoYXJlLm11bHRpX2ZvcmJpZGRlblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzYW1lQ3VycmVudFVzZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIHt7IFwic2hhcmUuc2hhcmVXaXRoTG9nZ2VkSW5Vc2VyXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNTaGFyZWRCZWZvcmUubGVuZ3RoXCIgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAge3sgXCJzaGFyZS5zaGFyZV9leGlzdHNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwIG9mIGlzU2hhcmVkQmVmb3JlXCI+XHJcbiAgICAgICAgICAgICAge3twfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIHt7IFwic2hhcmUuYmVmb3JlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC00IHJpZ2h0c1NlbGVjdG9yXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtYm9sZCBtYi0wXCI+XHJcbiAgICAgICAgICB7eyBcInNoYXJlLlJpZ2h0c1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgXHJcbiAgICAgICAgICBbaXRlbXNdPVwicmlnaHRzXCIgXHJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXHJcbiAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucmlnaHRzUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJpZ2h0c1wiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNldFJpZ2h0KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaGFyZWRMaXN0Lmxlbmd0aFwiIGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgICAge3sgXCJzaGFyZS5maWxlVXJsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgI2ZpbGVVcmxcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2hhcmVhYmxlVXJsXCJcclxuICAgICAgICAgICAgICBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwZWFyYW5jZS1ub25lIGJsb2NrIHctZnVsbCAgYmctYWNjZW50LTEwMCB0ZXh0LWdyYXktNzAwIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCBweS0yLjUgcHgtNCBcclxuICAgICAgICAgICAgICBsZWFkaW5nLXRpZ2h0IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpiZy13aGl0ZSBmb2N1czpib3JkZXItZ3JheS01MDBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWJzb2x1dGUgcHQtMi41IGJnLWFjY2VudC0xMDBcIlxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXSA9IFwiJ0JVVFRPTlMuQ09QWScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdyaWdodC0yJyA6ICdsZWZ0LTInXCJcclxuICAgICAgICAgICAgICBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cImZpbGVVcmwudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5KClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1hdF9zb2xpZDpjb250ZW50X2NvcHlcIiBjbGFzcz1cImljb24tc2l6ZS02XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb3BpZWRcIiBjbGFzcz1cImZsZXggYWJzb2x1dGUganVzdGlmeS1hcm91bmQgdy0yNCAtbXQtMTAgYm9yZGVyIFxyXG4gICAgICAgICAgICBib3JkZXItcmVkLTcwMCBoLTcgcm91bmRlZCBiZy1ncmF5LTIwMFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdyaWdodC0wJyA6ICdsZWZ0LTAnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMyBoLTMganVzdGlmeS1jZW50ZXIgYmctZ3JheS0yMDAgdHJhbnNmb3JtIHJvdGF0ZS00NSBib3JkZXJcclxuICAgICAgICAgICAgICAgbXQtNSBib3JkZXJzLWNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBmb250LWV4dHJhbGlnaHRcIj57eyBcInNoYXJlLmNvcGllZFwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLVNoYXJlcyBTZWN0aW9uLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hhcmVkTGlzdC5sZW5ndGhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGgtNyBib3JkZXItYi0yIGJvcmRlci1hY2NlbnQtMTAwIG10LTJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj5cclxuICAgICAgICAgIHt7IFwic2hhcmUuc2hhcmVzXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKnBlcm1pc3Npb249XCJ7bmFtZTogJ2NhblJlbW92ZVNoYXJlJywgZW50aXR5OiBzZWxlY3RlZEl0ZW0uZW50aXR5fVwiXHJcbiAgICAgICAgICBtYXRUb29sdGlwPVwie3snc2hhcmUuUm1fQWxsX3NoYXJlcycgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJvcGVuRGlhbG9nKCdSZW1fQUxMX3NoYXJlcycpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19vdXRsaW5lOnRyYXNoJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCIobG9jYWxlID09PSAnZW4nKSAgPyAnbXItMicgOiAnbWwtMidcIj48L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImgtNTIgb3ZlcmZsb3cteS1hdXRvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIG10LTIuNVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEvMiB0ZXh0LWJhc2UgZm9udC1ib2xkXCI+e3tcInNoYXJlLnNoYXJlV2l0aFwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS80IHRleHQtYmFzZSBmb250LWJvbGRcIj57e1wic2hhcmUuc2hhcmVfZGF0ZVwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS80IHRleHQtYmFzZSBmb250LWJvbGRcIj57e1wic2hhcmUucGVybWlzc2lvblwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj4mbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZCBvZiBzaGFyZWRMaXN0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtMi41XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHctMS8yXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMCB3LTggaC04IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgIDxjdHMtYXZhdGFyIFt1c2VyXT1cIntcclxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBkLnVzZXIucHJvcGVydGllcz8uZmlyc3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgICBsYXN0TmFtZTogZC51c2VyLnByb3BlcnRpZXM/Lmxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9jdHMtYXZhdGFyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIC1tdC0yIHB4LTIgYnJlYWstYWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2QudXNlci5mdWxsTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tkLnVzZXIucHJvcGVydGllcy5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS80IG10LTEuNSBicmVhay1hbGwgcHgtMi41XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3tkLnNoYXJlZERhdGUgIHwgbG9jYWxpemVkRGF0ZTpcImRkIE1NTU0geXl5eVwiOihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzQgbXQtMS41IGJyZWFrLWFsbCBweC00XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3tcInJpZ2h0cy5cIiArIGQuc2hhcmVkTW9kZSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEuNVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpwZXJtaXNzaW9uPVwie25hbWU6ICdjYW5SZW1vdmVTaGFyZScsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7J3NoYXJlLlJtX2N1c3RvbV9zaGFyZScgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRpYWxvZygnUmVtX2N1c3RvbV9zaGFyZScsZC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWUsZC5zaGFyZWRNb2RlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLUNocm9tZUNsb3NlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdtci0yLjUnIDogJ21sLTIuNSdcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tQnV0dG9ucyBTZWN0aW9uLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtMiBweS0xXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzaGFyZSgpXCI+XHJcbiAgICAgICAge3sgXCJzaGFyZS5zaGFyZUJ1dHRvblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICB7eyBcIkJVVFRPTlMuQ2FuY2VsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaGFyZS1kaWFsb2cvc2hhcmUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaGFyZS1kaWFsb2cvc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQWUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFFcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3RELE9BQU8sRUFBMEIsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVU3SCxNQUFNLE9BQU8sb0JBQW9CO0lBd0IvQixZQUE0QyxJQUFJLEVBQ3RDLFNBQTZDLEVBQzdDLE1BQWtCLEVBQ2xCLEVBQWUsRUFDZixNQUF5QixFQUN6QixhQUFrQyxFQUNsQyxnQkFBb0MsRUFDcEMsWUFBMEIsRUFDMUIscUJBQTZDOztRQVJYLFNBQUksR0FBSixJQUFJLENBQUE7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFDN0MsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQTNCdkQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBQ3BDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBVzFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLElBQUksQ0FBQyxxQkFBcUI7aUJBQ3ZCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7aUJBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1o7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUNoRCxLQUFLLEVBQUUsTUFBTTthQUNkO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlO2dCQUM3RCxLQUFLLEVBQUUsV0FBVzthQUNuQjtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFdBQVcsMENBQUUsSUFBSSwwQ0FBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQzdFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUMvRixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtTQUN4SDthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO2FBQ3pCO2lCQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUE7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUE7YUFDeEI7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLDBCQUEwQixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsOEJBQThCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQzlNO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hFLElBQUksR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssRUFBRTtnQkFDZCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUN6QixDQUFDLENBQUMsSUFBSSxDQUFBO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxLQUFLO1FBQzFCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7YUFDN0I7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDdEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBSztRQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUM5SSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMvQixJQUFJLE9BQU8sR0FBRztnQkFDWixRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRO2dCQUNyQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDL0QsQ0FBQTtZQUNELEdBQUcsQ0FBQyxJQUFJLENBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNyQixPQUFPLEVBQUUsaUJBQUcsT0FBTyxJQUFLLEdBQUcsRUFBRyxDQUFBO1lBQ2hDLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNyQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2lCQUN4RDtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLE9BQU8sR0FBRztZQUNaLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7U0FDekMsQ0FBQTtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQzFILElBQUksR0FBRztvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztnQkFDckYsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUM7U0FDRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFBO1NBQ25FO2FBQ0k7WUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVk7bUJBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksUUFBUSxFQUFFO2dCQUNqRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO3dCQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7d0JBQzFELENBQUMsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7cUJBQ3JDO2dCQUNILENBQUMsQ0FBQyxDQUFBO2FBQ0g7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDMUQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUyxFQUFFLFVBQVc7UUFDN0MsSUFBSSxPQUFZLENBQUM7UUFDakIsQ0FBQyxZQUFZLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLDhCQUE4QjtZQUM1RSxDQUFDLENBQUMsT0FBTyxHQUFHLGdDQUFnQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFHO1lBQ2pFLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNGLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO2dCQUM3RCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLGFBQWEsRUFBRyxnQkFBZ0I7Z0JBQ2hDLFlBQVksRUFBRyxnQkFBZ0I7YUFDbEM7WUFDRCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUE7UUFDRix1REFBdUQ7UUFDdkQsTUFBTTtRQUNOLHlCQUF5QjtRQUN6QixxRUFBcUU7UUFDckUsdURBQXVEO1FBQ3ZELGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsc0JBQXNCO1FBQ3RCLGtFQUFrRTtRQUNsRSx3QkFBd0I7UUFDeEIsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsa0VBQWtFO1FBQ2xFLFVBQVU7UUFDVixRQUFRO1FBQ1IsTUFBTTtRQUNOLEtBQUs7UUFDTCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxZQUFZLEtBQUssZ0JBQWdCLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTs0QkFDbEgsSUFBSSxHQUFHLEVBQUU7Z0NBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLCtCQUErQixDQUFDLENBQUM7Z0NBQ3ZGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzs2QkFDbkI7d0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsNEJBQTRCLENBQUMsQ0FBQzt3QkFDbEYsQ0FBQyxDQUFDO3FCQUNELENBQUMsQ0FBQTtpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLE9BQU8sR0FBRzt3QkFDWixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsVUFBVTtxQkFDakIsQ0FBQTtvQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQzt3QkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7NEJBQzFGLElBQUksR0FBRyxFQUFFO2dDQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO2dDQUMxRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7NkJBQ25CO3dCQUNILENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTs0QkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLCtCQUErQixDQUFDLENBQUM7d0JBQ3JGLENBQUMsQ0FBQztxQkFDSCxDQUFDLENBQUE7aUJBQ0g7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDOUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDNUQsQ0FBQyxDQUFDLENBQUE7aUJBQ0g7WUFDSCxDQUFDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7aUhBelFVLG9CQUFvQixrQkF3QlgsZUFBZTtxR0F4QnhCLG9CQUFvQix3RENyQmpDLG1yT0E4Sk87MkZEeklNLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzswQkF5QmMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSwgVXNlclByZWZlcmVuY2VWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hhcmVkRG9jc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvc2hhcmVkLWRvY3Muc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2hhcmUtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtVHlwZTogYW55O1xyXG4gIHNoYXJlRm9ybTogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkVXNlcnMgPSBbXTtcclxuICBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBteVNoYXJlZGF0YTogYW55ID0gW107XHJcbiAgc2hhcmVkTGlzdCA9IFtdO1xyXG4gIHNoYXJlZExpc3RVc2VyID0gW107XHJcbiAgZGVwVXNlcnMgPSBbXTtcclxuICBhbGxvd1VzZXJzVG9TaGFyZSA9IFtdO1xyXG4gIGZvcmJpZGRlblVzZXJzID0gW107XHJcbiAgaXNTaGFyZWRCZWZvcmUgPSBbXTtcclxuICBjdXJyZW50VXNlcjogYW55O1xyXG4gIHNhbWVDdXJyZW50VXNlciA9IGZhbHNlO1xyXG4gIGRpc2FibGVkID0gdHJ1ZTtcclxuICByaWdodHMgPSBbXTtcclxuICBjb3BpZWQgPSBmYWxzZTtcclxuICBzaGFyZWFibGVVcmwgPSAnJztcclxuICB0eXBlVG9Vcmw6IGFueTtcclxuICBpc0FyYWJpYyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgbG9jYWxlO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSxcclxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2hhcmVEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBkaWFsb2cgOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgc2hhcmVkOiBTaGFyZWREb2NzU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9zdGVyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2VcclxuICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2NhbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xyXG4gICAgICAgICAgKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IHRoaXMuaXNBcmFiaWMgPSBmYWxzZSA6IHRoaXMuaXNBcmFiaWMgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yaWdodHMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IFwiUmVhZFwiIDogXCLZgtix2KfYodipXCIsXHJcbiAgICAgICAgdmFsdWU6IFwiUmVhZFwiXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogKHRoaXMubG9jYWxlID09PSAnZW4nKSA/IFwiUmVhZFdyaXRlXCIgOiBcItmC2LHYp9ih2Kkg2Ygg2KrYudiv2YrZhFwiLFxyXG4gICAgICAgIHZhbHVlOiBcIlJlYWRXcml0ZVwiXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5udXhlb1NlcnZpY2U/Lm51eGVvQ2xpZW50Py51c2VyPy5wcm9wZXJ0aWVzLnVzZXJuYW1lO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBkYXRhLnNlbGVjdGVkSXRlbTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSA9PT0gXCJGb2xkZXJcIiB8fCB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSA9PT0gXCJEbXNGb2xkZXJcIikge1xyXG4gICAgICB0aGlzLnNoYXJlYWJsZVVybCA9IGAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7d2luZG93LmxvY2F0aW9uLmhvc3R9L2Rtcy9maWxlcz9pZD0ke3RoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWR9YFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1UeXBlID0gdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2ZpbGU6Y29udGVudCddWydtaW1lLXR5cGUnXTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtVHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ2ltYWdlJ1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtVHlwZS5pbmNsdWRlcygndmlkZW8nKSkge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ3ZpZGVvJ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudHlwZVRvVXJsID0gJ2ZpbGUnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaGFyZWFibGVVcmwgPSBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fS9kbXMvc2hhcmUodmlld2VyOnZpZXcvJHt0aGlzLnR5cGVUb1VybH0vJHt0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudWlkfSk/bG9jYXRpb249L3NoYXJlJmZvcm1UeXBlPSR7dGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGV9YFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNoYXJlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBkZXBBbmRpdHNVc2VyczogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgcmlnaHRzOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNoYXJlRm9ybS5nZXQoJ2RlcEFuZGl0c1VzZXJzJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzPy51c2Vycykge1xyXG4gICAgICAgIChKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkVXNlcnMpICE9IEpTT04uc3RyaW5naWZ5KHJlcy51c2VycykpXHJcbiAgICAgICAgICA/IHRoaXMuc2V0VXNlcihyZXMudXNlcnMpXHJcbiAgICAgICAgICA6IG51bGxcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc2hhcmVGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICB9XHJcbiAgcmVtb3ZlRnJvbUZvcmJpZGRlbkFycihldmVudCkge1xyXG4gICAgKHRoaXMuZm9yYmlkZGVuVXNlcnMuaW5jbHVkZXMoZXZlbnQubGFiZWwpKSA/XHJcbiAgICAgIHRoaXMuZm9yYmlkZGVuVXNlcnMuc3BsaWNlKHRoaXMuZm9yYmlkZGVuVXNlcnMuaW5kZXhPZihldmVudC5sYWJlbCksIDEpIDogJyc7XHJcbiAgfVxyXG4gIGNvcHkoKSB7XHJcbiAgICB0aGlzLmNvcGllZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb3BpZWQgPSBmYWxzZTtcclxuICAgIH0sIDIwMDApXHJcbiAgfVxyXG4gIHNldFVzZXIodXNlcnMpIHtcclxuICAgIHRoaXMuaXNTaGFyZWRCZWZvcmUgPSBbXTtcclxuICAgIHRoaXMuc2FtZUN1cnJlbnRVc2VyID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSB1c2VycztcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LnByb3BlcnRpZXMudXNlcm5hbWUgPT09IHRoaXMuY3VycmVudFVzZXIpIHtcclxuICAgICAgICB0aGlzLnNhbWVDdXJyZW50VXNlciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2hhcmVkTGlzdFVzZXIuaW5jbHVkZXMoZWxlbWVudC5wcm9wZXJ0aWVzLnVzZXJuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuaXNTaGFyZWRCZWZvcmUucHVzaChlbGVtZW50LnByb3BlcnRpZXMuZnVsbE5hbWUpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRSaWdodChldmVudCkge1xyXG4gICAgKCF0aGlzLnNhbWVDdXJyZW50VXNlciAmJiAhdGhpcy5pc1NoYXJlZEJlZm9yZS5sZW5ndGggJiYgdGhpcy5zaGFyZUZvcm0uZ2V0KCdyaWdodHMnKS52YWx1ZSkgPyB0aGlzLmRpc2FibGVkID0gZmFsc2UgOiB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSWZDYW5WaWV3U2VjcmV0KCkge1xyXG4gICAgdGhpcy5mb3JiaWRkZW5Vc2VycyA9IFtdO1xyXG4gICAgbGV0IGFyciA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJzLm1hcChlbGVtZW50ID0+IHtcclxuICAgICAgbGV0IGNvbnRleHQgPSB7XHJcbiAgICAgICAgdXNlcm5hbWU6IGVsZW1lbnQucHJvcGVydGllcy51c2VybmFtZSxcclxuICAgICAgICBzZWNyZWN5TGV2ZWw6IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS5wcm9wZXJ0aWVzLnNlY3JlY3lMZXZlbFxyXG4gICAgICB9XHJcbiAgICAgIGFyci5wdXNoKFxyXG4gICAgICAgIHRoaXMuc2hhcmVkLmNhblNlZVNlY3JldGRvY3MoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIHN3aXRjaE1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHsgZWxlbWVudCwgLi4ucmVzIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgfSlcclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGFycikucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJlcy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgaWYgKCFlLmNhblZpZXdTZWNyZXRGaWxlcykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcmJpZGRlblVzZXJzLnB1c2goZS5lbGVtZW50LnByb3BlcnRpZXMuZnVsbE5hbWUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5mb3JiaWRkZW5Vc2VycylcclxuICAgICAgfSkpXHJcbiAgfVxyXG4gIGRvU2hhcmUodXNlcnMpIHtcclxuICAgIGxldCBjb250ZXh0ID0ge1xyXG4gICAgICB1c2VyczogdXNlcnMsXHJcbiAgICAgIG1vZGU6IHRoaXMuc2hhcmVGb3JtLmdldCgncmlnaHRzJykudmFsdWVcclxuICAgIH1cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFt0aGlzLnNoYXJlZC5zaGFyZURvY3VtZW50V2l0aFVzZXIoY29udGV4dCwgdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKVxyXG4gICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5zaGFyZV9Eb2Nfc3VjY2Vzc1wiKTtcclxuICAgICAgdGhpcy5kZXBVc2VycyA9IFtdO1xyXG4gICAgICB0aGlzLnNoYXJlRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRNeVNoYXJlKCk7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsICdUT0FTVEVSLnNoYXJlX0RvY19mYWlsJyk7XHJcbiAgICB9KVxyXG4gICAgXSlcclxuICB9XHJcblxyXG4gIHNoYXJlKCkge1xyXG4gICAgaWYgKHRoaXMuc2hhcmVGb3JtLmludmFsaWQpIHtcclxuICAgICAgYWxlcnQodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJzaGFyZS5zZWxlY3RfdXNlcl90b19zaGFyZVwiKSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmFsbG93VXNlcnNUb1NoYXJlID0gW107XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllcy5zZWNyZWN5TGV2ZWxcclxuICAgICAgICAmJiB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllcy5zZWNyZWN5TGV2ZWwgIT0gXCJOb3JtYWxcIikge1xyXG4gICAgICAgIHRoaXMuY2hlY2tJZkNhblZpZXdTZWNyZXQoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghcmVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmFsbG93VXNlcnNUb1NoYXJlLnB1c2goZWxlbWVudC5wcm9wZXJ0aWVzLnVzZXJuYW1lKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5kb1NoYXJlKHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUucHVzaChlbGVtZW50LnByb3BlcnRpZXMudXNlcm5hbWUpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5kb1NoYXJlKHRoaXMuYWxsb3dVc2Vyc1RvU2hhcmUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5EaWFsb2coZnVuY3Rpb25Ub0RvLCB1c2VybmFtZT8sIHNoYXJlZE1vZGU/KSB7XHJcbiAgICBsZXQgbWVzc2FnZTogYW55O1xyXG4gICAgKGZ1bmN0aW9uVG9EbyA9PT0gXCJSZW1fQUxMX3NoYXJlc1wiKSA/IG1lc3NhZ2UgPSBcImNvbmZpcm1EaWFsb2cuUmVtX0FsbF9zaGFyZXNcIlxyXG4gICAgICA6IG1lc3NhZ2UgPSBcImNvbmZpcm1EaWFsb2cuUmVtX2N1c3RvbV9zaGFyZVwiO1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCAsIHtcclxuICAgICAgd2lkdGg6ICc1MTBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImNvbmZpcm1EaWFsb2cuY29uZmlybVwiKSxcclxuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1lc3NhZ2UpLFxyXG4gICAgICAgICAgY29uZmlybUJ1dHRvbiA6IGBCVVRUT05TLlJlbW92ZWAsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b24gOiBcIkJVVFRPTlMuQ2FuY2VsXCJcclxuICAgICAgfSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgfSlcclxuICAgIC8vIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZnVzZUNvbmZpcm1hdGlvblNlcnZpY2Uub3BlbihcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIGRpc21pc3NpYmxlOiB0cnVlLFxyXG4gICAgLy8gICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImNvbmZpcm1EaWFsb2cuY29uZmlybVwiKSxcclxuICAgIC8vICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtZXNzYWdlKSxcclxuICAgIC8vICAgICBhY3Rpb25zOiB7XHJcbiAgICAvLyAgICAgICBjb25maXJtOiB7XHJcbiAgICAvLyAgICAgICAgIHNob3c6IHRydWUsXHJcbiAgICAvLyAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcIkJVVFRPTlMuUmVtb3ZlXCIpLFxyXG4gICAgLy8gICAgICAgICBjb2xvcjogXCJ3YXJuXCJcclxuICAgIC8vICAgICAgIH0sXHJcbiAgICAvLyAgICAgICBjYW5jZWw6IHtcclxuICAgIC8vICAgICAgICAgc2hvdzogdHJ1ZSxcclxuICAgIC8vICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiQlVUVE9OUy5DYW5jZWxcIiksXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyApO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGlmIChmdW5jdGlvblRvRG8gPT09IFwiUmVtX0FMTF9zaGFyZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMuc2hhcmVkLnJlbW92ZUFsbFNoYXJlc2ZvckRvY3ModGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ3N1Y2Nlc3MnLCAnVE9BU1RFUi5TVUNDRVNTJywgXCJUT0FTVEVSLlJtX0FsbF9TaGFyZXNfc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5SbV9BbGxfU2hhcmVzX2ZhaWwnKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBdKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgY29udGV4dCA9IHtcclxuICAgICAgICAgICAgdXNlcjogdXNlcm5hbWUsXHJcbiAgICAgICAgICAgIG1vZGU6IHNoYXJlZE1vZGVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFtcclxuICAgICAgICAgICAgdGhpcy5zaGFyZWQucmVtb3ZlQ3VzdG9tU2hhcmUoY29udGV4dCwgdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5SZW1fY3VzdG9tX3NoYXJlX3N1Y2Nlc3NcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldE15U2hhcmUoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5SZW1fY3VzdG9tX3NoYXJlX2ZhaWwnKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIF0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE15U2hhcmUoKSB7XHJcbiAgICB0aGlzLnNoYXJlZExpc3RVc2VyID0gdGhpcy5zaGFyZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbXHJcbiAgICAgIHRoaXMuc2hhcmVkLmdldFNoYXJlc0J5TWUodGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCwgdHJ1ZSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnNoYXJlZExpc3QgPSByZXM7XHJcbiAgICAgICAgaWYgKHRoaXMuc2hhcmVkTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNoYXJlZExpc3RVc2VyLnB1c2goZWxlbWVudC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWUpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzaGFyZUZvcm1cIiBjbGFzcz1cImgtZnVsbCBwLTUgb3ZlcmZsb3ctYXV0b1wiIFNldFJ0bD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGgtZnVsbFwiPlxyXG4gICAgPCEtLUZvcm0gU2VjdGlvbi0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1wZXJtc2lvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCI+XHJcbiAgICAgICAge3sgXCJzaGFyZS5zaGFyZURpYWxvZ1RpdGxlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNSBzZWxlY3RvcnNXcmFwcGVyXCI+XHJcbiAgICAgICAgPGFwcC1zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudHNcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlcEFuZGl0c1VzZXJzXCJcclxuICAgICAgICAgIFthbGxvd011bHRpcGxlVXNlcnNdPSBcInRydWVcIlxyXG4gICAgICAgICAgW3VzZXJMYWJlbF09XCInc2hhcmUudXNlcnMnICB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBbZGVwTGFiZWxdPVwiJ3NoYXJlLkRlcCcgIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFtkaXNwbGF5XT1cIidjb2x1bW4nXCI+XHJcbiAgICAgICAgPC9hcHAtc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnRzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcmJpZGRlblVzZXJzLmxlbmd0aFwiIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHAgb2YgZm9yYmlkZGVuVXNlcnM7IGxldCBpIGFzIGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAge3twfX0mbmJzcDtcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICA8cCAqbmdJZj1cImZvcmJpZGRlblVzZXJzLmxlbmd0aCA9PSAxXCI+XHJcbiAgICAgICAgICAgIHt7IFwic2hhcmUuc2luZ2xlX2ZvcmJpZGRlblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgIDxwICpuZ0lmPVwiZm9yYmlkZGVuVXNlcnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICB7eyBcInNoYXJlLm11bHRpX2ZvcmJpZGRlblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzYW1lQ3VycmVudFVzZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIHt7IFwic2hhcmUuc2hhcmVXaXRoTG9nZ2VkSW5Vc2VyXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNTaGFyZWRCZWZvcmUubGVuZ3RoXCIgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAge3sgXCJzaGFyZS5zaGFyZV9leGlzdHNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwIG9mIGlzU2hhcmVkQmVmb3JlXCI+XHJcbiAgICAgICAgICAgICAge3twfX1cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIHt7IFwic2hhcmUuYmVmb3JlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC00IHJpZ2h0c1NlbGVjdG9yXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtYm9sZCBtYi0wXCI+XHJcbiAgICAgICAgICB7eyBcInNoYXJlLlJpZ2h0c1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgXHJcbiAgICAgICAgICBbaXRlbXNdPVwicmlnaHRzXCIgXHJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXHJcbiAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucmlnaHRzUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJpZ2h0c1wiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNldFJpZ2h0KCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaGFyZWRMaXN0Lmxlbmd0aFwiIGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgICAge3sgXCJzaGFyZS5maWxlVXJsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgXHJcbiAgICAgICAgICAgICAgI2ZpbGVVcmxcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2hhcmVhYmxlVXJsXCJcclxuICAgICAgICAgICAgICBkaXNhYmxlZFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwZWFyYW5jZS1ub25lIGJsb2NrIHctZnVsbCAgYmctYWNjZW50LTEwMCB0ZXh0LWdyYXktNzAwIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCBweS0yLjUgcHgtNCBcclxuICAgICAgICAgICAgICBsZWFkaW5nLXRpZ2h0IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpiZy13aGl0ZSBmb2N1czpib3JkZXItZ3JheS01MDBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWJzb2x1dGUgcHQtMi41IGJnLWFjY2VudC0xMDBcIlxyXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXSA9IFwiJ0JVVFRPTlMuQ09QWScgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdyaWdodC0yJyA6ICdsZWZ0LTInXCJcclxuICAgICAgICAgICAgICBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cImZpbGVVcmwudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5KClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1hdF9zb2xpZDpjb250ZW50X2NvcHlcIiBjbGFzcz1cImljb24tc2l6ZS02XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb3BpZWRcIiBjbGFzcz1cImZsZXggYWJzb2x1dGUganVzdGlmeS1hcm91bmQgdy0yNCAtbXQtMTAgYm9yZGVyIFxyXG4gICAgICAgICAgICBib3JkZXItcmVkLTcwMCBoLTcgcm91bmRlZCBiZy1ncmF5LTIwMFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdyaWdodC0wJyA6ICdsZWZ0LTAnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMyBoLTMganVzdGlmeS1jZW50ZXIgYmctZ3JheS0yMDAgdHJhbnNmb3JtIHJvdGF0ZS00NSBib3JkZXJcclxuICAgICAgICAgICAgICAgbXQtNSBib3JkZXJzLWNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBmb250LWV4dHJhbGlnaHRcIj57eyBcInNoYXJlLmNvcGllZFwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLVNoYXJlcyBTZWN0aW9uLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hhcmVkTGlzdC5sZW5ndGhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGgtNyBib3JkZXItYi0yIGJvcmRlci1hY2NlbnQtMTAwIG10LTJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj5cclxuICAgICAgICAgIHt7IFwic2hhcmUuc2hhcmVzXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKnBlcm1pc3Npb249XCJ7bmFtZTogJ2NhblJlbW92ZVNoYXJlJywgZW50aXR5OiBzZWxlY3RlZEl0ZW0uZW50aXR5fVwiXHJcbiAgICAgICAgICBtYXRUb29sdGlwPVwie3snc2hhcmUuUm1fQWxsX3NoYXJlcycgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJvcGVuRGlhbG9nKCdSZW1fQUxMX3NoYXJlcycpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19vdXRsaW5lOnRyYXNoJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCIobG9jYWxlID09PSAnZW4nKSAgPyAnbXItMicgOiAnbWwtMidcIj48L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImgtNTIgb3ZlcmZsb3cteS1hdXRvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIG10LTIuNVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEvMiB0ZXh0LWJhc2UgZm9udC1ib2xkXCI+e3tcInNoYXJlLnNoYXJlV2l0aFwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS80IHRleHQtYmFzZSBmb250LWJvbGRcIj57e1wic2hhcmUuc2hhcmVfZGF0ZVwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS80IHRleHQtYmFzZSBmb250LWJvbGRcIj57e1wic2hhcmUucGVybWlzc2lvblwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3Bhbj4mbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZCBvZiBzaGFyZWRMaXN0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtMi41XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHctMS8yXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMCB3LTggaC04IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgIDxjdHMtYXZhdGFyIFt1c2VyXT1cIntcclxuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiBkLnVzZXIucHJvcGVydGllcz8uZmlyc3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgICBsYXN0TmFtZTogZC51c2VyLnByb3BlcnRpZXM/Lmxhc3ROYW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9jdHMtYXZhdGFyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIC1tdC0yIHB4LTIgYnJlYWstYWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2QudXNlci5mdWxsTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tkLnVzZXIucHJvcGVydGllcy5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS80IG10LTEuNSBicmVhay1hbGwgcHgtMi41XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3tkLnNoYXJlZERhdGUgIHwgbG9jYWxpemVkRGF0ZTpcImRkIE1NTU0geXl5eVwiOihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzQgbXQtMS41IGJyZWFrLWFsbCBweC00XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3tcInJpZ2h0cy5cIiArIGQuc2hhcmVkTW9kZSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEuNVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpwZXJtaXNzaW9uPVwie25hbWU6ICdjYW5SZW1vdmVTaGFyZScsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7J3NoYXJlLlJtX2N1c3RvbV9zaGFyZScgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkRpYWxvZygnUmVtX2N1c3RvbV9zaGFyZScsZC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWUsZC5zaGFyZWRNb2RlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLUNocm9tZUNsb3NlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihsb2NhbGUgPT09ICdlbicpICA/ICdtci0yLjUnIDogJ21sLTIuNSdcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tQnV0dG9ucyBTZWN0aW9uLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtMiBweS0xXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzaGFyZSgpXCI+XHJcbiAgICAgICAge3sgXCJzaGFyZS5zaGFyZUJ1dHRvblwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsYXRpb24tYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICB7eyBcIkJVVFRPTlMuQ2FuY2VsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
|