@alfresco/adf-content-services 8.1.0-14749266275 → 8.1.0-14755969498
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/esm2022/lib/agent/services/agent.service.mjs +4 -4
- package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +4 -4
- package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +4 -4
- package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list.module.mjs +5 -5
- package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +4 -4
- package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +4 -4
- package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +4 -4
- package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +5 -5
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -4
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +4 -4
- package/esm2022/lib/category/category.module.mjs +5 -5
- package/esm2022/lib/category/services/category-tree-datasource.service.mjs +4 -4
- package/esm2022/lib/category/services/category.service.mjs +4 -4
- package/esm2022/lib/common/services/card-view-content-update.service.mjs +4 -4
- package/esm2022/lib/common/services/content.service.mjs +4 -4
- package/esm2022/lib/common/services/discovery-api.service.mjs +4 -4
- package/esm2022/lib/common/services/favorites-api.service.mjs +4 -4
- package/esm2022/lib/common/services/nodes-api.service.mjs +4 -4
- package/esm2022/lib/common/services/people-content.service.mjs +4 -4
- package/esm2022/lib/common/services/rendition.service.mjs +4 -4
- package/esm2022/lib/common/services/saved-searches.service.mjs +4 -4
- package/esm2022/lib/common/services/sites.service.mjs +4 -4
- package/esm2022/lib/common/services/upload.service.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -4
- package/esm2022/lib/content-metadata/content-metadata.module.mjs +5 -5
- package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +4 -4
- package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +5 -5
- package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.directive.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.module.mjs +5 -5
- package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +4 -4
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +4 -4
- package/esm2022/lib/content-type/content-type.service.mjs +4 -4
- package/esm2022/lib/content.module.mjs +5 -5
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/dialog.module.mjs +5 -5
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +5 -5
- package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +4 -4
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/library/library.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +4 -4
- package/esm2022/lib/directives/auto-focus.directive.mjs +4 -4
- package/esm2022/lib/directives/check-allowable-operation.directive.mjs +4 -4
- package/esm2022/lib/directives/content-directive.module.mjs +5 -5
- package/esm2022/lib/directives/library-favorite.directive.mjs +4 -4
- package/esm2022/lib/directives/library-membership.directive.mjs +4 -4
- package/esm2022/lib/directives/node-counter.directive.mjs +7 -7
- package/esm2022/lib/directives/node-delete.directive.mjs +4 -4
- package/esm2022/lib/directives/node-download.directive.mjs +4 -4
- package/esm2022/lib/directives/node-favorite.directive.mjs +4 -4
- package/esm2022/lib/directives/node-lock.directive.mjs +4 -4
- package/esm2022/lib/directives/node-restore.directive.mjs +4 -4
- package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +4 -4
- package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +4 -4
- package/esm2022/lib/document-list/components/document-list.component.mjs +4 -4
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +4 -4
- package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/document-list.module.mjs +5 -5
- package/esm2022/lib/document-list/services/custom-resources.service.mjs +4 -4
- package/esm2022/lib/document-list/services/document-actions.service.mjs +4 -4
- package/esm2022/lib/document-list/services/document-list.service.mjs +4 -4
- package/esm2022/lib/document-list/services/folder-actions.service.mjs +4 -4
- package/esm2022/lib/document-list/services/lock.service.mjs +4 -4
- package/esm2022/lib/document-list/services/node-actions.service.mjs +4 -4
- package/esm2022/lib/group/services/group.service.mjs +4 -4
- package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +4 -4
- package/esm2022/lib/material.module.mjs +5 -5
- package/esm2022/lib/mock/alfresco-api.service.mock.mjs +4 -4
- package/esm2022/lib/mock/search.component.mock.mjs +4 -4
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +4 -4
- package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +5 -5
- package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +4 -4
- package/esm2022/lib/node-comments/node-comments.component.mjs +4 -4
- package/esm2022/lib/node-comments/node-comments.module.mjs +5 -5
- package/esm2022/lib/node-comments/services/node-comments.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +4 -4
- package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/permission-manager.module.mjs +5 -5
- package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +4 -4
- package/esm2022/lib/permission-manager/services/node-permission.service.mjs +4 -4
- package/esm2022/lib/pipes/content-pipe.module.mjs +5 -5
- package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +4 -4
- package/esm2022/lib/prediction/services/prediction.service.mjs +4 -4
- package/esm2022/lib/search/components/empty-search-result.component.mjs +4 -4
- package/esm2022/lib/search/components/reset-search.directive.mjs +4 -4
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +4 -4
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +4 -4
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +4 -4
- package/esm2022/lib/search/components/search-control.component.mjs +4 -4
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +5 -5
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -4
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +4 -4
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -4
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +4 -4
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +4 -4
- package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +4 -4
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +4 -4
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -4
- package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +4 -4
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +4 -4
- package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +4 -4
- package/esm2022/lib/search/components/search.component.mjs +4 -4
- package/esm2022/lib/search/search.module.mjs +5 -5
- package/esm2022/lib/search/services/search-configuration.service.mjs +4 -4
- package/esm2022/lib/search/services/search-facet-filters.service.mjs +4 -4
- package/esm2022/lib/search/services/search-filter.service.mjs +4 -4
- package/esm2022/lib/search/services/search-header-query-builder.service.mjs +4 -4
- package/esm2022/lib/search/services/search-query-builder.service.mjs +4 -4
- package/esm2022/lib/search/services/search.service.mjs +4 -4
- package/esm2022/lib/search-ai/services/search-ai.service.mjs +4 -4
- package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +4 -4
- package/esm2022/lib/services/alfresco-api.service.mjs +4 -4
- package/esm2022/lib/tag/services/tag.service.mjs +4 -4
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +4 -4
- package/esm2022/lib/tag/tag-list/tag-list.component.mjs +4 -4
- package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +4 -4
- package/esm2022/lib/tag/tag.module.mjs +5 -5
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +4 -4
- package/esm2022/lib/testing/content.testing.module.mjs +5 -5
- package/esm2022/lib/tree/components/tree.component.mjs +4 -4
- package/esm2022/lib/tree/services/tree.service.mjs +4 -4
- package/esm2022/lib/tree/tree.module.mjs +5 -5
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -4
- package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +4 -4
- package/esm2022/lib/tree-view/services/tree-view.service.mjs +4 -4
- package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
- package/esm2022/lib/upload/components/base-upload/upload-base.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-list.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-button.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-drag-area.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +4 -4
- package/esm2022/lib/upload/directives/file-draggable.directive.mjs +4 -4
- package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +4 -4
- package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +4 -4
- package/esm2022/lib/upload/upload.module.mjs +5 -5
- package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +4 -4
- package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +5 -5
- package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +4 -4
- package/esm2022/lib/version-manager/content-version.service.mjs +4 -4
- package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-list.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-manager.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-manager.module.mjs +5 -5
- package/esm2022/lib/version-manager/version-upload.component.mjs +4 -4
- package/esm2022/lib/viewer/alfresco-viewer.module.mjs +5 -5
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +4 -4
- package/fesm2022/adf-content-services.mjs +629 -629
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.d.ts +1 -1
- package/package.json +3 -3
|
@@ -318,10 +318,10 @@ export class AlfrescoViewerComponent {
|
|
|
318
318
|
onDownloadFile() {
|
|
319
319
|
this.nodeActionsService.downloadNode(this.nodeEntry);
|
|
320
320
|
}
|
|
321
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
322
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
321
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AlfrescoViewerComponent, deps: [{ token: i1.AlfrescoApiService }, { token: i2.NodesApiService }, { token: i3.RenditionService }, { token: i4.ViewUtilService }, { token: i5.ContentService }, { token: i6.UploadService }, { token: i7.MatDialog }, { token: i0.ChangeDetectorRef }, { token: i8.NodeActionsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AlfrescoViewerComponent, isStandalone: true, selector: "adf-alfresco-viewer", inputs: { nodeId: "nodeId", versionId: "versionId", sharedLinkId: "sharedLinkId", showViewer: "showViewer", maxRetries: "maxRetries", allowGoBack: "allowGoBack", showToolbar: "showToolbar", overlayMode: "overlayMode", allowNavigate: "allowNavigate", canNavigateBefore: "canNavigateBefore", canNavigateNext: "canNavigateNext", allowLeftSidebar: "allowLeftSidebar", allowRightSidebar: "allowRightSidebar", showRightSidebar: "showRightSidebar", showLeftSidebar: "showLeftSidebar", allowDownload: "allowDownload", allowPrint: "allowPrint", allowFullScreen: "allowFullScreen", hideInfoButton: "hideInfoButton", closeButtonPosition: "closeButtonPosition", sidebarRightTemplate: "sidebarRightTemplate", sidebarLeftTemplate: "sidebarLeftTemplate" }, outputs: { invalidSharedLink: "invalidSharedLink", navigateBefore: "navigateBefore", navigateNext: "navigateNext", showViewerChange: "showViewerChange" }, host: { classAttribute: "adf-alfresco-viewer" }, providers: [ViewUtilService], queries: [{ propertyName: "toolbar", first: true, predicate: ViewerToolbarComponent, descendants: true }, { propertyName: "sidebar", first: true, predicate: ViewerSidebarComponent, descendants: true }, { propertyName: "toolbarActions", first: true, predicate: ViewerToolbarActionsComponent, descendants: true }, { propertyName: "moreActions", first: true, predicate: ViewerMoreActionsComponent, descendants: true }, { propertyName: "openWith", first: true, predicate: ViewerOpenWithComponent, descendants: true }, { propertyName: "viewerExtensions", first: true, predicate: ["viewerExtensions"], descendants: true }], viewQueries: [{ propertyName: "adfViewer", first: true, predicate: ["adfViewer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions>\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.ViewerToolbarComponent, selector: "adf-viewer-toolbar" }, { kind: "component", type: i4.ViewerSidebarComponent, selector: "adf-viewer-sidebar" }, { kind: "component", type: i4.ViewerOpenWithComponent, selector: "adf-viewer-open-with" }, { kind: "component", type: i4.ViewerMoreActionsComponent, selector: "adf-viewer-more-actions" }, { kind: "component", type: i4.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "component", type: i4.ViewerComponent, selector: "adf-viewer", inputs: ["urlFile", "blobFile", "showViewer", "allowGoBack", "allowFullScreen", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "sidebarRightTemplate", "sidebarLeftTemplate", "readOnly", "allowedEditActions", "tracks", "mimeType", "sidebarRightTemplateContext", "sidebarLeftTemplateContext", "closeButtonPosition", "hideInfoButton", "viewerExtensions", "nodeId", "nodeMimeType", "customError", "fileName"], outputs: ["downloadFile", "navigateBefore", "navigateNext", "showViewerChange", "submitFile"] }, { kind: "component", type: i4.ViewerToolbarCustomActionsComponent, selector: "adf-viewer-toolbar-custom-actions" }, { kind: "directive", type: NodeDownloadDirective, selector: "[adfNodeDownload]", inputs: ["adfNodeDownload", "version"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
323
323
|
}
|
|
324
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AlfrescoViewerComponent, decorators: [{
|
|
325
325
|
type: Component,
|
|
326
326
|
args: [{ selector: 'adf-alfresco-viewer', standalone: true, imports: [CommonModule, TranslateModule, MatButtonModule, MatIconModule, ...VIEWER_DIRECTIVES, NodeDownloadDirective], host: { class: 'adf-alfresco-viewer' }, encapsulation: ViewEncapsulation.None, providers: [ViewUtilService], template: "<adf-viewer\n #adfViewer\n [(showViewer)]=\"showViewer\"\n [allowGoBack]=\"allowGoBack\"\n [showToolbar]=\"showToolbar\"\n [overlayMode]=\"overlayMode\"\n [allowNavigate]=\"allowNavigate\"\n [canNavigateBefore]=\"canNavigateBefore\"\n [canNavigateNext]=\"canNavigateNext\"\n [allowLeftSidebar]=\"allowLeftSidebar\"\n [allowRightSidebar]=\"allowRightSidebar\"\n [showRightSidebar]=\"showRightSidebar\"\n [showLeftSidebar]=\"showLeftSidebar\"\n [allowFullScreen]=\"allowFullScreen\"\n [sidebarRightTemplate]=\"sidebarRightTemplate\"\n [sidebarLeftTemplate]=\"sidebarLeftTemplate\"\n [sidebarRightTemplateContext]=\"sidebarRightTemplateContext\"\n [sidebarLeftTemplateContext]=\"sidebarLeftTemplateContext\"\n [closeButtonPosition]=\"closeButtonPosition\"\n [hideInfoButton]=\"hideInfoButton\"\n [fileName]=\"fileName\"\n [mimeType]=\"mimeType\"\n [nodeMimeType]=\"nodeMimeType\"\n [urlFile]=\"urlFileContent\"\n [tracks]=\"tracks\"\n [readOnly]=\"readOnly\"\n [allowedEditActions]=\"allowedEditActions\"\n [viewerExtensions]=\"viewerExtensions\"\n [nodeId]=\"nodeId\"\n (downloadFile)=\"onDownloadFile()\"\n (navigateBefore)=\"onNavigateBeforeClick($event)\"\n (navigateNext)=\"onNavigateNextClick($event)\"\n (showViewerChange)=\"onClose()\"\n (submitFile)=\"onSubmitFile($event)\">\n\n <adf-viewer-toolbar *ngIf=\"toolbar\">\n <ng-content select=\"adf-viewer-toolbar\" />\n </adf-viewer-toolbar>\n\n <adf-viewer-toolbar-actions *ngIf=\"toolbarActions\">\n <ng-content select=\"adf-viewer-toolbar-actions\" />\n </adf-viewer-toolbar-actions>\n\n <adf-viewer-more-actions *ngIf=\"moreActions\">\n <ng-content select=\"adf-viewer-more-actions\" />\n </adf-viewer-more-actions>\n\n <adf-viewer-open-with *ngIf=\"openWith\">\n <ng-content select=\"adf-viewer-open-with\" />\n </adf-viewer-open-with>\n\n <adf-viewer-sidebar *ngIf=\"sidebar\">\n <ng-content select=\"adf-viewer-sidebar\" />\n </adf-viewer-sidebar>\n\n <adf-viewer-toolbar-custom-actions>\n <button id=\"adf-alfresco-viewer-download\"\n *ngIf=\"allowDownload\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}\"\n data-automation-id=\"adf-toolbar-download\"\n [adfNodeDownload]=\"nodeEntry\"\n [version]=\"versionEntry\">\n <mat-icon>file_download</mat-icon>\n </button>\n\n <button id=\"adf-alfresco-viewer-print\"\n *ngIf=\"allowPrint\"\n mat-icon-button\n [attr.aria-label]=\"'ADF_VIEWER.ACTIONS.PRINT' | translate\"\n title=\"{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}\"\n data-automation-id=\"adf-toolbar-print\"\n (click)=\"onPrintContent($event)\">\n <mat-icon>print</mat-icon>\n </button>\n </adf-viewer-toolbar-custom-actions>\n</adf-viewer>\n" }]
|
|
327
327
|
}], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.NodesApiService }, { type: i3.RenditionService }, { type: i4.ViewUtilService }, { type: i5.ContentService }, { type: i6.UploadService }, { type: i7.MatDialog }, { type: i0.ChangeDetectorRef }, { type: i8.NodeActionsService }], propDecorators: { adfViewer: [{
|
|
@@ -398,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
398
398
|
}], showViewerChange: [{
|
|
399
399
|
type: Output
|
|
400
400
|
}] } });
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFFbkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLGVBQWUsRUFDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFtQixRQUFRLEVBQWtCLGNBQWMsRUFBeUIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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QUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbG9zZUJ1dHRvblBvc2l0aW9uLFxuICAgIFRyYWNrLFxuICAgIFZJRVdFUl9ESVJFQ1RJVkVTLFxuICAgIFZpZXdlckNvbXBvbmVudCxcbiAgICBWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudCxcbiAgICBWaWV3ZXJPcGVuV2l0aENvbXBvbmVudCxcbiAgICBWaWV3ZXJTaWRlYmFyQ29tcG9uZW50LFxuICAgIFZpZXdlclRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LFxuICAgIFZpZXdlclRvb2xiYXJDb21wb25lbnQsXG4gICAgVmlld1V0aWxTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50QXBpLCBOb2RlLCBOb2RlRW50cnksIE5vZGVzQXBpLCBSZW5kaXRpb25FbnRyeSwgU2hhcmVkbGlua3NBcGksIFZlcnNpb24sIFZlcnNpb25FbnRyeSwgVmVyc2lvbnNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFJlbmRpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvcmVuZGl0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvbm9kZXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgTm9kZUFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZG9jdW1lbnQtbGlzdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTm9kZURvd25sb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWFsZnJlc2NvLXZpZXdlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgLi4uVklFV0VSX0RJUkVDVElWRVMsIE5vZGVEb3dubG9hZERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZnJlc2NvLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1hbGZyZXNjby12aWV3ZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFsZnJlc2NvVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2FkZlZpZXdlcicpXG4gICAgYWRmVmlld2VyOiBWaWV3ZXJDb21wb25lbnQ8eyBub2RlOiBOb2RlIH0+O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJUb29sYmFyQ29tcG9uZW50KVxuICAgIHRvb2xiYXI6IFZpZXdlclRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlclNpZGViYXJDb21wb25lbnQpXG4gICAgc2lkZWJhcjogVmlld2VyU2lkZWJhckNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVmlld2VyVG9vbGJhckFjdGlvbnNDb21wb25lbnQpXG4gICAgdG9vbGJhckFjdGlvbnM6IFZpZXdlclRvb2xiYXJBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudClcbiAgICBtb3JlQWN0aW9uczogVmlld2VyTW9yZUFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlck9wZW5XaXRoQ29tcG9uZW50KVxuICAgIG9wZW5XaXRoOiBWaWV3ZXJPcGVuV2l0aENvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3ZpZXdlckV4dGVuc2lvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB2aWV3ZXJFeHRlbnNpb25zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIE5vZGUgSWQgb2YgdGhlIGZpbGUgdG8gbG9hZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBWZXJzaW9uIElkIG9mIHRoZSBmaWxlIHRvIGxvYWQuICovXG4gICAgQElucHV0KClcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogU2hhcmVkIGxpbmsgaWQgKHRvIGRpc3BsYXkgc2hhcmVkIGZpbGUpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hhcmVkTGlua0lkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIEhpZGUgb3Igc2hvdyB0aGUgdmlld2VyICovXG4gICAgQElucHV0KClcbiAgICBzaG93Vmlld2VyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgVmlld2VyIHdpbGwgcmV0cnkgZmV0Y2hpbmcgY29udGVudCBSZW5kaXRpb24uXG4gICAgICogVGhlcmUgaXMgYSBkZWxheSBvZiBhdCBsZWFzdCBvbmUgc2Vjb25kIGJldHdlZW4gYXR0ZW1wdHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhSZXRyaWVzID0gMzA7XG5cbiAgICAvKiogQWxsb3dzIGBiYWNrYCBuYXZpZ2F0aW9uICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0dvQmFjayA9IHRydWU7XG5cbiAgICAvKiogSGlkZSBvciBzaG93IHRoZSB0b29sYmFyICovXG4gICAgQElucHV0KClcbiAgICBzaG93VG9vbGJhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJZiBgdHJ1ZWAgdGhlbiBzaG93IHRoZSBWaWV3ZXIgYXMgYSBmdWxsIHBhZ2Ugb3ZlciB0aGUgY3VycmVudCBjb250ZW50LlxuICAgICAqIE90aGVyd2lzZSwgZml0IGluc2lkZSB0aGUgcGFyZW50IGRpdi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG92ZXJsYXlNb2RlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGJlZm9yZS9uZXh0IG5hdmlnYXRpb24uIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBidXR0b25zIHRvIG5hdmlnYXRlXG4gICAgICogYmV0d2VlbiBkb2N1bWVudHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd05hdmlnYXRlID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgXCJiZWZvcmVcIiAoXCI8XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZUJlZm9yZSA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgbmV4dCAoXCI+XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZU5leHQgPSB0cnVlO1xuXG4gICAgLyoqIEFsbG93IHRoZSBsZWZ0IHRoZSBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dMZWZ0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93IHRoZSByaWdodCBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dSaWdodFNpZGViYXIgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHJpZ2h0IHNpZGViYXIgdmlzaWJpbGl0eS4gUmVxdWlyZXMgYGFsbG93UmlnaHRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1JpZ2h0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgbGVmdCBzaWRlYmFyIHZpc2liaWxpdHkuIFJlcXVpcmVzIGBhbGxvd0xlZnRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xlZnRTaWRlYmFyID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBkb3dubG9hZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RG93bmxvYWQgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgcHJpbnRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1ByaW50ID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgJ0Z1bGwgU2NyZWVuJyBmZWF0dXJlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dGdWxsU2NyZWVuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnSW5mbyBCdXR0b24nICovXG4gICAgQElucHV0KClcbiAgICBoaWRlSW5mb0J1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIENoYW5nZSB0aGUgY2xvc2UgYnV0dG9uIHBvc2l0aW9uIFJpZ2h0L0xlZnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uUG9zaXRpb24gPSBDbG9zZUJ1dHRvblBvc2l0aW9uLkxlZnQ7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcmlnaHQgc2lkZWJhci4gVGhlIHRlbXBsYXRlIGNvbnRleHQgY29udGFpbnMgdGhlIGxvYWRlZCBub2RlIGRhdGEuICovXG4gICAgQElucHV0KClcbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgbGVmdCBzaWRlYmFyLiBUaGUgdGVtcGxhdGUgY29udGV4dCBjb250YWlucyB0aGUgbG9hZGVkIG5vZGUgZGF0YS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNpZGViYXJMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgc2hhcmVkIGxpbmsgdXNlZCBpcyBub3QgdmFsaWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgaW52YWxpZFNoYXJlZExpbmsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzICdOYXZpZ2F0ZSBCZWZvcmUnIChcIjxcIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlQmVmb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBjbGlja3MgJ05hdmlnYXRlIE5leHQnIChcIj5cIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2aWV3ZXIgY2xvc2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzaG93Vmlld2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBjYWNoZUJ1c3Rlck51bWJlcjogbnVtYmVyO1xuXG4gICAgdmVyc2lvbkVudHJ5OiBWZXJzaW9uRW50cnk7XG4gICAgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZU1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZUVudHJ5OiBOb2RlRW50cnk7XG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG4gICAgc2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG5cbiAgICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gICAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICAgICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmVyc2lvbnNBcGk6IFZlcnNpb25zQXBpO1xuICAgIGdldCB2ZXJzaW9uc0FwaSgpOiBWZXJzaW9uc0FwaSB7XG4gICAgICAgIHRoaXMuX3ZlcnNpb25zQXBpID0gdGhpcy5fdmVyc2lvbnNBcGkgPz8gbmV3IFZlcnNpb25zQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnNpb25zQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb250ZW50QXBpOiBDb250ZW50QXBpO1xuICAgIGdldCBjb250ZW50QXBpKCk6IENvbnRlbnRBcGkge1xuICAgICAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQ29udGVudEFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50QXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kaXRpb25TZXJ2aWNlOiBSZW5kaXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdVdGlsU2VydmljZTogVmlld1V0aWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZVxuICAgICkge1xuICAgICAgICByZW5kaXRpb25TZXJ2aWNlLm1heFJldHJpZXMgPSB0aGlzLm1heFJldHJpZXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChub2RlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJiBub2RlLmlkID09PSB0aGlzLm5vZGVJZCAmJiB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkodGhpcy5ub2RlRW50cnkuZW50cnkpICE9PSB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkobm9kZSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChub2RlKSA9PiB0aGlzLm9uTm9kZVVwZGF0ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgb25Ob2RlVXBkYXRlZChub2RlOiBOb2RlKSB7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUuaWQgPT09IHRoaXMubm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ2FjaGVCdXN0ZXJOdW1iZXIoKTtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROb2RlVmVyc2lvblByb3BlcnR5KG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbm9kZT8ucHJvcGVydGllc1snY206dmVyc2lvbkxhYmVsJ10gPz8gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzZXR1cFNoYXJlZExpbmsoKSB7XG4gICAgICAgIHRoaXMuYWxsb3dHb0JhY2sgPSBmYWxzZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc2hhcmVkTGlua0VudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rKHRoaXMuc2hhcmVkTGlua0lkKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXBTaGFyZWRMaW5rRmlsZShzaGFyZWRMaW5rRW50cnkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkU2hhcmVkTGluay5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLm1pbWVUeXBlID0gJ2ludmFsaWQtbGluayc7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtZmlsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldHVwTm9kZSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubm9kZUVudHJ5ID0gYXdhaXQgdGhpcy5ub2Rlc0FwaS5nZXROb2RlKHRoaXMubm9kZUlkLCB7IGluY2x1ZGU6IFsnYWxsb3dhYmxlT3BlcmF0aW9ucyddIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudmVyc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uRW50cnkgPSBhd2FpdCB0aGlzLnZlcnNpb25zQXBpLmdldFZlcnNpb24odGhpcy5ub2RlSWQsIHRoaXMudmVyc2lvbklkKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNldFVwTm9kZUZpbGUodGhpcy5ub2RlRW50cnkuZW50cnksIHRoaXMudmVyc2lvbkVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKHRoaXMubm9kZUVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtbm9kZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwTm9kZUZpbGUobm9kZURhdGE6IE5vZGUsIHZlcnNpb25EYXRhPzogVmVyc2lvbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gIXRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlRGF0YSwgJ3VwZGF0ZScpO1xuICAgICAgICBsZXQgbWltZVR5cGU6IHN0cmluZztcbiAgICAgICAgbGV0IG5vZGVNaW1lVHlwZTogc3RyaW5nO1xuICAgICAgICBsZXQgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcblxuICAgICAgICBpZiAodmVyc2lvbkRhdGE/LmNvbnRlbnQpIHtcbiAgICAgICAgICAgIG1pbWVUeXBlID0gdmVyc2lvbkRhdGEuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlRGF0YS5jb250ZW50KSB7XG4gICAgICAgICAgICBtaW1lVHlwZSA9IG5vZGVEYXRhLmNvbnRlbnQubWltZVR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZU1pbWVUeXBlID0gbWltZVR5cGU7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEZpbGVWZXJzaW9uID0gdGhpcy5ub2RlRW50cnk/LmVudHJ5Py5wcm9wZXJ0aWVzPy5bJ2NtOnZlcnNpb25MYWJlbCddXG4gICAgICAgICAgICA/IGVuY29kZVVSSSh0aGlzLm5vZGVFbnRyeT8uZW50cnk/LnByb3BlcnRpZXNbJ2NtOnZlcnNpb25MYWJlbCddKVxuICAgICAgICAgICAgOiBlbmNvZGVVUkkoJzEuMCcpO1xuXG4gICAgICAgIHVybEZpbGVDb250ZW50ID0gdmVyc2lvbkRhdGEgPyB0aGlzLmNvbnRlbnRBcGkuZ2V0VmVyc2lvbkNvbnRlbnRVcmwodGhpcy5ub2RlSWQsIHZlcnNpb25EYXRhLmlkKSA6IHRoaXMuY29udGVudEFwaS5nZXRDb250ZW50VXJsKHRoaXMubm9kZUlkKTtcbiAgICAgICAgdXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICcmJyArIGN1cnJlbnRGaWxlVmVyc2lvbjtcblxuICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbih2ZXJzaW9uRGF0YSA/IHZlcnNpb25EYXRhLm5hbWUgOiBub2RlRGF0YS5uYW1lKTtcbiAgICAgICAgY29uc3Qgdmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGUoZmlsZUV4dGVuc2lvbiwgbWltZVR5cGUpO1xuXG4gICAgICAgIGlmICh2aWV3ZXJUeXBlID09PSAndW5rbm93bicpIHtcbiAgICAgICAgICAgIGxldCBub2RlUmVuZGl0aW9uO1xuICAgICAgICAgICAgaWYgKHZlcnNpb25EYXRhKSB7XG4gICAgICAgICAgICAgICAgbm9kZVJlbmRpdGlvbiA9IGF3YWl0IHRoaXMucmVuZGl0aW9uU2VydmljZS5nZXROb2RlUmVuZGl0aW9uKG5vZGVEYXRhLmlkLCB2ZXJzaW9uRGF0YS5pZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVSZW5kaXRpb24gPSBhd2FpdCB0aGlzLnJlbmRpdGlvblNlcnZpY2UuZ2V0Tm9kZVJlbmRpdGlvbihub2RlRGF0YS5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobm9kZVJlbmRpdGlvbikge1xuICAgICAgICAgICAgICAgIHVybEZpbGVDb250ZW50ID0gbm9kZVJlbmRpdGlvbi51cmw7XG5cbiAgICAgICAgICAgICAgICBub2RlTWltZVR5cGUgPSBub2RlRGF0YT8uY29udGVudD8ubWltZVR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uTWltZVR5cGUgPSBub2RlUmVuZGl0aW9uLm1pbWVUeXBlO1xuICAgICAgICAgICAgICAgIG1pbWVUeXBlID0gcmVuZGl0aW9uTWltZVR5cGUgfHwgbm9kZU1pbWVUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZpZXdlclR5cGUgPT09ICdtZWRpYScpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tzID0gYXdhaXQgdGhpcy5yZW5kaXRpb25TZXJ2aWNlLmdlbmVyYXRlTWVkaWFUcmFja3NSZW5kaXRpb24odGhpcy5ub2RlSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLm5vZGVNaW1lVHlwZSA9IG5vZGVNaW1lVHlwZTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IHZlcnNpb25EYXRhID8gdmVyc2lvbkRhdGEubmFtZSA6IG5vZGVEYXRhLm5hbWU7XG4gICAgICAgIHRoaXMudXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICh0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID8gJyYnICsgdGhpcy5jYWNoZUJ1c3Rlck51bWJlciA6ICcnKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQubm9kZSA9IG5vZGVEYXRhO1xuICAgICAgICB0aGlzLnNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0Lm5vZGUgPSBub2RlRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwU2hhcmVkTGlua0ZpbGUoZGV0YWlsczogYW55KSB7XG4gICAgICAgIGxldCBtaW1lVHlwZSA9IGRldGFpbHMuZW50cnkuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVFeHRlbnNpb24oZGV0YWlscy5lbnRyeS5uYW1lKTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IGRldGFpbHMuZW50cnkubmFtZTtcbiAgICAgICAgbGV0IHVybEZpbGVDb250ZW50ID0gdGhpcy5jb250ZW50QXBpLmdldFNoYXJlZExpbmtDb250ZW50VXJsKHRoaXMuc2hhcmVkTGlua0lkLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlKGZpbGVFeHRlbnNpb24sIG1pbWVUeXBlKTtcblxuICAgICAgICBpZiAodmlld2VyVHlwZSA9PT0gJ3Vua25vd24nKSB7XG4gICAgICAgICAgICAoeyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZSB9ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHRoaXMuc2hhcmVkTGlua0lkKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gdXJsRmlsZUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkOiBzdHJpbmcpOiBQcm9taXNlPHsgdXJsOiBzdHJpbmc7IG1pbWVUeXBlOiBzdHJpbmcgfT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uOiBSZW5kaXRpb25FbnRyeSA9IGF3YWl0IHRoaXMuc2hhcmVkTGlua3NBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvbihzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgaWYgKHJlbmRpdGlvbi5lbnRyeS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0NSRUFURUQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsRmlsZUNvbnRlbnQgPSB0aGlzLmNvbnRlbnRBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvblVybChzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsRmlsZUNvbnRlbnQsIG1pbWVUeXBlOiAnYXBwbGljYXRpb24vcGRmJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW5kaXRpb246IFJlbmRpdGlvbkVudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgIGlmIChyZW5kaXRpb24uZW50cnkuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxGaWxlQ29udGVudCA9IHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uVXJsKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZTogJ2ltYWdlL3BuZycgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChyZW5kaXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlQnVzdGVyTnVtYmVyKCkge1xuICAgICAgICB0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZSB0aGUgdmlld2VyXG4gICAgICovXG4gICAgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5zaG93Vmlld2VyQ2hhbmdlLmVtaXQodGhpcy5zaG93Vmlld2VyKTtcbiAgICB9XG5cbiAgICBvblByaW50Q29udGVudChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd1ByaW50KSB7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRpdGlvblNlcnZpY2UucHJpbnRGaWxlR2VuZXJpYyh0aGlzLm5vZGVJZCwgdGhpcy5taW1lVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1pdEZpbGUobmV3SW1hZ2VCbG9iOiBCbG9iKSB7XG4gICAgICAgIGlmICh0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5pZCAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgY29uc3QgbmV3SW1hZ2VGaWxlOiBGaWxlID0gbmV3IEZpbGUoW25ld0ltYWdlQmxvYl0sIHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/Lm5hbWUsIHsgdHlwZTogdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8uY29udGVudD8ubWltZVR5cGUgfSk7XG4gICAgICAgICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGVNb2RlbChcbiAgICAgICAgICAgICAgICBuZXdJbWFnZUZpbGUsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtYWpvclZlcnNpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBuZXdWZXJzaW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8ucGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVUeXBlOiB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5jb250ZW50Py5taW1lVHlwZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8uaWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuYWRkVG9RdWV1ZSguLi5bbmV3RmlsZV0pO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEZpbGVzSW5UaGVRdWV1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJlZm9yZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLm5hdmlnYXRlQmVmb3JlLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uTmF2aWdhdGVOZXh0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVOZXh0Lm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIGlzU291cmNlRGVmaW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMubm9kZUlkIHx8IHRoaXMuc2hhcmVkTGlua0lkKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dWaWV3ZXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NvdXJjZURlZmluZWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBjb250ZW50IHNvdXJjZSBhdHRyaWJ1dGUgdmFsdWUgaXMgbWlzc2luZy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNoYW5nZXMubm9kZUlkPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMubm9kZUlkPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cE5vZGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaGFyZWRMaW5rSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwU2hhcmVkTGluaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Eb3dubG9hZEZpbGUoKSB7XG4gICAgICAgIHRoaXMubm9kZUFjdGlvbnNTZXJ2aWNlLmRvd25sb2FkTm9kZSh0aGlzLm5vZGVFbnRyeSk7XG4gICAgfVxufVxuIiwiPGFkZi12aWV3ZXJcbiAgICAjYWRmVmlld2VyXG4gICAgWyhzaG93Vmlld2VyKV09XCJzaG93Vmlld2VyXCJcbiAgICBbYWxsb3dHb0JhY2tdPVwiYWxsb3dHb0JhY2tcIlxuICAgIFtzaG93VG9vbGJhcl09XCJzaG93VG9vbGJhclwiXG4gICAgW292ZXJsYXlNb2RlXT1cIm92ZXJsYXlNb2RlXCJcbiAgICBbYWxsb3dOYXZpZ2F0ZV09XCJhbGxvd05hdmlnYXRlXCJcbiAgICBbY2FuTmF2aWdhdGVCZWZvcmVdPVwiY2FuTmF2aWdhdGVCZWZvcmVcIlxuICAgIFtjYW5OYXZpZ2F0ZU5leHRdPVwiY2FuTmF2aWdhdGVOZXh0XCJcbiAgICBbYWxsb3dMZWZ0U2lkZWJhcl09XCJhbGxvd0xlZnRTaWRlYmFyXCJcbiAgICBbYWxsb3dSaWdodFNpZGViYXJdPVwiYWxsb3dSaWdodFNpZGViYXJcIlxuICAgIFtzaG93UmlnaHRTaWRlYmFyXT1cInNob3dSaWdodFNpZGViYXJcIlxuICAgIFtzaG93TGVmdFNpZGViYXJdPVwic2hvd0xlZnRTaWRlYmFyXCJcbiAgICBbYWxsb3dGdWxsU2NyZWVuXT1cImFsbG93RnVsbFNjcmVlblwiXG4gICAgW3NpZGViYXJSaWdodFRlbXBsYXRlXT1cInNpZGViYXJSaWdodFRlbXBsYXRlXCJcbiAgICBbc2lkZWJhckxlZnRUZW1wbGF0ZV09XCJzaWRlYmFyTGVmdFRlbXBsYXRlXCJcbiAgICBbc2lkZWJhclJpZ2h0VGVtcGxhdGVDb250ZXh0XT1cInNpZGViYXJSaWdodFRlbXBsYXRlQ29udGV4dFwiXG4gICAgW3NpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0XT1cInNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0XCJcbiAgICBbY2xvc2VCdXR0b25Qb3NpdGlvbl09XCJjbG9zZUJ1dHRvblBvc2l0aW9uXCJcbiAgICBbaGlkZUluZm9CdXR0b25dPVwiaGlkZUluZm9CdXR0b25cIlxuICAgIFtmaWxlTmFtZV09XCJmaWxlTmFtZVwiXG4gICAgW21pbWVUeXBlXT1cIm1pbWVUeXBlXCJcbiAgICBbbm9kZU1pbWVUeXBlXT1cIm5vZGVNaW1lVHlwZVwiXG4gICAgW3VybEZpbGVdPVwidXJsRmlsZUNvbnRlbnRcIlxuICAgIFt0cmFja3NdPVwidHJhY2tzXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFthbGxvd2VkRWRpdEFjdGlvbnNdPVwiYWxsb3dlZEVkaXRBY3Rpb25zXCJcbiAgICBbdmlld2VyRXh0ZW5zaW9uc109XCJ2aWV3ZXJFeHRlbnNpb25zXCJcbiAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgKGRvd25sb2FkRmlsZSk9XCJvbkRvd25sb2FkRmlsZSgpXCJcbiAgICAobmF2aWdhdGVCZWZvcmUpPVwib25OYXZpZ2F0ZUJlZm9yZUNsaWNrKCRldmVudClcIlxuICAgIChuYXZpZ2F0ZU5leHQpPVwib25OYXZpZ2F0ZU5leHRDbGljaygkZXZlbnQpXCJcbiAgICAoc2hvd1ZpZXdlckNoYW5nZSk9XCJvbkNsb3NlKClcIlxuICAgIChzdWJtaXRGaWxlKT1cIm9uU3VibWl0RmlsZSgkZXZlbnQpXCI+XG5cbiAgICA8YWRmLXZpZXdlci10b29sYmFyICpuZ0lmPVwidG9vbGJhclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLXRvb2xiYXJcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyPlxuXG4gICAgPGFkZi12aWV3ZXItdG9vbGJhci1hY3Rpb25zICpuZ0lmPVwidG9vbGJhckFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnNcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnM+XG5cbiAgICA8YWRmLXZpZXdlci1tb3JlLWFjdGlvbnMgKm5nSWY9XCJtb3JlQWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLW1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9hZGYtdmlld2VyLW1vcmUtYWN0aW9ucz5cblxuICAgIDxhZGYtdmlld2VyLW9wZW4td2l0aCAqbmdJZj1cIm9wZW5XaXRoXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi12aWV3ZXItb3Blbi13aXRoXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItb3Blbi13aXRoPlxuXG4gICAgPGFkZi12aWV3ZXItc2lkZWJhciAqbmdJZj1cInNpZGViYXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci1zaWRlYmFyXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItc2lkZWJhcj5cblxuICAgIDxhZGYtdmlld2VyLXRvb2xiYXItY3VzdG9tLWFjdGlvbnM+XG4gICAgICAgIDxidXR0b24gaWQ9XCJhZGYtYWxmcmVzY28tdmlld2VyLWRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93RG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuQUNUSU9OUy5ET1dOTE9BRCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5ET1dOTE9BRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi10b29sYmFyLWRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICBbYWRmTm9kZURvd25sb2FkXT1cIm5vZGVFbnRyeVwiXG4gICAgICAgICAgICAgICAgW3ZlcnNpb25dPVwidmVyc2lvbkVudHJ5XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJhZGYtYWxmcmVzY28tdmlld2VyLXByaW50XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93UHJpbnRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuQUNUSU9OUy5QUklOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5QUklOVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi10b29sYmFyLXByaW50XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QcmludENvbnRlbnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnByaW50PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9hZGYtdmlld2VyLXRvb2xiYXItY3VzdG9tLWFjdGlvbnM+XG48L2FkZi12aWV3ZXI+XG4iXX0=
|
|
401
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvdmlld2VyL2NvbXBvbmVudHMvYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxtQkFBbUIsRUFFbkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isc0JBQXNCLEVBQ3RCLGVBQWUsRUFDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFtQixRQUFRLEVBQWtCLGNBQWMsRUFBeUIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0ksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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QUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbG9zZUJ1dHRvblBvc2l0aW9uLFxuICAgIFRyYWNrLFxuICAgIFZJRVdFUl9ESVJFQ1RJVkVTLFxuICAgIFZpZXdlckNvbXBvbmVudCxcbiAgICBWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudCxcbiAgICBWaWV3ZXJPcGVuV2l0aENvbXBvbmVudCxcbiAgICBWaWV3ZXJTaWRlYmFyQ29tcG9uZW50LFxuICAgIFZpZXdlclRvb2xiYXJBY3Rpb25zQ29tcG9uZW50LFxuICAgIFZpZXdlclRvb2xiYXJDb21wb25lbnQsXG4gICAgVmlld1V0aWxTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGZyZXNjby1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50QXBpLCBOb2RlLCBOb2RlRW50cnksIE5vZGVzQXBpLCBSZW5kaXRpb25FbnRyeSwgU2hhcmVkbGlua3NBcGksIFZlcnNpb24sIFZlcnNpb25FbnRyeSwgVmVyc2lvbnNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFJlbmRpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvcmVuZGl0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb2Rlc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvbm9kZXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgTm9kZUFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZG9jdW1lbnQtbGlzdCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTm9kZURvd25sb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWFsZnJlc2NvLXZpZXdlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgLi4uVklFV0VSX0RJUkVDVElWRVMsIE5vZGVEb3dubG9hZERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZnJlc2NvLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWxmcmVzY28tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1hbGZyZXNjby12aWV3ZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFsZnJlc2NvVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2FkZlZpZXdlcicpXG4gICAgYWRmVmlld2VyOiBWaWV3ZXJDb21wb25lbnQ8eyBub2RlOiBOb2RlIH0+O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJUb29sYmFyQ29tcG9uZW50KVxuICAgIHRvb2xiYXI6IFZpZXdlclRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlclNpZGViYXJDb21wb25lbnQpXG4gICAgc2lkZWJhcjogVmlld2VyU2lkZWJhckNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoVmlld2VyVG9vbGJhckFjdGlvbnNDb21wb25lbnQpXG4gICAgdG9vbGJhckFjdGlvbnM6IFZpZXdlclRvb2xiYXJBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZChWaWV3ZXJNb3JlQWN0aW9uc0NvbXBvbmVudClcbiAgICBtb3JlQWN0aW9uczogVmlld2VyTW9yZUFjdGlvbnNDb21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKFZpZXdlck9wZW5XaXRoQ29tcG9uZW50KVxuICAgIG9wZW5XaXRoOiBWaWV3ZXJPcGVuV2l0aENvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3ZpZXdlckV4dGVuc2lvbnMnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB2aWV3ZXJFeHRlbnNpb25zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIE5vZGUgSWQgb2YgdGhlIGZpbGUgdG8gbG9hZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5vZGVJZDogc3RyaW5nID0gbnVsbDtcblxuICAgIC8qKiBWZXJzaW9uIElkIG9mIHRoZSBmaWxlIHRvIGxvYWQuICovXG4gICAgQElucHV0KClcbiAgICB2ZXJzaW9uSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogU2hhcmVkIGxpbmsgaWQgKHRvIGRpc3BsYXkgc2hhcmVkIGZpbGUpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hhcmVkTGlua0lkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIEhpZGUgb3Igc2hvdyB0aGUgdmlld2VyICovXG4gICAgQElucHV0KClcbiAgICBzaG93Vmlld2VyID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgVmlld2VyIHdpbGwgcmV0cnkgZmV0Y2hpbmcgY29udGVudCBSZW5kaXRpb24uXG4gICAgICogVGhlcmUgaXMgYSBkZWxheSBvZiBhdCBsZWFzdCBvbmUgc2Vjb25kIGJldHdlZW4gYXR0ZW1wdHMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhSZXRyaWVzID0gMzA7XG5cbiAgICAvKiogQWxsb3dzIGBiYWNrYCBuYXZpZ2F0aW9uICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd0dvQmFjayA9IHRydWU7XG5cbiAgICAvKiogSGlkZSBvciBzaG93IHRoZSB0b29sYmFyICovXG4gICAgQElucHV0KClcbiAgICBzaG93VG9vbGJhciA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBJZiBgdHJ1ZWAgdGhlbiBzaG93IHRoZSBWaWV3ZXIgYXMgYSBmdWxsIHBhZ2Ugb3ZlciB0aGUgY3VycmVudCBjb250ZW50LlxuICAgICAqIE90aGVyd2lzZSwgZml0IGluc2lkZSB0aGUgcGFyZW50IGRpdi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG92ZXJsYXlNb2RlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGJlZm9yZS9uZXh0IG5hdmlnYXRpb24uIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBidXR0b25zIHRvIG5hdmlnYXRlXG4gICAgICogYmV0d2VlbiBkb2N1bWVudHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd05hdmlnYXRlID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgXCJiZWZvcmVcIiAoXCI8XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZUJlZm9yZSA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgbmV4dCAoXCI+XCIpIGJ1dHRvbi4gUmVxdWlyZXMgYGFsbG93TmF2aWdhdGVgIHRvIGJlIGVuYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBjYW5OYXZpZ2F0ZU5leHQgPSB0cnVlO1xuXG4gICAgLyoqIEFsbG93IHRoZSBsZWZ0IHRoZSBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dMZWZ0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIEFsbG93IHRoZSByaWdodCBzaWRlYmFyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dSaWdodFNpZGViYXIgPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHJpZ2h0IHNpZGViYXIgdmlzaWJpbGl0eS4gUmVxdWlyZXMgYGFsbG93UmlnaHRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1JpZ2h0U2lkZWJhciA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgbGVmdCBzaWRlYmFyIHZpc2liaWxpdHkuIFJlcXVpcmVzIGBhbGxvd0xlZnRTaWRlYmFyYCB0byBiZSBzZXQgdG8gYHRydWVgLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xlZnRTaWRlYmFyID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBkb3dubG9hZGluZy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RG93bmxvYWQgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgcHJpbnRpbmcuICovXG4gICAgQElucHV0KClcbiAgICBhbGxvd1ByaW50ID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgJ0Z1bGwgU2NyZWVuJyBmZWF0dXJlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dGdWxsU2NyZWVuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSAnSW5mbyBCdXR0b24nICovXG4gICAgQElucHV0KClcbiAgICBoaWRlSW5mb0J1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIENoYW5nZSB0aGUgY2xvc2UgYnV0dG9uIHBvc2l0aW9uIFJpZ2h0L0xlZnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uUG9zaXRpb24gPSBDbG9zZUJ1dHRvblBvc2l0aW9uLkxlZnQ7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcmlnaHQgc2lkZWJhci4gVGhlIHRlbXBsYXRlIGNvbnRleHQgY29udGFpbnMgdGhlIGxvYWRlZCBub2RlIGRhdGEuICovXG4gICAgQElucHV0KClcbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiA9IG51bGw7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgbGVmdCBzaWRlYmFyLiBUaGUgdGVtcGxhdGUgY29udGV4dCBjb250YWlucyB0aGUgbG9hZGVkIG5vZGUgZGF0YS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNpZGViYXJMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgc2hhcmVkIGxpbmsgdXNlZCBpcyBub3QgdmFsaWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgaW52YWxpZFNoYXJlZExpbmsgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzICdOYXZpZ2F0ZSBCZWZvcmUnIChcIjxcIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlQmVmb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdXNlciBjbGlja3MgJ05hdmlnYXRlIE5leHQnIChcIj5cIikgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5hdmlnYXRlTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB2aWV3ZXIgY2xvc2UgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzaG93Vmlld2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBjYWNoZUJ1c3Rlck51bWJlcjogbnVtYmVyO1xuXG4gICAgdmVyc2lvbkVudHJ5OiBWZXJzaW9uRW50cnk7XG4gICAgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuICAgIG1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZU1pbWVUeXBlOiBzdHJpbmc7XG4gICAgbm9kZUVudHJ5OiBOb2RlRW50cnk7XG4gICAgdHJhY2tzOiBUcmFja1tdID0gW107XG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICBzaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG4gICAgc2lkZWJhckxlZnRUZW1wbGF0ZUNvbnRleHQ6IHsgbm9kZTogTm9kZSB9ID0geyBub2RlOiBudWxsIH07XG5cbiAgICBwcml2YXRlIF9zaGFyZWRMaW5rc0FwaTogU2hhcmVkbGlua3NBcGk7XG4gICAgZ2V0IHNoYXJlZExpbmtzQXBpKCk6IFNoYXJlZGxpbmtzQXBpIHtcbiAgICAgICAgdGhpcy5fc2hhcmVkTGlua3NBcGkgPSB0aGlzLl9zaGFyZWRMaW5rc0FwaSA/PyBuZXcgU2hhcmVkbGlua3NBcGkodGhpcy5hcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmVkTGlua3NBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmVyc2lvbnNBcGk6IFZlcnNpb25zQXBpO1xuICAgIGdldCB2ZXJzaW9uc0FwaSgpOiBWZXJzaW9uc0FwaSB7XG4gICAgICAgIHRoaXMuX3ZlcnNpb25zQXBpID0gdGhpcy5fdmVyc2lvbnNBcGkgPz8gbmV3IFZlcnNpb25zQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnNpb25zQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc0FwaTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb250ZW50QXBpOiBDb250ZW50QXBpO1xuICAgIGdldCBjb250ZW50QXBpKCk6IENvbnRlbnRBcGkge1xuICAgICAgICB0aGlzLl9jb250ZW50QXBpID0gdGhpcy5fY29udGVudEFwaSA/PyBuZXcgQ29udGVudEFwaSh0aGlzLmFwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50QXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBub2Rlc0FwaVNlcnZpY2U6IE5vZGVzQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kaXRpb25TZXJ2aWNlOiBSZW5kaXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdVdGlsU2VydmljZTogVmlld1V0aWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZVxuICAgICkge1xuICAgICAgICByZW5kaXRpb25TZXJ2aWNlLm1heFJldHJpZXMgPSB0aGlzLm1heFJldHJpZXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubm9kZXNBcGlTZXJ2aWNlLm5vZGVVcGRhdGVkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChub2RlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSAmJiBub2RlLmlkID09PSB0aGlzLm5vZGVJZCAmJiB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkodGhpcy5ub2RlRW50cnkuZW50cnkpICE9PSB0aGlzLmdldE5vZGVWZXJzaW9uUHJvcGVydHkobm9kZSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChub2RlKSA9PiB0aGlzLm9uTm9kZVVwZGF0ZWQobm9kZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgb25Ob2RlVXBkYXRlZChub2RlOiBOb2RlKSB7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUuaWQgPT09IHRoaXMubm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ2FjaGVCdXN0ZXJOdW1iZXIoKTtcblxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROb2RlVmVyc2lvblByb3BlcnR5KG5vZGU6IE5vZGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbm9kZT8ucHJvcGVydGllc1snY206dmVyc2lvbkxhYmVsJ10gPz8gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzZXR1cFNoYXJlZExpbmsoKSB7XG4gICAgICAgIHRoaXMuYWxsb3dHb0JhY2sgPSBmYWxzZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc2hhcmVkTGlua0VudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rKHRoaXMuc2hhcmVkTGlua0lkKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXBTaGFyZWRMaW5rRmlsZShzaGFyZWRMaW5rRW50cnkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkU2hhcmVkTGluay5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLm1pbWVUeXBlID0gJ2ludmFsaWQtbGluayc7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtZmlsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldHVwTm9kZSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubm9kZUVudHJ5ID0gYXdhaXQgdGhpcy5ub2Rlc0FwaS5nZXROb2RlKHRoaXMubm9kZUlkLCB7IGluY2x1ZGU6IFsnYWxsb3dhYmxlT3BlcmF0aW9ucyddIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMudmVyc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJzaW9uRW50cnkgPSBhd2FpdCB0aGlzLnZlcnNpb25zQXBpLmdldFZlcnNpb24odGhpcy5ub2RlSWQsIHRoaXMudmVyc2lvbklkKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNldFVwTm9kZUZpbGUodGhpcy5ub2RlRW50cnkuZW50cnksIHRoaXMudmVyc2lvbkVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcE5vZGVGaWxlKHRoaXMubm9kZUVudHJ5LmVudHJ5KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gJ2ludmFsaWQtbm9kZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwTm9kZUZpbGUobm9kZURhdGE6IE5vZGUsIHZlcnNpb25EYXRhPzogVmVyc2lvbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnJlYWRPbmx5ID0gIXRoaXMuY29udGVudFNlcnZpY2UuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyhub2RlRGF0YSwgJ3VwZGF0ZScpO1xuICAgICAgICBsZXQgbWltZVR5cGU6IHN0cmluZztcbiAgICAgICAgbGV0IG5vZGVNaW1lVHlwZTogc3RyaW5nO1xuICAgICAgICBsZXQgdXJsRmlsZUNvbnRlbnQ6IHN0cmluZztcblxuICAgICAgICBpZiAodmVyc2lvbkRhdGE/LmNvbnRlbnQpIHtcbiAgICAgICAgICAgIG1pbWVUeXBlID0gdmVyc2lvbkRhdGEuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgfSBlbHNlIGlmIChub2RlRGF0YS5jb250ZW50KSB7XG4gICAgICAgICAgICBtaW1lVHlwZSA9IG5vZGVEYXRhLmNvbnRlbnQubWltZVR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZU1pbWVUeXBlID0gbWltZVR5cGU7XG5cbiAgICAgICAgY29uc3QgY3VycmVudEZpbGVWZXJzaW9uID0gdGhpcy5ub2RlRW50cnk/LmVudHJ5Py5wcm9wZXJ0aWVzPy5bJ2NtOnZlcnNpb25MYWJlbCddXG4gICAgICAgICAgICA/IGVuY29kZVVSSSh0aGlzLm5vZGVFbnRyeT8uZW50cnk/LnByb3BlcnRpZXNbJ2NtOnZlcnNpb25MYWJlbCddKVxuICAgICAgICAgICAgOiBlbmNvZGVVUkkoJzEuMCcpO1xuXG4gICAgICAgIHVybEZpbGVDb250ZW50ID0gdmVyc2lvbkRhdGEgPyB0aGlzLmNvbnRlbnRBcGkuZ2V0VmVyc2lvbkNvbnRlbnRVcmwodGhpcy5ub2RlSWQsIHZlcnNpb25EYXRhLmlkKSA6IHRoaXMuY29udGVudEFwaS5nZXRDb250ZW50VXJsKHRoaXMubm9kZUlkKTtcbiAgICAgICAgdXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICcmJyArIGN1cnJlbnRGaWxlVmVyc2lvbjtcblxuICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbih2ZXJzaW9uRGF0YSA/IHZlcnNpb25EYXRhLm5hbWUgOiBub2RlRGF0YS5uYW1lKTtcbiAgICAgICAgY29uc3Qgdmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGUoZmlsZUV4dGVuc2lvbiwgbWltZVR5cGUpO1xuXG4gICAgICAgIGlmICh2aWV3ZXJUeXBlID09PSAndW5rbm93bicpIHtcbiAgICAgICAgICAgIGxldCBub2RlUmVuZGl0aW9uO1xuICAgICAgICAgICAgaWYgKHZlcnNpb25EYXRhKSB7XG4gICAgICAgICAgICAgICAgbm9kZVJlbmRpdGlvbiA9IGF3YWl0IHRoaXMucmVuZGl0aW9uU2VydmljZS5nZXROb2RlUmVuZGl0aW9uKG5vZGVEYXRhLmlkLCB2ZXJzaW9uRGF0YS5pZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVSZW5kaXRpb24gPSBhd2FpdCB0aGlzLnJlbmRpdGlvblNlcnZpY2UuZ2V0Tm9kZVJlbmRpdGlvbihub2RlRGF0YS5pZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobm9kZVJlbmRpdGlvbikge1xuICAgICAgICAgICAgICAgIHVybEZpbGVDb250ZW50ID0gbm9kZVJlbmRpdGlvbi51cmw7XG5cbiAgICAgICAgICAgICAgICBub2RlTWltZVR5cGUgPSBub2RlRGF0YT8uY29udGVudD8ubWltZVR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uTWltZVR5cGUgPSBub2RlUmVuZGl0aW9uLm1pbWVUeXBlO1xuICAgICAgICAgICAgICAgIG1pbWVUeXBlID0gcmVuZGl0aW9uTWltZVR5cGUgfHwgbm9kZU1pbWVUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZpZXdlclR5cGUgPT09ICdtZWRpYScpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tzID0gYXdhaXQgdGhpcy5yZW5kaXRpb25TZXJ2aWNlLmdlbmVyYXRlTWVkaWFUcmFja3NSZW5kaXRpb24odGhpcy5ub2RlSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLm5vZGVNaW1lVHlwZSA9IG5vZGVNaW1lVHlwZTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IHZlcnNpb25EYXRhID8gdmVyc2lvbkRhdGEubmFtZSA6IG5vZGVEYXRhLm5hbWU7XG4gICAgICAgIHRoaXMudXJsRmlsZUNvbnRlbnQgPSB1cmxGaWxlQ29udGVudCArICh0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID8gJyYnICsgdGhpcy5jYWNoZUJ1c3Rlck51bWJlciA6ICcnKTtcbiAgICAgICAgdGhpcy5zaWRlYmFyUmlnaHRUZW1wbGF0ZUNvbnRleHQubm9kZSA9IG5vZGVEYXRhO1xuICAgICAgICB0aGlzLnNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0Lm5vZGUgPSBub2RlRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNldFVwU2hhcmVkTGlua0ZpbGUoZGV0YWlsczogYW55KSB7XG4gICAgICAgIGxldCBtaW1lVHlwZSA9IGRldGFpbHMuZW50cnkuY29udGVudC5taW1lVHlwZTtcbiAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldEZpbGVFeHRlbnNpb24oZGV0YWlscy5lbnRyeS5uYW1lKTtcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IGRldGFpbHMuZW50cnkubmFtZTtcbiAgICAgICAgbGV0IHVybEZpbGVDb250ZW50ID0gdGhpcy5jb250ZW50QXBpLmdldFNoYXJlZExpbmtDb250ZW50VXJsKHRoaXMuc2hhcmVkTGlua0lkLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlKGZpbGVFeHRlbnNpb24sIG1pbWVUeXBlKTtcblxuICAgICAgICBpZiAodmlld2VyVHlwZSA9PT0gJ3Vua25vd24nKSB7XG4gICAgICAgICAgICAoeyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZSB9ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHRoaXMuc2hhcmVkTGlua0lkKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5taW1lVHlwZSA9IG1pbWVUeXBlO1xuICAgICAgICB0aGlzLnVybEZpbGVDb250ZW50ID0gdXJsRmlsZUNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkOiBzdHJpbmcpOiBQcm9taXNlPHsgdXJsOiBzdHJpbmc7IG1pbWVUeXBlOiBzdHJpbmcgfT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVuZGl0aW9uOiBSZW5kaXRpb25FbnRyeSA9IGF3YWl0IHRoaXMuc2hhcmVkTGlua3NBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvbihzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgaWYgKHJlbmRpdGlvbi5lbnRyeS5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0NSRUFURUQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsRmlsZUNvbnRlbnQgPSB0aGlzLmNvbnRlbnRBcGkuZ2V0U2hhcmVkTGlua1JlbmRpdGlvblVybChzaGFyZWRJZCwgJ3BkZicpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsRmlsZUNvbnRlbnQsIG1pbWVUeXBlOiAnYXBwbGljYXRpb24vcGRmJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZW5kaXRpb246IFJlbmRpdGlvbkVudHJ5ID0gYXdhaXQgdGhpcy5zaGFyZWRMaW5rc0FwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgIGlmIChyZW5kaXRpb24uZW50cnkuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdDUkVBVEVEJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxGaWxlQ29udGVudCA9IHRoaXMuY29udGVudEFwaS5nZXRTaGFyZWRMaW5rUmVuZGl0aW9uVXJsKHNoYXJlZElkLCAnaW1ncHJldmlldycpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB1cmw6IHVybEZpbGVDb250ZW50LCBtaW1lVHlwZTogJ2ltYWdlL3BuZycgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChyZW5kaXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlQnVzdGVyTnVtYmVyKCkge1xuICAgICAgICB0aGlzLmNhY2hlQnVzdGVyTnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZSB0aGUgdmlld2VyXG4gICAgICovXG4gICAgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5zaG93Vmlld2VyQ2hhbmdlLmVtaXQodGhpcy5zaG93Vmlld2VyKTtcbiAgICB9XG5cbiAgICBvblByaW50Q29udGVudChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd1ByaW50KSB7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRpdGlvblNlcnZpY2UucHJpbnRGaWxlR2VuZXJpYyh0aGlzLm5vZGVJZCwgdGhpcy5taW1lVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1pdEZpbGUobmV3SW1hZ2VCbG9iOiBCbG9iKSB7XG4gICAgICAgIGlmICh0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5pZCAmJiAhdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgY29uc3QgbmV3SW1hZ2VGaWxlOiBGaWxlID0gbmV3IEZpbGUoW25ld0ltYWdlQmxvYl0sIHRoaXM/Lm5vZGVFbnRyeT8uZW50cnk/Lm5hbWUsIHsgdHlwZTogdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8uY29udGVudD8ubWltZVR5cGUgfSk7XG4gICAgICAgICAgICBjb25zdCBuZXdGaWxlID0gbmV3IEZpbGVNb2RlbChcbiAgICAgICAgICAgICAgICBuZXdJbWFnZUZpbGUsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBtYWpvclZlcnNpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBuZXdWZXJzaW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8ucGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVUeXBlOiB0aGlzPy5ub2RlRW50cnk/LmVudHJ5Py5jb250ZW50Py5taW1lVHlwZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGhpcz8ubm9kZUVudHJ5Py5lbnRyeT8uaWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuYWRkVG9RdWV1ZSguLi5bbmV3RmlsZV0pO1xuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEZpbGVzSW5UaGVRdWV1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0ZUJlZm9yZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLm5hdmlnYXRlQmVmb3JlLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uTmF2aWdhdGVOZXh0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVOZXh0Lm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIGlzU291cmNlRGVmaW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMubm9kZUlkIHx8IHRoaXMuc2hhcmVkTGlua0lkKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNob3dWaWV3ZXIpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NvdXJjZURlZmluZWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBjb250ZW50IHNvdXJjZSBhdHRyaWJ1dGUgdmFsdWUgaXMgbWlzc2luZy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNoYW5nZXMubm9kZUlkPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMubm9kZUlkPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cE5vZGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zaGFyZWRMaW5rSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwU2hhcmVkTGluaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Eb3dubG9hZEZpbGUoKSB7XG4gICAgICAgIHRoaXMubm9kZUFjdGlvbnNTZXJ2aWNlLmRvd25sb2FkTm9kZSh0aGlzLm5vZGVFbnRyeSk7XG4gICAgfVxufVxuIiwiPGFkZi12aWV3ZXJcbiAgICAjYWRmVmlld2VyXG4gICAgWyhzaG93Vmlld2VyKV09XCJzaG93Vmlld2VyXCJcbiAgICBbYWxsb3dHb0JhY2tdPVwiYWxsb3dHb0JhY2tcIlxuICAgIFtzaG93VG9vbGJhcl09XCJzaG93VG9vbGJhclwiXG4gICAgW292ZXJsYXlNb2RlXT1cIm92ZXJsYXlNb2RlXCJcbiAgICBbYWxsb3dOYXZpZ2F0ZV09XCJhbGxvd05hdmlnYXRlXCJcbiAgICBbY2FuTmF2aWdhdGVCZWZvcmVdPVwiY2FuTmF2aWdhdGVCZWZvcmVcIlxuICAgIFtjYW5OYXZpZ2F0ZU5leHRdPVwiY2FuTmF2aWdhdGVOZXh0XCJcbiAgICBbYWxsb3dMZWZ0U2lkZWJhcl09XCJhbGxvd0xlZnRTaWRlYmFyXCJcbiAgICBbYWxsb3dSaWdodFNpZGViYXJdPVwiYWxsb3dSaWdodFNpZGViYXJcIlxuICAgIFtzaG93UmlnaHRTaWRlYmFyXT1cInNob3dSaWdodFNpZGViYXJcIlxuICAgIFtzaG93TGVmdFNpZGViYXJdPVwic2hvd0xlZnRTaWRlYmFyXCJcbiAgICBbYWxsb3dGdWxsU2NyZWVuXT1cImFsbG93RnVsbFNjcmVlblwiXG4gICAgW3NpZGViYXJSaWdodFRlbXBsYXRlXT1cInNpZGViYXJSaWdodFRlbXBsYXRlXCJcbiAgICBbc2lkZWJhckxlZnRUZW1wbGF0ZV09XCJzaWRlYmFyTGVmdFRlbXBsYXRlXCJcbiAgICBbc2lkZWJhclJpZ2h0VGVtcGxhdGVDb250ZXh0XT1cInNpZGViYXJSaWdodFRlbXBsYXRlQ29udGV4dFwiXG4gICAgW3NpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0XT1cInNpZGViYXJMZWZ0VGVtcGxhdGVDb250ZXh0XCJcbiAgICBbY2xvc2VCdXR0b25Qb3NpdGlvbl09XCJjbG9zZUJ1dHRvblBvc2l0aW9uXCJcbiAgICBbaGlkZUluZm9CdXR0b25dPVwiaGlkZUluZm9CdXR0b25cIlxuICAgIFtmaWxlTmFtZV09XCJmaWxlTmFtZVwiXG4gICAgW21pbWVUeXBlXT1cIm1pbWVUeXBlXCJcbiAgICBbbm9kZU1pbWVUeXBlXT1cIm5vZGVNaW1lVHlwZVwiXG4gICAgW3VybEZpbGVdPVwidXJsRmlsZUNvbnRlbnRcIlxuICAgIFt0cmFja3NdPVwidHJhY2tzXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFthbGxvd2VkRWRpdEFjdGlvbnNdPVwiYWxsb3dlZEVkaXRBY3Rpb25zXCJcbiAgICBbdmlld2VyRXh0ZW5zaW9uc109XCJ2aWV3ZXJFeHRlbnNpb25zXCJcbiAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgKGRvd25sb2FkRmlsZSk9XCJvbkRvd25sb2FkRmlsZSgpXCJcbiAgICAobmF2aWdhdGVCZWZvcmUpPVwib25OYXZpZ2F0ZUJlZm9yZUNsaWNrKCRldmVudClcIlxuICAgIChuYXZpZ2F0ZU5leHQpPVwib25OYXZpZ2F0ZU5leHRDbGljaygkZXZlbnQpXCJcbiAgICAoc2hvd1ZpZXdlckNoYW5nZSk9XCJvbkNsb3NlKClcIlxuICAgIChzdWJtaXRGaWxlKT1cIm9uU3VibWl0RmlsZSgkZXZlbnQpXCI+XG5cbiAgICA8YWRmLXZpZXdlci10b29sYmFyICpuZ0lmPVwidG9vbGJhclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLXRvb2xiYXJcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyPlxuXG4gICAgPGFkZi12aWV3ZXItdG9vbGJhci1hY3Rpb25zICpuZ0lmPVwidG9vbGJhckFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnNcIiAvPlxuICAgIDwvYWRmLXZpZXdlci10b29sYmFyLWFjdGlvbnM+XG5cbiAgICA8YWRmLXZpZXdlci1tb3JlLWFjdGlvbnMgKm5nSWY9XCJtb3JlQWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtdmlld2VyLW1vcmUtYWN0aW9uc1wiIC8+XG4gICAgPC9hZGYtdmlld2VyLW1vcmUtYWN0aW9ucz5cblxuICAgIDxhZGYtdmlld2VyLW9wZW4td2l0aCAqbmdJZj1cIm9wZW5XaXRoXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFkZi12aWV3ZXItb3Blbi13aXRoXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItb3Blbi13aXRoPlxuXG4gICAgPGFkZi12aWV3ZXItc2lkZWJhciAqbmdJZj1cInNpZGViYXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYWRmLXZpZXdlci1zaWRlYmFyXCIgLz5cbiAgICA8L2FkZi12aWV3ZXItc2lkZWJhcj5cblxuICAgIDxhZGYtdmlld2VyLXRvb2xiYXItY3VzdG9tLWFjdGlvbnM+XG4gICAgICAgIDxidXR0b24gaWQ9XCJhZGYtYWxmcmVzY28tdmlld2VyLWRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93RG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuQUNUSU9OUy5ET1dOTE9BRCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5ET1dOTE9BRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi10b29sYmFyLWRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICBbYWRmTm9kZURvd25sb2FkXT1cIm5vZGVFbnRyeVwiXG4gICAgICAgICAgICAgICAgW3ZlcnNpb25dPVwidmVyc2lvbkVudHJ5XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gaWQ9XCJhZGYtYWxmcmVzY28tdmlld2VyLXByaW50XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93UHJpbnRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9WSUVXRVIuQUNUSU9OUy5QUklOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FERl9WSUVXRVIuQUNUSU9OUy5QUklOVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi10b29sYmFyLXByaW50XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QcmludENvbnRlbnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnByaW50PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9hZGYtdmlld2VyLXRvb2xiYXItY3VzdG9tLWFjdGlvbnM+XG48L2FkZi12aWV3ZXI+XG4iXX0=
|