ngx-rendering-service-lib 0.0.66865 → 0.0.66866
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/module/pdf/pdf.component.mjs +60 -50
- package/esm2022/lib/render.component.mjs +3 -3
- package/esm2022/lib/rendering.module.mjs +7 -3
- package/esm2022/rendering-service-lib.module.mjs +2 -2
- package/fesm2022/ngx-rendering-service-lib.mjs +74 -62
- package/fesm2022/ngx-rendering-service-lib.mjs.map +1 -1
- package/lib/module/pdf/pdf.component.d.ts +10 -7
- package/lib/render.component.d.ts +1 -1
- package/lib/rendering.module.d.ts +2 -1
- package/package.json +4 -3
- package/rendering-service-lib.module.d.ts +1 -1
|
@@ -1,22 +1,32 @@
|
|
|
1
|
-
import { Component, Inject, Input, Optional, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, HostListener, Inject, Input, Optional, ViewChild, } from '@angular/core';
|
|
2
2
|
import { RenderingModule } from '../../rendering.module';
|
|
3
3
|
import { MatIconModule } from '@angular/material/icon';
|
|
4
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { RENDERING_SERVICE_LIB_CONFIG } from '../../../rendering-service-lib-configuration';
|
|
6
|
+
import { NgxExtendedPdfViewerComponent, NgxExtendedPdfViewerModule, pdfDefaultOptions } from "ngx-extended-pdf-viewer";
|
|
7
|
+
import { NodesRightMode } from "ngx-edu-sharing-ui";
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "ngx-rendering-service-api";
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "
|
|
11
|
-
import * as i4 from "
|
|
10
|
+
import * as i2 from "ngx-edu-sharing-ui";
|
|
11
|
+
import * as i3 from "@angular/common";
|
|
12
|
+
import * as i4 from "ngx-extended-pdf-viewer";
|
|
13
|
+
import * as i5 from "../../../rendering-service-lib-configuration";
|
|
12
14
|
export class PdfComponent {
|
|
13
|
-
constructor(assetControllerService, configuration) {
|
|
15
|
+
constructor(assetControllerService, nodeHelper, configuration) {
|
|
14
16
|
this.assetControllerService = assetControllerService;
|
|
17
|
+
this.nodeHelper = nodeHelper;
|
|
15
18
|
this.configuration = configuration;
|
|
16
19
|
this.restrictedView = false;
|
|
20
|
+
pdfDefaultOptions.assetsFolder = 'assets/ngx-extended-pdf-viewer';
|
|
17
21
|
}
|
|
18
22
|
ngOnChanges(changes) {
|
|
19
|
-
this.
|
|
23
|
+
if (this.nodeHelper.getNodesRight([this.node], 'DownloadContent', NodesRightMode.Effective)) {
|
|
24
|
+
this.fileData = this.data?.items?.[0]?.link ?? '';
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.restrictedView = true;
|
|
28
|
+
this.downloadFile();
|
|
29
|
+
}
|
|
20
30
|
}
|
|
21
31
|
downloadFile() {
|
|
22
32
|
if (this.data?.items === undefined || this.data.items[0].link === '') {
|
|
@@ -32,46 +42,37 @@ export class PdfComponent {
|
|
|
32
42
|
};
|
|
33
43
|
this.assetControllerService.getAsset$Response(params)
|
|
34
44
|
.subscribe(async (response) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.restrictedView = true;
|
|
38
|
-
responseData = responseData.slice(0, responseData.size, 'application/pdf');
|
|
45
|
+
if (response.headers.get('content-type') !== 'application/octet-stream') {
|
|
46
|
+
return;
|
|
39
47
|
}
|
|
40
|
-
|
|
48
|
+
const arrayBuffer = await response.body.arrayBuffer();
|
|
49
|
+
this.fileData = new Uint8Array(arrayBuffer);
|
|
41
50
|
});
|
|
42
51
|
}
|
|
43
|
-
|
|
44
|
-
const iFrameDocument = this.viewerRef?.iframe.nativeElement.contentWindow.document;
|
|
45
|
-
// Always hide document properties button in right dropdown menu
|
|
46
|
-
iFrameDocument.getElementById('documentProperties').style.display = 'none';
|
|
47
|
-
iFrameDocument.querySelector('.horizontalToolbarSeparator.spreadModeButtons').style.display = 'none';
|
|
52
|
+
handleShortCutEvents(event) {
|
|
48
53
|
if (this.restrictedView) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
iFrameDocument.body.addEventListener('contextmenu', (event) => { event.preventDefault(); });
|
|
57
|
-
// Disable printing via keyboard shortcuts
|
|
58
|
-
['keyup', 'keydown'].forEach(type => {
|
|
59
|
-
iFrameDocument.addEventListener(type, (event) => {
|
|
60
|
-
if ((event.key === 's' && event.ctrlKey) || event.key === 'F12') {
|
|
61
|
-
event.preventDefault();
|
|
62
|
-
if (event.stopImmediatePropagation) {
|
|
63
|
-
event.stopImmediatePropagation();
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
event.stopPropagation();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
});
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
if (event.stopImmediatePropagation) {
|
|
56
|
+
event.stopImmediatePropagation();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
event.stopPropagation();
|
|
60
|
+
}
|
|
71
61
|
}
|
|
72
62
|
}
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
handleContextMenu(event) {
|
|
64
|
+
if (this.restrictedView) {
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
if (event.stopImmediatePropagation) {
|
|
67
|
+
event.stopImmediatePropagation();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
event.stopPropagation();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PdfComponent, deps: [{ token: i1.AssetControllerService }, { token: i2.NodeHelperService }, { token: RENDERING_SERVICE_LIB_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: PdfComponent, isStandalone: true, selector: "rs-module-pdf", inputs: { data: "data", node: "node" }, host: { listeners: { "window:keydown.control.s": "handleShortCutEvents($event)", "window:keydown.F12": "handleShortCutEvents($event)", "window:contextmenu": "handleContextMenu($event)" } }, viewQueries: [{ propertyName: "pdfViewer", first: true, predicate: NgxExtendedPdfViewerComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"pdf-wrapper\"\n [class.hide-all]=\"restrictedView\"\n *ngIf=\"fileData !== undefined\"\n>\n <ngx-extended-pdf-viewer\n [src]=\"fileData\"\n [showPrintButton]=\"!restrictedView\"\n [showDownloadButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [textLayer]=\"!restrictedView\"\n [enablePrint]=\"!restrictedView\"\n [showBookModeButton]=\"false\"\n [showFindHighlightAll]=\"false\"\n [showDrawEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n [showTextEditor]=\"false\"\n [height]=\"'100vh'\"\n [showSecondaryToolbarButton]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.pdf-wrapper{width:100%;height:100%}@media print{.hide-all *{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i4.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "forceFullReloadOfJavaScriptCode", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] }); }
|
|
75
76
|
}
|
|
76
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PdfComponent, decorators: [{
|
|
77
78
|
type: Component,
|
|
@@ -79,19 +80,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
79
80
|
RenderingModule,
|
|
80
81
|
MatButtonModule,
|
|
81
82
|
MatIconModule,
|
|
82
|
-
|
|
83
|
-
], template: "<div
|
|
84
|
-
}], ctorParameters: () => [{ type: i1.AssetControllerService }, { type:
|
|
83
|
+
NgxExtendedPdfViewerModule
|
|
84
|
+
], template: "<div\n class=\"pdf-wrapper\"\n [class.hide-all]=\"restrictedView\"\n *ngIf=\"fileData !== undefined\"\n>\n <ngx-extended-pdf-viewer\n [src]=\"fileData\"\n [showPrintButton]=\"!restrictedView\"\n [showDownloadButton]=\"false\"\n [showOpenFileButton]=\"false\"\n [textLayer]=\"!restrictedView\"\n [enablePrint]=\"!restrictedView\"\n [showBookModeButton]=\"false\"\n [showFindHighlightAll]=\"false\"\n [showDrawEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n [showTextEditor]=\"false\"\n [height]=\"'100vh'\"\n [showSecondaryToolbarButton]=\"false\"\n >\n </ngx-extended-pdf-viewer>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center;width:100%}.pdf-wrapper{width:100%;height:100%}@media print{.hide-all *{display:none!important}}\n"] }]
|
|
85
|
+
}], ctorParameters: () => [{ type: i1.AssetControllerService }, { type: i2.NodeHelperService }, { type: i5.RenderingServiceLibConfiguration, decorators: [{
|
|
85
86
|
type: Optional
|
|
86
87
|
}, {
|
|
87
88
|
type: Inject,
|
|
88
89
|
args: [RENDERING_SERVICE_LIB_CONFIG]
|
|
89
|
-
}] }], propDecorators: {
|
|
90
|
+
}] }], propDecorators: { pdfViewer: [{
|
|
91
|
+
type: ViewChild,
|
|
92
|
+
args: [NgxExtendedPdfViewerComponent]
|
|
93
|
+
}], data: [{
|
|
90
94
|
type: Input
|
|
91
95
|
}], node: [{
|
|
92
96
|
type: Input
|
|
93
|
-
}],
|
|
94
|
-
type:
|
|
95
|
-
args: ['
|
|
97
|
+
}], handleShortCutEvents: [{
|
|
98
|
+
type: HostListener,
|
|
99
|
+
args: ['window:keydown.control.s', ['$event']]
|
|
100
|
+
}, {
|
|
101
|
+
type: HostListener,
|
|
102
|
+
args: ['window:keydown.F12', ['$event']]
|
|
103
|
+
}], handleContextMenu: [{
|
|
104
|
+
type: HostListener,
|
|
105
|
+
args: ['window:contextmenu', ['$event']]
|
|
96
106
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlL3BkZi9wZGYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGUvcGRmL3BkZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFFUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHekQsT0FBTyxFQUNMLDRCQUE0QixFQUU3QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBQyw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JILE9BQU8sRUFBb0IsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFjckUsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDVSxzQkFBOEMsRUFDOUMsVUFBNkIsRUFDb0IsYUFBK0M7UUFGaEcsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUNvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFOMUcsbUJBQWMsR0FBWSxLQUFLLENBQUE7UUFRN0IsaUJBQWlCLENBQUMsWUFBWSxHQUFHLGdDQUFnQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsRUFB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WixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkE4Q04sb0JBQW9CO3NCQUZuQixZQUFZO3VCQUFDLDBCQUEwQixFQUFHLENBQUMsUUFBUSxDQUFDOztzQkFDcEQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRyxDQUFDLFFBQVEsQ0FBQztnQkFhL0MsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlbmRlcmluZ01vZHVsZX0gZnJvbSAnLi4vLi4vcmVuZGVyaW5nLm1vZHVsZSc7XG5pbXBvcnQge1JlbmRlck1vZHVsZX0gZnJvbSAnLi4vUmVuZGVyTW9kdWxlJztcbmltcG9ydCB7Tm9kZX0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge1JlbmRlckRhdGF9IGZyb20gJy4uLy4uL2R0by9SZW5kZXJEYXRhJztcbmltcG9ydCB7QXNzZXRDb250cm9sbGVyU2VydmljZSwgR2V0QXNzZXQkUGFyYW1zfSBmcm9tICduZ3gtcmVuZGVyaW5nLXNlcnZpY2UtYXBpJztcbmltcG9ydCB7XG4gIFJFTkRFUklOR19TRVJWSUNFX0xJQl9DT05GSUcsXG4gIFJlbmRlcmluZ1NlcnZpY2VMaWJDb25maWd1cmF0aW9uXG59IGZyb20gJy4uLy4uLy4uL3JlbmRlcmluZy1zZXJ2aWNlLWxpYi1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7Tmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQsIE5neEV4dGVuZGVkUGRmVmlld2VyTW9kdWxlLCBwZGZEZWZhdWx0T3B0aW9uc30gZnJvbSBcIm5neC1leHRlbmRlZC1wZGYtdmlld2VyXCI7XG5pbXBvcnQge05vZGVIZWxwZXJTZXJ2aWNlLCBOb2Rlc1JpZ2h0TW9kZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy11aVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1tb2R1bGUtcGRmJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJlbmRlcmluZ01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ3hFeHRlbmRlZFBkZlZpZXdlck1vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BkZi5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgUGRmQ29tcG9uZW50IGltcGxlbWVudHMgUmVuZGVyTW9kdWxlLCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50KSBwZGZWaWV3ZXIhOiBOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudDtcbiAgQElucHV0KCkgZGF0YTogUmVuZGVyRGF0YSB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBub2RlOiBOb2RlIHwgdW5kZWZpbmVkXG4gIHJlc3RyaWN0ZWRWaWV3OiBib29sZWFuID0gZmFsc2VcbiAgZmlsZURhdGE6IFVpbnQ4QXJyYXkgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhc3NldENvbnRyb2xsZXJTZXJ2aWNlOiBBc3NldENvbnRyb2xsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZUhlbHBlcjogTm9kZUhlbHBlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSRU5ERVJJTkdfU0VSVklDRV9MSUJfQ09ORklHKSBwdWJsaWMgY29uZmlndXJhdGlvbjogUmVuZGVyaW5nU2VydmljZUxpYkNvbmZpZ3VyYXRpb24sXG4gICkge1xuICAgIHBkZkRlZmF1bHRPcHRpb25zLmFzc2V0c0ZvbGRlciA9ICdhc3NldHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXInXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMubm9kZUhlbHBlci5nZXROb2Rlc1JpZ2h0KFt0aGlzLm5vZGUhXSwgJ0Rvd25sb2FkQ29udGVudCcsIE5vZGVzUmlnaHRNb2RlLkVmZmVjdGl2ZSkpIHtcbiAgICAgIHRoaXMuZmlsZURhdGEgPSB0aGlzLmRhdGE/Lml0ZW1zPy5bMF0/LmxpbmsgPz8gJydcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXN0cmljdGVkVmlldyA9IHRydWVcbiAgICAgIHRoaXMuZG93bmxvYWRGaWxlKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRvd25sb2FkRmlsZSgpIHtcbiAgICBpZiAodGhpcy5kYXRhPy5pdGVtcyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGF0YS5pdGVtc1swXS5saW5rID09PSAnJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGhpcy5kYXRhLml0ZW1zWzBdLmxpbmspXG4gICAgY29uc3QgYXNzZXRQYXJhbXMgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgnYXNzZXRQYXJhbXMnKVxuICAgIGlmIChhc3NldFBhcmFtcyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczogR2V0QXNzZXQkUGFyYW1zID0ge1xuICAgICAgYXNzZXRQYXJhbXM6IGFzc2V0UGFyYW1zXG4gICAgfVxuICAgIHRoaXMuYXNzZXRDb250cm9sbGVyU2VydmljZS5nZXRBc3NldCRSZXNwb25zZShwYXJhbXMpXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgIT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCByZXNwb25zZS5ib2R5LmFycmF5QnVmZmVyKCk7XG4gICAgICAgICAgdGhpcy5maWxlRGF0YSA9IG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKTtcbiAgICAgICAgfVxuICAgICAgKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uY29udHJvbC5zJywgIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLkYxMicsICBbJyRldmVudCddKVxuICBoYW5kbGVTaG9ydEN1dEV2ZW50cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnJlc3RyaWN0ZWRWaWV3KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbikge1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpjb250ZXh0bWVudScsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVzdHJpY3RlZFZpZXcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicGRmLXdyYXBwZXJcIlxuICBbY2xhc3MuaGlkZS1hbGxdPVwicmVzdHJpY3RlZFZpZXdcIlxuICAqbmdJZj1cImZpbGVEYXRhICE9PSB1bmRlZmluZWRcIlxuPlxuICA8bmd4LWV4dGVuZGVkLXBkZi12aWV3ZXJcbiAgICBbc3JjXT1cImZpbGVEYXRhXCJcbiAgICBbc2hvd1ByaW50QnV0dG9uXT1cIiFyZXN0cmljdGVkVmlld1wiXG4gICAgW3Nob3dEb3dubG9hZEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW3Nob3dPcGVuRmlsZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgW3RleHRMYXllcl09XCIhcmVzdHJpY3RlZFZpZXdcIlxuICAgIFtlbmFibGVQcmludF09XCIhcmVzdHJpY3RlZFZpZXdcIlxuICAgIFtzaG93Qm9va01vZGVCdXR0b25dPVwiZmFsc2VcIlxuICAgIFtzaG93RmluZEhpZ2hsaWdodEFsbF09XCJmYWxzZVwiXG4gICAgW3Nob3dEcmF3RWRpdG9yXT1cImZhbHNlXCJcbiAgICBbc2hvd0hpZ2hsaWdodEVkaXRvcl09XCJmYWxzZVwiXG4gICAgW3Nob3dUZXh0RWRpdG9yXT1cImZhbHNlXCJcbiAgICBbaGVpZ2h0XT1cIicxMDB2aCdcIlxuICAgIFtzaG93U2Vjb25kYXJ5VG9vbGJhckJ1dHRvbl09XCJmYWxzZVwiXG4gID5cbiAgPC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cbjwvZGl2PlxuIl19
|
|
@@ -8,7 +8,7 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
8
8
|
import { filter } from 'rxjs/operators';
|
|
9
9
|
import { TranslateService } from '@ngx-translate/core';
|
|
10
10
|
import { EduSharingUiModule } from 'ngx-edu-sharing-ui';
|
|
11
|
-
import { RENDERING_SERVICE_LIB_CONFIG } from
|
|
11
|
+
import { RENDERING_SERVICE_LIB_CONFIG } from '../rendering-service-lib-configuration';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "ngx-rendering-service-api";
|
|
14
14
|
import * as i2 from "../module-info.service";
|
|
@@ -101,7 +101,7 @@ export class RenderComponent {
|
|
|
101
101
|
}
|
|
102
102
|
async ngOnInit() {
|
|
103
103
|
if (this.assetUrl !== '') {
|
|
104
|
-
console.info(
|
|
104
|
+
console.info('setting assetUrl to: ' + this.assetUrl + '');
|
|
105
105
|
this.configuration.assetsUrl = this.assetUrl;
|
|
106
106
|
}
|
|
107
107
|
if (!this.activateServiceWorker) {
|
|
@@ -278,4 +278,4 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ng
|
|
|
278
278
|
}], assetUrl: [{
|
|
279
279
|
type: Input
|
|
280
280
|
}] } }) });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFRbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsbUJBQW1CLEVBQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1wRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFPdEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFDLDRCQUE0QixFQUFtQyxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQTZCdEgsTUFBTSxPQUFPLGVBQWU7SUFhMUIsWUFDVSx1QkFBdUQsRUFDdkQsd0JBQWtELEVBQ2xELGlCQUFvQyxFQUNwQyxnQkFBa0MsRUFDZSxhQUErQztRQUpoRyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWdDO1FBQ3ZELDZCQUF3QixHQUF4Qix3QkFB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Ozs4QkFzQkUsUUFBUTs7OEJBQUksTUFBTTsrQkFBQyw0QkFBNEI7NkNBakJ6QyxPQUFPOzBCQUFmLEtBQUs7b0JBQ0csSUFBSTswQkFBWixLQUFLO29CQUNHLGdCQUFnQjswQkFBeEIsS0FBSztvQkFDRyxxQkFBcUI7MEJBQTdCLEtBQUs7b0JBQ0csUUFBUTswQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZW5kZXJpbmdNb2R1bGV9IGZyb20gJy4vcmVuZGVyaW5nLm1vZHVsZSc7XG5pbXBvcnQge1xuICBKb2JJbmZvQ29udHJvbGxlclNlcnZpY2UsXG4gIEpvYkluZm9SZXBseSxcbiAgUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICBSZW5kZXJEYXRhUmVxdWVzdFdpdGhUb2tlbixcbiAgUmVuZGVyRGF0YVJlc3BvbnNlXG59IGZyb20gJ25neC1yZW5kZXJpbmctc2VydmljZS1hcGknO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlyc3RWYWx1ZUZyb20sIGludGVydmFsLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ltYWdlQ29tcG9uZW50fSBmcm9tICcuL21vZHVsZS9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtSZW5kZXJpbmdBcGlNb2R1bGV9IGZyb20gJy4vcmVuZGVyaW5nLWFwaS5tb2R1bGUnO1xuaW1wb3J0IHtWaWRlb0NvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvdmlkZW8vdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7RWR1U2hhcmluZ0FwaU1vZHVsZSwgTm9kZX0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtBc3NldFN0YXRlSXRlbSwgUmVuZGVyRGF0YX0gZnJvbSAnLi9kdG8vUmVuZGVyRGF0YSc7XG5pbXBvcnQge1BkZkNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvcGRmL3BkZi5jb21wb25lbnQnO1xuaW1wb3J0IHtVcmxDb21wb25lbnR9IGZyb20gJy4vbW9kdWxlL3VybC91cmwuY29tcG9uZW50JztcbmltcG9ydCB7RWR1SHRtbENvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZWR1aHRtbC9lZHVIdG1sLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZHVsZUluZm9TZXJ2aWNlfSBmcm9tICcuLi9tb2R1bGUtaW5mby5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsYXRmb3JtTG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RlZmF1bHRDb21wb25lbnR9IGZyb20gJy4vbW9kdWxlL2RlZmF1bHQvZGVmYXVsdC5jb21wb25lbnQnO1xuaW1wb3J0IHtGcm9udGVuZE1vZHVsZUNvbmZpZ30gZnJvbSAnLi9kdG8vRnJvbnRlbmRNb2R1bGVDb25maWcnO1xuaW1wb3J0IHtBdWRpb0NvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvYXVkaW8vYXVkaW8uY29tcG9uZW50JztcbmltcG9ydCB7QmluZGVyQ29tcG9uZW50fSBmcm9tICcuL21vZHVsZS9iaW5kZXIvYmluZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RkYkNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZGRiL2RkYi5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWR1U2hhcmluZ1VpTW9kdWxlfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctdWknO1xuaW1wb3J0IHtFcnJvckNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZXJyb3IvZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7UkVOREVSSU5HX1NFUlZJQ0VfTElCX0NPTkZJRywgUmVuZGVyaW5nU2VydmljZUxpYkNvbmZpZ3VyYXRpb259IGZyb20gXCIuLi9yZW5kZXJpbmctc2VydmljZS1saWItY29uZmlndXJhdGlvblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1yb290JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJlbmRlcmluZ0FwaU1vZHVsZSxcbiAgICBSZW5kZXJpbmdNb2R1bGUsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgVmlkZW9Db21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIFBkZkNvbXBvbmVudCxcbiAgICBVcmxDb21wb25lbnQsXG4gICAgRWR1SHRtbENvbXBvbmVudCxcbiAgICBEZWZhdWx0Q29tcG9uZW50LFxuICAgIEF1ZGlvQ29tcG9uZW50LFxuICAgIEJpbmRlckNvbXBvbmVudCxcbiAgICBEZGJDb21wb25lbnQsXG4gICAgRWR1U2hhcmluZ0FwaU1vZHVsZSxcbiAgICBFZHVTaGFyaW5nVWlNb2R1bGUsXG4gICAgRXJyb3JDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFRyYW5zbGF0ZVNlcnZpY2VcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbmRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yZW5kZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgQElucHV0KCkgcmVxdWVzdDogUmVuZGVyRGF0YVJlcXVlc3RXaXRoVG9rZW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNlcnZpY2VXb3JrZXJVcmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYWN0aXZhdGVTZXJ2aWNlV29ya2VyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgYXNzZXRVcmw6IHN0cmluZyA9ICcnO1xuICBzZXJ2aWNlV29ya2VyUmVhZHkgPSBmYWxzZTtcbiAgbG9hZERhdGEgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZW5kZXJEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVuZGVyRGF0YSB8IG51bGw+KG51bGwpO1xuICBmaW5pc2hlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHNvbWVCdXROb3RBbGxGaW5pc2hlZCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KClcbiAgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG1vZHVsZTogc3RyaW5nLCBwcm9ncmVzcz86IG51bWJlciB9IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJDb250cm9sbGVyU2VydmljZTogUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgam9iSW5mb0NvbnRyb2xsZXJTZXJ2aWNlOiBKb2JJbmZvQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2R1bGVJbmZvU2VydmljZTogTW9kdWxlSW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUkVOREVSSU5HX1NFUlZJQ0VfTElCX0NPTkZJRykgcHVibGljIGNvbmZpZ3VyYXRpb246IFJlbmRlcmluZ1NlcnZpY2VMaWJDb25maWd1cmF0aW9uLFxuICApIHtcbiAgICB0aGlzLmxvYWREYXRhLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5ub2RlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZXJ2aWNlV29ya2VyUmVhZHkpLFxuICAgICAgZGVib3VuY2VUaW1lKDEwKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIC8vIHN1YnNjcmliZSBlcnJvciBoYW5kbGluZ1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja01vZHVsZSgpXG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGFzeW5jIChmcm9udGVuZE1vZHVsZSkgPT4ge1xuICAgICAgICAvLyBObyBmdXJ0aGVyIGNhbGxzIHRvIHJzMiBuZWNlc3NhcnkgaWYgd2UgaGF2ZSBhIGZyb250ZW5kIG9ubHkgbW9kdWxlXG4gICAgICAgIGlmIChmcm9udGVuZE1vZHVsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFJlbmRlckRhdGEgPSB7XG4gICAgICAgICAgICBtb2R1bGU6IGZyb250ZW5kTW9kdWxlLm1vZHVsZSxcbiAgICAgICAgICAgIGZyb250ZW5kTW9kdWxlQ29uZmlnOiBmcm9udGVuZE1vZHVsZVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICAgICAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJSZXNwb25zZURhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlbmRlckNvbnRyb2xsZXJTZXJ2aWNlLmdldFJlbmRlckRhdGFUb2tlbih0aGlzLnJlcXVlc3QhISkpXG4gICAgICAgICAgICAvLyBDYXNlIDE6IG5vIGpvYiByZXR1cm5lZCA9PiBubyBwb2xsaW5nIG5lZWRlZFxuICAgICAgICAgICAgaWYgKHJlbmRlclJlc3BvbnNlRGF0YS5qb2JJZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVJlbmRlcmluZ1Jlc3BvbnNlV2l0aG91dEpvYihyZW5kZXJSZXNwb25zZURhdGEpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzJC5uZXh0KHttb2R1bGU6IHJlbmRlclJlc3BvbnNlRGF0YS5tb2R1bGUgPz8gJyd9KTtcbiAgICAgICAgICAgICAgaW50ZXJ2YWwoNTAwKS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmZpbmlzaGVkKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5qb2JJbmZvQ29udHJvbGxlclNlcnZpY2UuZ2V0Sm9iSW5mbyh7am9iSWQ6IHJlbmRlclJlc3BvbnNlRGF0YS5qb2JJZCEhfSkucGlwZSgpKSxcbiAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IGFzeW5jIChqb2JJbmZvKSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBTb21lLCBidXQgbm90IGFsbCwgam9icyBhcmUgaW4gYSBmaW5hbCBzdGF0dXMgKHRoaXMgbWVhbnMgc29tZSBhcmUgc3RpbGwgUVVFVUVEIG9yIFBST0NFU1NJTkcpXG4gICAgICAgICAgICAgICAgICBpZiAoam9iSW5mby5qb2JzLnNvbWUoaiA9PiBqLnN0YXR1cyA9PT0gJ0ZJTklTSEVEJykgJiYgam9iSW5mby5zdGF0dXMgIT09ICdGSU5JU0hFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVKb2JJbmZvV2l0aFN1YkpvYnNJblByb2dyZXNzKHJlbmRlclJlc3BvbnNlRGF0YSwgam9iSW5mbylcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFpbiBqb2IgZmluaXNoZWQgb3IgcGFydGlhbGx5IGZhaWxlZFxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqb2JJbmZvLnN0YXR1cyA9PT0gJ0ZJTklTSEVEJyB8fCBqb2JJbmZvLnN0YXR1cyA9PT0gJ1BBUlRJQUxMWV9GQUlMRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmluaXNoZWRPclBhcnRpYWxKb2JJbmZvKHJlbmRlclJlc3BvbnNlRGF0YSwgam9iSW5mbylcbiAgICAgICAgICAgICAgICAgICAgLy8gTWFpbiBqb2IgZmFpbGVkID0+IG5vIG1vZHVsZSBidXQgZXJyb3IgcGFnZVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqb2JJbmZvLnN0YXR1cyA9PT0gJ0ZBSUxFRCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVGYWlsZWRNYWluSm9iKGpvYkluZm8pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBubyBmaW5pc2hlZCBqb2JzIC0+IHNob3cgZWl0aGVyIG9uZSBwcm9ncmVzcyBiYXIgd2l0aCByYWNlIGxlYWRlciAocHJvZ3Jlc3MgMC0xMDApXG4gICAgICAgICAgICAgICAgICAgIC8vIG9yIHF1ZXVlIHBvc2l0aW9uIChwcm9ncmVzcyAoLWluZiwtMV0pXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTWFpbkpvYldpdGhOb1N1YkpvYkluRmluYWxTdGF0dXMoam9iSW5mbylcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUFwaUVycm9yKGVycm9yKVxuICAgICAgICAgICAgICAgIH19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBcGlFcnJvcihlcnJvcilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQXBpRXJyb3IoZXJyb3IpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVBcGlFcnJvcihlcnJvcjogYW55KSB7XG4gICAgY29uc3QgcHVibGljTWVzc2FnZSA9IGVycm9yLmVycm9yLnVzZXJNZXNzYWdlID8/ICdHRU5FUklDX0VSUk9SX01FU1NBR0UnXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogJ0VSUk9SJyxcbiAgICAgIHB1YmxpY0Vycm9yTWVzc2FnZTogcHVibGljTWVzc2FnZVxuICAgIH1cbiAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXNzZXRVcmwgIT09ICcnKSB7XG4gICAgICBjb25zb2xlLmluZm8oXCJzZXR0aW5nIGFzc2V0VXJsIHRvOiBcIiArIHRoaXMuYXNzZXRVcmwgKyBcIlwiKTtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5hc3NldHNVcmwgPSB0aGlzLmFzc2V0VXJsO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWN0aXZhdGVTZXJ2aWNlV29ya2VyKSB7XG4gICAgICB0aGlzLnNlcnZpY2VXb3JrZXJSZWFkeSA9IHRydWU7XG4gICAgICB0aGlzLmxvYWREYXRhLm5leHQoKTtcbiAgICB9XG4gICAgLy8gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGlvbnNTZXJ2aWNlLmluaXRpYWxpemUoKSlcbiAgICBpZiAoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikge1xuICAgICAgY29uc3QgcmVnID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocmVnPy5tYXAoKHI6IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pID0+IHIudW5yZWdpc3RlcigpKSk7XG4gICAgICBjb25zdCBzZXJ2aWNlV29ya2VyVXJsID0gdGhpcy5zZXJ2aWNlV29ya2VyVXJsID8/ICh0aGlzLnBsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCkgKyAnZWR1LXNlcnZpY2Utd29ya2VyLmpzJyk7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuc2VydmljZVdvcmtlclVybCA/ICcvJyA6IHRoaXMucGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKTtcbiAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNlcnZpY2VXb3JrZXJVcmwsIHtcbiAgICAgICAgc2NvcGU6IHNjb3BlXG4gICAgICB9KTtcbiAgICAgIGlmIChyZWdpc3RyYXRpb24ud2FpdGluZykge1xuICAgICAgICByZWdpc3RyYXRpb24ud2FpdGluZy5wb3N0TWVzc2FnZSh7dHlwZTogJ1NLSVBfV0FJVElORyd9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VydmljZVdvcmtlclJlYWR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZERhdGEubmV4dCgpO1xuICAgICAgcmVnaXN0cmF0aW9uLm9udXBkYXRlZm91bmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nO1xuICAgICAgICBpZiAobmV3V29ya2VyKSB7XG4gICAgICAgICAgbmV3V29ya2VyLm9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3V29ya2VyLnN0YXRlID09PSAnaW5zdGFsbGVkJykge1xuICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgIG5ld1dvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ1NLSVBfV0FJVElORyd9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdjb250cm9sbGVyY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ1NlcnZpY2UgV29ya2VyIGNvbnRyb2xsaW5nIHRoaXMgcGFnZS4nKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybignU2VydmljZSB3b3JrZXIgQVBJIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBjaGVja01vZHVsZSgpOiBQcm9taXNlPEZyb250ZW5kTW9kdWxlQ29uZmlnIHwgbnVsbD4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5tb2R1bGVJbmZvU2VydmljZS5pc0F2YWlsYWJsZUJhY2tlbmRPYmplY3QodGhpcy5ub2RlKSkge1xuICAgICAgaWYgKHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZHVsZUluZm9TZXJ2aWNlLmdldEZyb250ZW5kTW9kdWxlU2V0dGluZyh0aGlzLm5vZGUpXG4gICAgICB9XG4gICAgICByZXR1cm4ge21vZHVsZTogJ2RlZmF1bHQnLCB1cmxNb2R1bGVDb25maWc6IG51bGx9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUmVuZGVyaW5nUmVzcG9uc2VXaXRob3V0Sm9iKHJlbmRlckRhdGFSZXNwb25zZTogUmVuZGVyRGF0YVJlc3BvbnNlKSB7XG4gICAgY29uc3QgaXRlbXMgPSByZW5kZXJEYXRhUmVzcG9uc2Uub2JqZWN0TGlua3M/Lm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgIGxpbms6IGl0ZW0ubGluayxcbiAgICAgICAgcHJvZ3Jlc3M6IDEwMCxcbiAgICAgICAgaGVpZ2h0OiBpdGVtLmhlaWdodCxcbiAgICAgICAgd2lkdGg6IGl0ZW0ud2lkdGgsXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiB1bmRlZmluZWQsXG4gICAgICAgIHN0YXR1czogJ0ZJTklTSEVEJ1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICByZW5kZXJEYXRhUmVzcG9uc2Uub2JqZWN0TGlua3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSk7XG4gICAgdGhpcy5maW5pc2hlZC5uZXh0KCk7XG4gIH1cblxuICBoYW5kbGVKb2JJbmZvV2l0aFN1YkpvYnNJblByb2dyZXNzKHJlbmRlckRhdGFSZXNwb25zZTogUmVuZGVyRGF0YVJlc3BvbnNlLCBqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBjb25zdCBpdGVtcyA9IGpvYkluZm8uam9icy5tYXAoc3ViSm9iID0+IHtcbiAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgIGxpbms6IHN1YkpvYi5vYmplY3RMaW5rPy5saW5rID8/ICcnLFxuICAgICAgICBwcm9ncmVzczogc3ViSm9iLnN0YXR1cyAhPT0gJ1FVRVVFRCcgPyBzdWJKb2IucHJvZ3Jlc3MgOiAtKHN1YkpvYi5wcm9ncmVzcyArIDEpLFxuICAgICAgICBoZWlnaHQ6IHN1YkpvYi5vYmplY3RMaW5rPy5oZWlnaHQgPz8gc3ViSm9iLnF1YWxpdHksXG4gICAgICAgIHdpZHRoOiBzdWJKb2Iub2JqZWN0TGluaz8ud2lkdGggPz8gMCxcbiAgICAgICAgYWRkaXRpb25hbERhdGE6IHN1YkpvYi5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgc3RhdHVzOiBzdWJKb2Iuc3RhdHVzLFxuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICB0aGlzLnNvbWVCdXROb3RBbGxGaW5pc2hlZC5uZXh0KHRydWUpXG4gIH1cblxuICBoYW5kbGVGaW5pc2hlZE9yUGFydGlhbEpvYkluZm8ocmVuZGVyRGF0YVJlc3BvbnNlOiBSZW5kZXJEYXRhUmVzcG9uc2UsIGpvYkluZm86IEpvYkluZm9SZXBseSkge1xuICAgIGNvbnN0IGl0ZW1zID0gam9iSW5mby5qb2JzLm1hcChzdWJKb2IgPT4ge1xuICAgICAgY29uc3QgYXNzZXRJdGVtOiBBc3NldFN0YXRlSXRlbSA9IHtcbiAgICAgICAgbGluazogc3ViSm9iLm9iamVjdExpbms/LmxpbmsgPz8gJycsXG4gICAgICAgIHByb2dyZXNzOiBzdWJKb2IucHJvZ3Jlc3MsXG4gICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgd2lkdGg6IHN1YkpvYi5vYmplY3RMaW5rPy53aWR0aCA/PyAwLFxuICAgICAgICBhZGRpdGlvbmFsRGF0YTogc3ViSm9iLmFkZGl0aW9uYWxEYXRhLFxuICAgICAgICBwdWJsaWNFcnJvck1lc3NhZ2U6IHN1YkpvYi5wdWJsaWNFcnJvck1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czpzdWJKb2Iuc3RhdHVzLFxuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICB9XG5cbiAgaGFuZGxlRmFpbGVkTWFpbkpvYihqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgbW9kdWxlOiAnRVJST1InLFxuICAgICAgcHVibGljRXJyb3JNZXNzYWdlOiBqb2JJbmZvLnVzZXJNZXNzYWdlID8/ICdHRU5FUklDX0VSUk9SX01FU1NBR0UnXG4gICAgfVxuICAgIHRoaXMucmVuZGVyRGF0YSQubmV4dChkYXRhKVxuICAgIHRoaXMuZmluaXNoZWQubmV4dCgpXG4gIH1cblxuICBoYW5kbGVNYWluSm9iV2l0aE5vU3ViSm9iSW5GaW5hbFN0YXR1cyhqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBsZXQgcHJvZ3Jlc3MgPSAwXG4gICAgaWYgKGpvYkluZm8uam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdQUk9DRVNTSU5HJykpIHtcbiAgICAgIHByb2dyZXNzID0gTWF0aC5tYXgoLi4uam9iSW5mby5qb2JzLm1hcChqID0+IGoucHJvZ3Jlc3MpKVxuICAgIH0gZWxzZSBpZiAoam9iSW5mby5qb2JzLnNvbWUoaiA9PiBqLnN0YXR1cyA9PT0gJ1FVRVVFRCcpKSB7XG4gICAgICBwcm9ncmVzcyA9IC0oTWF0aC5taW4oLi4uam9iSW5mby5qb2JzLm1hcChqID0+IGoucHJvZ3Jlc3MgKyAxKSkpXG4gICAgfVxuICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgbW9kdWxlOiBqb2JJbmZvLm1vZHVsZSA/PyAnJyxcbiAgICAgIHByb2dyZXNzOiBwcm9ncmVzc1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kdWxlIG1vZHVsZS17eyhyZW5kZXJEYXRhJCB8IGFzeW5jKT8ubW9kdWxlfX1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbmRlckRhdGEkIHwgYXN5bmMgYXMgZGF0YVwiPlxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdJTUFHRScpe1xuICAgICAgPHJzLW1vZHVsZS1pbWFnZSBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWltYWdlPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ1ZJREVPJyl7XG4gICAgICA8cnMtbW9kdWxlLXZpZGVvIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtdmlkZW8+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnUERGJyB8fCBkYXRhPy5tb2R1bGUgPT09ICdET0NVTUVOVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtcGRmIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtcGRmPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0VEVUhUTUwnIHx8IGRhdGE/Lm1vZHVsZSA9PT0gJ0g1UCcgfHwgZGF0YT8ubW9kdWxlID09PSAnSlVQWVRFUicgfHwgZGF0YS5tb2R1bGUgPT09ICdTUFJFQURTSEVFVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtZWR1LWh0bWwgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1lZHUtaHRtbD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdBVURJTycpe1xuICAgICAgPHJzLW1vZHVsZS1hdWRpbyBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWF1ZGlvPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0JJTkRFUicpe1xuICAgICAgPHJzLW1vZHVsZS1iaW5kZXIgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1iaW5kZXI+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRERCJyl7XG4gICAgICA8cnMtbW9kdWxlLWRkYiBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRkYj5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLm1vZHVsZSA9PT0gJ2RlZmF1bHQnXCI+XG4gICAgICBAZGVmZXIgKHdoZW4gZGF0YS5tb2R1bGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICA8cnMtbW9kdWxlLWRlZmF1bHQgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRlZmF1bHQ+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubW9kdWxlID09PSAndXJsJ1wiPlxuICAgICAgQGRlZmVyICh3aGVuIGRhdGEubW9kdWxlID09PSAndXJsJykge1xuICAgICAgICA8cnMtbW9kdWxlLXVybCBbbm9kZV09XCJub2RlXCIgW2RhdGFdPVwiZGF0YVwiPjwvcnMtbW9kdWxlLXVybD5cbiAgICAgIH1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5tb2R1bGUgPT09ICdFUlJPUidcIj5cbiAgICAgIEBkZWZlciAod2hlbiBkYXRhLm1vZHVsZSA9PT0gJ0VSUk9SJykge1xuICAgICAgICA8cnMtbW9kdWxlLWVycm9yIFtub2RlXT1cIm5vZGVcIiBbZGF0YV09XCJkYXRhXCI+PC9ycy1tb2R1bGUtZXJyb3I+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwiKHJlbmRlckRhdGEkIHwgYXN5bmMpID09PSBudWxsO1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9ncmVzcyQgfCBhc3luYyBhcyBwcm9ncmVzc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiWydWSURFTycsICdBVURJTyddLmluY2x1ZGVzKHByb2dyZXNzLm1vZHVsZSkgPyAnYmFyJyA6ICdzcGlubmVyJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYmFyJ1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPCAwXCI+UXVldWUgcG9zaXRpb246IHt7LShwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKX19PC9kaXY+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cIihwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKVwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Bpbm5lcidcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApIDwgMFwiPlF1ZXVlIHBvc2l0aW9uOiB7ey0ocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCl9PC9kaXY+XG4gICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFRbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsbUJBQW1CLEVBQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1wRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFPdEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFDLDRCQUE0QixFQUFtQyxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQTZCdEgsTUFBTSxPQUFPLGVBQWU7SUFhMUIsWUFDVSx1QkFBdUQsRUFDdkQsd0JBQWtELEVBQ2xELGlCQUFvQyxFQUNwQyxnQkFBa0MsRUFDZSxhQUErQztRQUpoRyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWdDO1FBQ3ZELDZCQUF3QixHQUF4Qix3QkFB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Ozs4QkFzQkUsUUFBUTs7OEJBQUksTUFBTTsrQkFBQyw0QkFBNEI7NkNBakJ6QyxPQUFPOzBCQUFmLEtBQUs7b0JBQ0csSUFBSTswQkFBWixLQUFLO29CQUNHLGdCQUFnQjswQkFBeEIsS0FBSztvQkFDRyxxQkFBcUI7MEJBQTdCLEtBQUs7b0JBQ0csUUFBUTswQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZW5kZXJpbmdNb2R1bGV9IGZyb20gJy4vcmVuZGVyaW5nLm1vZHVsZSc7XG5pbXBvcnQge1xuICBKb2JJbmZvQ29udHJvbGxlclNlcnZpY2UsXG4gIEpvYkluZm9SZXBseSxcbiAgUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICBSZW5kZXJEYXRhUmVxdWVzdFdpdGhUb2tlbixcbiAgUmVuZGVyRGF0YVJlc3BvbnNlXG59IGZyb20gJ25neC1yZW5kZXJpbmctc2VydmljZS1hcGknO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlyc3RWYWx1ZUZyb20sIGludGVydmFsLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ltYWdlQ29tcG9uZW50fSBmcm9tICcuL21vZHVsZS9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtSZW5kZXJpbmdBcGlNb2R1bGV9IGZyb20gJy4vcmVuZGVyaW5nLWFwaS5tb2R1bGUnO1xuaW1wb3J0IHtWaWRlb0NvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvdmlkZW8vdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7RWR1U2hhcmluZ0FwaU1vZHVsZSwgTm9kZX0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtBc3NldFN0YXRlSXRlbSwgUmVuZGVyRGF0YX0gZnJvbSAnLi9kdG8vUmVuZGVyRGF0YSc7XG5pbXBvcnQge1BkZkNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvcGRmL3BkZi5jb21wb25lbnQnO1xuaW1wb3J0IHtVcmxDb21wb25lbnR9IGZyb20gJy4vbW9kdWxlL3VybC91cmwuY29tcG9uZW50JztcbmltcG9ydCB7RWR1SHRtbENvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZWR1aHRtbC9lZHVIdG1sLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZHVsZUluZm9TZXJ2aWNlfSBmcm9tICcuLi9tb2R1bGUtaW5mby5zZXJ2aWNlJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsYXRmb3JtTG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0RlZmF1bHRDb21wb25lbnR9IGZyb20gJy4vbW9kdWxlL2RlZmF1bHQvZGVmYXVsdC5jb21wb25lbnQnO1xuaW1wb3J0IHtGcm9udGVuZE1vZHVsZUNvbmZpZ30gZnJvbSAnLi9kdG8vRnJvbnRlbmRNb2R1bGVDb25maWcnO1xuaW1wb3J0IHtBdWRpb0NvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvYXVkaW8vYXVkaW8uY29tcG9uZW50JztcbmltcG9ydCB7QmluZGVyQ29tcG9uZW50fSBmcm9tICcuL21vZHVsZS9iaW5kZXIvYmluZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RkYkNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZGRiL2RkYi5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWR1U2hhcmluZ1VpTW9kdWxlfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctdWknO1xuaW1wb3J0IHtFcnJvckNvbXBvbmVudH0gZnJvbSAnLi9tb2R1bGUvZXJyb3IvZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7UkVOREVSSU5HX1NFUlZJQ0VfTElCX0NPTkZJRywgUmVuZGVyaW5nU2VydmljZUxpYkNvbmZpZ3VyYXRpb259IGZyb20gJy4uL3JlbmRlcmluZy1zZXJ2aWNlLWxpYi1jb25maWd1cmF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtcm9vdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZW5kZXJpbmdBcGlNb2R1bGUsXG4gICAgUmVuZGVyaW5nTW9kdWxlLFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFZpZGVvQ29tcG9uZW50LFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBQZGZDb21wb25lbnQsXG4gICAgVXJsQ29tcG9uZW50LFxuICAgIEVkdUh0bWxDb21wb25lbnQsXG4gICAgRGVmYXVsdENvbXBvbmVudCxcbiAgICBBdWRpb0NvbXBvbmVudCxcbiAgICBCaW5kZXJDb21wb25lbnQsXG4gICAgRGRiQ29tcG9uZW50LFxuICAgIEVkdVNoYXJpbmdBcGlNb2R1bGUsXG4gICAgRWR1U2hhcmluZ1VpTW9kdWxlLFxuICAgIEVycm9yQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBUcmFuc2xhdGVTZXJ2aWNlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVuZGVyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBSZW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlcXVlc3Q6IFJlbmRlckRhdGFSZXF1ZXN0V2l0aFRva2VuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBub2RlOiBOb2RlIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZXJ2aWNlV29ya2VyVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFjdGl2YXRlU2VydmljZVdvcmtlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFzc2V0VXJsOiBzdHJpbmcgPSAnJztcbiAgc2VydmljZVdvcmtlclJlYWR5ID0gZmFsc2U7XG4gIGxvYWREYXRhID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVuZGVyRGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlbmRlckRhdGEgfCBudWxsPihudWxsKTtcbiAgZmluaXNoZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBzb21lQnV0Tm90QWxsRmluaXNoZWQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpXG4gIHByb2dyZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBtb2R1bGU6IHN0cmluZywgcHJvZ3Jlc3M/OiBudW1iZXIgfSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyQ29udHJvbGxlclNlcnZpY2U6IFJlbmRlckNvbnRyb2xsZXJXcmFwcGVyU2VydmljZSxcbiAgICBwcml2YXRlIGpvYkluZm9Db250cm9sbGVyU2VydmljZTogSm9iSW5mb0NvbnRyb2xsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kdWxlSW5mb1NlcnZpY2U6IE1vZHVsZUluZm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1Mb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJFTkRFUklOR19TRVJWSUNFX0xJQl9DT05GSUcpIHB1YmxpYyBjb25maWd1cmF0aW9uOiBSZW5kZXJpbmdTZXJ2aWNlTGliQ29uZmlndXJhdGlvbixcbiAgKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VydmljZVdvcmtlclJlYWR5KSxcbiAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAvLyBzdWJzY3JpYmUgZXJyb3IgaGFuZGxpbmdcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tNb2R1bGUoKVxuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBhc3luYyAoZnJvbnRlbmRNb2R1bGUpID0+IHtcbiAgICAgICAgLy8gTm8gZnVydGhlciBjYWxscyB0byByczIgbmVjZXNzYXJ5IGlmIHdlIGhhdmUgYSBmcm9udGVuZCBvbmx5IG1vZHVsZVxuICAgICAgICBpZiAoZnJvbnRlbmRNb2R1bGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgICAgICAgbW9kdWxlOiBmcm9udGVuZE1vZHVsZS5tb2R1bGUsXG4gICAgICAgICAgICBmcm9udGVuZE1vZHVsZUNvbmZpZzogZnJvbnRlbmRNb2R1bGVcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpXG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5uZXh0KClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyUmVzcG9uc2VEYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZW5kZXJDb250cm9sbGVyU2VydmljZS5nZXRSZW5kZXJEYXRhVG9rZW4odGhpcy5yZXF1ZXN0ISEpKVxuICAgICAgICAgICAgLy8gQ2FzZSAxOiBubyBqb2IgcmV0dXJuZWQgPT4gbm8gcG9sbGluZyBuZWVkZWRcbiAgICAgICAgICAgIGlmIChyZW5kZXJSZXNwb25zZURhdGEuam9iSWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVSZW5kZXJpbmdSZXNwb25zZVdpdGhvdXRKb2IocmVuZGVyUmVzcG9uc2VEYXRhKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyQubmV4dCh7bW9kdWxlOiByZW5kZXJSZXNwb25zZURhdGEubW9kdWxlID8/ICcnfSk7XG4gICAgICAgICAgICAgIGludGVydmFsKDUwMCkucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5maW5pc2hlZCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuam9iSW5mb0NvbnRyb2xsZXJTZXJ2aWNlLmdldEpvYkluZm8oe2pvYklkOiByZW5kZXJSZXNwb25zZURhdGEuam9iSWQhIX0pLnBpcGUoKSksXG4gICAgICAgICAgICAgICkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiBhc3luYyAoam9iSW5mbykgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gU29tZSwgYnV0IG5vdCBhbGwsIGpvYnMgYXJlIGluIGEgZmluYWwgc3RhdHVzICh0aGlzIG1lYW5zIHNvbWUgYXJlIHN0aWxsIFFVRVVFRCBvciBQUk9DRVNTSU5HKVxuICAgICAgICAgICAgICAgICAgaWYgKGpvYkluZm8uam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdGSU5JU0hFRCcpICYmIGpvYkluZm8uc3RhdHVzICE9PSAnRklOSVNIRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlSm9iSW5mb1dpdGhTdWJKb2JzSW5Qcm9ncmVzcyhyZW5kZXJSZXNwb25zZURhdGEsIGpvYkluZm8pXG4gICAgICAgICAgICAgICAgICAgIC8vIG1haW4gam9iIGZpbmlzaGVkIG9yIHBhcnRpYWxseSBmYWlsZWRcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoam9iSW5mby5zdGF0dXMgPT09ICdGSU5JU0hFRCcgfHwgam9iSW5mby5zdGF0dXMgPT09ICdQQVJUSUFMTFlfRkFJTEVEJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUZpbmlzaGVkT3JQYXJ0aWFsSm9iSW5mbyhyZW5kZXJSZXNwb25zZURhdGEsIGpvYkluZm8pXG4gICAgICAgICAgICAgICAgICAgIC8vIE1haW4gam9iIGZhaWxlZCA9PiBubyBtb2R1bGUgYnV0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoam9iSW5mby5zdGF0dXMgPT09ICdGQUlMRUQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRmFpbGVkTWFpbkpvYihqb2JJbmZvKVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gZmluaXNoZWQgam9icyAtPiBzaG93IGVpdGhlciBvbmUgcHJvZ3Jlc3MgYmFyIHdpdGggcmFjZSBsZWFkZXIgKHByb2dyZXNzIDAtMTAwKVxuICAgICAgICAgICAgICAgICAgICAvLyBvciBxdWV1ZSBwb3NpdGlvbiAocHJvZ3Jlc3MgKC1pbmYsLTFdKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1haW5Kb2JXaXRoTm9TdWJKb2JJbkZpbmFsU3RhdHVzKGpvYkluZm8pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBcGlFcnJvcihlcnJvcilcbiAgICAgICAgICAgICAgICB9fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQXBpRXJyb3IoZXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUFwaUVycm9yKGVycm9yKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQXBpRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIGNvbnN0IHB1YmxpY01lc3NhZ2UgPSBlcnJvci5lcnJvci51c2VyTWVzc2FnZSA/PyAnR0VORVJJQ19FUlJPUl9NRVNTQUdFJ1xuICAgIGNvbnN0IGRhdGE6IFJlbmRlckRhdGEgPSB7XG4gICAgICBtb2R1bGU6ICdFUlJPUicsXG4gICAgICBwdWJsaWNFcnJvck1lc3NhZ2U6IHB1YmxpY01lc3NhZ2VcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpXG4gICAgdGhpcy5maW5pc2hlZC5uZXh0KClcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmFzc2V0VXJsICE9PSAnJykge1xuICAgICAgY29uc29sZS5pbmZvKCdzZXR0aW5nIGFzc2V0VXJsIHRvOiAnICsgdGhpcy5hc3NldFVybCArICcnKTtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5hc3NldHNVcmwgPSB0aGlzLmFzc2V0VXJsO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWN0aXZhdGVTZXJ2aWNlV29ya2VyKSB7XG4gICAgICB0aGlzLnNlcnZpY2VXb3JrZXJSZWFkeSA9IHRydWU7XG4gICAgICB0aGlzLmxvYWREYXRhLm5leHQoKTtcbiAgICB9XG4gICAgLy8gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGlvbnNTZXJ2aWNlLmluaXRpYWxpemUoKSlcbiAgICBpZiAoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikge1xuICAgICAgY29uc3QgcmVnID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocmVnPy5tYXAoKHI6IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pID0+IHIudW5yZWdpc3RlcigpKSk7XG4gICAgICBjb25zdCBzZXJ2aWNlV29ya2VyVXJsID0gdGhpcy5zZXJ2aWNlV29ya2VyVXJsID8/ICh0aGlzLnBsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCkgKyAnZWR1LXNlcnZpY2Utd29ya2VyLmpzJyk7XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuc2VydmljZVdvcmtlclVybCA/ICcvJyA6IHRoaXMucGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKTtcbiAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNlcnZpY2VXb3JrZXJVcmwsIHtcbiAgICAgICAgc2NvcGU6IHNjb3BlXG4gICAgICB9KTtcbiAgICAgIGlmIChyZWdpc3RyYXRpb24ud2FpdGluZykge1xuICAgICAgICByZWdpc3RyYXRpb24ud2FpdGluZy5wb3N0TWVzc2FnZSh7dHlwZTogJ1NLSVBfV0FJVElORyd9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VydmljZVdvcmtlclJlYWR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZERhdGEubmV4dCgpO1xuICAgICAgcmVnaXN0cmF0aW9uLm9udXBkYXRlZm91bmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nO1xuICAgICAgICBpZiAobmV3V29ya2VyKSB7XG4gICAgICAgICAgbmV3V29ya2VyLm9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3V29ya2VyLnN0YXRlID09PSAnaW5zdGFsbGVkJykge1xuICAgICAgICAgICAgICBpZiAobmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgIG5ld1dvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ1NLSVBfV0FJVElORyd9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdjb250cm9sbGVyY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ1NlcnZpY2UgV29ya2VyIGNvbnRyb2xsaW5nIHRoaXMgcGFnZS4nKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybignU2VydmljZSB3b3JrZXIgQVBJIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBjaGVja01vZHVsZSgpOiBQcm9taXNlPEZyb250ZW5kTW9kdWxlQ29uZmlnIHwgbnVsbD4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5tb2R1bGVJbmZvU2VydmljZS5pc0F2YWlsYWJsZUJhY2tlbmRPYmplY3QodGhpcy5ub2RlKSkge1xuICAgICAgaWYgKHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZHVsZUluZm9TZXJ2aWNlLmdldEZyb250ZW5kTW9kdWxlU2V0dGluZyh0aGlzLm5vZGUpXG4gICAgICB9XG4gICAgICByZXR1cm4ge21vZHVsZTogJ2RlZmF1bHQnLCB1cmxNb2R1bGVDb25maWc6IG51bGx9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUmVuZGVyaW5nUmVzcG9uc2VXaXRob3V0Sm9iKHJlbmRlckRhdGFSZXNwb25zZTogUmVuZGVyRGF0YVJlc3BvbnNlKSB7XG4gICAgY29uc3QgaXRlbXMgPSByZW5kZXJEYXRhUmVzcG9uc2Uub2JqZWN0TGlua3M/Lm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgIGxpbms6IGl0ZW0ubGluayxcbiAgICAgICAgcHJvZ3Jlc3M6IDEwMCxcbiAgICAgICAgaGVpZ2h0OiBpdGVtLmhlaWdodCxcbiAgICAgICAgd2lkdGg6IGl0ZW0ud2lkdGgsXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiB1bmRlZmluZWQsXG4gICAgICAgIHN0YXR1czogJ0ZJTklTSEVEJ1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICByZW5kZXJEYXRhUmVzcG9uc2Uub2JqZWN0TGlua3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSk7XG4gICAgdGhpcy5maW5pc2hlZC5uZXh0KCk7XG4gIH1cblxuICBoYW5kbGVKb2JJbmZvV2l0aFN1YkpvYnNJblByb2dyZXNzKHJlbmRlckRhdGFSZXNwb25zZTogUmVuZGVyRGF0YVJlc3BvbnNlLCBqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBjb25zdCBpdGVtcyA9IGpvYkluZm8uam9icy5tYXAoc3ViSm9iID0+IHtcbiAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgIGxpbms6IHN1YkpvYi5vYmplY3RMaW5rPy5saW5rID8/ICcnLFxuICAgICAgICBwcm9ncmVzczogc3ViSm9iLnN0YXR1cyAhPT0gJ1FVRVVFRCcgPyBzdWJKb2IucHJvZ3Jlc3MgOiAtKHN1YkpvYi5wcm9ncmVzcyArIDEpLFxuICAgICAgICBoZWlnaHQ6IHN1YkpvYi5vYmplY3RMaW5rPy5oZWlnaHQgPz8gc3ViSm9iLnF1YWxpdHksXG4gICAgICAgIHdpZHRoOiBzdWJKb2Iub2JqZWN0TGluaz8ud2lkdGggPz8gMCxcbiAgICAgICAgYWRkaXRpb25hbERhdGE6IHN1YkpvYi5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgc3RhdHVzOiBzdWJKb2Iuc3RhdHVzLFxuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICB0aGlzLnNvbWVCdXROb3RBbGxGaW5pc2hlZC5uZXh0KHRydWUpXG4gIH1cblxuICBoYW5kbGVGaW5pc2hlZE9yUGFydGlhbEpvYkluZm8ocmVuZGVyRGF0YVJlc3BvbnNlOiBSZW5kZXJEYXRhUmVzcG9uc2UsIGpvYkluZm86IEpvYkluZm9SZXBseSkge1xuICAgIGNvbnN0IGl0ZW1zID0gam9iSW5mby5qb2JzLm1hcChzdWJKb2IgPT4ge1xuICAgICAgY29uc3QgYXNzZXRJdGVtOiBBc3NldFN0YXRlSXRlbSA9IHtcbiAgICAgICAgbGluazogc3ViSm9iLm9iamVjdExpbms/LmxpbmsgPz8gJycsXG4gICAgICAgIHByb2dyZXNzOiBzdWJKb2IucHJvZ3Jlc3MsXG4gICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgd2lkdGg6IHN1YkpvYi5vYmplY3RMaW5rPy53aWR0aCA/PyAwLFxuICAgICAgICBhZGRpdGlvbmFsRGF0YTogc3ViSm9iLmFkZGl0aW9uYWxEYXRhLFxuICAgICAgICBwdWJsaWNFcnJvck1lc3NhZ2U6IHN1YkpvYi5wdWJsaWNFcnJvck1lc3NhZ2UsXG4gICAgICAgIHN0YXR1czpzdWJKb2Iuc3RhdHVzLFxuICAgICAgfVxuICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgIH0pXG4gICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgIG1vZHVsZTogcmVuZGVyRGF0YVJlc3BvbnNlLm1vZHVsZSA/PyAnJyxcbiAgICAgIGl0ZW1zOiBpdGVtc1xuICAgIH1cbiAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICB9XG5cbiAgaGFuZGxlRmFpbGVkTWFpbkpvYihqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgbW9kdWxlOiAnRVJST1InLFxuICAgICAgcHVibGljRXJyb3JNZXNzYWdlOiBqb2JJbmZvLnVzZXJNZXNzYWdlID8/ICdHRU5FUklDX0VSUk9SX01FU1NBR0UnXG4gICAgfVxuICAgIHRoaXMucmVuZGVyRGF0YSQubmV4dChkYXRhKVxuICAgIHRoaXMuZmluaXNoZWQubmV4dCgpXG4gIH1cblxuICBoYW5kbGVNYWluSm9iV2l0aE5vU3ViSm9iSW5GaW5hbFN0YXR1cyhqb2JJbmZvOiBKb2JJbmZvUmVwbHkpIHtcbiAgICBsZXQgcHJvZ3Jlc3MgPSAwXG4gICAgaWYgKGpvYkluZm8uam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdQUk9DRVNTSU5HJykpIHtcbiAgICAgIHByb2dyZXNzID0gTWF0aC5tYXgoLi4uam9iSW5mby5qb2JzLm1hcChqID0+IGoucHJvZ3Jlc3MpKVxuICAgIH0gZWxzZSBpZiAoam9iSW5mby5qb2JzLnNvbWUoaiA9PiBqLnN0YXR1cyA9PT0gJ1FVRVVFRCcpKSB7XG4gICAgICBwcm9ncmVzcyA9IC0oTWF0aC5taW4oLi4uam9iSW5mby5qb2JzLm1hcChqID0+IGoucHJvZ3Jlc3MgKyAxKSkpXG4gICAgfVxuICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgbW9kdWxlOiBqb2JJbmZvLm1vZHVsZSA/PyAnJyxcbiAgICAgIHByb2dyZXNzOiBwcm9ncmVzc1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kdWxlIG1vZHVsZS17eyhyZW5kZXJEYXRhJCB8IGFzeW5jKT8ubW9kdWxlfX1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbmRlckRhdGEkIHwgYXN5bmMgYXMgZGF0YVwiPlxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdJTUFHRScpe1xuICAgICAgPHJzLW1vZHVsZS1pbWFnZSBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWltYWdlPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ1ZJREVPJyl7XG4gICAgICA8cnMtbW9kdWxlLXZpZGVvIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtdmlkZW8+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnUERGJyB8fCBkYXRhPy5tb2R1bGUgPT09ICdET0NVTUVOVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtcGRmIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtcGRmPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0VEVUhUTUwnIHx8IGRhdGE/Lm1vZHVsZSA9PT0gJ0g1UCcgfHwgZGF0YT8ubW9kdWxlID09PSAnSlVQWVRFUicgfHwgZGF0YS5tb2R1bGUgPT09ICdTUFJFQURTSEVFVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtZWR1LWh0bWwgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1lZHUtaHRtbD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdBVURJTycpe1xuICAgICAgPHJzLW1vZHVsZS1hdWRpbyBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWF1ZGlvPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0JJTkRFUicpe1xuICAgICAgPHJzLW1vZHVsZS1iaW5kZXIgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1iaW5kZXI+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRERCJyl7XG4gICAgICA8cnMtbW9kdWxlLWRkYiBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRkYj5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLm1vZHVsZSA9PT0gJ2RlZmF1bHQnXCI+XG4gICAgICBAZGVmZXIgKHdoZW4gZGF0YS5tb2R1bGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICA8cnMtbW9kdWxlLWRlZmF1bHQgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRlZmF1bHQ+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubW9kdWxlID09PSAndXJsJ1wiPlxuICAgICAgQGRlZmVyICh3aGVuIGRhdGEubW9kdWxlID09PSAndXJsJykge1xuICAgICAgICA8cnMtbW9kdWxlLXVybCBbbm9kZV09XCJub2RlXCIgW2RhdGFdPVwiZGF0YVwiPjwvcnMtbW9kdWxlLXVybD5cbiAgICAgIH1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5tb2R1bGUgPT09ICdFUlJPUidcIj5cbiAgICAgIEBkZWZlciAod2hlbiBkYXRhLm1vZHVsZSA9PT0gJ0VSUk9SJykge1xuICAgICAgICA8cnMtbW9kdWxlLWVycm9yIFtub2RlXT1cIm5vZGVcIiBbZGF0YV09XCJkYXRhXCI+PC9ycy1tb2R1bGUtZXJyb3I+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwiKHJlbmRlckRhdGEkIHwgYXN5bmMpID09PSBudWxsO1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9ncmVzcyQgfCBhc3luYyBhcyBwcm9ncmVzc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiWydWSURFTycsICdBVURJTyddLmluY2x1ZGVzKHByb2dyZXNzLm1vZHVsZSkgPyAnYmFyJyA6ICdzcGlubmVyJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYmFyJ1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPCAwXCI+UXVldWUgcG9zaXRpb246IHt7LShwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKX19PC9kaXY+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cIihwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKVwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Bpbm5lcidcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApIDwgMFwiPlF1ZXVlIHBvc2l0aW9uOiB7ey0ocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCl9PC9kaXY+XG4gICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { AssetLinkPipe } from './asset-link.pipe';
|
|
4
|
+
import { EduSharingApiModule } from "ngx-edu-sharing-api";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "ngx-edu-sharing-api";
|
|
5
7
|
export class RenderingModule {
|
|
6
8
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, declarations: [AssetLinkPipe], imports: [CommonModule], exports: [CommonModule,
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, declarations: [AssetLinkPipe], imports: [CommonModule, i1.EduSharingApiModule], exports: [CommonModule,
|
|
8
10
|
AssetLinkPipe] }); }
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, imports: [CommonModule,
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, imports: [CommonModule,
|
|
12
|
+
EduSharingApiModule.forRoot(), CommonModule] }); }
|
|
10
13
|
}
|
|
11
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, decorators: [{
|
|
12
15
|
type: NgModule,
|
|
13
16
|
args: [{
|
|
14
17
|
imports: [
|
|
15
18
|
CommonModule,
|
|
19
|
+
EduSharingApiModule.forRoot()
|
|
16
20
|
],
|
|
17
21
|
declarations: [
|
|
18
22
|
AssetLinkPipe,
|
|
@@ -23,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
23
27
|
]
|
|
24
28
|
}]
|
|
25
29
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQWV4RCxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBUHhCLGFBQWEsYUFKYixZQUFZLHFDQU9aLFlBQVk7WUFDWixhQUFhOytHQUdKLGVBQWUsWUFYeEIsWUFBWTtZQUNaLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQU03QixZQUFZOzsyRkFJSCxlQUFlO2tCQWIzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQixDQUFDLE9BQU8sRUFBRTtxQkFDOUI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0Fzc2V0TGlua1BpcGV9IGZyb20gJy4vYXNzZXQtbGluay5waXBlJztcbmltcG9ydCB7RWR1U2hhcmluZ0FwaU1vZHVsZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBFZHVTaGFyaW5nQXBpTW9kdWxlLmZvclJvb3QoKVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBc3NldExpbmtQaXBlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFzc2V0TGlua1BpcGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVuZGVyaW5nTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { RenderComponent } from './lib/render.component';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { getConfigProvider } from
|
|
4
|
+
import { getConfigProvider } from './rendering-service-lib-configuration';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class RenderingServiceLibModule {
|
|
7
7
|
static forRoot(params) {
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
31
31
|
],
|
|
32
32
|
}]
|
|
33
33
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXNlcnZpY2UtbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJpbmctc2VydmljZS1saWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGlCQUFpQixFQUF5QyxNQUFNLHVDQUF1QyxDQUFDOztBQWFoSCxNQUFNLE9BQU8seUJBQXlCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPLENBQ25CLE1BQThDO1FBRTlDLE9BQU87WUFDTCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDOzhHQVJVLHlCQUF5QjsrR0FBekIseUJBQXlCLFlBUmxDLGVBQWU7WUFDZixZQUFZLGFBR1osWUFBWTtZQUNaLGVBQWU7K0dBR04seUJBQXlCLFlBUmxDLGVBQWU7WUFDZixZQUFZLEVBR1osWUFBWTs7MkZBSUgseUJBQXlCO2tCQVhyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlbmRlckNvbXBvbmVudH0gZnJvbSAnLi9saWIvcmVuZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWR1U2hhcmluZ1VpQ29uZmlndXJhdGlvblBhcmFtc30gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLXVpL2xpYi9lZHUtc2hhcmluZy11aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7Z2V0Q29uZmlnUHJvdmlkZXIsIFJlbmRlcmluZ1NlcnZpY2VMaWJDb25maWd1cmF0aW9uUGFyYW1zfSBmcm9tICcuL3JlbmRlcmluZy1zZXJ2aWNlLWxpYi1jb25maWd1cmF0aW9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIFJlbmRlckNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVuZGVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZW5kZXJpbmdTZXJ2aWNlTGliTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KFxuICAgIHBhcmFtczogUmVuZGVyaW5nU2VydmljZUxpYkNvbmZpZ3VyYXRpb25QYXJhbXNcbik6IE1vZHVsZVdpdGhQcm92aWRlcnM8UmVuZGVyaW5nU2VydmljZUxpYk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUmVuZGVyaW5nU2VydmljZUxpYk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW2dldENvbmZpZ1Byb3ZpZGVyKHBhcmFtcyldXG4gICAgfTtcbiAgfVxufVxuIl19
|