@alfresco/aca-content 5.2.0 → 5.3.0-11955434723
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/folder-rules/manage-rules/manage-rules.smart-component.mjs +13 -17
- package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +9 -12
- package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +8 -12
- package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +8 -12
- package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +5 -7
- package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +7 -10
- package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +8 -11
- package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +6 -11
- package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +7 -12
- package/esm2022/lib/components/context-menu/context-menu.component.mjs +2 -2
- package/esm2022/lib/components/details/details.component.mjs +4 -3
- package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +5 -10
- package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +8 -12
- package/esm2022/lib/components/files/files.component.mjs +9 -8
- package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +12 -15
- package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +12 -16
- package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +7 -10
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +6 -11
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +5 -8
- package/esm2022/lib/components/search/search-input/search-input.component.mjs +6 -9
- package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +2 -8
- package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +3 -3
- package/esm2022/lib/components/search/search-results/search-results.component.mjs +2 -3
- package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +7 -11
- package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +5 -10
- package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +8 -11
- package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +5 -10
- package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +6 -6
- package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +7 -11
- package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +7 -11
- package/esm2022/lib/components/sidenav/sidenav.component.mjs +9 -13
- package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +6 -10
- package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +4 -9
- package/esm2022/lib/components/view-profile/view-profile.component.mjs +4 -9
- package/esm2022/lib/directives/document-list.directive.mjs +8 -12
- package/esm2022/viewer/lib/components/preview/preview.component.mjs +9 -11
- package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +15 -16
- package/fesm2022/alfresco-aca-content-folder-rules.mjs +27 -49
- package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2022/alfresco-aca-content-viewer.mjs +16 -20
- package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -1
- package/fesm2022/alfresco-aca-content.mjs +73 -168
- package/fesm2022/alfresco-aca-content.mjs.map +1 -1
- package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +3 -5
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +4 -5
- package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +3 -4
- package/folder-rules/rule-details/rule-details.ui-component.d.ts +4 -5
- package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +3 -4
- package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +3 -5
- package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +3 -4
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +4 -5
- package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +3 -4
- package/lib/components/context-menu/context-menu.component.d.ts +1 -1
- package/lib/components/details/details.component.d.ts +1 -2
- package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +3 -4
- package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -4
- package/lib/components/files/files.component.d.ts +1 -1
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +4 -6
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +6 -7
- package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +3 -4
- package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +3 -4
- package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +2 -3
- package/lib/components/search/search-input/search-input.component.d.ts +1 -2
- package/lib/components/search/search-input-control/search-input-control.component.d.ts +2 -5
- package/lib/components/search/search-results/search-results.component.d.ts +0 -1
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +3 -4
- package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +3 -5
- package/lib/components/shared-link-view/shared-link-view.component.d.ts +4 -5
- package/lib/components/sidenav/components/sidenav-header.component.d.ts +3 -4
- package/lib/components/sidenav/directives/active-link.directive.d.ts +1 -1
- package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +3 -4
- package/lib/components/sidenav/directives/menu-panel.directive.d.ts +3 -4
- package/lib/components/sidenav/sidenav.component.d.ts +3 -4
- package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +3 -4
- package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +1 -27
- package/lib/components/view-profile/view-profile.component.d.ts +2 -4
- package/lib/directives/document-list.directive.d.ts +3 -5
- package/package.json +5 -5
- package/viewer/lib/components/preview/preview.component.d.ts +3 -4
- package/viewer/lib/components/viewer/viewer.component.d.ts +2 -2
|
@@ -26,10 +26,9 @@ import { IconComponent } from '@alfresco/adf-core';
|
|
|
26
26
|
import { DynamicExtensionComponent } from '@alfresco/adf-extensions';
|
|
27
27
|
import { NodeEntry } from '@alfresco/js-api';
|
|
28
28
|
import { CommonModule } from '@angular/common';
|
|
29
|
-
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
29
|
+
import { Component, DestroyRef, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
30
30
|
import { TranslateModule } from '@ngx-translate/core';
|
|
31
|
-
import {
|
|
32
|
-
import { takeUntil } from 'rxjs/operators';
|
|
31
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
33
32
|
import * as i0 from "@angular/core";
|
|
34
33
|
import * as i1 from "@alfresco/aca-shared";
|
|
35
34
|
import * as i2 from "@angular/common";
|
|
@@ -38,22 +37,18 @@ class DatatableCellBadgesComponent {
|
|
|
38
37
|
appExtensionService;
|
|
39
38
|
node;
|
|
40
39
|
badges;
|
|
41
|
-
|
|
40
|
+
destroyRef = inject(DestroyRef);
|
|
42
41
|
constructor(appExtensionService) {
|
|
43
42
|
this.appExtensionService = appExtensionService;
|
|
44
43
|
}
|
|
45
44
|
ngOnInit() {
|
|
46
45
|
this.appExtensionService
|
|
47
46
|
.getBadges(this.node)
|
|
48
|
-
.pipe(
|
|
47
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
49
48
|
.subscribe((badges) => {
|
|
50
49
|
this.badges = badges;
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
|
-
ngOnDestroy() {
|
|
54
|
-
this.onDestroy$.next(true);
|
|
55
|
-
this.onDestroy$.complete();
|
|
56
|
-
}
|
|
57
52
|
onBadgeClick(badge) {
|
|
58
53
|
if (badge.actions?.click) {
|
|
59
54
|
this.appExtensionService.runActionById(badge.actions?.click, this.node);
|
|
@@ -72,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
72
67
|
}], ctorParameters: function () { return [{ type: i1.AppExtensionService }]; }, propDecorators: { node: [{
|
|
73
68
|
type: Input
|
|
74
69
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9kYXRhdGFibGUtY2VsbC1iYWRnZXMvZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9kYXRhdGFibGUtY2VsbC1iYWRnZXMvZGF0YXRhYmxlLWNlbGwtYmFkZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLG1CQUFtQixFQUFTLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBRWhFLE1BU2EsNEJBQTRCO0lBT25CO0lBTlgsSUFBSSxDQUFZO0lBRXpCLE1BQU0sQ0FBVTtJQUVDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFBRyxDQUFDO0lBRWhFLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBMUJVLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHNLQzFDekMsOG1CQW1CQSxpaEJEb0JZLFlBQVksK1BBQUUsZUFBZSw0RkFBRSx5QkFBeUIsMEZBQUUsYUFBYTs7U0FHdEUsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBVHhDLFNBQVM7K0JBQ0UsMkJBQTJCLFFBRy9CLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLGlCQUM3QixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLENBQUMsY0FDdEUsSUFBSTswR0FHUCxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uU2VydmljZSwgQmFkZ2UgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IER5bmFtaWNFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgTm9kZUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNhLWRhdGF0YWJsZS1jZWxsLWJhZGdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUtY2VsbC1iYWRnZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtY2VsbC1iYWRnZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1kYXRhdGFibGUtY2VsbC1iYWRnZXMnIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRHluYW1pY0V4dGVuc2lvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlQ2VsbEJhZGdlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGVFbnRyeTtcblxuICBiYWRnZXM6IEJhZGdlW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwRXh0ZW5zaW9uU2VydmljZTogQXBwRXh0ZW5zaW9uU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcEV4dGVuc2lvblNlcnZpY2VcbiAgICAgIC5nZXRCYWRnZXModGhpcy5ub2RlKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKChiYWRnZXMpID0+IHtcbiAgICAgICAgdGhpcy5iYWRnZXMgPSBiYWRnZXM7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uQmFkZ2VDbGljayhiYWRnZTogQmFkZ2UpIHtcbiAgICBpZiAoYmFkZ2UuYWN0aW9ucz8uY2xpY2spIHtcbiAgICAgIHRoaXMuYXBwRXh0ZW5zaW9uU2VydmljZS5ydW5BY3Rpb25CeUlkKGJhZGdlLmFjdGlvbnM/LmNsaWNrLCB0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5UHJlc3MoYmFkZ2U6IEJhZGdlKSB7XG4gICAgdGhpcy5vbkJhZGdlQ2xpY2soYmFkZ2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNhLWRhdGF0YWJsZS1jZWxsLWJhZGdlcy1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBiYWRnZXNcIj5cbiAgICAgIDxhZGYtZHluYW1pYy1jb21wb25lbnRcbiAgICAgICAgKm5nSWY9XCJiYWRnZS5jb21wb25lbnQ7IGVsc2UgaWNvbkJhZGdlXCJcbiAgICAgICAgW2lkXT1cImJhZGdlLmNvbXBvbmVudFwiXG4gICAgICAgIFtkYXRhXT1cInsgbm9kZSB9XCJcbiAgICAgIC8+XG4gICAgICA8bmctdGVtcGxhdGUgI2ljb25CYWRnZT5cbiAgICAgICAgPGFkZi1pY29uXG4gICAgICAgICAgY2xhc3M9XCJhZGYtZGF0YXRhYmxlLWNlbGwtYmFkZ2VcIlxuICAgICAgICAgIFt0aXRsZV09XCJiYWRnZS50b29sdGlwIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbdmFsdWVdPVwiYmFkZ2UuaWNvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQmFkZ2VDbGljayhiYWRnZSlcIlxuICAgICAgICAgIChrZXlwcmVzcy5lbnRlcik9XCJvbktleVByZXNzKGJhZGdlKVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
23
23
|
*/
|
|
24
24
|
import { NameColumnComponent, NodeNameTooltipPipe, NodesApiService } from '@alfresco/adf-content-services';
|
|
25
|
-
import { ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';
|
|
25
|
+
import { ChangeDetectorRef, Component, DestroyRef, ElementRef, inject, ViewEncapsulation } from '@angular/core';
|
|
26
26
|
import { Actions, ofType } from '@ngrx/effects';
|
|
27
|
-
import {
|
|
28
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
27
|
+
import { filter } from 'rxjs/operators';
|
|
29
28
|
import { NodeActionTypes } from '@alfresco/aca-shared/store';
|
|
30
|
-
import {
|
|
29
|
+
import { isLocked, LockedByComponent } from '@alfresco/aca-shared';
|
|
31
30
|
import { CommonModule } from '@angular/common';
|
|
32
31
|
import { TranslateModule } from '@ngx-translate/core';
|
|
33
32
|
import { IconComponent } from '@alfresco/adf-core';
|
|
34
33
|
import { DynamicExtensionComponent } from '@alfresco/adf-extensions';
|
|
35
34
|
import { DatatableCellBadgesComponent } from '../datatable-cell-badges/datatable-cell-badges.component';
|
|
35
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
36
36
|
import * as i0 from "@angular/core";
|
|
37
37
|
import * as i1 from "@ngrx/effects";
|
|
38
38
|
import * as i2 from "@alfresco/adf-content-services";
|
|
@@ -42,9 +42,9 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
42
42
|
cd;
|
|
43
43
|
actions$;
|
|
44
44
|
nodesService;
|
|
45
|
-
onDestroy$$ = new Subject();
|
|
46
45
|
isFile;
|
|
47
46
|
isFileWriteLocked;
|
|
47
|
+
destroy = inject(DestroyRef);
|
|
48
48
|
constructor(element, cd, actions$, nodesService) {
|
|
49
49
|
super(element, nodesService);
|
|
50
50
|
this.cd = cd;
|
|
@@ -55,7 +55,7 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
55
55
|
this.updateValue();
|
|
56
56
|
this.isFile = this.node?.entry && !this.node.entry.isFolder;
|
|
57
57
|
this.isFileWriteLocked = isLocked(this.node);
|
|
58
|
-
this.nodesService.nodeUpdated.pipe(
|
|
58
|
+
this.nodesService.nodeUpdated.pipe(takeUntilDestroyed(this.destroy)).subscribe((node) => {
|
|
59
59
|
const row = this.context.row;
|
|
60
60
|
if (row) {
|
|
61
61
|
const { entry } = row.node;
|
|
@@ -71,7 +71,7 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
73
|
this.actions$
|
|
74
|
-
.pipe(ofType(NodeActionTypes.EditOffline), filter((val) => this.node.entry.id === val.payload.entry.id),
|
|
74
|
+
.pipe(ofType(NodeActionTypes.EditOffline), filter((val) => this.node.entry.id === val.payload.entry.id), takeUntilDestroyed(this.destroy))
|
|
75
75
|
.subscribe(() => {
|
|
76
76
|
this.isFileWriteLocked = isLocked(this.node);
|
|
77
77
|
this.cd.detectChanges();
|
|
@@ -81,10 +81,6 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
81
81
|
event.stopPropagation();
|
|
82
82
|
this.onClick();
|
|
83
83
|
}
|
|
84
|
-
ngOnDestroy() {
|
|
85
|
-
this.onDestroy$$.next(true);
|
|
86
|
-
this.onDestroy$$.complete();
|
|
87
|
-
}
|
|
88
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CustomNameColumnComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Actions }, { token: i2.NodesApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
85
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CustomNameColumnComponent, isStandalone: true, selector: "aca-custom-name-column", host: { classAttribute: "adf-datatable-content-cell adf-datatable-link adf-name-column aca-custom-name-column" }, usesInheritance: true, ngImport: i0, template: "<div class=\"aca-custom-name-column\">\n <div class=\"aca-name-column-container\">\n <span\n role=\"link\"\n tabindex=\"0\"\n [attr.aria-label]=\"\n (isFile ? 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FILE_LINK_ARIA_LABEL' : 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FOLDER_LINK_ARIA_LABEL')\n | translate : { name: displayText$ | async }\n \"\n class=\"adf-datatable-cell-value\"\n title=\"{{ node | adfNodeNameTooltip }}\"\n (click)=\"onLinkClick($event)\"\n (keyup.enter)=\"onLinkClick($event)\"\n >\n {{ displayText$ | async }}\n </span>\n\n <ng-container *ngIf=\"isFile && isFileWriteLocked\">\n <aca-locked-by [node]=\"context.row.node\" />\n </ng-container>\n </div>\n <aca-datatable-cell-badges [node]=\"node\" />\n</div>\n", styles: [".aca-custom-name-column{display:flex;align-items:center;justify-content:space-between;width:100%}.aca-custom-name-column .aca-name-column-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aca-custom-name-column .aca-name-column-container .aca-locked-by{display:flex;align-items:center;color:#0000008a;max-width:100%;padding-right:10px}.aca-custom-name-column .aca-name-column-container .aca-locked-by--name{overflow:hidden;text-overflow:ellipsis}.adf-datatable-content-cell.adf-name-column.aca-custom-name-column{position:unset}.adf-datatable-list .adf-datatable-link:hover .aca-datatable-cell-badges{color:var(--adf-theme-foreground-text-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: LockedByComponent, selector: "aca-locked-by", inputs: ["node"] }, { kind: "pipe", type: NodeNameTooltipPipe, name: "adfNodeNameTooltip" }, { kind: "component", type: DatatableCellBadgesComponent, selector: "aca-datatable-cell-badges", inputs: ["node"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
90
86
|
}
|
|
@@ -103,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
103
99
|
class: 'adf-datatable-content-cell adf-datatable-link adf-name-column aca-custom-name-column'
|
|
104
100
|
}, template: "<div class=\"aca-custom-name-column\">\n <div class=\"aca-name-column-container\">\n <span\n role=\"link\"\n tabindex=\"0\"\n [attr.aria-label]=\"\n (isFile ? 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FILE_LINK_ARIA_LABEL' : 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FOLDER_LINK_ARIA_LABEL')\n | translate : { name: displayText$ | async }\n \"\n class=\"adf-datatable-cell-value\"\n title=\"{{ node | adfNodeNameTooltip }}\"\n (click)=\"onLinkClick($event)\"\n (keyup.enter)=\"onLinkClick($event)\"\n >\n {{ displayText$ | async }}\n </span>\n\n <ng-container *ngIf=\"isFile && isFileWriteLocked\">\n <aca-locked-by [node]=\"context.row.node\" />\n </ng-container>\n </div>\n <aca-datatable-cell-badges [node]=\"node\" />\n</div>\n", styles: [".aca-custom-name-column{display:flex;align-items:center;justify-content:space-between;width:100%}.aca-custom-name-column .aca-name-column-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aca-custom-name-column .aca-name-column-container .aca-locked-by{display:flex;align-items:center;color:#0000008a;max-width:100%;padding-right:10px}.aca-custom-name-column .aca-name-column-container .aca-locked-by--name{overflow:hidden;text-overflow:ellipsis}.adf-datatable-content-cell.adf-name-column.aca-custom-name-column{position:unset}.adf-datatable-list .adf-datatable-link:hover .aca-datatable-cell-badges{color:var(--adf-theme-foreground-text-color)}\n"] }]
|
|
105
101
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Actions }, { type: i2.NodesApiService }]; } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2RsLWN1c3RvbS1jb21wb25lbnRzL25hbWUtY29sdW1uL25hbWUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9uYW1lLWNvbHVtbi9uYW1lLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQs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O1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO3VHQXJEVSx5QkFBeUI7MkZBQXpCLHlCQUF5QiwyTkN4RHRDLGl5QkF1QkEsb3RCRGlCSSxZQUFZLHVMQUNaLGVBQWUsNEZBQ2YsaUJBQWlCLHVFQUVqQixtQkFBbUIsMkRBRW5CLDRCQUE0Qjs7U0FVbkIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBbkJyQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6Qiw0QkFBNEI7cUJBQzdCLFlBQ1Msd0JBQXdCLGlCQUduQixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxzRkFBc0Y7cUJBQzlGIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IE5hbWVDb2x1bW5Db21wb25lbnQsIE5vZGVOYW1lVG9vbHRpcFBpcGUsIE5vZGVzQXBpU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uVHlwZXMgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBMb2NrZWRCeUNvbXBvbmVudCwgaXNMb2NrZWQgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IER5bmFtaWNFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRGF0YXRhYmxlQ2VsbEJhZGdlc0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGF0YWJsZS1jZWxsLWJhZGdlcy9kYXRhdGFibGUtY2VsbC1iYWRnZXMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExvY2tlZEJ5Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTm9kZU5hbWVUb29sdGlwUGlwZSxcbiAgICBEeW5hbWljRXh0ZW5zaW9uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUNlbGxCYWRnZXNDb21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtY3VzdG9tLW5hbWUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hbWUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmFtZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYWRmLWRhdGF0YWJsZS1jb250ZW50LWNlbGwgYWRmLWRhdGF0YWJsZS1saW5rIGFkZi1uYW1lLWNvbHVtbiBhY2EtY3VzdG9tLW5hbWUtY29sdW1uJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbU5hbWVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBOYW1lQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG9uRGVzdHJveSQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBpc0ZpbGU6IGJvb2xlYW47XG4gIGlzRmlsZVdyaXRlTG9ja2VkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLCBwcml2YXRlIG5vZGVzU2VydmljZTogTm9kZXNBcGlTZXJ2aWNlKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgbm9kZXNTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB0aGlzLmlzRmlsZSA9IHRoaXMubm9kZT8uZW50cnkgJiYgIXRoaXMubm9kZS5lbnRyeS5pc0ZvbGRlcjtcbiAgICB0aGlzLmlzRmlsZVdyaXRlTG9ja2VkID0gaXNMb2NrZWQodGhpcy5ub2RlKTtcblxuICAgIHRoaXMubm9kZXNTZXJ2aWNlLm5vZGVVcGRhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCQpKS5zdWJzY3JpYmUoKG5vZGU6IGFueSkgPT4ge1xuICAgICAgY29uc3Qgcm93ID0gdGhpcy5jb250ZXh0LnJvdztcbiAgICAgIGlmIChyb3cpIHtcbiAgICAgICAgY29uc3QgeyBlbnRyeSB9ID0gcm93Lm5vZGU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJZCA9IGVudHJ5Lm5vZGVJZCB8fCBlbnRyeS5pZDtcbiAgICAgICAgY29uc3QgdXBkYXRlZElkID0gbm9kZS5ub2RlSWQgfHwgbm9kZS5pZDtcblxuICAgICAgICBpZiAoY3VycmVudElkID09PSB1cGRhdGVkSWQpIHtcbiAgICAgICAgICBlbnRyeS5uYW1lID0gbm9kZS5uYW1lO1xuICAgICAgICAgIHJvdy5ub2RlID0geyBlbnRyeSB9O1xuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNGaWxlID0gdGhpcy5ub2RlPy5lbnRyeSAmJiAhdGhpcy5ub2RlLmVudHJ5LmlzRm9sZGVyO1xuICAgICAgICB0aGlzLmlzRmlsZVdyaXRlTG9ja2VkID0gaXNMb2NrZWQodGhpcy5ub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuYWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBvZlR5cGU8YW55PihOb2RlQWN0aW9uVHlwZXMuRWRpdE9mZmxpbmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbCkgPT4gdGhpcy5ub2RlLmVudHJ5LmlkID09PSB2YWwucGF5bG9hZC5lbnRyeS5pZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNGaWxlV3JpdGVMb2NrZWQgPSBpc0xvY2tlZCh0aGlzLm5vZGUpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25MaW5rQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWNhLWN1c3RvbS1uYW1lLWNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwiYWNhLW5hbWUtY29sdW1uLWNvbnRhaW5lclwiPlxuICAgIDxzcGFuXG4gICAgICByb2xlPVwibGlua1wiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgKGlzRmlsZSA/ICdDVVNUT01fTkFNRV9DT0xVTU4uQUNDRVNTSUJJTElUWS5GSUxFX0xJTktfQVJJQV9MQUJFTCcgOiAnQ1VTVE9NX05BTUVfQ09MVU1OLkFDQ0VTU0lCSUxJVFkuRk9MREVSX0xJTktfQVJJQV9MQUJFTCcpXG4gICAgICAgICAgfCB0cmFuc2xhdGUgOiB7IG5hbWU6IGRpc3BsYXlUZXh0JCB8IGFzeW5jIH1cbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImFkZi1kYXRhdGFibGUtY2VsbC12YWx1ZVwiXG4gICAgICB0aXRsZT1cInt7IG5vZGUgfCBhZGZOb2RlTmFtZVRvb2x0aXAgfX1cIlxuICAgICAgKGNsaWNrKT1cIm9uTGlua0NsaWNrKCRldmVudClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uTGlua0NsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIHt7IGRpc3BsYXlUZXh0JCB8IGFzeW5jIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlsZSAmJiBpc0ZpbGVXcml0ZUxvY2tlZFwiPlxuICAgICAgPGFjYS1sb2NrZWQtYnkgW25vZGVdPVwiY29udGV4dC5yb3cubm9kZVwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8YWNhLWRhdGF0YWJsZS1jZWxsLWJhZGdlcyBbbm9kZV09XCJub2RlXCIgLz5cbjwvZGl2PlxuIl19
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2RsLWN1c3RvbS1jb21wb25lbnRzL25hbWUtY29sdW1uL25hbWUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9kbC1jdXN0b20tY29tcG9uZW50cy9uYW1lLWNvbHVtbi9uYW1lLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEw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O0lBQ2pCLENBQUM7dUdBaERVLHlCQUF5QjsyRkFBekIseUJBQXlCLDJOQ3hEdEMsaXlCQXVCQSxvdEJEaUJJLFlBQVksdUxBQ1osZUFBZSw0RkFDZixpQkFBaUIsdUVBRWpCLG1CQUFtQiwyREFFbkIsNEJBQTRCOztTQVVuQix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFuQnJDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLDRCQUE0QjtxQkFDN0IsWUFDUyx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHNGQUFzRjtxQkFDOUYiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgTmFtZUNvbHVtbkNvbXBvbmVudCwgTm9kZU5hbWVUb29sdGlwUGlwZSwgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uVHlwZXMgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBpc0xvY2tlZCwgTG9ja2VkQnlDb21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IER5bmFtaWNFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRGF0YXRhYmxlQ2VsbEJhZGdlc0NvbXBvbmVudCB9IGZyb20gJy4uL2RhdGF0YWJsZS1jZWxsLWJhZGdlcy9kYXRhdGFibGUtY2VsbC1iYWRnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExvY2tlZEJ5Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTm9kZU5hbWVUb29sdGlwUGlwZSxcbiAgICBEeW5hbWljRXh0ZW5zaW9uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUNlbGxCYWRnZXNDb21wb25lbnRcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtY3VzdG9tLW5hbWUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hbWUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmFtZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYWRmLWRhdGF0YWJsZS1jb250ZW50LWNlbGwgYWRmLWRhdGF0YWJsZS1saW5rIGFkZi1uYW1lLWNvbHVtbiBhY2EtY3VzdG9tLW5hbWUtY29sdW1uJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbU5hbWVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBOYW1lQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNGaWxlOiBib29sZWFuO1xuICBpc0ZpbGVXcml0ZUxvY2tlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHByaXZhdGUgbm9kZXNTZXJ2aWNlOiBOb2Rlc0FwaVNlcnZpY2UpIHtcbiAgICBzdXBlcihlbGVtZW50LCBub2Rlc1NlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuaXNGaWxlID0gdGhpcy5ub2RlPy5lbnRyeSAmJiAhdGhpcy5ub2RlLmVudHJ5LmlzRm9sZGVyO1xuICAgIHRoaXMuaXNGaWxlV3JpdGVMb2NrZWQgPSBpc0xvY2tlZCh0aGlzLm5vZGUpO1xuXG4gICAgdGhpcy5ub2Rlc1NlcnZpY2Uubm9kZVVwZGF0ZWQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSkuc3Vic2NyaWJlKChub2RlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHJvdyA9IHRoaXMuY29udGV4dC5yb3c7XG4gICAgICBpZiAocm93KSB7XG4gICAgICAgIGNvbnN0IHsgZW50cnkgfSA9IHJvdy5ub2RlO1xuICAgICAgICBjb25zdCBjdXJyZW50SWQgPSBlbnRyeS5ub2RlSWQgfHwgZW50cnkuaWQ7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRJZCA9IG5vZGUubm9kZUlkIHx8IG5vZGUuaWQ7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJZCA9PT0gdXBkYXRlZElkKSB7XG4gICAgICAgICAgZW50cnkubmFtZSA9IG5vZGUubmFtZTtcbiAgICAgICAgICByb3cubm9kZSA9IHsgZW50cnkgfTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzRmlsZSA9IHRoaXMubm9kZT8uZW50cnkgJiYgIXRoaXMubm9kZS5lbnRyeS5pc0ZvbGRlcjtcbiAgICAgICAgdGhpcy5pc0ZpbGVXcml0ZUxvY2tlZCA9IGlzTG9ja2VkKHRoaXMubm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgb2ZUeXBlPGFueT4oTm9kZUFjdGlvblR5cGVzLkVkaXRPZmZsaW5lKSxcbiAgICAgICAgZmlsdGVyKCh2YWwpID0+IHRoaXMubm9kZS5lbnRyeS5pZCA9PT0gdmFsLnBheWxvYWQuZW50cnkuaWQpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNGaWxlV3JpdGVMb2NrZWQgPSBpc0xvY2tlZCh0aGlzLm5vZGUpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25MaW5rQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhY2EtY3VzdG9tLW5hbWUtY29sdW1uXCI+XG4gIDxkaXYgY2xhc3M9XCJhY2EtbmFtZS1jb2x1bW4tY29udGFpbmVyXCI+XG4gICAgPHNwYW5cbiAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAoaXNGaWxlID8gJ0NVU1RPTV9OQU1FX0NPTFVNTi5BQ0NFU1NJQklMSVRZLkZJTEVfTElOS19BUklBX0xBQkVMJyA6ICdDVVNUT01fTkFNRV9DT0xVTU4uQUNDRVNTSUJJTElUWS5GT0xERVJfTElOS19BUklBX0xBQkVMJylcbiAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgbmFtZTogZGlzcGxheVRleHQkIHwgYXN5bmMgfVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYWRmLWRhdGF0YWJsZS1jZWxsLXZhbHVlXCJcbiAgICAgIHRpdGxlPVwie3sgbm9kZSB8IGFkZk5vZGVOYW1lVG9vbHRpcCB9fVwiXG4gICAgICAoY2xpY2spPVwib25MaW5rQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25MaW5rQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAge3sgZGlzcGxheVRleHQkIHwgYXN5bmMgfX1cbiAgICA8L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaWxlICYmIGlzRmlsZVdyaXRlTG9ja2VkXCI+XG4gICAgICA8YWNhLWxvY2tlZC1ieSBbbm9kZV09XCJjb250ZXh0LnJvdy5ub2RlXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxhY2EtZGF0YXRhYmxlLWNlbGwtYmFkZ2VzIFtub2RlXT1cIm5vZGVcIiAvPlxuPC9kaXY+XG4iXX0=
|
|
@@ -26,8 +26,8 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
26
26
|
import { ActivatedRoute } from '@angular/router';
|
|
27
27
|
import { NodeActionsService } from '../../services/node-actions.service';
|
|
28
28
|
import { ContentApiService, ContextActionsDirective, GenericErrorComponent, InfoDrawerComponent, PageComponent, PageLayoutComponent, PaginationDirective, ToolbarComponent } from '@alfresco/aca-shared';
|
|
29
|
-
import { SetCurrentFolderAction,
|
|
30
|
-
import { debounceTime
|
|
29
|
+
import { isAdmin, SetCurrentFolderAction, showLoaderSelector, UploadFileVersionAction } from '@alfresco/aca-shared/store';
|
|
30
|
+
import { debounceTime } from 'rxjs/operators';
|
|
31
31
|
import { BreadcrumbComponent, DocumentListComponent, UploadDragAreaComponent } from '@alfresco/adf-content-services';
|
|
32
32
|
import { DynamicColumnComponent } from '@alfresco/adf-extensions';
|
|
33
33
|
import { CommonModule } from '@angular/common';
|
|
@@ -35,6 +35,7 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
35
35
|
import { DocumentListDirective } from '../../directives/document-list.directive';
|
|
36
36
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
37
37
|
import { SearchAiInputContainerComponent } from '../knowledge-retrieval/search-ai/search-ai-input-container/search-ai-input-container.component';
|
|
38
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
38
39
|
import * as i0 from "@angular/core";
|
|
39
40
|
import * as i1 from "@alfresco/aca-shared";
|
|
40
41
|
import * as i2 from "../../services/node-actions.service";
|
|
@@ -64,14 +65,14 @@ class FilesComponent extends PageComponent {
|
|
|
64
65
|
super.ngOnInit();
|
|
65
66
|
const { data } = this.route.snapshot;
|
|
66
67
|
this.title = data.title;
|
|
67
|
-
this.route.queryParamMap.pipe(
|
|
68
|
+
this.route.queryParamMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((queryMap) => {
|
|
68
69
|
this.queryParams = queryMap.params;
|
|
69
70
|
});
|
|
70
|
-
this.route.params.pipe(
|
|
71
|
+
this.route.params.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ folderId }) => {
|
|
71
72
|
const nodeId = folderId || data.defaultNodeId;
|
|
72
73
|
this.contentApi
|
|
73
74
|
.getNode(nodeId)
|
|
74
|
-
.pipe(
|
|
75
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
75
76
|
.subscribe((node) => {
|
|
76
77
|
this.isValidPath = true;
|
|
77
78
|
if (node?.entry?.isFolder) {
|
|
@@ -91,11 +92,11 @@ class FilesComponent extends PageComponent {
|
|
|
91
92
|
]);
|
|
92
93
|
this.store
|
|
93
94
|
.select(isAdmin)
|
|
94
|
-
.pipe(
|
|
95
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
95
96
|
.subscribe((value) => {
|
|
96
97
|
this.isAdmin = value;
|
|
97
98
|
});
|
|
98
|
-
this.extensions.filesDocumentListPreset$.pipe(
|
|
99
|
+
this.extensions.filesDocumentListPreset$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((preset) => {
|
|
99
100
|
this.columns = preset;
|
|
100
101
|
});
|
|
101
102
|
if (this.queryParams && Object.keys(this.queryParams).length > 0) {
|
|
@@ -333,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
333
334
|
CustomEmptyContentTemplateDirective
|
|
334
335
|
], encapsulation: ViewEncapsulation.None, selector: 'aca-files', template: "<aca-page-layout [hasError]=\"!isValidPath\">\n <div class=\"aca-page-layout-header\">\n <aca-search-ai-input-container\n *ngIf=\"searchAiInputState.active; else header\"\n [agentId]=\"searchAiInputState.selectedAgentId\" />\n <ng-template #header>\n <div class=\"aca-header-container\">\n <adf-breadcrumb\n [root]=\"title\"\n [folderNode]=\"node\"\n [selectedRowItemsCount]=\"selectedRowItemsCount\" [maxItems]=\"isSmallScreen ? 1 : 0\"\n (navigate)=\"onBreadcrumbNavigate($event)\" />\n <aca-toolbar [items]=\"actions\" />\n </div>\n </ng-template>\n </div>\n\n <div class=\"aca-page-layout-error\">\n <aca-generic-error />\n </div>\n\n <div class=\"aca-page-layout-content\">\n <div class=\"aca-main-content\" *ngIf=\"!(showLoader$ | async)\">\n <adf-upload-drag-area [rootFolderId]=\"node?.id\" [disabled]=\"!canUpload\" (updateFileVersion)=\"onUploadNewVersion($event)\">\n <adf-document-list\n #documentList\n acaDocumentList\n acaContextActions\n [selectionMode]=\"'multiple'\"\n [multiselect]=\"true\"\n [currentFolderId]=\"node?.id\"\n [loading]=\"true\"\n [showHeader]=\"showHeader\"\n [node]=\"nodeResult\"\n [allowDropFiles]=\"true\"\n [displayCheckboxesOnHover]=\"true\"\n [preselectNodes]=\"selectedNodesState?.nodes\"\n [navigate]=\"false\"\n [sorting]=\"['name', 'asc']\"\n [imageResolver]=\"imageResolver\"\n [headerFilters]=\"true\"\n [filterValue]=\"queryParams\"\n [isResizingEnabled]=\"true\"\n [blurOnResize]=\"false\"\n (node-dblclick)=\"handleNodeClick($event)\"\n (name-click)=\"handleNodeClick($event)\"\n (selectedItemsCountChanged)=\"onSelectedItemsCountChanged($event)\"\n (filterSelection)=\"onFilterSelected($event)\"\n (error)=\"onError()\"\n >\n <data-columns>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByColumnId\">\n <ng-container *ngIf=\"column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n >\n <ng-template let-context>\n <adf-dynamic-column [id]=\"column.template\" [context]=\"context\" />\n </ng-template>\n </data-column>\n </ng-container>\n\n <ng-container *ngIf=\"!column.template && !(column.desktopOnly && isSmallScreen)\">\n <data-column\n [id]=\"column.id\"\n [key]=\"column.key\"\n [title]=\"column.title\"\n [type]=\"column.type\"\n [format]=\"column.format\"\n [class]=\"column.class\"\n [sortable]=\"column.sortable\"\n [sortingKey]=\"column.sortingKey || column.key\"\n [isHidden]=\"column.isHidden\"\n [draggable]=\"column.draggable\"\n [resizable]=\"column.resizable\"\n />\n </ng-container>\n </ng-container>\n </data-columns>\n\n <adf-custom-empty-content-template *ngIf=\"isFilterHeaderActive\">\n <ng-container>\n <div class=\"empty-search__block\" aria-live=\"polite\">\n <p class=\"empty-search__text\">\n {{ 'APP.BROWSE.SEARCH.NO_FILTER_RESULTS' | translate }}\n </p>\n </div>\n </ng-container>\n </adf-custom-empty-content-template>\n </adf-document-list>\n\n <adf-pagination acaPagination [target]=\"documentList\" />\n </adf-upload-drag-area>\n </div>\n\n <mat-progress-spinner *ngIf=\"showLoader$ | async\"\n id=\"adf-document-list-loading\"\n class=\"adf-document-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\" />\n\n <div class=\"aca-sidebar\" *ngIf=\"infoDrawerOpened$ | async\">\n <aca-info-drawer [node]=\"selection.last\" />\n </div>\n </div>\n</aca-page-layout>\n" }]
|
|
335
336
|
}], ctorParameters: function () { return [{ type: i1.ContentApiService }, { type: i2.NodeActionsService }, { type: i3.ActivatedRoute }]; } });
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGVzL2ZpbGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9maWxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFJckIsdUJBQXVCLEVBQ3hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUF5QixzQkFBc0Is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d0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsK0JBQStCO3dCQUMvQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQ0FBbUM7cUJBQ3BDLGlCQUVjLGlCQUFpQixDQUFDLElBQUksWUFDM0IsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge1xuICBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsXG4gIFBhZ2luYXRpb25Db21wb25lbnQsXG4gIFNob3dIZWFkZXJNb2RlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb2RlRW50cnksIE5vZGUsIFBhdGhFbGVtZW50IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWFjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZW50QXBpU2VydmljZSxcbiAgQ29udGV4dEFjdGlvbnNEaXJlY3RpdmUsXG4gIEdlbmVyaWNFcnJvckNvbXBvbmVudCxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgUGFnZUNvbXBvbmVudCxcbiAgUGFnZUxheW91dENvbXBvbmVudCxcbiAgUGFnaW5hdGlvbkRpcmVjdGl2ZSxcbiAgVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uLCBpc0FkbWluLCBVcGxvYWRGaWxlVmVyc2lvbkFjdGlvbiwgc2hvd0xvYWRlclNlbGVjdG9yIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBCcmVhZGNydW1iQ29tcG9uZW50LFxuICBEb2N1bWVudExpc3RDb21wb25lbnQsXG4gIEZpbGVVcGxvYWRFdmVudCxcbiAgRmlsdGVyU2VhcmNoLFxuICBTaGFyZURhdGFSb3csXG4gIFVwbG9hZERyYWdBcmVhQ29tcG9uZW50XG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEb2N1bWVudExpc3RQcmVzZXRSZWYsIER5bmFtaWNDb2x1bW5Db21wb25lbnQgfSBmcm9tICdAYWxmcmVzY28vYWRmLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRMaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kb2N1bWVudC1saXN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFNlYXJjaEFpSW5wdXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9rbm93bGVkZ2UtcmV0cmlldmFsL3NlYXJjaC1haS9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyL3NlYXJjaC1haS1pbnB1dC1jb250YWluZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEdlbmVyaWNFcnJvckNvbXBvbmVudCxcbiAgICBEb2N1bWVudExpc3REaXJlY3RpdmUsXG4gICAgQ29udGV4dEFjdGlvbnNEaXJlY3RpdmUsXG4gICAgUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uRGlyZWN0aXZlLFxuICAgIFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBTZWFyY2hBaUlucHV0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIER5bmFtaWNDb2x1bW5Db21wb25lbnQsXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgICBVcGxvYWREcmFnQXJlYUNvbXBvbmVudCxcbiAgICBEb2N1bWVudExpc3RDb21wb25lbnQsXG4gICAgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsXG4gICAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgICBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZXMuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzZWxlY3RvcjogJ2FjYS1maWxlcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsZXNDb21wb25lbnQgZXh0ZW5kcyBQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBpc1ZhbGlkUGF0aCA9IHRydWU7XG4gIGlzQWRtaW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWROb2RlOiBOb2RlRW50cnk7XG4gIHF1ZXJ5UGFyYW1zID0gbnVsbDtcbiAgc2hvd0xvYWRlciQgPSB0aGlzLnN0b3JlLnNlbGVjdChzaG93TG9hZGVyU2VsZWN0b3IpO1xuICBwcml2YXRlIG5vZGVQYXRoOiBQYXRoRWxlbWVudFtdO1xuXG4gIGNvbHVtbnM6IERvY3VtZW50TGlzdFByZXNldFJlZltdID0gW107XG4gIGlzRmlsdGVySGVhZGVyQWN0aXZlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZW50QXBpOiBDb250ZW50QXBpU2VydmljZSwgcHJpdmF0ZSBub2RlQWN0aW9uc1NlcnZpY2U6IE5vZGVBY3Rpb25zU2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGNvbnN0IHsgZGF0YSB9ID0gdGhpcy5yb3V0ZS5zbmFwc2hvdDtcblxuICAgIHRoaXMudGl0bGUgPSBkYXRhLnRpdGxlO1xuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgocXVlcnlNYXA6IFBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtcyA9IHF1ZXJ5TWFwLnBhcmFtcztcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKHsgZm9sZGVySWQgfTogUGFyYW1zKSA9PiB7XG4gICAgICBjb25zdCBub2RlSWQgPSBmb2xkZXJJZCB8fCBkYXRhLmRlZmF1bHROb2RlSWQ7XG5cbiAgICAgIHRoaXMuY29udGVudEFwaVxuICAgICAgICAuZ2V0Tm9kZShub2RlSWQpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChub2RlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWRQYXRoID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKG5vZGU/LmVudHJ5Py5pc0ZvbGRlcikge1xuICAgICAgICAgICAgICB2b2lkIHRoaXMudXBkYXRlQ3VycmVudE5vZGUobm9kZS5lbnRyeSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3BlcnNvbmFsLWZpbGVzJywgbm9kZS5lbnRyeS5wYXJlbnRJZF0sIHtcbiAgICAgICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKCkgPT4gKHRoaXMuaXNWYWxpZFBhdGggPSBmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHRoaXMuc3Vic2NyaXB0aW9ucy5jb25jYXQoW1xuICAgICAgdGhpcy5ub2RlQWN0aW9uc1NlcnZpY2UuY29udGVudENvcGllZC5zdWJzY3JpYmUoKG5vZGVzKSA9PiB0aGlzLm9uQ29udGVudENvcGllZChub2RlcykpLFxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRDb21wbGV0ZS5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKGZpbGUpID0+IHRoaXMub25GaWxlVXBsb2FkZWRFdmVudChmaWxlKSksXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZmlsZVVwbG9hZERlbGV0ZWQucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKChmaWxlKSA9PiB0aGlzLm9uRmlsZVVwbG9hZGVkRXZlbnQoZmlsZSkpXG4gICAgXSk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KGlzQWRtaW4pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuaXNBZG1pbiA9IHZhbHVlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmV4dGVuc2lvbnMuZmlsZXNEb2N1bWVudExpc3RQcmVzZXQkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgocHJlc2V0KSA9PiB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBwcmVzZXQ7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcyAmJiBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5UGFyYW1zKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlzRmlsdGVySGVhZGVyQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uKG51bGwpKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgbmF2aWdhdGUobm9kZUlkOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgY29uc3QgY3VycmVudE5vZGVJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdmb2xkZXJJZCcpO1xuICAgIGNvbnN0IHVybFdpdGhvdXRQYXJhbXMgPSBkZWNvZGVVUklDb21wb25lbnQodGhpcy5yb3V0ZXIudXJsKS5zcGxpdCgnPycpWzBdO1xuICAgIGNvbnN0IHVybFRvTmF2aWdhdGU6IHN0cmluZ1tdID0gdGhpcy5nZXRVcmxUb05hdmlnYXRlKHVybFdpdGhvdXRQYXJhbXMsIGN1cnJlbnROb2RlSWQsIG5vZGVJZCk7XG4gICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh1cmxUb05hdmlnYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXJsVG9OYXZpZ2F0ZShjdXJyZW50VVJMOiBzdHJpbmcsIGN1cnJlbnROb2RlSWQ6IHN0cmluZywgbmV4dE5vZGVJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBjdXJyZW50Tm9kZUlkID8gdGhpcy5nZXROZXh0Tm9kZVVybFRvTmF2aWdhdGUoY3VycmVudFVSTCwgY3VycmVudE5vZGVJZCwgbmV4dE5vZGVJZCkgOiB0aGlzLmFwcGVuZE5leHROb2RlSWRUb1VybChjdXJyZW50VVJMLCBuZXh0Tm9kZUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmV4dE5vZGVVcmxUb05hdmlnYXRlKGN1cnJlbnRVUkw6IHN0cmluZywgY3VycmVudE5vZGVJZDogc3RyaW5nLCBuZXh0Tm9kZUlkOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdXJsVG9OYXZpZ2F0ZTogc3RyaW5nW10gPVxuICAgICAgbmV4dE5vZGVJZCAmJiAhdGhpcy5pc1Jvb3ROb2RlKG5leHROb2RlSWQpXG4gICAgICAgID8gdGhpcy5yZXBsYWNlQ3VycmVudE5vZGVJZFdpdGhOZXh0Tm9kZUlkKGN1cnJlbnRVUkwsIGN1cnJlbnROb2RlSWQsIG5leHROb2RlSWQpXG4gICAgICAgIDogdGhpcy5yZW1vdmVOb2RlSWRGcm9tVXJsKGN1cnJlbnRVUkwsIGN1cnJlbnROb2RlSWQpO1xuICAgIHVybFRvTmF2aWdhdGUuc2hpZnQoKTtcbiAgICByZXR1cm4gdXJsVG9OYXZpZ2F0ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZUN1cnJlbnROb2RlSWRXaXRoTmV4dE5vZGVJZChjdXJyZW50VVJMOiBzdHJpbmcsIGN1cnJlbnROb2RlSWQ6IHN0cmluZywgbmV4dE5vZGVJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5leHROb2RlVXJsVG9OYXZpZ2F0ZSA9IGN1cnJlbnRVUkwuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBpbmRleCA9IG5leHROb2RlVXJsVG9OYXZpZ2F0ZS5pbmRleE9mKGN1cnJlbnROb2RlSWQpO1xuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIG5leHROb2RlVXJsVG9OYXZpZ2F0ZVtpbmRleF0gPSBuZXh0Tm9kZUlkO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dE5vZGVVcmxUb05hdmlnYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVOb2RlSWRGcm9tVXJsKGN1cnJlbnRVUkw6IHN0cmluZywgY3VycmVudE5vZGVJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJvb3RVcmw6IHN0cmluZ1tdID0gY3VycmVudFVSTC5yZXBsYWNlKGN1cnJlbnROb2RlSWQsICcnKS5zcGxpdCgnLycpO1xuICAgIHJvb3RVcmwucG9wKCk7XG4gICAgcmV0dXJuIHJvb3RVcmw7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE5leHROb2RlSWRUb1VybChjdXJyZW50VVJMOiBzdHJpbmcsIG5vZGVJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG5hdmlnYXRlVG9Ob2RlVXJsID0gY3VycmVudFVSTC5zcGxpdCgnLycpO1xuICAgIGlmIChub2RlSWQgJiYgIXRoaXMuaXNSb290Tm9kZShub2RlSWQpKSB7XG4gICAgICBuYXZpZ2F0ZVRvTm9kZVVybC5wdXNoKG5vZGVJZCk7XG4gICAgfVxuICAgIG5hdmlnYXRlVG9Ob2RlVXJsLnNoaWZ0KCk7XG4gICAgcmV0dXJuIG5hdmlnYXRlVG9Ob2RlVXJsO1xuICB9XG5cbiAgb25VcGxvYWROZXdWZXJzaW9uKGV2OiBDdXN0b21FdmVudCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwbG9hZEZpbGVWZXJzaW9uQWN0aW9uKGV2KSk7XG4gIH1cblxuICBuYXZpZ2F0ZVRvKG5vZGU6IE5vZGVFbnRyeSkge1xuICAgIGlmIChub2RlPy5lbnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBub2RlO1xuICAgICAgY29uc3QgeyBpc0ZvbGRlciB9ID0gbm9kZS5lbnRyeTtcblxuICAgICAgaWYgKGlzRm9sZGVyKSB7XG4gICAgICAgIGxldCBpZDogc3RyaW5nO1xuXG4gICAgICAgIGlmIChub2RlLmVudHJ5Lm5vZGVUeXBlID09PSAnYXBwOmZvbGRlcmxpbmsnKSB7XG4gICAgICAgICAgaWQgPSBub2RlLmVudHJ5LnByb3BlcnRpZXNbJ2NtOmRlc3RpbmF0aW9uJ107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWQgPSBub2RlLmVudHJ5LmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudExpc3QucmVzZXROZXdGb2xkZXJQYWdpbmF0aW9uKCk7XG4gICAgICAgIHRoaXMubmF2aWdhdGUoaWQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2hvd1ByZXZpZXcobm9kZSwgeyBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsIH0pO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vZGVDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLm5hdmlnYXRlVG8oKGV2ZW50IGFzIEN1c3RvbUV2ZW50KS5kZXRhaWw/Lm5vZGUpO1xuICB9XG5cbiAgb25CcmVhZGNydW1iTmF2aWdhdGUocm91dGU6IFBhdGhFbGVtZW50KSB7XG4gICAgdGhpcy5kb2N1bWVudExpc3QucmVzZXROZXdGb2xkZXJQYWdpbmF0aW9uKCk7XG5cbiAgICAvLyB0b2RvOiByZXZpZXcgdGhpcyBhcHByb2FjaCBvbmNlIDUuMi4zIGlzIG91dFxuICAgIGlmICh0aGlzLm5vZGVQYXRoICYmIHRoaXMubm9kZVBhdGg/Lmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICh0aGlzLm5vZGVQYXRoWzFdLm5hbWUgPT09ICdTaXRlcycgJiYgdGhpcy5ub2RlUGF0aFsyXS5pZCA9PT0gcm91dGUuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGUodGhpcy5ub2RlUGF0aFszXS5pZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubmF2aWdhdGUocm91dGUuaWQpO1xuICB9XG5cbiAgb25GaWxlVXBsb2FkZWRFdmVudChldmVudDogRmlsZVVwbG9hZEV2ZW50KSB7XG4gICAgY29uc3Qgbm9kZTogTm9kZUVudHJ5ID0gZXZlbnQuZmlsZS5kYXRhO1xuXG4gICAgLy8gY2hlY2sgcm9vdCBhbmQgY2hpbGQgbm9kZXNcbiAgICBpZiAobm9kZT8uZW50cnk/LnBhcmVudElkID09PSB0aGlzLmdldFBhcmVudE5vZGVJZCgpKSB7XG4gICAgICB0aGlzLnJlbG9hZCh0aGlzLnNlbGVjdGVkTm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgdGhlIGNoaWxkIG5vZGVzIHRvIHNob3cgZHJvcHBlZCBmb2xkZXJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZmlsZS5vcHRpb25zLnBhcmVudElkID09PSB0aGlzLmdldFBhcmVudE5vZGVJZCgpKSB7XG4gICAgICB0aGlzLmRpc3BsYXlGb2xkZXJQYXJlbnQoMCwgZXZlbnQuZmlsZS5vcHRpb25zLnBhdGgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudD8uZmlsZS5vcHRpb25zLnBhcmVudElkKSB7XG4gICAgICBpZiAodGhpcy5ub2RlUGF0aCkge1xuICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nTm9kZVBhdGggPSB0aGlzLm5vZGVQYXRoLmZpbmQoKHBhdGhJdGVtKSA9PiBwYXRoSXRlbS5pZCA9PT0gZXZlbnQuZmlsZS5vcHRpb25zLnBhcmVudElkKTtcblxuICAgICAgICAvLyBjaGVjayBpZiB0aGUgY3VycmVudCBmb2xkZXIgaGFzIHRoZSAndHJpZ2dlci11cGxvYWQtZm9sZGVyJyBhcyBvbmUgb2YgaXRzIHBhcmVudHNcbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdOb2RlUGF0aCkge1xuICAgICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdJbmRleCA9IHRoaXMubm9kZVBhdGgubGVuZ3RoIC0gdGhpcy5ub2RlUGF0aC5pbmRleE9mKGNvcnJlc3BvbmRpbmdOb2RlUGF0aCk7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5Rm9sZGVyUGFyZW50KGNvcnJlc3BvbmRpbmdJbmRleCwgZXZlbnQuZmlsZS5vcHRpb25zLnBhdGgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZGlzcGxheUZvbGRlclBhcmVudChpbmRleDogbnVtYmVyLCBmaWxlUGF0aCA9ICcnKSB7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IGZpbGVQYXRoLnNwbGl0KCcvJykuZmlsdGVyKChlbCkgPT4gZWwpW2luZGV4XTtcbiAgICBjb25zdCBjdXJyZW50Rm9sZGVyc0Rpc3BsYXllZCA9ICh0aGlzLmRvY3VtZW50TGlzdC5kYXRhLmdldFJvd3MoKSBhcyBTaGFyZURhdGFSb3dbXSkgfHwgW107XG5cbiAgICBjb25zdCBhbHJlYWR5RGlzcGxheWVkUGFyZW50Rm9sZGVyID0gY3VycmVudEZvbGRlcnNEaXNwbGF5ZWQuZmluZCgocm93KSA9PiByb3cubm9kZS5lbnRyeS5pc0ZvbGRlciAmJiByb3cubm9kZS5lbnRyeS5uYW1lID09PSBwYXJlbnROYW1lKTtcblxuICAgIGlmIChhbHJlYWR5RGlzcGxheWVkUGFyZW50Rm9sZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVsb2FkKHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgfVxuXG4gIG9uQ29udGVudENvcGllZChub2RlczogTm9kZUVudHJ5W10pIHtcbiAgICBjb25zdCBuZXdOb2RlID0gbm9kZXMuZmluZCgobm9kZSkgPT4gbm9kZT8uZW50cnk/LnBhcmVudElkID09PSB0aGlzLmdldFBhcmVudE5vZGVJZCgpKTtcbiAgICBpZiAobmV3Tm9kZSkge1xuICAgICAgdGhpcy5yZWxvYWQodGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRvZG86IHJldmlldyB0aGlzIGFwcHJvYWNoIG9uY2UgNS4yLjMgaXMgb3V0XG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlQ3VycmVudE5vZGUobm9kZTogTm9kZSkge1xuICAgIHRoaXMubm9kZVBhdGggPSBudWxsO1xuXG4gICAgaWYgKG5vZGU/LnBhdGg/LmVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBlbGVtZW50cyA9IG5vZGUucGF0aC5lbGVtZW50cztcblxuICAgICAgdGhpcy5ub2RlUGF0aCA9IGVsZW1lbnRzLm1hcCgocGF0aEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4ucGF0aEVsZW1lbnQgfTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoZWxlbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBpZiAoZWxlbWVudHNbMV0ubmFtZSA9PT0gJ1VzZXIgSG9tZXMnKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzQWRtaW4pIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZSgwLCAyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudHNbMV0ubmFtZSA9PT0gJ1NpdGVzJykge1xuICAgICAgICAgIGF3YWl0IHRoaXMubm9ybWFsaXplU2l0ZVBhdGgobm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEN1cnJlbnRGb2xkZXJBY3Rpb24obm9kZSkpO1xuICB9XG5cbiAgLy8gdG9kbzogcmV2aWV3IHRoaXMgYXBwcm9hY2ggb25jZSA1LjIuMyBpcyBvdXRcbiAgcHJpdmF0ZSBhc3luYyBub3JtYWxpemVTaXRlUGF0aChub2RlOiBOb2RlKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBub2RlLnBhdGguZWxlbWVudHM7XG5cbiAgICAvLyByZW1vdmUgJ1NpdGVzJ1xuICAgIGVsZW1lbnRzLnNwbGljZSgxLCAxKTtcblxuICAgIGlmICh0aGlzLmlzU2l0ZUNvbnRhaW5lcihub2RlKSkge1xuICAgICAgLy8gcmVuYW1lICdkb2N1bWVudExpYnJhcnknIGVudHJ5IHRvIHRoZSB0YXJnZXQgc2l0ZSBkaXNwbGF5IG5hbWVcbiAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBicmVhZGNydW1iIGVudHJ5IGxvYWRzIHRoZSBzaXRlIGNvbnRlbnRcbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZUluZm8obm9kZS5wYXJlbnRJZCkudG9Qcm9taXNlKCk7XG4gICAgICBub2RlLm5hbWUgPSBwYXJlbnROb2RlLnByb3BlcnRpZXNbJ2NtOnRpdGxlJ10gfHwgcGFyZW50Tm9kZS5uYW1lO1xuXG4gICAgICAvLyByZW1vdmUgdGhlIHNpdGUgZW50cnlcbiAgICAgIGVsZW1lbnRzLnNwbGljZSgxLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmVtb3ZlICdkb2N1bWVudExpYnJhcnknIGluIHRoZSBtaWRkbGUgb2YgdGhlIHBhdGhcbiAgICAgIGNvbnN0IGRvY0xpYiA9IGVsZW1lbnRzLmZpbmRJbmRleCgoZWwpID0+IGVsLm5hbWUgPT09ICdkb2N1bWVudExpYnJhcnknKTtcbiAgICAgIGlmIChkb2NMaWIgPiAtMSkge1xuICAgICAgICBjb25zdCBzaXRlRnJhZ21lbnQgPSBlbGVtZW50c1tkb2NMaWIgLSAxXTtcbiAgICAgICAgY29uc3Qgc2l0ZU5vZGUgPSBhd2FpdCB0aGlzLmNvbnRlbnRBcGkuZ2V0Tm9kZUluZm8oc2l0ZUZyYWdtZW50LmlkKS50b1Byb21pc2UoKTtcblxuICAgICAgICAvLyBhcHBseSBTaXRlIE5hbWUgdG8gdGhlIHBhcmVudCBmcmFnbWVudFxuICAgICAgICBzaXRlRnJhZ21lbnQubmFtZSA9IHNpdGVOb2RlLnByb3BlcnRpZXNbJ2NtOnRpdGxlJ10gfHwgc2l0ZU5vZGUubmFtZTtcbiAgICAgICAgZWxlbWVudHMuc3BsaWNlKGRvY0xpYiwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNTaXRlQ29udGFpbmVyKG5vZGU6IE5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAobm9kZT8uYXNwZWN0TmFtZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBub2RlLmFzcGVjdE5hbWVzLmluZGV4T2YoJ3N0OnNpdGVDb250YWluZXInKSA+PSAwO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc1Jvb3ROb2RlKG5vZGVJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubm9kZT8ucGF0aD8uZWxlbWVudHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUucGF0aC5lbGVtZW50c1swXS5pZCA9PT0gbm9kZUlkO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvbkZpbHRlclNlbGVjdGVkKGFjdGl2ZUZpbHRlcnM6IEZpbHRlclNlYXJjaFtdKSB7XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNob3dIZWFkZXIgPSBTaG93SGVhZGVyTW9kZS5BbHdheXM7XG4gICAgICB0aGlzLmlzRmlsdGVySGVhZGVyQWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMubmF2aWdhdGVUb0ZpbHRlcihhY3RpdmVGaWx0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgdGhpcy5pc0ZpbHRlckhlYWRlckFjdGl2ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93SGVhZGVyID0gU2hvd0hlYWRlck1vZGUuRGF0YTtcbiAgICAgIHRoaXMub25BbGxGaWx0ZXJDbGVhcmVkKCk7XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGVUb0ZpbHRlcihhY3RpdmVGaWx0ZXJzOiBGaWx0ZXJTZWFyY2hbXSkge1xuICAgIGNvbnN0IG9iamVjdEZyb21NYXAgPSB7fTtcbiAgICBhY3RpdmVGaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogRmlsdGVyU2VhcmNoKSA9PiB7XG4gICAgICBsZXQgcGFyYW1WYWx1ZTtcbiAgICAgIGlmIChmaWx0ZXI/LnZhbHVlPy5mcm9tICYmIGZpbHRlcj8udmFsdWU/LnRvKSB7XG4gICAgICAgIHBhcmFtVmFsdWUgPSBgJHtmaWx0ZXIudmFsdWUuZnJvbX18fCR7ZmlsdGVyLnZhbHVlLnRvfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbVZhbHVlID0gZmlsdGVyLnZhbHVlO1xuICAgICAgfVxuICAgICAgb2JqZWN0RnJvbU1hcFtmaWx0ZXIua2V5XSA9IHBhcmFtVmFsdWU7XG4gICAgfSk7XG5cbiAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIHF1ZXJ5UGFyYW1zOiBvYmplY3RGcm9tTWFwIH0pO1xuICB9XG5cbiAgb25FcnJvcigpIHtcbiAgICB0aGlzLmlzVmFsaWRQYXRoID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxhY2EtcGFnZS1sYXlvdXQgW2hhc0Vycm9yXT1cIiFpc1ZhbGlkUGF0aFwiPlxuICA8ZGl2IGNsYXNzPVwiYWNhLXBhZ2UtbGF5b3V0LWhlYWRlclwiPlxuICAgIDxhY2Etc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJzZWFyY2hBaUlucHV0U3RhdGUuYWN0aXZlOyBlbHNlIGhlYWRlclwiXG4gICAgICBbYWdlbnRJZF09XCJzZWFyY2hBaUlucHV0U3RhdGUuc2VsZWN0ZWRBZ2VudElkXCIgLz5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY2EtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICA8YWRmLWJyZWFkY3J1bWJcbiAgICAgICAgICBbcm9vdF09XCJ0aXRsZVwiXG4gICAgICAgICAgW2ZvbGRlck5vZGVdPVwibm9kZVwiXG4gICAgICAgICAgW3NlbGVjdGVkUm93SXRlbXNDb3VudF09XCJzZWxlY3RlZFJvd0l0ZW1zQ291bnRcIiBbbWF4SXRlbXNdPVwiaXNTbWFsbFNjcmVlbiA/IDEgOiAwXCJcbiAgICAgICAgICAobmF2aWdhdGUpPVwib25CcmVhZGNydW1iTmF2aWdhdGUoJGV2ZW50KVwiIC8+XG4gICAgICAgIDxhY2EtdG9vbGJhciBbaXRlbXNdPVwiYWN0aW9uc1wiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXBhZ2UtbGF5b3V0LWVycm9yXCI+XG4gICAgPGFjYS1nZW5lcmljLWVycm9yIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY2EtcGFnZS1sYXlvdXQtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2EtbWFpbi1jb250ZW50XCIgKm5nSWY9XCIhKHNob3dMb2FkZXIkIHwgYXN5bmMpXCI+XG4gICAgICA8YWRmLXVwbG9hZC1kcmFnLWFyZWEgW3Jvb3RGb2xkZXJJZF09XCJub2RlPy5pZFwiIFtkaXNhYmxlZF09XCIhY2FuVXBsb2FkXCIgKHVwZGF0ZUZpbGVWZXJzaW9uKT1cIm9uVXBsb2FkTmV3VmVyc2lvbigkZXZlbnQpXCI+XG4gICAgICAgIDxhZGYtZG9jdW1lbnQtbGlzdFxuICAgICAgICAgICNkb2N1bWVudExpc3RcbiAgICAgICAgICBhY2FEb2N1bWVudExpc3RcbiAgICAgICAgICBhY2FDb250ZXh0QWN0aW9uc1xuICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIidtdWx0aXBsZSdcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICBbY3VycmVudEZvbGRlcklkXT1cIm5vZGU/LmlkXCJcbiAgICAgICAgICBbbG9hZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0hlYWRlcl09XCJzaG93SGVhZGVyXCJcbiAgICAgICAgICBbbm9kZV09XCJub2RlUmVzdWx0XCJcbiAgICAgICAgICBbYWxsb3dEcm9wRmlsZXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2Rpc3BsYXlDaGVja2JveGVzT25Ib3Zlcl09XCJ0cnVlXCJcbiAgICAgICAgICBbcHJlc2VsZWN0Tm9kZXNdPVwic2VsZWN0ZWROb2Rlc1N0YXRlPy5ub2Rlc1wiXG4gICAgICAgICAgW25hdmlnYXRlXT1cImZhbHNlXCJcbiAgICAgICAgICBbc29ydGluZ109XCJbJ25hbWUnLCAnYXNjJ11cIlxuICAgICAgICAgIFtpbWFnZVJlc29sdmVyXT1cImltYWdlUmVzb2x2ZXJcIlxuICAgICAgICAgIFtoZWFkZXJGaWx0ZXJzXT1cInRydWVcIlxuICAgICAgICAgIFtmaWx0ZXJWYWx1ZV09XCJxdWVyeVBhcmFtc1wiXG4gICAgICAgICAgW2lzUmVzaXppbmdFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgIFtibHVyT25SZXNpemVdPVwiZmFsc2VcIlxuICAgICAgICAgIChub2RlLWRibGNsaWNrKT1cImhhbmRsZU5vZGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAobmFtZS1jbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgKHNlbGVjdGVkSXRlbXNDb3VudENoYW5nZWQpPVwib25TZWxlY3RlZEl0ZW1zQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChmaWx0ZXJTZWxlY3Rpb24pPVwib25GaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkYXRhLWNvbHVtbnM+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUNvbHVtbklkXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udGVtcGxhdGUgJiYgIShjb2x1bW4uZGVza3RvcE9ubHkgJiYgaXNTbWFsbFNjcmVlbilcIj5cbiAgICAgICAgICAgICAgICA8ZGF0YS1jb2x1bW5cbiAgICAgICAgICAgICAgICAgIFtpZF09XCJjb2x1bW4uaWRcIlxuICAgICAgICAgICAgICAgICAgW2tleV09XCJjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJjb2x1bW4uZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW4uY2xhc3NcIlxuICAgICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICBbc29ydGluZ0tleV09XCJjb2x1bW4uc29ydGluZ0tleSB8fCBjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgIFtpc0hpZGRlbl09XCJjb2x1bW4uaXNIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJjb2x1bW4uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgICAgIFtyZXNpemFibGVdPVwiY29sdW1uLnJlc2l6YWJsZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb250ZXh0PlxuICAgICAgICAgICAgICAgICAgICA8YWRmLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW4udGVtcGxhdGVcIiBbY29udGV4dF09XCJjb250ZXh0XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kYXRhLWNvbHVtbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4udGVtcGxhdGUgJiYgIShjb2x1bW4uZGVza3RvcE9ubHkgJiYgaXNTbWFsbFNjcmVlbilcIj5cbiAgICAgICAgICAgICAgICA8ZGF0YS1jb2x1bW5cbiAgICAgICAgICAgICAgICAgIFtpZF09XCJjb2x1bW4uaWRcIlxuICAgICAgICAgICAgICAgICAgW2tleV09XCJjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJjb2x1bW4uZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2x1bW4uY2xhc3NcIlxuICAgICAgICAgICAgICAgICAgW3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICBbc29ydGluZ0tleV09XCJjb2x1bW4uc29ydGluZ0tleSB8fCBjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgIFtpc0hpZGRlbl09XCJjb2x1bW4uaXNIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJjb2x1bW4uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgICAgIFtyZXNpemFibGVdPVwiY29sdW1uLnJlc2l6YWJsZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2RhdGEtY29sdW1ucz5cblxuICAgICAgICAgIDxhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGUgKm5nSWY9XCJpc0ZpbHRlckhlYWRlckFjdGl2ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXNlYXJjaF9fYmxvY2tcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5LXNlYXJjaF9fdGV4dFwiPlxuICAgICAgICAgICAgICAgICAge3sgJ0FQUC5CUk9XU0UuU0VBUkNILk5PX0ZJTFRFUl9SRVNVTFRTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2FkZi1jdXN0b20tZW1wdHktY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgPC9hZGYtZG9jdW1lbnQtbGlzdD5cblxuICAgICAgICA8YWRmLXBhZ2luYXRpb24gYWNhUGFnaW5hdGlvbiBbdGFyZ2V0XT1cImRvY3VtZW50TGlzdFwiIC8+XG4gICAgICA8L2FkZi11cGxvYWQtZHJhZy1hcmVhPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwic2hvd0xvYWRlciQgfCBhc3luY1wiXG4gICAgICBpZD1cImFkZi1kb2N1bWVudC1saXN0LWxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJhZGYtZG9jdW1lbnQtbGlzdC1sb2FkaW5nLW1hcmdpblwiXG4gICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgIFttb2RlXT1cIidpbmRldGVybWluYXRlJ1wiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLXNpZGViYXJcIiAqbmdJZj1cImluZm9EcmF3ZXJPcGVuZWQkIHwgYXN5bmNcIj5cbiAgICAgIDxhY2EtaW5mby1kcmF3ZXIgW25vZGVdPVwic2VsZWN0aW9uLmxhc3RcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYWNhLXBhZ2UtbGF5b3V0PlxuIl19
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGVzL2ZpbGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9maWxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFDTCxtQ0FBbUMsRUFDbkMsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsY0FBYyxFQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUlyQix1QkFBdUIsRUFDeEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQXlCLHNCQUFzQixFQUFFLE1BQU0s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QkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsK0JBQStCO3dCQUMvQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQ0FBbUM7cUJBQ3BDLGlCQUVjLGlCQUFpQixDQUFDLElBQUksWUFDM0IsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge1xuICBDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRGF0YUNvbHVtbkNvbXBvbmVudCxcbiAgRGF0YUNvbHVtbkxpc3RDb21wb25lbnQsXG4gIFBhZ2luYXRpb25Db21wb25lbnQsXG4gIFNob3dIZWFkZXJNb2RlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb2RlLCBOb2RlRW50cnksIFBhdGhFbGVtZW50IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBOb2RlQWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2RlLWFjdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZW50QXBpU2VydmljZSxcbiAgQ29udGV4dEFjdGlvbnNEaXJlY3RpdmUsXG4gIEdlbmVyaWNFcnJvckNvbXBvbmVudCxcbiAgSW5mb0RyYXdlckNvbXBvbmVudCxcbiAgUGFnZUNvbXBvbmVudCxcbiAgUGFnZUxheW91dENvbXBvbmVudCxcbiAgUGFnaW5hdGlvbkRpcmVjdGl2ZSxcbiAgVG9vbGJhckNvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBpc0FkbWluLCBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uLCBzaG93TG9hZGVyU2VsZWN0b3IsIFVwbG9hZEZpbGVWZXJzaW9uQWN0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQnJlYWRjcnVtYkNvbXBvbmVudCxcbiAgRG9jdW1lbnRMaXN0Q29tcG9uZW50LFxuICBGaWxlVXBsb2FkRXZlbnQsXG4gIEZpbHRlclNlYXJjaCxcbiAgU2hhcmVEYXRhUm93LFxuICBVcGxvYWREcmFnQXJlYUNvbXBvbmVudFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgRG9jdW1lbnRMaXN0UHJlc2V0UmVmLCBEeW5hbWljQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50TGlzdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZG9jdW1lbnQtbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBTZWFyY2hBaUlucHV0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4va25vd2xlZGdlLXJldHJpZXZhbC9zZWFyY2gtYWkvc2VhcmNoLWFpLWlucHV0LWNvbnRhaW5lci9zZWFyY2gtYWktaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBHZW5lcmljRXJyb3JDb21wb25lbnQsXG4gICAgRG9jdW1lbnRMaXN0RGlyZWN0aXZlLFxuICAgIENvbnRleHRBY3Rpb25zRGlyZWN0aXZlLFxuICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIEluZm9EcmF3ZXJDb21wb25lbnQsXG4gICAgUGFnaW5hdGlvbkRpcmVjdGl2ZSxcbiAgICBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgU2VhcmNoQWlJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBEeW5hbWljQ29sdW1uQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gICAgVXBsb2FkRHJhZ0FyZWFDb21wb25lbnQsXG4gICAgRG9jdW1lbnRMaXN0Q29tcG9uZW50LFxuICAgIERhdGFDb2x1bW5MaXN0Q29tcG9uZW50LFxuICAgIERhdGFDb2x1bW5Db21wb25lbnQsXG4gICAgQ3VzdG9tRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVzLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc2VsZWN0b3I6ICdhY2EtZmlsZXMnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVzQ29tcG9uZW50IGV4dGVuZHMgUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgaXNWYWxpZFBhdGggPSB0cnVlO1xuICBpc0FkbWluID0gZmFsc2U7XG4gIHNlbGVjdGVkTm9kZTogTm9kZUVudHJ5O1xuICBxdWVyeVBhcmFtcyA9IG51bGw7XG4gIHNob3dMb2FkZXIkID0gdGhpcy5zdG9yZS5zZWxlY3Qoc2hvd0xvYWRlclNlbGVjdG9yKTtcbiAgcHJpdmF0ZSBub2RlUGF0aDogUGF0aEVsZW1lbnRbXTtcblxuICBjb2x1bW5zOiBEb2N1bWVudExpc3RQcmVzZXRSZWZbXSA9IFtdO1xuICBpc0ZpbHRlckhlYWRlckFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGVudEFwaTogQ29udGVudEFwaVNlcnZpY2UsIHByaXZhdGUgbm9kZUFjdGlvbnNTZXJ2aWNlOiBOb2RlQWN0aW9uc1NlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBjb25zdCB7IGRhdGEgfSA9IHRoaXMucm91dGUuc25hcHNob3Q7XG5cbiAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHF1ZXJ5TWFwOiBQYXJhbXMpID0+IHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBxdWVyeU1hcC5wYXJhbXM7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCh7IGZvbGRlcklkIH06IFBhcmFtcykgPT4ge1xuICAgICAgY29uc3Qgbm9kZUlkID0gZm9sZGVySWQgfHwgZGF0YS5kZWZhdWx0Tm9kZUlkO1xuXG4gICAgICB0aGlzLmNvbnRlbnRBcGlcbiAgICAgICAgLmdldE5vZGUobm9kZUlkKVxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAobm9kZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkUGF0aCA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmIChub2RlPy5lbnRyeT8uaXNGb2xkZXIpIHtcbiAgICAgICAgICAgICAgdm9pZCB0aGlzLnVwZGF0ZUN1cnJlbnROb2RlKG5vZGUuZW50cnkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wZXJzb25hbC1maWxlcycsIG5vZGUuZW50cnkucGFyZW50SWRdLCB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgICgpID0+ICh0aGlzLmlzVmFsaWRQYXRoID0gZmFsc2UpXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB0aGlzLnN1YnNjcmlwdGlvbnMuY29uY2F0KFtcbiAgICAgIHRoaXMubm9kZUFjdGlvbnNTZXJ2aWNlLmNvbnRlbnRDb3BpZWQuc3Vic2NyaWJlKChub2RlcykgPT4gdGhpcy5vbkNvbnRlbnRDb3BpZWQobm9kZXMpKSxcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkQ29tcGxldGUucGlwZShkZWJvdW5jZVRpbWUoMzAwKSkuc3Vic2NyaWJlKChmaWxlKSA9PiB0aGlzLm9uRmlsZVVwbG9hZGVkRXZlbnQoZmlsZSkpLFxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWREZWxldGVkLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSgoZmlsZSkgPT4gdGhpcy5vbkZpbGVVcGxvYWRlZEV2ZW50KGZpbGUpKVxuICAgIF0pO1xuXG4gICAgdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChpc0FkbWluKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSB2YWx1ZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5leHRlbnNpb25zLmZpbGVzRG9jdW1lbnRMaXN0UHJlc2V0JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHByZXNldCkgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5zID0gcHJlc2V0O1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucXVlcnlQYXJhbXMgJiYgT2JqZWN0LmtleXModGhpcy5xdWVyeVBhcmFtcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pc0ZpbHRlckhlYWRlckFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q3VycmVudEZvbGRlckFjdGlvbihudWxsKSk7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxuXG4gIG5hdmlnYXRlKG5vZGVJZDogc3RyaW5nID0gbnVsbCkge1xuICAgIGNvbnN0IGN1cnJlbnROb2RlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnZm9sZGVySWQnKTtcbiAgICBjb25zdCB1cmxXaXRob3V0UGFyYW1zID0gZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucm91dGVyLnVybCkuc3BsaXQoJz8nKVswXTtcbiAgICBjb25zdCB1cmxUb05hdmlnYXRlOiBzdHJpbmdbXSA9IHRoaXMuZ2V0VXJsVG9OYXZpZ2F0ZSh1cmxXaXRob3V0UGFyYW1zLCBjdXJyZW50Tm9kZUlkLCBub2RlSWQpO1xuICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGUodXJsVG9OYXZpZ2F0ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFVybFRvTmF2aWdhdGUoY3VycmVudFVSTDogc3RyaW5nLCBjdXJyZW50Tm9kZUlkOiBzdHJpbmcsIG5leHROb2RlSWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY3VycmVudE5vZGVJZCA/IHRoaXMuZ2V0TmV4dE5vZGVVcmxUb05hdmlnYXRlKGN1cnJlbnRVUkwsIGN1cnJlbnROb2RlSWQsIG5leHROb2RlSWQpIDogdGhpcy5hcHBlbmROZXh0Tm9kZUlkVG9VcmwoY3VycmVudFVSTCwgbmV4dE5vZGVJZCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5leHROb2RlVXJsVG9OYXZpZ2F0ZShjdXJyZW50VVJMOiBzdHJpbmcsIGN1cnJlbnROb2RlSWQ6IHN0cmluZywgbmV4dE5vZGVJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHVybFRvTmF2aWdhdGU6IHN0cmluZ1tdID1cbiAgICAgIG5leHROb2RlSWQgJiYgIXRoaXMuaXNSb290Tm9kZShuZXh0Tm9kZUlkKVxuICAgICAgICA/IHRoaXMucmVwbGFjZUN1cnJlbnROb2RlSWRXaXRoTmV4dE5vZGVJZChjdXJyZW50VVJMLCBjdXJyZW50Tm9kZUlkLCBuZXh0Tm9kZUlkKVxuICAgICAgICA6IHRoaXMucmVtb3ZlTm9kZUlkRnJvbVVybChjdXJyZW50VVJMLCBjdXJyZW50Tm9kZUlkKTtcbiAgICB1cmxUb05hdmlnYXRlLnNoaWZ0KCk7XG4gICAgcmV0dXJuIHVybFRvTmF2aWdhdGU7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VDdXJyZW50Tm9kZUlkV2l0aE5leHROb2RlSWQoY3VycmVudFVSTDogc3RyaW5nLCBjdXJyZW50Tm9kZUlkOiBzdHJpbmcsIG5leHROb2RlSWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBuZXh0Tm9kZVVybFRvTmF2aWdhdGUgPSBjdXJyZW50VVJMLnNwbGl0KCcvJyk7XG4gICAgY29uc3QgaW5kZXggPSBuZXh0Tm9kZVVybFRvTmF2aWdhdGUuaW5kZXhPZihjdXJyZW50Tm9kZUlkKTtcbiAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICBuZXh0Tm9kZVVybFRvTmF2aWdhdGVbaW5kZXhdID0gbmV4dE5vZGVJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5leHROb2RlVXJsVG9OYXZpZ2F0ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTm9kZUlkRnJvbVVybChjdXJyZW50VVJMOiBzdHJpbmcsIGN1cnJlbnROb2RlSWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCByb290VXJsOiBzdHJpbmdbXSA9IGN1cnJlbnRVUkwucmVwbGFjZShjdXJyZW50Tm9kZUlkLCAnJykuc3BsaXQoJy8nKTtcbiAgICByb290VXJsLnBvcCgpO1xuICAgIHJldHVybiByb290VXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmROZXh0Tm9kZUlkVG9VcmwoY3VycmVudFVSTDogc3RyaW5nLCBub2RlSWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBuYXZpZ2F0ZVRvTm9kZVVybCA9IGN1cnJlbnRVUkwuc3BsaXQoJy8nKTtcbiAgICBpZiAobm9kZUlkICYmICF0aGlzLmlzUm9vdE5vZGUobm9kZUlkKSkge1xuICAgICAgbmF2aWdhdGVUb05vZGVVcmwucHVzaChub2RlSWQpO1xuICAgIH1cbiAgICBuYXZpZ2F0ZVRvTm9kZVVybC5zaGlmdCgpO1xuICAgIHJldHVybiBuYXZpZ2F0ZVRvTm9kZVVybDtcbiAgfVxuXG4gIG9uVXBsb2FkTmV3VmVyc2lvbihldjogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGxvYWRGaWxlVmVyc2lvbkFjdGlvbihldikpO1xuICB9XG5cbiAgbmF2aWdhdGVUbyhub2RlOiBOb2RlRW50cnkpIHtcbiAgICBpZiAobm9kZT8uZW50cnkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gbm9kZTtcbiAgICAgIGNvbnN0IHsgaXNGb2xkZXIgfSA9IG5vZGUuZW50cnk7XG5cbiAgICAgIGlmIChpc0ZvbGRlcikge1xuICAgICAgICBsZXQgaWQ6IHN0cmluZztcblxuICAgICAgICBpZiAobm9kZS5lbnRyeS5ub2RlVHlwZSA9PT0gJ2FwcDpmb2xkZXJsaW5rJykge1xuICAgICAgICAgIGlkID0gbm9kZS5lbnRyeS5wcm9wZXJ0aWVzWydjbTpkZXN0aW5hdGlvbiddO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlkID0gbm9kZS5lbnRyeS5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZG9jdW1lbnRMaXN0LnJlc2V0TmV3Rm9sZGVyUGFnaW5hdGlvbigpO1xuICAgICAgICB0aGlzLm5hdmlnYXRlKGlkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNob3dQcmV2aWV3KG5vZGUsIHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVOb2RlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5uYXZpZ2F0ZVRvKChldmVudCBhcyBDdXN0b21FdmVudCkuZGV0YWlsPy5ub2RlKTtcbiAgfVxuXG4gIG9uQnJlYWRjcnVtYk5hdmlnYXRlKHJvdXRlOiBQYXRoRWxlbWVudCkge1xuICAgIHRoaXMuZG9jdW1lbnRMaXN0LnJlc2V0TmV3Rm9sZGVyUGFnaW5hdGlvbigpO1xuXG4gICAgLy8gdG9kbzogcmV2aWV3IHRoaXMgYXBwcm9hY2ggb25jZSA1LjIuMyBpcyBvdXRcbiAgICBpZiAodGhpcy5ub2RlUGF0aCAmJiB0aGlzLm5vZGVQYXRoPy5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAodGhpcy5ub2RlUGF0aFsxXS5uYW1lID09PSAnU2l0ZXMnICYmIHRoaXMubm9kZVBhdGhbMl0uaWQgPT09IHJvdXRlLmlkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRlKHRoaXMubm9kZVBhdGhbM10uaWQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm5hdmlnYXRlKHJvdXRlLmlkKTtcbiAgfVxuXG4gIG9uRmlsZVVwbG9hZGVkRXZlbnQoZXZlbnQ6IEZpbGVVcGxvYWRFdmVudCkge1xuICAgIGNvbnN0IG5vZGU6IE5vZGVFbnRyeSA9IGV2ZW50LmZpbGUuZGF0YTtcblxuICAgIC8vIGNoZWNrIHJvb3QgYW5kIGNoaWxkIG5vZGVzXG4gICAgaWYgKG5vZGU/LmVudHJ5Py5wYXJlbnRJZCA9PT0gdGhpcy5nZXRQYXJlbnROb2RlSWQoKSkge1xuICAgICAgdGhpcy5yZWxvYWQodGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIHRoZSBjaGlsZCBub2RlcyB0byBzaG93IGRyb3BwZWQgZm9sZGVyXG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmZpbGUub3B0aW9ucy5wYXJlbnRJZCA9PT0gdGhpcy5nZXRQYXJlbnROb2RlSWQoKSkge1xuICAgICAgdGhpcy5kaXNwbGF5Rm9sZGVyUGFyZW50KDAsIGV2ZW50LmZpbGUub3B0aW9ucy5wYXRoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQ/LmZpbGUub3B0aW9ucy5wYXJlbnRJZCkge1xuICAgICAgaWYgKHRoaXMubm9kZVBhdGgpIHtcbiAgICAgICAgY29uc3QgY29ycmVzcG9uZGluZ05vZGVQYXRoID0gdGhpcy5ub2RlUGF0aC5maW5kKChwYXRoSXRlbSkgPT4gcGF0aEl0ZW0uaWQgPT09IGV2ZW50LmZpbGUub3B0aW9ucy5wYXJlbnRJZCk7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgZm9sZGVyIGhhcyB0aGUgJ3RyaWdnZXItdXBsb2FkLWZvbGRlcicgYXMgb25lIG9mIGl0cyBwYXJlbnRzXG4gICAgICAgIGlmIChjb3JyZXNwb25kaW5nTm9kZVBhdGgpIHtcbiAgICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nSW5kZXggPSB0aGlzLm5vZGVQYXRoLmxlbmd0aCAtIHRoaXMubm9kZVBhdGguaW5kZXhPZihjb3JyZXNwb25kaW5nTm9kZVBhdGgpO1xuICAgICAgICAgIHRoaXMuZGlzcGxheUZvbGRlclBhcmVudChjb3JyZXNwb25kaW5nSW5kZXgsIGV2ZW50LmZpbGUub3B0aW9ucy5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRpc3BsYXlGb2xkZXJQYXJlbnQoaW5kZXg6IG51bWJlciwgZmlsZVBhdGggPSAnJykge1xuICAgIGNvbnN0IHBhcmVudE5hbWUgPSBmaWxlUGF0aC5zcGxpdCgnLycpLmZpbHRlcigoZWwpID0+IGVsKVtpbmRleF07XG4gICAgY29uc3QgY3VycmVudEZvbGRlcnNEaXNwbGF5ZWQgPSAodGhpcy5kb2N1bWVudExpc3QuZGF0YS5nZXRSb3dzKCkgYXMgU2hhcmVEYXRhUm93W10pIHx8IFtdO1xuXG4gICAgY29uc3QgYWxyZWFkeURpc3BsYXllZFBhcmVudEZvbGRlciA9IGN1cnJlbnRGb2xkZXJzRGlzcGxheWVkLmZpbmQoKHJvdykgPT4gcm93Lm5vZGUuZW50cnkuaXNGb2xkZXIgJiYgcm93Lm5vZGUuZW50cnkubmFtZSA9PT0gcGFyZW50TmFtZSk7XG5cbiAgICBpZiAoYWxyZWFkeURpc3BsYXllZFBhcmVudEZvbGRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZCh0aGlzLnNlbGVjdGVkTm9kZSk7XG4gIH1cblxuICBvbkNvbnRlbnRDb3BpZWQobm9kZXM6IE5vZGVFbnRyeVtdKSB7XG4gICAgY29uc3QgbmV3Tm9kZSA9IG5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGU/LmVudHJ5Py5wYXJlbnRJZCA9PT0gdGhpcy5nZXRQYXJlbnROb2RlSWQoKSk7XG4gICAgaWYgKG5ld05vZGUpIHtcbiAgICAgIHRoaXMucmVsb2FkKHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvLyB0b2RvOiByZXZpZXcgdGhpcyBhcHByb2FjaCBvbmNlIDUuMi4zIGlzIG91dFxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUN1cnJlbnROb2RlKG5vZGU6IE5vZGUpIHtcbiAgICB0aGlzLm5vZGVQYXRoID0gbnVsbDtcblxuICAgIGlmIChub2RlPy5wYXRoPy5lbGVtZW50cykge1xuICAgICAgY29uc3QgZWxlbWVudHMgPSBub2RlLnBhdGguZWxlbWVudHM7XG5cbiAgICAgIHRoaXMubm9kZVBhdGggPSBlbGVtZW50cy5tYXAoKHBhdGhFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLnBhdGhFbGVtZW50IH07XG4gICAgICB9KTtcblxuICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgaWYgKGVsZW1lbnRzWzFdLm5hbWUgPT09ICdVc2VyIEhvbWVzJykge1xuICAgICAgICAgIGlmICghdGhpcy5pc0FkbWluKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5zcGxpY2UoMCwgMik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnRzWzFdLm5hbWUgPT09ICdTaXRlcycpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLm5vcm1hbGl6ZVNpdGVQYXRoKG5vZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uKG5vZGUpKTtcbiAgfVxuXG4gIC8vIHRvZG86IHJldmlldyB0aGlzIGFwcHJvYWNoIG9uY2UgNS4yLjMgaXMgb3V0XG4gIHByaXZhdGUgYXN5bmMgbm9ybWFsaXplU2l0ZVBhdGgobm9kZTogTm9kZSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gbm9kZS5wYXRoLmVsZW1lbnRzO1xuXG4gICAgLy8gcmVtb3ZlICdTaXRlcydcbiAgICBlbGVtZW50cy5zcGxpY2UoMSwgMSk7XG5cbiAgICBpZiAodGhpcy5pc1NpdGVDb250YWluZXIobm9kZSkpIHtcbiAgICAgIC8vIHJlbmFtZSAnZG9jdW1lbnRMaWJyYXJ5JyBlbnRyeSB0byB0aGUgdGFyZ2V0IHNpdGUgZGlzcGxheSBuYW1lXG4gICAgICAvLyBjbGlja2luZyBvbiB0aGUgYnJlYWRjcnVtYiBlbnRyeSBsb2FkcyB0aGUgc2l0ZSBjb250ZW50XG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gYXdhaXQgdGhpcy5jb250ZW50QXBpLmdldE5vZGVJbmZvKG5vZGUucGFyZW50SWQpLnRvUHJvbWlzZSgpO1xuICAgICAgbm9kZS5uYW1lID0gcGFyZW50Tm9kZS5wcm9wZXJ0aWVzWydjbTp0aXRsZSddIHx8IHBhcmVudE5vZGUubmFtZTtcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBzaXRlIGVudHJ5XG4gICAgICBlbGVtZW50cy5zcGxpY2UoMSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHJlbW92ZSAnZG9jdW1lbnRMaWJyYXJ5JyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBwYXRoXG4gICAgICBjb25zdCBkb2NMaWIgPSBlbGVtZW50cy5maW5kSW5kZXgoKGVsKSA9PiBlbC5uYW1lID09PSAnZG9jdW1lbnRMaWJyYXJ5Jyk7XG4gICAgICBpZiAoZG9jTGliID4gLTEpIHtcbiAgICAgICAgY29uc3Qgc2l0ZUZyYWdtZW50ID0gZWxlbWVudHNbZG9jTGliIC0gMV07XG4gICAgICAgIGNvbnN0IHNpdGVOb2RlID0gYXdhaXQgdGhpcy5jb250ZW50QXBpLmdldE5vZGVJbmZvKHNpdGVGcmFnbWVudC5pZCkudG9Qcm9taXNlKCk7XG5cbiAgICAgICAgLy8gYXBwbHkgU2l0ZSBOYW1lIHRvIHRoZSBwYXJlbnQgZnJhZ21lbnRcbiAgICAgICAgc2l0ZUZyYWdtZW50Lm5hbWUgPSBzaXRlTm9kZS5wcm9wZXJ0aWVzWydjbTp0aXRsZSddIHx8IHNpdGVOb2RlLm5hbWU7XG4gICAgICAgIGVsZW1lbnRzLnNwbGljZShkb2NMaWIsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzU2l0ZUNvbnRhaW5lcihub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKG5vZGU/LmFzcGVjdE5hbWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbm9kZS5hc3BlY3ROYW1lcy5pbmRleE9mKCdzdDpzaXRlQ29udGFpbmVyJykgPj0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNSb290Tm9kZShub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm5vZGU/LnBhdGg/LmVsZW1lbnRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlLnBhdGguZWxlbWVudHNbMF0uaWQgPT09IG5vZGVJZDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25GaWx0ZXJTZWxlY3RlZChhY3RpdmVGaWx0ZXJzOiBGaWx0ZXJTZWFyY2hbXSkge1xuICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93SGVhZGVyID0gU2hvd0hlYWRlck1vZGUuQWx3YXlzO1xuICAgICAgdGhpcy5pc0ZpbHRlckhlYWRlckFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9GaWx0ZXIoYWN0aXZlRmlsdGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIHRoaXMuaXNGaWx0ZXJIZWFkZXJBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0hlYWRlciA9IFNob3dIZWFkZXJNb2RlLkRhdGE7XG4gICAgICB0aGlzLm9uQWxsRmlsdGVyQ2xlYXJlZCgpO1xuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlVG9GaWx0ZXIoYWN0aXZlRmlsdGVyczogRmlsdGVyU2VhcmNoW10pIHtcbiAgICBjb25zdCBvYmplY3RGcm9tTWFwID0ge307XG4gICAgYWN0aXZlRmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IEZpbHRlclNlYXJjaCkgPT4ge1xuICAgICAgbGV0IHBhcmFtVmFsdWU7XG4gICAgICBpZiAoZmlsdGVyPy52YWx1ZT8uZnJvbSAmJiBmaWx0ZXI/LnZhbHVlPy50bykge1xuICAgICAgICBwYXJhbVZhbHVlID0gYCR7ZmlsdGVyLnZhbHVlLmZyb219fHwke2ZpbHRlci52YWx1ZS50b31gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1WYWx1ZSA9IGZpbHRlci52YWx1ZTtcbiAgICAgIH1cbiAgICAgIG9iamVjdEZyb21NYXBbZmlsdGVyLmtleV0gPSBwYXJhbVZhbHVlO1xuICAgIH0pO1xuXG4gICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBxdWVyeVBhcmFtczogb2JqZWN0RnJvbU1hcCB9KTtcbiAgfVxuXG4gIG9uRXJyb3IoKSB7XG4gICAgdGhpcy5pc1ZhbGlkUGF0aCA9IGZhbHNlO1xuICB9XG59XG4iLCI8YWNhLXBhZ2UtbGF5b3V0IFtoYXNFcnJvcl09XCIhaXNWYWxpZFBhdGhcIj5cbiAgPGRpdiBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1oZWFkZXJcIj5cbiAgICA8YWNhLXNlYXJjaC1haS1pbnB1dC1jb250YWluZXJcbiAgICAgICpuZ0lmPVwic2VhcmNoQWlJbnB1dFN0YXRlLmFjdGl2ZTsgZWxzZSBoZWFkZXJcIlxuICAgICAgW2FnZW50SWRdPVwic2VhcmNoQWlJbnB1dFN0YXRlLnNlbGVjdGVkQWdlbnRJZFwiIC8+XG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWNhLWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgPGFkZi1icmVhZGNydW1iXG4gICAgICAgICAgW3Jvb3RdPVwidGl0bGVcIlxuICAgICAgICAgIFtmb2xkZXJOb2RlXT1cIm5vZGVcIlxuICAgICAgICAgIFtzZWxlY3RlZFJvd0l0ZW1zQ291bnRdPVwic2VsZWN0ZWRSb3dJdGVtc0NvdW50XCIgW21heEl0ZW1zXT1cImlzU21hbGxTY3JlZW4gPyAxIDogMFwiXG4gICAgICAgICAgKG5hdmlnYXRlKT1cIm9uQnJlYWRjcnVtYk5hdmlnYXRlKCRldmVudClcIiAvPlxuICAgICAgICA8YWNhLXRvb2xiYXIgW2l0ZW1zXT1cImFjdGlvbnNcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjYS1wYWdlLWxheW91dC1lcnJvclwiPlxuICAgIDxhY2EtZ2VuZXJpYy1lcnJvciAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWNhLXBhZ2UtbGF5b3V0LWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWNhLW1haW4tY29udGVudFwiICpuZ0lmPVwiIShzaG93TG9hZGVyJCB8IGFzeW5jKVwiPlxuICAgICAgPGFkZi11cGxvYWQtZHJhZy1hcmVhIFtyb290Rm9sZGVySWRdPVwibm9kZT8uaWRcIiBbZGlzYWJsZWRdPVwiIWNhblVwbG9hZFwiICh1cGRhdGVGaWxlVmVyc2lvbik9XCJvblVwbG9hZE5ld1ZlcnNpb24oJGV2ZW50KVwiPlxuICAgICAgICA8YWRmLWRvY3VtZW50LWxpc3RcbiAgICAgICAgICAjZG9jdW1lbnRMaXN0XG4gICAgICAgICAgYWNhRG9jdW1lbnRMaXN0XG4gICAgICAgICAgYWNhQ29udGV4dEFjdGlvbnNcbiAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGlwbGUnXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgW2N1cnJlbnRGb2xkZXJJZF09XCJub2RlPy5pZFwiXG4gICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dIZWFkZXJdPVwic2hvd0hlYWRlclwiXG4gICAgICAgICAgW25vZGVdPVwibm9kZVJlc3VsdFwiXG4gICAgICAgICAgW2FsbG93RHJvcEZpbGVzXT1cInRydWVcIlxuICAgICAgICAgIFtkaXNwbGF5Q2hlY2tib3hlc09uSG92ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3ByZXNlbGVjdE5vZGVzXT1cInNlbGVjdGVkTm9kZXNTdGF0ZT8ubm9kZXNcIlxuICAgICAgICAgIFtuYXZpZ2F0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgW3NvcnRpbmddPVwiWyduYW1lJywgJ2FzYyddXCJcbiAgICAgICAgICBbaW1hZ2VSZXNvbHZlcl09XCJpbWFnZVJlc29sdmVyXCJcbiAgICAgICAgICBbaGVhZGVyRmlsdGVyc109XCJ0cnVlXCJcbiAgICAgICAgICBbZmlsdGVyVmFsdWVdPVwicXVlcnlQYXJhbXNcIlxuICAgICAgICAgIFtpc1Jlc2l6aW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbYmx1ck9uUmVzaXplXT1cImZhbHNlXCJcbiAgICAgICAgICAobm9kZS1kYmxjbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgKG5hbWUtY2xpY2spPVwiaGFuZGxlTm9kZUNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChzZWxlY3RlZEl0ZW1zQ291bnRDaGFuZ2VkKT1cIm9uU2VsZWN0ZWRJdGVtc0NvdW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZmlsdGVyU2VsZWN0aW9uKT1cIm9uRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGF0YS1jb2x1bW5zPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5JZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnRlbXBsYXRlICYmICEoY29sdW1uLmRlc2t0b3BPbmx5ICYmIGlzU21hbGxTY3JlZW4pXCI+XG4gICAgICAgICAgICAgICAgPGRhdGEtY29sdW1uXG4gICAgICAgICAgICAgICAgICBbaWRdPVwiY29sdW1uLmlkXCJcbiAgICAgICAgICAgICAgICAgIFtrZXldPVwiY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sdW1uLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiY29sdW1uLmZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgW3NvcnRpbmdLZXldPVwiY29sdW1uLnNvcnRpbmdLZXkgfHwgY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICBbaXNIaWRkZW5dPVwiY29sdW1uLmlzSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICBbcmVzaXphYmxlXT1cImNvbHVtbi5yZXNpemFibGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLnRlbXBsYXRlXCIgW2NvbnRleHRdPVwiY29udGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGF0YS1jb2x1bW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLnRlbXBsYXRlICYmICEoY29sdW1uLmRlc2t0b3BPbmx5ICYmIGlzU21hbGxTY3JlZW4pXCI+XG4gICAgICAgICAgICAgICAgPGRhdGEtY29sdW1uXG4gICAgICAgICAgICAgICAgICBbaWRdPVwiY29sdW1uLmlkXCJcbiAgICAgICAgICAgICAgICAgIFtrZXldPVwiY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiY29sdW1uLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbHVtbi50eXBlXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtYXRdPVwiY29sdW1uLmZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sdW1uLmNsYXNzXCJcbiAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJjb2x1bW4uc29ydGFibGVcIlxuICAgICAgICAgICAgICAgICAgW3NvcnRpbmdLZXldPVwiY29sdW1uLnNvcnRpbmdLZXkgfHwgY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICBbaXNIaWRkZW5dPVwiY29sdW1uLmlzSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiY29sdW1uLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICBbcmVzaXphYmxlXT1cImNvbHVtbi5yZXNpemFibGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kYXRhLWNvbHVtbnM+XG5cbiAgICAgICAgICA8YWRmLWN1c3RvbS1lbXB0eS1jb250ZW50LXRlbXBsYXRlICpuZ0lmPVwiaXNGaWx0ZXJIZWFkZXJBY3RpdmVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zZWFyY2hfX2Jsb2NrXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlbXB0eS1zZWFyY2hfX3RleHRcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdBUFAuQlJPV1NFLlNFQVJDSC5OT19GSUxURVJfUkVTVUxUUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGU+XG4gICAgICAgIDwvYWRmLWRvY3VtZW50LWxpc3Q+XG5cbiAgICAgICAgPGFkZi1wYWdpbmF0aW9uIGFjYVBhZ2luYXRpb24gW3RhcmdldF09XCJkb2N1bWVudExpc3RcIiAvPlxuICAgICAgPC9hZGYtdXBsb2FkLWRyYWctYXJlYT5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cInNob3dMb2FkZXIkIHwgYXN5bmNcIlxuICAgICAgaWQ9XCJhZGYtZG9jdW1lbnQtbGlzdC1sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwiYWRmLWRvY3VtZW50LWxpc3QtbG9hZGluZy1tYXJnaW5cIlxuICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICBbbW9kZV09XCInaW5kZXRlcm1pbmF0ZSdcIiAvPlxuXG4gICAgPGRpdiBjbGFzcz1cImFjYS1zaWRlYmFyXCIgKm5nSWY9XCJpbmZvRHJhd2VyT3BlbmVkJCB8IGFzeW5jXCI+XG4gICAgICA8YWNhLWluZm8tZHJhd2VyIFtub2RlXT1cInNlbGVjdGlvbi5sYXN0XCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2FjYS1wYWdlLWxheW91dD5cbiJdfQ==
|