mmhglobal-dynamicform 1.6.1 → 1.7.0
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/README.md +3 -0
- package/esm2020/lib/zreport/zreport.component.mjs +7 -6
- package/esm2020/lib/zupload/zupload.component.mjs +7 -4
- package/fesm2015/mmhglobal-dynamicform.mjs +12 -8
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +12 -8
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/zreport/zreport.component.d.ts +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
|
|
4
4
|
|
|
5
5
|
## Changelog
|
|
6
|
+
`1.7.0`<br/>
|
|
7
|
+
[zupload,zreport] - to use the normalizeurl service function.
|
|
8
|
+
|
|
6
9
|
`1.6.1`<br/>
|
|
7
10
|
[zkcard] - update for project status changes.
|
|
8
11
|
|
|
@@ -6,10 +6,11 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "mmhglobal-zcore";
|
|
7
7
|
import * as i2 from "@progress/telerik-angular-report-viewer";
|
|
8
8
|
export class ZreportComponent {
|
|
9
|
-
constructor(resourceApiService, authService, alertService) {
|
|
9
|
+
constructor(resourceApiService, authService, alertService, zcoreService) {
|
|
10
10
|
this.resourceApiService = resourceApiService;
|
|
11
11
|
this.authService = authService;
|
|
12
12
|
this.alertService = alertService;
|
|
13
|
+
this.zcoreService = zcoreService;
|
|
13
14
|
this.componentProperties = new ZComponentProperties();
|
|
14
15
|
this.allowPrintPDF = true;
|
|
15
16
|
this.isVisible = true;
|
|
@@ -36,7 +37,7 @@ export class ZreportComponent {
|
|
|
36
37
|
this.onRenderingEnd = this.renderingEnd.bind(this);
|
|
37
38
|
this.onPrintBegin = this.printBegin.bind(this);
|
|
38
39
|
this.onPrintEnd = this.printEnd.bind(this);
|
|
39
|
-
this.serviceUrl = this.resourceApiService.getURL(this.data.ResourceURL);
|
|
40
|
+
this.serviceUrl = this.zcoreService.normalizeUrl(this.resourceApiService.getURL(this.data.ResourceURL));
|
|
40
41
|
if (!this.serviceUrl) {
|
|
41
42
|
console.log("resourceURL is empty.");
|
|
42
43
|
}
|
|
@@ -161,7 +162,7 @@ export class ZreportComponent {
|
|
|
161
162
|
this.reportSource.parameters.Authorization = this.authService.authorizationBearer.Authorization;
|
|
162
163
|
}
|
|
163
164
|
if (this.reportSource['url']) {
|
|
164
|
-
this.serviceUrl = this.reportSource['url'];
|
|
165
|
+
this.serviceUrl = this.zcoreService.normalizeUrl(this.reportSource['url']);
|
|
165
166
|
}
|
|
166
167
|
this.viewer.setReportSource(this.reportSource);
|
|
167
168
|
//this.viewer.refreshReport();
|
|
@@ -170,12 +171,12 @@ export class ZreportComponent {
|
|
|
170
171
|
return ZComponentHelper.getFontAwesome(iconName);
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
|
-
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }, { token: i1.AuthService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
174
|
+
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }, { token: i1.AuthService }, { token: i1.AlertService }, { token: i1.ZCoreService }], target: i0.ɵɵFactoryTarget.Component });
|
|
174
175
|
ZreportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZreportComponent, selector: "app-zreport", inputs: { data: "data", group: "group" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["reportViewer1"], descendants: true }], ngImport: i0, template: "<div width=\"100%\" height=\"800px\">\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"serviceUrl\"\r\n [reportSource]=\"reportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"onReady\"\r\n [exportBegin]=\"onExportBegin\"\r\n [exportEnd]=\"onExportEnd\"\r\n [renderingBegin]=\"onRenderingBegin\"\r\n [renderingEnd]=\"onRenderingEnd\"\r\n [printBegin]=\"onPrintBegin\"\r\n [printEnd]=\"onPrintEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"], components: [{ type: i2.TelerikReportViewerComponent, selector: "tr-viewer", inputs: ["keepClientAlive", "id", "serviceUrl", "reportServer", "templateUrl", "initialPageAreaImageUrl", "reportSource", "sendEmail", "parameters", "scale", "scaleMode", "viewMode", "pageMode", "persistSession", "parameterEditors", "authenticationToken", "printMode", "selector", "disabledButtonClass", "checkedButtonClass", "enableAccessibility", "searchMetadataOnDemand", "parametersAreaVisible", "documentMapVisible", "ready", "error", "parametersAreaPosition", "documentMapAreaPosition", "exportBegin", "exportEnd", "sendEmailBegin", "sendEmailEnd", "pageReady", "printBegin", "printEnd", "renderingBegin", "renderingEnd", "updateUi", "interactiveActionExecuting", "interactiveActionEnter", "interactiveActionLeave", "viewerToolTipOpening", "containerStyle"] }] });
|
|
175
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, decorators: [{
|
|
176
177
|
type: Component,
|
|
177
178
|
args: [{ selector: "app-zreport", template: "<div width=\"100%\" height=\"800px\">\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"serviceUrl\"\r\n [reportSource]=\"reportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"onReady\"\r\n [exportBegin]=\"onExportBegin\"\r\n [exportEnd]=\"onExportEnd\"\r\n [renderingBegin]=\"onRenderingBegin\"\r\n [renderingEnd]=\"onRenderingEnd\"\r\n [printBegin]=\"onPrintBegin\"\r\n [printEnd]=\"onPrintEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"] }]
|
|
178
|
-
}], ctorParameters: function () { return [{ type: i1.ResourceApiService }, { type: i1.AuthService }, { type: i1.AlertService }]; }, propDecorators: { viewer: [{
|
|
179
|
+
}], ctorParameters: function () { return [{ type: i1.ResourceApiService }, { type: i1.AuthService }, { type: i1.AlertService }, { type: i1.ZCoreService }]; }, propDecorators: { viewer: [{
|
|
179
180
|
type: ViewChild,
|
|
180
181
|
args: ['reportViewer1', { static: false }]
|
|
181
182
|
}], data: [{
|
|
@@ -186,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
186
187
|
type: HostListener,
|
|
187
188
|
args: ['window:resize', ['$event']]
|
|
188
189
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFPcEgsMkNBQTJDO0FBQzNDLE9BQU8sRUFDK0Isb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQzNFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFZekIsTUFBTSxPQUFPLGdCQUFnQjtJQStCM0IsWUFDVSxrQkFBc0MsRUFDdEMsV0FBd0IsRUFDeEIsWUFBMEI7UUFGMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTdCcEMsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBU3pDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRS9CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQix5QkFBb0IsR0FBRztZQUM1QixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixlQUFlLEVBQUUsU0FBUztZQUMxQixTQUFTLEVBQUUsOEJBQThCO1lBQ3pDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFVB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KioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqLyBcclxuaW1wb3J0IHsgVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudCB9IGZyb20gXCJAcHJvZ3Jlc3MvdGVsZXJpay1hbmd1bGFyLXJlcG9ydC12aWV3ZXJcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBSZXNvdXJjZUFwaVNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllcywgWkNvbXBvbmVudEhlbHBlciwgQXV0aFNlcnZpY2UsIEFsZXJ0U2VydmljZVxyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG4vLyBpbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16cmVwb3J0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96cmVwb3J0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pyZXBvcnQuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgLy9lbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdyZXBvcnRWaWV3ZXIxJywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZXdlcjogVGVsZXJpa1JlcG9ydFZpZXdlckNvbXBvbmVudDtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBwdWJsaWMgb25FeHBvcnRCZWdpbjogRnVuY3Rpb247XHJcbiAgcHVibGljIG9uRXhwb3J0RW5kOiBGdW5jdGlvbjtcclxuICBwdWJsaWMgb25SZW5kZXJpbmdCZWdpbjogRnVuY3Rpb247XHJcbiAgcHVibGljIG9uUmVuZGVyaW5nRW5kOiBGdW5jdGlvbjtcclxuICBwdWJsaWMgb25QcmludEJlZ2luOiBGdW5jdGlvbjtcclxuICBwdWJsaWMgb25QcmludEVuZDogRnVuY3Rpb247XHJcblxyXG4gIHByaXZhdGUgYWxsb3dQcmludFBERjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBpc1Zpc2libGUgPSB0cnVlO1xyXG4gIHB1YmxpYyBzZXJ2aWNlVXJsID0gbnVsbDtcclxuICBwdWJsaWMgcmVwb3J0U291cmNlID0gbnVsbDtcclxuICBwdWJsaWMgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBmb250RmFtaWx5OiAnQXJpYWwsIHNhbnMtc2VyaWYnLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2Y5ZjlmOScsXHJcbiAgICBib3hTaGFkb3c6ICcwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpJyxcclxuICAgIGZvbnRTaXplOiAnMTZweCcsXHJcbiAgICBsaW5lSGVpZ2h0OiAnMS41JyxcclxuICAgIGNvbG9yOiAnIzMzMycsXHJcbiAgfTsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuICAgIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uRXhwb3J0QmVnaW4gPSB0aGlzLmV4cG9ydEJlZ2luLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLm9uRXhwb3J0RW5kID0gdGhpcy5leHBvcnRFbmQuYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25SZW5kZXJpbmdCZWdpbiA9IHRoaXMucmVuZGVyaW5nQmVnaW4uYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25SZW5kZXJpbmdFbmQgPSB0aGlzLnJlbmRlcmluZ0VuZC5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5vblByaW50QmVnaW4gPSB0aGlzLnByaW50QmVnaW4uYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25QcmludEVuZCA9IHRoaXMucHJpbnRFbmQuYmluZCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2VVcmwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwodGhpcy5kYXRhLlJlc291cmNlVVJMKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VydmljZVVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuSXNBdXRvR2VuZXJhdGVSZXBvcnQpIHtcclxuICAgICAgdGhpcy5yZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQgeyBcclxuICAgIGxldCByZXNvdXJjZXMgPSAnTG9hZGluZy4uLic7IC8vIERlZmF1bHQuXHJcblxyXG4gICAgdGhpcy52aWV3ZXIudmlld2VyT2JqZWN0LnN0cmluZ1Jlc291cmNlcyA9IE9iamVjdC5hc3NpZ24odGhpcy52aWV3ZXIudmlld2VyT2JqZWN0LnN0cmluZ1Jlc291cmNlcywgcmVzb3VyY2VzKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJSZXBvcnQgcmVzaXplZC5cIik7XHJcbiAgfVxyXG5cclxuICBvblJlYWR5KCkge1xyXG4gICAgY29uc29sZS5sb2coXCJSZXBvcnQgcmVhZHkuXCIpO1xyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfaGlzdG9yeUZvcndhcmQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3N0b3BSZW5kZXJpbmcnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfcmVmcmVzaCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvUHJldlBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgLy8kKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9OZXh0UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVQcmludFByZXZpZXcnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgLy8kKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2V4cG9ydCddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfcHJpbnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVEb2N1bWVudE1hcCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbUluJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl96b29tT3V0J11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVab29tTW9kZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVNlYXJjaERpYWxvZyddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRCZWdpbihlOiBhbnksIGFyZ3M6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJFeHBvcnQgYmVnaW4uXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEVuZChlOiBhbnksIGFyZ3M6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJFeHBvcnQgZW5kLlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW5kZXJpbmdCZWdpbihlOiBhbnksIGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJSZW5kZXJpbmcgc3RhcnRlZC5cIik7XHJcbiAgICBpZiAodGhpcy5yZXBvcnRTb3VyY2UucGFyYW1ldGVycyAmJiB0aGlzLnJlcG9ydFNvdXJjZS5wYXJhbWV0ZXJzLkF1dGhvcml6YXRpb24gIT09IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkJlYXJlci5BdXRob3JpemF0aW9uKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIlVwZGF0ZWQgaW52YWxpZCBhdXRob3JpemF0aW9uIHRva2VuLlwiKTtcclxuXHJcbiAgICAgIHRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMuQXV0aG9yaXphdGlvbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkJlYXJlci5BdXRob3JpemF0aW9uO1xyXG4gICAgICB0aGlzLnZpZXdlci5zZXRSZXBvcnRTb3VyY2UodGhpcy5yZXBvcnRTb3VyY2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcmluZ0VuZChlOiBhbnksIGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJSZW5kZXJpbmcgZW5kZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUVtcHR5UGRmKCk6IEJsb2Ige1xyXG4gICAgLy8gQ3JlYXRlIGFuIGVtcHR5IFBERiBmaWxlIHdpdGgganVzdCBhIGhlYWRlclxyXG4gICAgY29uc3QgcGRmQ29udGVudCA9ICclUERGLTEuM1xcbjEgMCBvYmpcXG48PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj5cXG5lbmRvYmpcXG4yIDAgb2JqXFxuPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFtdIC9Db3VudCAwID4+XFxuZW5kb2JqXFxueHJlZlxcbjAgM1xcbjAwMDAwMDAwMDAgNjU1MzUgZiBcXG4wMDAwMDAwMDEwIDAwMDAwIG4gXFxudHJhaWxlclxcbjw8IC9Sb290IDEgMCBSIC9TaXplIDMgPj5cXG5zdGFydHhyZWZcXG4yMDVcXG4lJUVPRic7XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW3BkZkNvbnRlbnRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW50QmVnaW4oZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUHJpbnQgYmVnaW4uXCIpO1xyXG5cclxuICAgIGNvbnN0IGFsZXJ0VGl0bGUgPSAnUHJpbnQgUERGIEVycm9yJztcclxuICAgIGNvbnN0IHBkZkJsb2IgPSB0aGlzLmdlbmVyYXRlRW1wdHlQZGYoKTtcclxuICAgIGNvbnN0IHBkZlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocGRmQmxvYik7IGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcclxuICAgIGxldCBpc0Nocm9tZSA9IGZhbHNlO1xyXG4gICAgbGV0IGlzRWRnZSA9IGZhbHNlO1xyXG5cclxuICAgIGlmICgvRWRnLy50ZXN0KHVzZXJBZ2VudCkpIHtcclxuICAgICAgaXNFZGdlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKC9DaHJvbWUvLnRlc3QodXNlckFnZW50KSkge1xyXG4gICAgICBpc0Nocm9tZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWZyYW1lLnNyYyA9IHBkZlVybDtcclxuICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDaGVja2luZyBicm93c2VyIGlzIHJlcG9ydCBhYmxlIHRvIHByaW50LicsIGlmcmFtZS5jb250ZW50RG9jdW1lbnQpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ7XHJcbiAgICAgICAgY29uc3QgcGRmRWxlbWVudCA9IGlmcmFtZURvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2VtYmVkW3R5cGU9XCJhcHBsaWNhdGlvbi9wZGZcIl0sIG9iamVjdFt0eXBlPVwiYXBwbGljYXRpb24vcGRmXCJdLCBpZnJhbWUnKTtcclxuXHJcbiAgICAgICAgLy8gSWYgbm8gUERGIGVsZW1lbnQgZm91bmQsIGFsZXJ0IHVzZXIgYWJvdXQgcG90ZW50aWFsIGlzc3VlXHJcbiAgICAgICAgaWYgKCFwZGZFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBpZiAoaXNDaHJvbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd09rYXkoYWxlcnRUaXRsZSwgXCJTdGVwIDE6IFBsZWFzZSBuYXZpZ2F0ZSB0byAnY2hyb21lOi8vc2V0dGluZ3MvY29udGVudC9wZGZEb2N1bWVudHMnIGluIHRoZSBicm93ZXIuPGJyLz5TdGVwIDI6IFNlbGVjdCAnT3BlbiBQREZzIGluIENocm9tZScgaW4gdGhlIHNldHRpbmcgYmVmb3JlIHByaW50aW5nIHRoZSByZXBvcnQuXCIsIFtcImNvbC02XCJdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKGlzRWRnZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93T2theShhbGVydFRpdGxlLCBcIlN0ZXAgMTogUGxlYXNlIG5hdmlnYXRlIHRvICdlZGdlOi8vc2V0dGluZ3MvY29udGVudC9wZGZEb2N1bWVudHMnIGluIHRoZSBicm93ZXIuPGJyLz5TdGVwIDI6IEVuYWJsZSAnUERGIHZpZXcgc2V0dGluZ3MnIGFuZCBEaXNhYmxlICdBbHdheXMgRG93bmxvYWQgUERGIGZpbGVzJyBpbiB0aGUgc2V0dGluZyBiZWZvcmUgcHJpbnRpbmcgdGhlIHJlcG9ydC5cIiwgW1wiY29sLTZcIl0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KGFsZXJ0VGl0bGUsIFwiVGhlIGJyb3dzZXIgc2V0dGluZ3MgY2Fubm90IGJlIGRldGVjdGVkLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UuXCIsIFtcImNvbC00XCJdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAvLyBJZiBhY2Nlc3NpbmcgaWZyYW1lIGNvbnRlbnQgdGhyb3dzIGFuIGVycm9yLCBhbGVydCB1c2VyIGFib3V0IHBvdGVudGlhbCBpc3N1ZVxyXG4gICAgICAgIHRoaXMuYWxsb3dQcmludFBERiA9IGZhbHNlO1xyXG4gICAgICAgIC8vIFBERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1BERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5IGluIHRoZSBpZnJhbWUuJyk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd09rYXkoYWxlcnRUaXRsZSwgXCJUaGUgYnJvd3NlciBzZXR0aW5ncyBjYW5ub3QgYmUgZGV0ZWN0ZWQsIHBsZWFzZSByZWFjaCBvdXQgdG8gc3VwcG9ydCBmb3IgYXNzaXN0YW5jZS5cIiwgW1wiY29sLTRcIl0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmcmFtZS5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSBmYWxzZTtcclxuICAgICAgLy8gUERGIGZhaWxlZCB0byBsb2FkIG9yIGRpc3BsYXkgcHJvcGVybHlcclxuICAgICAgY29uc29sZS5sb2coJ1BERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5IGluIHRoZSBpZnJhbWUuJyk7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KGFsZXJ0VGl0bGUsIFwiVGhlIGJyb3dzZXIgc2V0dGluZ3MgY2Fubm90IGJlIGRldGVjdGVkLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UuXCIsIFtcImNvbC00XCJdKTtcclxuICAgIH07XHJcblxyXG4gICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJpbnRFbmQoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUHJpbnQgZW5kLlwiKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYWxsb3dQcmludFBERikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ0Jyb3dzZXIgaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24sIHVuYWJsZSB0byBwcmludCB0aGUgUERGLicpXHJcbiAgICAgIGFyZ3MuaGFuZGxlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNvdXJjZSA9IHRoaXMuZ3JvdXBbXCJSZXBvcnRTb3VyY2VcIl07XHJcblxyXG4gICAgaWYgKHRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMgJiYgIXRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMuQXV0aG9yaXphdGlvbikge1xyXG4gICAgICB0aGlzLnJlcG9ydFNvdXJjZS5wYXJhbWV0ZXJzLkF1dGhvcml6YXRpb24gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25CZWFyZXIuQXV0aG9yaXphdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZXBvcnRTb3VyY2VbJ3VybCddKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZVVybCA9IHRoaXMucmVwb3J0U291cmNlWyd1cmwnXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpZXdlci5zZXRSZXBvcnRTb3VyY2UodGhpcy5yZXBvcnRTb3VyY2UpO1xyXG4gICAgLy90aGlzLnZpZXdlci5yZWZyZXNoUmVwb3J0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb250QXdlc29tZShpY29uTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRGb250QXdlc29tZShpY29uTmFtZSk7XHJcbiAgfSBcclxufVxyXG4iLCI8ZGl2IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjgwMHB4XCI+XHJcbiAgPHRyLXZpZXdlciAjcmVwb3J0Vmlld2VyMVxyXG4gICAgICAgICAgICAgW2NvbnRhaW5lclN0eWxlXT1cInZpZXdlckNvbnRhaW5lclN0eWxlXCJcclxuICAgICAgICAgICAgIFtzZXJ2aWNlVXJsXT1cInNlcnZpY2VVcmxcIlxyXG4gICAgICAgICAgICAgW3JlcG9ydFNvdXJjZV09XCJyZXBvcnRTb3VyY2VcIlxyXG4gICAgICAgICAgICAgW3ZpZXdNb2RlXT1cIidJTlRFUkFDVElWRSdcIlxyXG4gICAgICAgICAgICAgW3NjYWxlTW9kZV09XCInU1BFQ0lGSUMnXCJcclxuICAgICAgICAgICAgIFtzY2FsZV09XCIxLjBcIlxyXG4gICAgICAgICAgICAgW2VuYWJsZUFjY2Vzc2liaWxpdHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgW3JlYWR5XT1cIm9uUmVhZHlcIlxyXG4gICAgICAgICAgICAgW2V4cG9ydEJlZ2luXT1cIm9uRXhwb3J0QmVnaW5cIlxyXG4gICAgICAgICAgICAgW2V4cG9ydEVuZF09XCJvbkV4cG9ydEVuZFwiXHJcbiAgICAgICAgICAgICBbcmVuZGVyaW5nQmVnaW5dPVwib25SZW5kZXJpbmdCZWdpblwiXHJcbiAgICAgICAgICAgICBbcmVuZGVyaW5nRW5kXT1cIm9uUmVuZGVyaW5nRW5kXCJcclxuICAgICAgICAgICAgIFtwcmludEJlZ2luXT1cIm9uUHJpbnRCZWdpblwiXHJcbiAgICAgICAgICAgICBbcHJpbnRFbmRdPVwib25QcmludEVuZFwiPlxyXG4gIDwvdHItdmlld2VyPlxyXG48L2Rpdj5cclxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFPcEgsMkNBQTJDO0FBQzNDLE9BQU8sRUFDK0Isb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQzNFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFZekIsTUFBTSxPQUFPLGdCQUFnQjtJQStCM0IsWUFDVSxrQkFBc0MsRUFDdEMsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQTlCcEMsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBU3pDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRS9CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQix5QkFBb0IsR0FBRztZQUM1QixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixlQUFlLEVBQUUsU0FBUztZQUMxQixTQUFTLEVB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QUFiLEtBQUs7Z0JBaUVOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi8gXHJcbmltcG9ydCB7IFRlbGVyaWtSZXBvcnRWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiQHByb2dyZXNzL3RlbGVyaWstYW5ndWxhci1yZXBvcnQtdmlld2VyXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgUmVzb3VyY2VBcGlTZXJ2aWNlLCBaRmllbGQsIFpHcm91cCwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpDb21wb25lbnRIZWxwZXIsIEF1dGhTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIFpDb3JlU2VydmljZVxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5cclxuLy8gaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenJlcG9ydFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venJlcG9ydC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96cmVwb3J0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIC8vZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWnJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgncmVwb3J0Vmlld2VyMScsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWV3ZXI6IFRlbGVyaWtSZXBvcnRWaWV3ZXJDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcblxyXG4gIGNvbXBvbmVudFByb3BlcnRpZXMgPSBuZXcgWkNvbXBvbmVudFByb3BlcnRpZXMoKTtcclxuXHJcbiAgcHVibGljIG9uRXhwb3J0QmVnaW46IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyBvbkV4cG9ydEVuZDogRnVuY3Rpb247XHJcbiAgcHVibGljIG9uUmVuZGVyaW5nQmVnaW46IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyBvblJlbmRlcmluZ0VuZDogRnVuY3Rpb247XHJcbiAgcHVibGljIG9uUHJpbnRCZWdpbjogRnVuY3Rpb247XHJcbiAgcHVibGljIG9uUHJpbnRFbmQ6IEZ1bmN0aW9uO1xyXG5cclxuICBwcml2YXRlIGFsbG93UHJpbnRQREY6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgc2VydmljZVVybCA9IG51bGw7XHJcbiAgcHVibGljIHJlcG9ydFNvdXJjZSA9IG51bGw7XHJcbiAgcHVibGljIHZpZXdlckNvbnRhaW5lclN0eWxlID0ge1xyXG4gICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcclxuICAgIHdpZHRoOiBcIjEwMCVcIixcclxuICAgIGhlaWdodDogXCI4MDBweFwiLFxyXG4gICAgZm9udEZhbWlseTogJ0FyaWFsLCBzYW5zLXNlcmlmJyxcclxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmOWY5ZjknLFxyXG4gICAgYm94U2hhZG93OiAnMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKScsXHJcbiAgICBmb250U2l6ZTogJzE2cHgnLFxyXG4gICAgbGluZUhlaWdodDogJzEuNScsXHJcbiAgICBjb2xvcjogJyMzMzMnLFxyXG4gIH07IFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlXG4gICkge1xyXG4gIH1cclxuICAgIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uRXhwb3J0QmVnaW4gPSB0aGlzLmV4cG9ydEJlZ2luLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLm9uRXhwb3J0RW5kID0gdGhpcy5leHBvcnRFbmQuYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25SZW5kZXJpbmdCZWdpbiA9IHRoaXMucmVuZGVyaW5nQmVnaW4uYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25SZW5kZXJpbmdFbmQgPSB0aGlzLnJlbmRlcmluZ0VuZC5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5vblByaW50QmVnaW4gPSB0aGlzLnByaW50QmVnaW4uYmluZCh0aGlzKTtcclxuICAgIHRoaXMub25QcmludEVuZCA9IHRoaXMucHJpbnRFbmQuYmluZCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2VVcmwgPSB0aGlzLnpjb3JlU2VydmljZS5ub3JtYWxpemVVcmwodGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKHRoaXMuZGF0YS5SZXNvdXJjZVVSTCkpO1xuXHJcbiAgICBpZiAoIXRoaXMuc2VydmljZVVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcInJlc291cmNlVVJMIGlzIGVtcHR5LlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuSXNBdXRvR2VuZXJhdGVSZXBvcnQpIHtcclxuICAgICAgdGhpcy5yZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQgeyBcclxuICAgIGxldCByZXNvdXJjZXMgPSAnTG9hZGluZy4uLic7IC8vIERlZmF1bHQuXHJcblxyXG4gICAgdGhpcy52aWV3ZXIudmlld2VyT2JqZWN0LnN0cmluZ1Jlc291cmNlcyA9IE9iamVjdC5hc3NpZ24odGhpcy52aWV3ZXIudmlld2VyT2JqZWN0LnN0cmluZ1Jlc291cmNlcywgcmVzb3VyY2VzKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgY29uc29sZS5sb2coXCJSZXBvcnQgcmVzaXplZC5cIik7XHJcbiAgfVxyXG5cclxuICBvblJlYWR5KCkge1xyXG4gICAgY29uc29sZS5sb2coXCJSZXBvcnQgcmVhZHkuXCIpO1xyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9oaXN0b3J5QmFjayddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfaGlzdG9yeUZvcndhcmQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3N0b3BSZW5kZXJpbmcnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfcmVmcmVzaCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvRmlyc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9nb1RvUHJldlBhZ2UnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgLy8kKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2dvVG9OZXh0UGFnZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfZ29Ub0xhc3RQYWdlJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVQcmludFByZXZpZXcnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgLy8kKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX2V4cG9ydCddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfcHJpbnQnXVwiKS5wYXJlbnQoKS5oaWRlKCk7IFxyXG4gICAgJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVEb2N1bWVudE1hcCddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICAgICQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfdG9nZ2xlUGFyYW1ldGVyc0FyZWEnXVwiKS5wYXJlbnQoKS5oaWRlKCk7XHJcbiAgICAvLyQoXCJbZGF0YS1jb21tYW5kKj0ndGVsZXJpa19SZXBvcnRWaWV3ZXJfem9vbUluJ11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl96b29tT3V0J11cIikucGFyZW50KCkuaGlkZSgpOyBcclxuICAgIC8vJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl90b2dnbGVab29tTW9kZSddXCIpLnBhcmVudCgpLmhpZGUoKTsgXHJcbiAgICAkKFwiW2RhdGEtY29tbWFuZCo9J3RlbGVyaWtfUmVwb3J0Vmlld2VyX3RvZ2dsZVNlYXJjaERpYWxvZyddXCIpLnBhcmVudCgpLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRCZWdpbihlOiBhbnksIGFyZ3M6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJFeHBvcnQgYmVnaW4uXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEVuZChlOiBhbnksIGFyZ3M6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJFeHBvcnQgZW5kLlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW5kZXJpbmdCZWdpbihlOiBhbnksIGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJSZW5kZXJpbmcgc3RhcnRlZC5cIik7XHJcbiAgICBpZiAodGhpcy5yZXBvcnRTb3VyY2UucGFyYW1ldGVycyAmJiB0aGlzLnJlcG9ydFNvdXJjZS5wYXJhbWV0ZXJzLkF1dGhvcml6YXRpb24gIT09IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkJlYXJlci5BdXRob3JpemF0aW9uKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcIlVwZGF0ZWQgaW52YWxpZCBhdXRob3JpemF0aW9uIHRva2VuLlwiKTtcclxuXHJcbiAgICAgIHRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMuQXV0aG9yaXphdGlvbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkJlYXJlci5BdXRob3JpemF0aW9uO1xyXG4gICAgICB0aGlzLnZpZXdlci5zZXRSZXBvcnRTb3VyY2UodGhpcy5yZXBvcnRTb3VyY2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcmluZ0VuZChlOiBhbnksIGFyZ3M6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJSZW5kZXJpbmcgZW5kZWQuXCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUVtcHR5UGRmKCk6IEJsb2Ige1xyXG4gICAgLy8gQ3JlYXRlIGFuIGVtcHR5IFBERiBmaWxlIHdpdGgganVzdCBhIGhlYWRlclxyXG4gICAgY29uc3QgcGRmQ29udGVudCA9ICclUERGLTEuM1xcbjEgMCBvYmpcXG48PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj5cXG5lbmRvYmpcXG4yIDAgb2JqXFxuPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFtdIC9Db3VudCAwID4+XFxuZW5kb2JqXFxueHJlZlxcbjAgM1xcbjAwMDAwMDAwMDAgNjU1MzUgZiBcXG4wMDAwMDAwMDEwIDAwMDAwIG4gXFxudHJhaWxlclxcbjw8IC9Sb290IDEgMCBSIC9TaXplIDMgPj5cXG5zdGFydHhyZWZcXG4yMDVcXG4lJUVPRic7XHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW3BkZkNvbnRlbnRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByaW50QmVnaW4oZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUHJpbnQgYmVnaW4uXCIpO1xyXG5cclxuICAgIGNvbnN0IGFsZXJ0VGl0bGUgPSAnUHJpbnQgUERGIEVycm9yJztcclxuICAgIGNvbnN0IHBkZkJsb2IgPSB0aGlzLmdlbmVyYXRlRW1wdHlQZGYoKTtcclxuICAgIGNvbnN0IHBkZlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwocGRmQmxvYik7IGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcclxuICAgIGxldCBpc0Nocm9tZSA9IGZhbHNlO1xyXG4gICAgbGV0IGlzRWRnZSA9IGZhbHNlO1xyXG5cclxuICAgIGlmICgvRWRnLy50ZXN0KHVzZXJBZ2VudCkpIHtcclxuICAgICAgaXNFZGdlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKC9DaHJvbWUvLnRlc3QodXNlckFnZW50KSkge1xyXG4gICAgICBpc0Nocm9tZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWZyYW1lLnNyYyA9IHBkZlVybDtcclxuICAgIGlmcmFtZS5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdDaGVja2luZyBicm93c2VyIGlzIHJlcG9ydCBhYmxlIHRvIHByaW50LicsIGlmcmFtZS5jb250ZW50RG9jdW1lbnQpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ7XHJcbiAgICAgICAgY29uc3QgcGRmRWxlbWVudCA9IGlmcmFtZURvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2VtYmVkW3R5cGU9XCJhcHBsaWNhdGlvbi9wZGZcIl0sIG9iamVjdFt0eXBlPVwiYXBwbGljYXRpb24vcGRmXCJdLCBpZnJhbWUnKTtcclxuXHJcbiAgICAgICAgLy8gSWYgbm8gUERGIGVsZW1lbnQgZm91bmQsIGFsZXJ0IHVzZXIgYWJvdXQgcG90ZW50aWFsIGlzc3VlXHJcbiAgICAgICAgaWYgKCFwZGZFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBpZiAoaXNDaHJvbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd09rYXkoYWxlcnRUaXRsZSwgXCJTdGVwIDE6IFBsZWFzZSBuYXZpZ2F0ZSB0byAnY2hyb21lOi8vc2V0dGluZ3MvY29udGVudC9wZGZEb2N1bWVudHMnIGluIHRoZSBicm93ZXIuPGJyLz5TdGVwIDI6IFNlbGVjdCAnT3BlbiBQREZzIGluIENocm9tZScgaW4gdGhlIHNldHRpbmcgYmVmb3JlIHByaW50aW5nIHRoZSByZXBvcnQuXCIsIFtcImNvbC02XCJdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKGlzRWRnZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93T2theShhbGVydFRpdGxlLCBcIlN0ZXAgMTogUGxlYXNlIG5hdmlnYXRlIHRvICdlZGdlOi8vc2V0dGluZ3MvY29udGVudC9wZGZEb2N1bWVudHMnIGluIHRoZSBicm93ZXIuPGJyLz5TdGVwIDI6IEVuYWJsZSAnUERGIHZpZXcgc2V0dGluZ3MnIGFuZCBEaXNhYmxlICdBbHdheXMgRG93bmxvYWQgUERGIGZpbGVzJyBpbiB0aGUgc2V0dGluZyBiZWZvcmUgcHJpbnRpbmcgdGhlIHJlcG9ydC5cIiwgW1wiY29sLTZcIl0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KGFsZXJ0VGl0bGUsIFwiVGhlIGJyb3dzZXIgc2V0dGluZ3MgY2Fubm90IGJlIGRldGVjdGVkLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UuXCIsIFtcImNvbC00XCJdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAvLyBJZiBhY2Nlc3NpbmcgaWZyYW1lIGNvbnRlbnQgdGhyb3dzIGFuIGVycm9yLCBhbGVydCB1c2VyIGFib3V0IHBvdGVudGlhbCBpc3N1ZVxyXG4gICAgICAgIHRoaXMuYWxsb3dQcmludFBERiA9IGZhbHNlO1xyXG4gICAgICAgIC8vIFBERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1BERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5IGluIHRoZSBpZnJhbWUuJyk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd09rYXkoYWxlcnRUaXRsZSwgXCJUaGUgYnJvd3NlciBzZXR0aW5ncyBjYW5ub3QgYmUgZGV0ZWN0ZWQsIHBsZWFzZSByZWFjaCBvdXQgdG8gc3VwcG9ydCBmb3IgYXNzaXN0YW5jZS5cIiwgW1wiY29sLTRcIl0pO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmcmFtZS5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmFsbG93UHJpbnRQREYgPSBmYWxzZTtcclxuICAgICAgLy8gUERGIGZhaWxlZCB0byBsb2FkIG9yIGRpc3BsYXkgcHJvcGVybHlcclxuICAgICAgY29uc29sZS5sb2coJ1BERiBmYWlsZWQgdG8gbG9hZCBvciBkaXNwbGF5IHByb3Blcmx5IGluIHRoZSBpZnJhbWUuJyk7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dPa2F5KGFsZXJ0VGl0bGUsIFwiVGhlIGJyb3dzZXIgc2V0dGluZ3MgY2Fubm90IGJlIGRldGVjdGVkLCBwbGVhc2UgcmVhY2ggb3V0IHRvIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UuXCIsIFtcImNvbC00XCJdKTtcclxuICAgIH07XHJcblxyXG4gICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHJpbnRFbmQoZTogYW55LCBhcmdzOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiUHJpbnQgZW5kLlwiKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYWxsb3dQcmludFBERikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ0Jyb3dzZXIgaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24sIHVuYWJsZSB0byBwcmludCB0aGUgUERGLicpXHJcbiAgICAgIGFyZ3MuaGFuZGxlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNvdXJjZSA9IHRoaXMuZ3JvdXBbXCJSZXBvcnRTb3VyY2VcIl07XHJcblxyXG4gICAgaWYgKHRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMgJiYgIXRoaXMucmVwb3J0U291cmNlLnBhcmFtZXRlcnMuQXV0aG9yaXphdGlvbikge1xyXG4gICAgICB0aGlzLnJlcG9ydFNvdXJjZS5wYXJhbWV0ZXJzLkF1dGhvcml6YXRpb24gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25CZWFyZXIuQXV0aG9yaXphdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZXBvcnRTb3VyY2VbJ3VybCddKSB7XG4gICAgICB0aGlzLnNlcnZpY2VVcmwgPSB0aGlzLnpjb3JlU2VydmljZS5ub3JtYWxpemVVcmwodGhpcy5yZXBvcnRTb3VyY2VbJ3VybCddKTtcbiAgICB9XG5cclxuICAgIHRoaXMudmlld2VyLnNldFJlcG9ydFNvdXJjZSh0aGlzLnJlcG9ydFNvdXJjZSk7XHJcbiAgICAvL3RoaXMudmlld2VyLnJlZnJlc2hSZXBvcnQoKTtcclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9IFxyXG59XHJcbiIsIjxkaXYgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiODAwcHhcIj5cclxuICA8dHItdmlld2VyICNyZXBvcnRWaWV3ZXIxXHJcbiAgICAgICAgICAgICBbY29udGFpbmVyU3R5bGVdPVwidmlld2VyQ29udGFpbmVyU3R5bGVcIlxyXG4gICAgICAgICAgICAgW3NlcnZpY2VVcmxdPVwic2VydmljZVVybFwiXHJcbiAgICAgICAgICAgICBbcmVwb3J0U291cmNlXT1cInJlcG9ydFNvdXJjZVwiXHJcbiAgICAgICAgICAgICBbdmlld01vZGVdPVwiJ0lOVEVSQUNUSVZFJ1wiXHJcbiAgICAgICAgICAgICBbc2NhbGVNb2RlXT1cIidTUEVDSUZJQydcIlxyXG4gICAgICAgICAgICAgW3NjYWxlXT1cIjEuMFwiXHJcbiAgICAgICAgICAgICBbZW5hYmxlQWNjZXNzaWJpbGl0eV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICBbcmVhZHldPVwib25SZWFkeVwiXHJcbiAgICAgICAgICAgICBbZXhwb3J0QmVnaW5dPVwib25FeHBvcnRCZWdpblwiXHJcbiAgICAgICAgICAgICBbZXhwb3J0RW5kXT1cIm9uRXhwb3J0RW5kXCJcclxuICAgICAgICAgICAgIFtyZW5kZXJpbmdCZWdpbl09XCJvblJlbmRlcmluZ0JlZ2luXCJcclxuICAgICAgICAgICAgIFtyZW5kZXJpbmdFbmRdPVwib25SZW5kZXJpbmdFbmRcIlxyXG4gICAgICAgICAgICAgW3ByaW50QmVnaW5dPVwib25QcmludEJlZ2luXCJcclxuICAgICAgICAgICAgIFtwcmludEVuZF09XCJvblByaW50RW5kXCI+XHJcbiAgPC90ci12aWV3ZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -88,9 +88,12 @@ export class ZuploadComponent {
|
|
|
88
88
|
this.componentProperties.isRequired = status;
|
|
89
89
|
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
90
90
|
};
|
|
91
|
-
|
|
92
|
-
this.
|
|
93
|
-
|
|
91
|
+
const environment = this.zcoreService.getEnvironment();
|
|
92
|
+
this.uploadAttachmentUrl = this.zcoreService.normalizeUrl(environment && environment.uploadAttachmentUrl);
|
|
93
|
+
if (this.uploadAttachmentUrl) {
|
|
94
|
+
this.uploadSaveUrl = this.uploadAttachmentUrl + this.uploadSaveUrl;
|
|
95
|
+
this.uploadRemoveUrl = this.uploadAttachmentUrl + this.uploadRemoveUrl;
|
|
96
|
+
}
|
|
94
97
|
}
|
|
95
98
|
ngOnInit() {
|
|
96
99
|
ZComponentHelper.setComponentProperties(this);
|
|
@@ -356,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
356
359
|
type: ViewChild,
|
|
357
360
|
args: ["uploadComponent"]
|
|
358
361
|
}] } });
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsOERBQThEO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFZckQsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTyxnQkFBZ0IsRUFBeUIsb0JBQW9CLEVBQ3pELGNBQWMsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUV6QixNQUFNLE9BQU8sVUFBVTtDQUl0QjtBQU9ELE1BQU0sT0FBTyxnQkFBZ0I7SUE2QzNCLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLGdEQUFnRDtJQUNoRCxNQUFNO0lBRU4sb0JBQW9CO0lBQ3BCLDRCQUE0QjtJQUM1QixxQkFBcUI7SUFDckIsNkJBQTZCO0lBQzdCLDREQUE0RDtJQUM1RCw0Q0FBNEM7SUFDNUMsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixxQkFBcUI7SUFDckIsb0NBQW9DO0lBQ3BDLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLFlBQ1UsV0FBd0IsRUFDeEIsYUFB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QWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3dCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSBcInNyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICBGaWxlSW5mbyxcclxuICBTdWNjZXNzRXZlbnQsXHJcbiAgUmVtb3ZlRXZlbnQsXHJcbiAgVXBsb2FkRXZlbnQsXHJcbiAgRmlsZVJlc3RyaWN0aW9ucyxcclxuICBDaHVua1NldHRpbmdzLFxyXG4gIFNlbGVjdEV2ZW50LFxyXG4gIFVwbG9hZENvbXBvbmVudFxyXG59IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci11cGxvYWRcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBBdXRoU2VydmljZSwgWkNvcmVTZXJ2aWNlLCBDb21wcmVzc0ltYWdlU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIFpDb21wb25lbnRQcm9wZXJ0aWVzLFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBVcGxvYWRNZXRhRGF0YSwgSW1hZ2VDb21wcmVzc2lvbkNvbmZpZ1xyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNeUZpbGVJbmZvIGltcGxlbWVudHMgRmlsZUluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1aWQ/OiBzdHJpbmc7XHJcbiAgbXlVaWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16dXBsb2FkXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96dXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p1cGxvYWQuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQFZpZXdDaGlsZChcInVwbG9hZENvbXBvbmVudFwiKSB1cGxvYWRDb21wb25lbnQ6IFVwbG9hZENvbXBvbmVudDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG4gIHVwbG9hZEF0dGFjaG1lbnRVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgdXBsb2FkU2F2ZVVybCA9IFwiL0F0dGFjaG1lbnQvQ2h1bmtfVXBsb2FkX1NhdmVcIjsgLy8gc2hvdWxkIHJlcHJlc2VudCBhbiBhY3R1YWwgQVBJIGVuZHBvaW50XHJcbiAgdXBsb2FkUmVtb3ZlVXJsID0gXCIvQXR0YWNobWVudC9DaHVua19VcGxvYWRfUmVtb3ZlXCI7IC8vIHNob3VsZCByZXByZXNlbnQgYW4gYWN0dWFsIEFQSSBlbmRwb2ludFxyXG4gIGRvd25sb2FkRmlsZVVybCA9IFwiL0F0dGFjaG1lbnQvZG93bmxvYWRGaWxlXCI7XHJcbiAgZ2V0SW1hZ2VVcmwgPSBcIi9BdHRhY2htZW50L2dldEltYWdlXCI7IC8vIEdFVCBtZXRob2RcclxuICBpc0F1dG9VcGxvYWQgPSBmYWxzZTtcclxuICBpc011bHRpcGxlID0gZmFsc2U7XHJcbiAgaW1hZ2VQcmV2aWV3czogYW55W10gPSBbXTtcclxuICB1aWQ6IHN0cmluZ1tdID0gW107XHJcbiAgc2hvd0ZpbGVMaXN0ID0gdHJ1ZTtcclxuICBmaWxlTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlc3RyaWN0aW9uczogRmlsZVJlc3RyaWN0aW9ucyA9IHtcclxuXHJcbiAgICBtaW5GaWxlU2l6ZTogMSxcclxuICAgIG1heEZpbGVTaXplOiA0MTk0MzA0LFxyXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM6IFtcclxuICAgICAgXCJqcGdcIixcclxuICAgICAgXCJqcGVnXCIsXHJcbiAgICAgIFwicG5nXCIsXHJcbiAgICAgIFwiYm1wXCIsXHJcbiAgICAgIFwicGRmXCIsXHJcbiAgICAgIFwidHh0XCIsXHJcbiAgICAgIFwiZG9jeFwiLFxyXG4gICAgICBcImRvY1wiLFxyXG4gICAgICBcInhsc3hcIixcclxuICAgICAgXCJ4bHNcIixcclxuICAgICAgXCJwcHRcIixcclxuICAgICAgXCJwcHR4XCIsXHJcbiAgICAgIFwiY3N2XCIsXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBjaHVua1NldHRpbmdzOiBDaHVua1NldHRpbmdzID0ge1xyXG4gICAgc2l6ZTogMTAyNDAwLFxyXG4gICAgbWF4QXV0b1JldHJpZXM6IDMsXHJcbiAgfTtcclxuXHJcbiAgLy8gek1vZGVsVmFsdWUgPSBbe1xyXG4gIC8vICAgbmFtZTogXCJSWEpTIDAxLnBuZ1wiLFxyXG4gIC8vICAgc2l6ZTogMTI4NzUzLFxyXG4gIC8vICAgdWlkOiBcImM5NmUyMzRkLWFmNjEtNDU4Ny1hZGNjLTNiNDAwZGRlZjg4NFwiXHJcbiAgLy8gfV07XHJcblxyXG4gIC8vIGZpZWxkRWxlbWVudCA9IFt7XHJcbiAgLy8gICBOYW1lOiAnRmlsZVVwbG9hZExpc3QnLFxyXG4gIC8vICAgVHlwZTogJ3p1cGxvYWQnLFxyXG4gIC8vICAgVmFsdWU6ICdGaWxlVXBsb2FkTGlzdCcsXHJcbiAgLy8gICBTZWxlY3Rpb25PcHRpb25zOiBbJ2pwZycsICdqcGVnJywgJ3BuZycsICdibXAnLCAncGRmJ10sXHJcbiAgLy8gICBVcGxvYWRNZXRhRGF0YTogJ2dyb3VwLlVwbG9hZE1ldGFEYXRhJyxcclxuICAvLyAgIEF1dG9VcGxvYWQ6IGZhbHNlLFxyXG4gIC8vICAgQWxsb3dSZW1vdmU6IHRydWUsXHJcbiAgLy8gICBNdWx0aXBsZTogZmFsc2UsXHJcbiAgLy8gICBPblN1Y2Nlc3M6ICdncm91cC5vblN1Y2Nlc3MoKScsXHJcbiAgLy8gICBEaXZDbGFzczogXCJjb2wtbWQtMTIgY29sLW1kLTZcIixcclxuICAvLyAgIFZpc2libGU6IHRydWVcclxuICAvLyB9XTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tcHJlc3NJbWFnZTogQ29tcHJlc3NJbWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgdGhpcy51cGxvYWRBdHRhY2htZW50VXJsID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKS51cGxvYWRBdHRhY2htZW50VXJsO1xyXG4gICAgdGhpcy51cGxvYWRTYXZlVXJsID0gdGhpcy51cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRTYXZlVXJsO1xyXG4gICAgdGhpcy51cGxvYWRSZW1vdmVVcmwgPSB0aGlzLnVwbG9hZEF0dGFjaG1lbnRVcmwgKyB0aGlzLnVwbG9hZFJlbW92ZVVybDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwWydVcGxvYWRNZXRhRGF0YSddID0gbmV3IFVwbG9hZE1ldGFEYXRhKG51bGwsICcxNScsICdTTy1Oby0xMjM0JywgJ1NhbGVPcmRlcicpO1xyXG5cclxuXHJcbiAgICAvLyB0aGlzLnVwbG9hZFNhdmVVcmwgPSB1cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRTYXZlVXJsO1xyXG4gICAgLy8gdGhpcy51cGxvYWRSZW1vdmVVcmwgPSB1cGxvYWRBdHRhY2htZW50VXJsICsgdGhpcy51cGxvYWRSZW1vdmVVcmw7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5TZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zLmFsbG93ZWRFeHRlbnNpb25zID0gKHRoaXMuZGF0YVxyXG4gICAgICAgIC5TZWxlY3RPcHRpb25zIGFzIHVua25vd24pIGFzIHN0cmluZ1tdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuTWluRmlsZVNpemUpIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnMubWluRmlsZVNpemUgPSB0aGlzLmRhdGEuTWluRmlsZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5NYXhGaWxlU2l6ZSkge1xyXG4gICAgICB0aGlzLnJlc3RyaWN0aW9ucy5tYXhGaWxlU2l6ZSA9IHRoaXMuZGF0YS5NYXhGaWxlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1VwbG9hZCA9IHRoaXMuZGF0YS5BdXRvVXBsb2FkIHx8IGZhbHNlO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLkFsbG93UmVtb3ZlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkUmVtb3ZlVXJsID0gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRoaXMuZGF0YS5NdWx0aXBsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuZ3JvdXAuZm9ybS5jb250cm9sc1t0aGlzLmRhdGEuVmFsdWVdO1xyXG4gICAgc3RhdHVzID8gZmMuZW5hYmxlKCkgOiBmYy5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNldFZpc2libGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNldFJlcXVpcmUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZCA9IHN0YXR1cztcclxuICAgIFpDb21wb25lbnRIZWxwZXIuY2hhbmdlVmFsaWRhdG9yKFxyXG4gICAgICBzdGF0dXMsXHJcbiAgICAgIHRoaXMuZ3JvdXAsXHJcbiAgICAgIHRoaXMuZGF0YS5WYWx1ZSxcclxuICAgICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLFxyXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIGdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybSwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3MoZTogU3VjY2Vzc0V2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBhbmd1bGFyIGtlbmRvIHVwbG9hZCBkaWRuJ3QgZmlsdGVyIGF3YXkgU2VudCBldmVudCBmb3IgcmVtb3ZlLCBzbyB3ZSBoYXZlIHRvIGhhbmRsZSBpdCBoZXJlXHJcbiAgICAvLyB1cGxvYWQgcHJvZ3Jlc3Mgbm90IHJlcXVpcmVkIGZvciByZW1vdmFsLCB0aHVzIGl0J3MgYWxzbyByZW1vdmVkXHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAoZS5vcGVyYXRpb24gPT09IFwicmVtb3ZlXCIgJiYgKGUucmVzcG9uc2UudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5TZW50IHx8IGUucmVzcG9uc2UudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsZSA9IGUuZmlsZXNbMF0gYXMgTXlGaWxlSW5mbztcclxuICAgIGNvbnN0IGV4aXN0aW5nRmlsZUluZGV4ID0gdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXS5maW5kSW5kZXgoZiA9PiBmLm5hbWUgPT09IGZpbGUubmFtZSAmJiBmLnVpZCA9PT0gZmlsZS51aWQpO1xyXG4gICAgaWYgKGUub3BlcmF0aW9uID09PSBcInVwbG9hZFwiKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd1cGxvYWQgU3VjY2VzczogJywgZSk7XHJcbiAgICAgIGZpbGUubXlVaWQgPSBmaWxlLnVpZDtcclxuICAgICAgZGVsZXRlIGZpbGVbJ2h0dHBTdWJzY3JpcHRpb24nXTtcclxuXHJcbiAgICAgIGlmIChleGlzdGluZ0ZpbGVJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdW2V4aXN0aW5nRmlsZUluZGV4XSA9IGZpbGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXS5wdXNoKGZpbGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIGlmIChlLm9wZXJhdGlvbiA9PT0gXCJyZW1vdmVcIikge1xyXG4gICAgICBpZiAoZXhpc3RpbmdGaWxlSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXS5zcGxpY2UoZXhpc3RpbmdGaWxlSW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcInp1cGxvYWQtb25TdWNjZXNzXCIsXHJcbiAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uU3VjY2VzcyxcclxuICAgICAgZXZlbnQ6IGUsXHJcbiAgICAgIGRhdGE6IHsgdmFsdWU6IGUuZmlsZXNbMF0sIGZpZWxkOiB0aGlzLmRhdGEgfSxcclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHJlc3Npb25Db25maWdIYW5kbGVyKGltZ0NvbmZpZzogSW1hZ2VDb21wcmVzc2lvbkNvbmZpZyk6IEltYWdlQ29tcHJlc3Npb25Db25maWcge1xyXG4gICAgaWYgKGltZ0NvbmZpZy5GaWxlU2l6ZU1heFNpemUpIHtcclxuICAgICAgaW1nQ29uZmlnLkZpbGVTaXplTWF4U2l6ZUJ5dGUgPSB0aGlzLmNvbnZlcnRTaXplVG9CeXRlKGltZ0NvbmZpZy5GaWxlU2l6ZU1heFNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbWdDb25maWcuRmlsZVNpemVNaW5TaXplKSB7XHJcbiAgICAgIGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemVCeXRlID0gdGhpcy5jb252ZXJ0U2l6ZVRvQnl0ZShpbWdDb25maWcuRmlsZVNpemVNaW5TaXplKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpbWdDb25maWcuRmlsZVNpemVNaW5TaXplQnl0ZSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGltZ0NvbmZpZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFNpemVUb0J5dGUoc2l6ZVN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGxldCBfdGVtcEZpbGVTaXplTWF4U2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGxldCBzaXplQnlCeXRlOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IHNpemVUeXBlID0gJ2InO1xyXG5cclxuICAgIC8vIHJlbW92ZSBhbGwgc3BhY2VcclxuICAgIGNvbnN0IF90ZW1wRmlsZVNpemUgPSBzaXplU3RyaW5nLnJlcGxhY2UoLyAvZywgJycpO1xyXG5cclxuICAgIC8vIGNoZWNrIGxhc3QgY2hhciBpcyBhbHBoYWJldGljXHJcbiAgICBjb25zdCBsYXN0Q2hhciA9IF90ZW1wRmlsZVNpemUuc3Vic3RyKF90ZW1wRmlsZVNpemUubGVuZ3RoIC0gMSk7XHJcbiAgICBpZiAoaXNOYU4ocGFyc2VGbG9hdChsYXN0Q2hhcikpKSB7XHJcbiAgICAgIGNvbnN0IHNlY0xhc3RDaGFyID0gX3RlbXBGaWxlU2l6ZS5zdWJzdHIoX3RlbXBGaWxlU2l6ZS5sZW5ndGggLSAyKS5zbGljZSgwLCAtMSk7XHJcblxyXG4gICAgICBpZiAoaXNOYU4ocGFyc2VGbG9hdChzZWNMYXN0Q2hhcikpKSB7XHJcbiAgICAgICAgLy8gY2hlY2sgbGFzdCAybmQgY2hhciBpcyBhbHBoYWJldGljXHJcbiAgICAgICAgc2l6ZVR5cGUgPSBzZWNMYXN0Q2hhciArIHNpemVUeXBlO1xyXG4gICAgICAgIF90ZW1wRmlsZVNpemVNYXhTaXplID0gcGFyc2VGbG9hdChfdGVtcEZpbGVTaXplLnNsaWNlKDAsIC0yKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgX3RlbXBGaWxlU2l6ZU1heFNpemUgPSBwYXJzZUZsb2F0KF90ZW1wRmlsZVNpemUuc2xpY2UoMCwgLTEpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3dpdGNoIChzaXplVHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgY2FzZSBcImJcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImtiXCI6XHJcbiAgICAgICAgICBzaXplQnlCeXRlID0gX3RlbXBGaWxlU2l6ZU1heFNpemUgKiAxMDI0XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwibWJcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZSAqIDEwNDg1NzZcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJnYlwiOlxyXG4gICAgICAgICAgc2l6ZUJ5Qnl0ZSA9IF90ZW1wRmlsZVNpemVNYXhTaXplICogMTA3Mzc0MTgyNFxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBkZWZhdWx0IHVzaW5nIGJ5dGVzIGlmIG5vIHNpemUgdHlwZVxyXG4gICAgICBzaXplQnlCeXRlID0gcGFyc2VGbG9hdChfdGVtcEZpbGVTaXplKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2l6ZUJ5Qnl0ZTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEV2ZW50SGFuZGxlcihlOiBVcGxvYWRFdmVudCkge1xyXG4gICAgLy8gSW1hZ2UgUHJldmlld1xyXG4gICAgY29uc3QgbWUgPSB0aGlzO1xyXG4gICAgZS5maWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICBpZiAoZmlsZS5yYXdGaWxlICYmIGZpbGUucmF3RmlsZS50eXBlLmluY2x1ZGVzKFwiaW1hZ2VcIikpIHtcclxuICAgICAgICBpZiAoIWZpbGUudmFsaWRhdGlvbkVycm9ycykge1xyXG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXYpIHtcclxuICAgICAgICAgICAgaWYgKG1lLmRhdGEuRW5hYmxlSW1hZ2VQcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgaWYgKCFtZS51aWQuaW5jbHVkZXMoZmlsZS51aWQpKSB7XHJcbiAgICAgICAgICAgICAgICBtZS51aWQucHVzaChmaWxlLnVpZCk7XHJcbiAgICAgICAgICAgICAgICBtZS5pbWFnZVByZXZpZXdzLnB1c2goeyAuLi5maWxlLCBzcmM6IDxzdHJpbmc+cmVhZGVyLnJlc3VsdCB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUucmF3RmlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBZGQgbWV0YWRhdGEgdG8gdGhlIHVwbG9hZCBldmVudFxyXG4gICAgbGV0IGFkZGl0aW9uYWw6IFVwbG9hZE1ldGFEYXRhID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5VcGxvYWRNZXRhRGF0YSk7XHJcblxyXG4gICAgaWYgKCEoYWRkaXRpb25hbCBpbnN0YW5jZW9mIFVwbG9hZE1ldGFEYXRhKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiVXBsb2FkTWV0YURhdGEgZGVmaW5lZCBhdCBcIiArIHRoaXMuZGF0YS5VcGxvYWRNZXRhRGF0YSArIFwiIGlzIGludmFsaWQ6IFwiLCBhZGRpdGlvbmFsKTtcclxuICAgICAgYWRkaXRpb25hbCA9IG5ldyBVcGxvYWRNZXRhRGF0YShudWxsLCBcIjBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3RyID0gSlNPTi5zdHJpbmdpZnkoYWRkaXRpb25hbCk7XHJcblxyXG4gICAgZS5kYXRhID0geyBhZGRpdGlvbmFsOiBzdHIsIH07XHJcbiAgICBlLmhlYWRlcnMgPSBlLmhlYWRlcnMuYXBwZW5kKFwiQXV0aG9yaXphdGlvblwiLCBcIkJlYXJlciBcIiArIHRoaXMuYXV0aFNlcnZpY2UuZTFBY2Nlc3NUb2tlbik7XHJcbiAgfVxyXG5cclxuICBvblJlbW92ZShlOiBSZW1vdmVFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gcmVtb3ZlIGZpbGUgZnJvbSBjb21wb25lbnQgbWVtb3J5XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsZUxpc3QuZmluZEluZGV4KFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbS51aWQgPT09IGUuZmlsZXNbMF0udWlkXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuZmlsZUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5ncm91cFsnenVwbG9hZF8nICsgdGhpcy5kYXRhLlZhbHVlXSA9IHRoaXMuZmlsZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnRmlsZVJlbW92ZWRFdmVudCddKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcInp1cGxvYWQtZmlsZVJlbW92ZWRFdmVudFwiLFxyXG4gICAgICAgIHRhcmdldDogdGhpcy5kYXRhWydGaWxlUmVtb3ZlZEV2ZW50J10sXHJcbiAgICAgICAgZGF0YTogZVxyXG4gICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgbXlGaWxlOiBNeUZpbGVJbmZvID0gZS5maWxlc1swXSBhcyBNeUZpbGVJbmZvO1xyXG5cclxuICAgICAgLy8gY29uc29sZS5sb2coJ3JlbW92ZSBkb25lOiAnLCBlKTtcclxuICAgICAgZS5kYXRhID0ge1xyXG4gICAgICAgIGlkOiBteUZpbGUubXlVaWQsXHJcbiAgICAgIH07XHJcbiAgICAgIGUuaGVhZGVycyA9IGUuaGVhZGVycy5hcHBlbmQoXHJcbiAgICAgICAgXCJBdXRob3JpemF0aW9uXCIsXHJcbiAgICAgICAgXCJCZWFyZXIgXCIgKyB0aGlzLmF1dGhTZXJ2aWNlLmUxQWNjZXNzVG9rZW5cclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuRW5hYmxlSW1hZ2VQcmV2aWV3KSB7XHJcbiAgICAgICAgZS5maWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXdzID0gdGhpcy5pbWFnZVByZXZpZXdzLmZpbHRlcihmID0+IGYudWlkICE9PSBmaWxlLnVpZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGZpbGU6IEZpbGVJbmZvW10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGFbJ0ZpbGVDaGFuZ2VkRXZlbnQnXSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogXCJ6dXBsb2FkLWZpbGVDaGFuZ2VkRXZlbnRcIixcclxuICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YVsnRmlsZUNoYW5nZWRFdmVudCddLFxyXG4gICAgICAgIGRhdGE6IGZpbGVcclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0RXZlbnRIYW5kbGVyKGU6IFNlbGVjdEV2ZW50KSB7XHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnU2VsZWN0RmlsZU9ubHknXSkge1xyXG4gICAgICAvLyBhcHBlbmQgYWxsIGZpbGUgdG8gY29tcG9uZW50IG1lbW9yeVxyXG4gICAgICBlLmZpbGVzLmZvckVhY2goYXN5bmMgKGZpbGU6IEZpbGVJbmZvKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUucmF3RmlsZSkge1xyXG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXYpIHtcclxuICAgICAgICAgICAgLy8gY2xvbmUgdGhlIGRhdGEgYW5kIGFsc28gYWRkIHRoZSByZWFkZWQgZmlsZSB0byB0aGUgb2JqZWN0XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlsZSk7XHJcbiAgICAgICAgICAgIGZpbGVEYXRhWydmaWxlJ10gPSBldi50YXJnZXRbXCJyZXN1bHRcIl07XHJcbiAgICAgICAgICAgIC8vIHB1c2ggdG8gY29tcG9uZW50IGZpbGVMaXN0XHJcbiAgICAgICAgICAgIG1lLmZpbGVMaXN0LnB1c2goZmlsZURhdGEpO1xyXG4gICAgICAgICAgICBtZS5ncm91cFsnenVwbG9hZF8nICsgbWUuZGF0YS5WYWx1ZV0gPSBtZS5maWxlTGlzdDtcclxuXHJcbiAgICAgICAgICAgIGlmIChtZS5kYXRhWydGaWxlU2VsZWN0ZWRFdmVudCddKSB7XHJcbiAgICAgICAgICAgICAgLy8gY2FsbCB0aGUgcHJvamVjdCBldmVudFxyXG4gICAgICAgICAgICAgIG1lLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInp1cGxvYWQtZmlsZVNlbGVjdGVkRXZlbnRcIixcclxuICAgICAgICAgICAgICAgIHRhcmdldDogbWUuZGF0YVsnRmlsZVNlbGVjdGVkRXZlbnQnXSxcclxuICAgICAgICAgICAgICAgIGRhdGE6IG1lLmZpbGVMaXN0XHJcbiAgICAgICAgICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgYXdhaXQgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5yYXdGaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIE9ubHkgd29ya2FibGUgZm9yIEF1dG8gVXBsb2FkID0gZmFsc2VcclxuICAgICAgaWYgKCF0aGlzLmRhdGEuQXV0b1VwbG9hZCkge1xyXG4gICAgICAgIC8vIENvbXByZXNzaW9uIGZvciBpbWFnZSBmaWxlXHJcbiAgICAgICAgY29uc3QgaW1hZ2VDb21wcmVzc2lvbkVuYWJsZWQgPSB0aGlzLmRhdGEuQ29tcHJlc3Npb24gPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIC8vQ2hlY2sgaWYgSW1hZ2UgQ29tcHJlc3Npb24gaXMgZW5hYmxlZC5cclxuICAgICAgICBpZiAoaW1hZ2VDb21wcmVzc2lvbkVuYWJsZWQgPT09IHRydWUpIHtcclxuICAgICAgICAgIGUuZmlsZXMuZm9yRWFjaCgoZmlsZTogRmlsZUluZm8pID0+IHtcclxuICAgICAgICAgICAgLy8gQ29tcHJlc3Mgb25seSBpZiBpdCBpcyBhbiBpbWFnZSBmaWxlXHJcbiAgICAgICAgICAgIGlmIChmaWxlLnJhd0ZpbGUgJiYgZmlsZS5yYXdGaWxlLnR5cGUuaW5jbHVkZXMoXCJpbWFnZVwiKSkge1xyXG4gICAgICAgICAgICAgIGlmICghZmlsZS52YWxpZGF0aW9uRXJyb3JzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbWdDb25maWcgPSB0aGlzLmNvbXByZXNzaW9uQ29uZmlnSGFuZGxlcih0aGlzLmRhdGEuQ29tcHJlc3Npb24pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemVCeXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgIG1lLmNvbXByZXNzSW1hZ2UuY29tcHJlc3MoZmlsZS5yYXdGaWxlLCBpbWdDb25maWcpICAvL1Bhc3MgaW4gcGFyYW1ldGVyIHRvIHNldCB0aGUgQ29tcHJlc3Npb24gT3B0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShjb21wcmVzc0ZpbGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5yYXdGaWxlID0gY29tcHJlc3NGaWxlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLnNpemUgPSBjb21wcmVzc0ZpbGUuc2l6ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsb25lIHRoZSBkYXRhIGFuZCBhbHNvIGFkZCB0aGUgcmVhZGVkIGZpbGUgdG8gdGhlIG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwdXNoIHRvIGNvbXBvbmVudCBmaWxlTGlzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZS5maWxlTGlzdC5wdXNoKGZpbGVEYXRhKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUucmF3RmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb21wcmVzc2VkIGZpbGUgc2l6ZTogJHsoZmlsZS5yYXdGaWxlLnNpemUgLyAxMDI0KS50b0ZpeGVkKDIpfUtCYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IC8vIGZpbGUgc2l6ZSBjaGVja1xyXG4gICAgICAgICAgICAgIH0gLy8gdmFsaWRhdGlvbkVycm9ycyBjaGVja1xyXG4gICAgICAgICAgICB9IC8vIGZpbGUgdHlwZSBjaGVja1xyXG4gICAgICAgICAgfSkgLy8gbG9vcCBlYWNoIGZpbGVcclxuICAgICAgICB9IC8vIGltYWdlY29tcHJlc3Npb24gY2hlY2tcclxuXHJcbiAgICAgICAgLy8gYWRkIHRvIGdyb3VwIHNjb3BlXHJcbiAgICAgICAgbWUuZ3JvdXBbJ3p1cGxvYWRfJyArIG1lLmRhdGEuVmFsdWVdID0gZS5maWxlcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWxlcygpIHtcclxuICAgIHRoaXMudXBsb2FkQ29tcG9uZW50LmNsZWFyRmlsZXMoKTtcclxuICAgIHRoaXMuZ3JvdXBbJ3p1cGxvYWRfJyArIHRoaXMuZGF0YS5WYWx1ZV0gPSB0aGlzLmZpbGVMaXN0O1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLWl0ZW0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIiBbbmdDbGFzc109XCJnZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHg7XCI+XHJcbiAgPGlvbi1sYWJlbCBbYXR0ci5mb3JdPVwiZGF0YS5WYWx1ZVwiICpuZ0lmPVwiZGF0YS5TaG93TGFiZWwgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNob3dMYWJlbFwiIHBvc2l0aW9uPVwic3RhY2tlZFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj5cclxuICAgIHt7ZGF0YS5MYWJlbH19IDxpb24tdGV4dCAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkKVwiIGNvbG9yPVwiZGFuZ2VyXCI+KjwvaW9uLXRleHQ+XHJcbiAgPC9pb24tbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cImlvbi1yb3dcIiBzdHlsZT1cImp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjsgd2lkdGg6IDEwMCVcIj5cclxuICAgIDxzcGFuIHN0eWxlPVwiZmxleDogMTtcIj5cclxuICAgICAgPGtlbmRvLXVwbG9hZCAjdXBsb2FkQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YS5TZWxlY3RGaWxlT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvVXBsb2FkXT1cImlzQXV0b1VwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NhdmVVcmxdPVwidXBsb2FkU2F2ZVVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlbW92ZVVybF09XCJ1cGxvYWRSZW1vdmVVcmxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZXN0cmljdGlvbnNdPVwicmVzdHJpY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2h1bmthYmxlXT1cImNodW5rU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93RmlsZUxpc3RdPVwic2hvd0ZpbGVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0KT1cInNlbGVjdEV2ZW50SGFuZGxlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAoc3VjY2Vzcyk9XCJvblN1Y2Nlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHVwbG9hZCk9XCJ1cGxvYWRFdmVudEhhbmRsZXIoJGV2ZW50KVwiPlxyXG4gICAgICA8L2tlbmRvLXVwbG9hZD5cclxuXHJcbiAgICAgIDxrZW5kby1maWxlc2VsZWN0ICN1cGxvYWRDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLlNlbGVjdEZpbGVPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0KT1cInNlbGVjdEV2ZW50SGFuZGxlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJvblJlbW92ZSgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3RyaWN0aW9uc109XCJyZXN0cmljdGlvbnNcIiA+XHJcbiAgICAgIDwva2VuZG8tZmlsZXNlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuPGJyIC8+XHJcbjwhLS08ZGl2IGNsYXNzPVwid3JhcFwiICpuZ0lmPVwiZGF0YS5FbmFibGVDb21wcmVzc2lvblwiPlxyXG4gIDxpb24tbGFiZWw+RW5hYmxlIENvbXByZXNzaW9uOiA8L2lvbi1sYWJlbD5cclxuICA8aW9uLWNoZWNrYm94IHN0eWxlPVwibWFyZ2luOiAtNXB4IDA7XCIgY29sb3I9XCJwcmltYXJ5XCIgKGlvbkNoYW5nZSk9XCJ0b29nbGVFbmFibGVDb21wcmVzc2lvbigkZXZlbnQpXCI+PC9pb24tY2hlY2tib3g+XHJcbjwvZGl2Pi0tPlxyXG48aW9uLWxhYmVsICpuZ0lmPVwiaW1hZ2VQcmV2aWV3cy5sZW5ndGhcIiBwb3NpdGlvbj1cInN0YWNrZWRcIj5cclxuICBJbWFnZSBQcmV2aWV3OlxyXG48L2lvbi1sYWJlbD5cclxuPGRpdiAqbmdJZj1cImltYWdlUHJldmlld3MubGVuZ3RoXCIgPlxyXG4gIDxpbWcgKm5nRm9yPVwibGV0IGltYWdlIG9mIGltYWdlUHJldmlld3NcIlxyXG4gICAgICAgW3NyY109XCJpbWFnZS5zcmNcIlxyXG4gICAgICAgYWx0PVwiaW1hZ2UgcHJldmlld1wiXHJcbiAgICAgICBoZWlnaHQ9XCIxMDBcIlxyXG4gICAgICAgc3R5bGU9XCJtYXJnaW46IDVweDsgYm9yZGVyOiAxcHggc29saWQgZ3JheTtcIi8+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsOERBQThEO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFZckQsMkNBQTJDO0FBQzNDLE9BQU8sRUFFTyxnQkFBZ0IsRUFBeUIsb0JBQW9CLEVBQ3pELGNBQWMsRUFDL0IsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUV6QixNQUFNLE9BQU8sVUFBVTtDQUl0QjtBQU9ELE1BQU0sT0FBTyxnQkFBZ0I7SUE2QzNCLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLGdEQUFnRDtJQUNoRCxNQUFNO0lBRU4sb0JBQW9CO0lBQ3BCLDRCQUE0QjtJQUM1QixxQkFBcUI7SUFDckIsNkJBQTZCO0lBQzdCLDREQUE0RDtJQUM1RCw0Q0FBNEM7SUFDNUMsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixxQkFBcUI7SUFDckIsb0NBQW9DO0lBQ3BDLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLFlBQ1UsV0FBd0IsRUFDeEIsYUFB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QTVZVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiwrTkN2QzdCLDBqRkFpREE7MkZEVmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7cUxBS2QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3dCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE5nWm9uZSwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSBcInNyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICBGaWxlSW5mbyxcclxuICBTdWNjZXNzRXZlbnQsXHJcbiAgUmVtb3ZlRXZlbnQsXHJcbiAgVXBsb2FkRXZlbnQsXHJcbiAgRmlsZVJlc3RyaWN0aW9ucyxcclxuICBDaHVua1NldHRpbmdzLFxyXG4gIFNlbGVjdEV2ZW50LFxyXG4gIFVwbG9hZENvbXBvbmVudFxyXG59IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci11cGxvYWRcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHtcclxuICBBdXRoU2VydmljZSwgWkNvcmVTZXJ2aWNlLCBDb21wcmVzc0ltYWdlU2VydmljZSxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIFpDb21wb25lbnRQcm9wZXJ0aWVzLFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBVcGxvYWRNZXRhRGF0YSwgSW1hZ2VDb21wcmVzc2lvbkNvbmZpZ1xyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNeUZpbGVJbmZvIGltcGxlbWVudHMgRmlsZUluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1aWQ/OiBzdHJpbmc7XHJcbiAgbXlVaWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16dXBsb2FkXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96dXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3p1cGxvYWQuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBadXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQFZpZXdDaGlsZChcInVwbG9hZENvbXBvbmVudFwiKSB1cGxvYWRDb21wb25lbnQ6IFVwbG9hZENvbXBvbmVudDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG4gIHVwbG9hZEF0dGFjaG1lbnRVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgdXBsb2FkU2F2ZVVybCA9IFwiL0F0dGFjaG1lbnQvQ2h1bmtfVXBsb2FkX1NhdmVcIjsgLy8gc2hvdWxkIHJlcHJlc2VudCBhbiBhY3R1YWwgQVBJIGVuZHBvaW50XHJcbiAgdXBsb2FkUmVtb3ZlVXJsID0gXCIvQXR0YWNobWVudC9DaHVua19VcGxvYWRfUmVtb3ZlXCI7IC8vIHNob3VsZCByZXByZXNlbnQgYW4gYWN0dWFsIEFQSSBlbmRwb2ludFxyXG4gIGRvd25sb2FkRmlsZVVybCA9IFwiL0F0dGFjaG1lbnQvZG93bmxvYWRGaWxlXCI7XHJcbiAgZ2V0SW1hZ2VVcmwgPSBcIi9BdHRhY2htZW50L2dldEltYWdlXCI7IC8vIEdFVCBtZXRob2RcclxuICBpc0F1dG9VcGxvYWQgPSBmYWxzZTtcclxuICBpc011bHRpcGxlID0gZmFsc2U7XHJcbiAgaW1hZ2VQcmV2aWV3czogYW55W10gPSBbXTtcclxuICB1aWQ6IHN0cmluZ1tdID0gW107XHJcbiAgc2hvd0ZpbGVMaXN0ID0gdHJ1ZTtcclxuICBmaWxlTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlc3RyaWN0aW9uczogRmlsZVJlc3RyaWN0aW9ucyA9IHtcclxuXHJcbiAgICBtaW5GaWxlU2l6ZTogMSxcclxuICAgIG1heEZpbGVTaXplOiA0MTk0MzA0LFxyXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM6IFtcclxuICAgICAgXCJqcGdcIixcclxuICAgICAgXCJqcGVnXCIsXHJcbiAgICAgIFwicG5nXCIsXHJcbiAgICAgIFwiYm1wXCIsXHJcbiAgICAgIFwicGRmXCIsXHJcbiAgICAgIFwidHh0XCIsXHJcbiAgICAgIFwiZG9jeFwiLFxyXG4gICAgICBcImRvY1wiLFxyXG4gICAgICBcInhsc3hcIixcclxuICAgICAgXCJ4bHNcIixcclxuICAgICAgXCJwcHRcIixcclxuICAgICAgXCJwcHR4XCIsXHJcbiAgICAgIFwiY3N2XCIsXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBjaHVua1NldHRpbmdzOiBDaHVua1NldHRpbmdzID0ge1xyXG4gICAgc2l6ZTogMTAyNDAwLFxyXG4gICAgbWF4QXV0b1JldHJpZXM6IDMsXHJcbiAgfTtcclxuXHJcbiAgLy8gek1vZGVsVmFsdWUgPSBbe1xyXG4gIC8vICAgbmFtZTogXCJSWEpTIDAxLnBuZ1wiLFxyXG4gIC8vICAgc2l6ZTogMTI4NzUzLFxyXG4gIC8vICAgdWlkOiBcImM5NmUyMzRkLWFmNjEtNDU4Ny1hZGNjLTNiNDAwZGRlZjg4NFwiXHJcbiAgLy8gfV07XHJcblxyXG4gIC8vIGZpZWxkRWxlbWVudCA9IFt7XHJcbiAgLy8gICBOYW1lOiAnRmlsZVVwbG9hZExpc3QnLFxyXG4gIC8vICAgVHlwZTogJ3p1cGxvYWQnLFxyXG4gIC8vICAgVmFsdWU6ICdGaWxlVXBsb2FkTGlzdCcsXHJcbiAgLy8gICBTZWxlY3Rpb25PcHRpb25zOiBbJ2pwZycsICdqcGVnJywgJ3BuZycsICdibXAnLCAncGRmJ10sXHJcbiAgLy8gICBVcGxvYWRNZXRhRGF0YTogJ2dyb3VwLlVwbG9hZE1ldGFEYXRhJyxcclxuICAvLyAgIEF1dG9VcGxvYWQ6IGZhbHNlLFxyXG4gIC8vICAgQWxsb3dSZW1vdmU6IHRydWUsXHJcbiAgLy8gICBNdWx0aXBsZTogZmFsc2UsXHJcbiAgLy8gICBPblN1Y2Nlc3M6ICdncm91cC5vblN1Y2Nlc3MoKScsXHJcbiAgLy8gICBEaXZDbGFzczogXCJjb2wtbWQtMTIgY29sLW1kLTZcIixcclxuICAvLyAgIFZpc2libGU6IHRydWVcclxuICAvLyB9XTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tcHJlc3NJbWFnZTogQ29tcHJlc3NJbWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xuICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKTtcbiAgICB0aGlzLnVwbG9hZEF0dGFjaG1lbnRVcmwgPSB0aGlzLnpjb3JlU2VydmljZS5ub3JtYWxpemVVcmwoZW52aXJvbm1lbnQgJiYgZW52aXJvbm1lbnQudXBsb2FkQXR0YWNobWVudFVybCk7XG5cbiAgICBpZiAodGhpcy51cGxvYWRBdHRhY2htZW50VXJsKSB7XG4gICAgICB0aGlzLnVwbG9hZFNhdmVVcmwgPSB0aGlzLnVwbG9hZEF0dGFjaG1lbnRVcmwgKyB0aGlzLnVwbG9hZFNhdmVVcmw7XG4gICAgICB0aGlzLnVwbG9hZFJlbW92ZVVybCA9IHRoaXMudXBsb2FkQXR0YWNobWVudFVybCArIHRoaXMudXBsb2FkUmVtb3ZlVXJsO1xuICAgIH1cbiAgfVxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG5cclxuICAgIC8vIHRoaXMuZ3JvdXBbJ1VwbG9hZE1ldGFEYXRhJ10gPSBuZXcgVXBsb2FkTWV0YURhdGEobnVsbCwgJzE1JywgJ1NPLU5vLTEyMzQnLCAnU2FsZU9yZGVyJyk7XHJcblxyXG5cclxuICAgIC8vIHRoaXMudXBsb2FkU2F2ZVVybCA9IHVwbG9hZEF0dGFjaG1lbnRVcmwgKyB0aGlzLnVwbG9hZFNhdmVVcmw7XHJcbiAgICAvLyB0aGlzLnVwbG9hZFJlbW92ZVVybCA9IHVwbG9hZEF0dGFjaG1lbnRVcmwgKyB0aGlzLnVwbG9hZFJlbW92ZVVybDtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLlNlbGVjdE9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5yZXN0cmljdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnMgPSAodGhpcy5kYXRhXHJcbiAgICAgICAgLlNlbGVjdE9wdGlvbnMgYXMgdW5rbm93bikgYXMgc3RyaW5nW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5NaW5GaWxlU2l6ZSkge1xyXG4gICAgICB0aGlzLnJlc3RyaWN0aW9ucy5taW5GaWxlU2l6ZSA9IHRoaXMuZGF0YS5NaW5GaWxlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk1heEZpbGVTaXplKSB7XHJcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zLm1heEZpbGVTaXplID0gdGhpcy5kYXRhLk1heEZpbGVTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNBdXRvVXBsb2FkID0gdGhpcy5kYXRhLkF1dG9VcGxvYWQgfHwgZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhdGEuQWxsb3dSZW1vdmUpIHtcclxuICAgICAgdGhpcy51cGxvYWRSZW1vdmVVcmwgPSBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5pc011bHRpcGxlID0gdGhpcy5kYXRhLk11bHRpcGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVuYWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIGNvbnN0IGZjID0gdGhpcy5ncm91cC5mb3JtLmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBzdGF0dXMgPyBmYy5lbmFibGUoKSA6IGZjLmRpc2FibGUoKTtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5ID0gIXN0YXR1cztcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3IoXHJcbiAgICAgIHN0YXR1cyxcclxuICAgICAgdGhpcy5ncm91cCxcclxuICAgICAgdGhpcy5kYXRhLlZhbHVlLFxyXG4gICAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsXHJcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2VzcyhlOiBTdWNjZXNzRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGFuZ3VsYXIga2VuZG8gdXBsb2FkIGRpZG4ndCBmaWx0ZXIgYXdheSBTZW50IGV2ZW50IGZvciByZW1vdmUsIHNvIHdlIGhhdmUgdG8gaGFuZGxlIGl0IGhlcmVcclxuICAgIC8vIHVwbG9hZCBwcm9ncmVzcyBub3QgcmVxdWlyZWQgZm9yIHJlbW92YWwsIHRodXMgaXQncyBhbHNvIHJlbW92ZWRcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIGlmIChlLm9wZXJhdGlvbiA9PT0gXCJyZW1vdmVcIiAmJiAoZS5yZXNwb25zZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlNlbnQgfHwgZS5yZXNwb25zZS50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0pKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0gPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWxlID0gZS5maWxlc1swXSBhcyBNeUZpbGVJbmZvO1xyXG4gICAgY29uc3QgZXhpc3RpbmdGaWxlSW5kZXggPSB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLmZpbmRJbmRleChmID0+IGYubmFtZSA9PT0gZmlsZS5uYW1lICYmIGYudWlkID09PSBmaWxlLnVpZCk7XHJcbiAgICBpZiAoZS5vcGVyYXRpb24gPT09IFwidXBsb2FkXCIpIHtcclxuICAgICAgLy8gY29uc29sZS5sb2coJ3VwbG9hZCBTdWNjZXNzOiAnLCBlKTtcclxuICAgICAgZmlsZS5teVVpZCA9IGZpbGUudWlkO1xyXG4gICAgICBkZWxldGUgZmlsZVsnaHR0cFN1YnNjcmlwdGlvbiddO1xyXG5cclxuICAgICAgaWYgKGV4aXN0aW5nRmlsZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV1bZXhpc3RpbmdGaWxlSW5kZXhdID0gZmlsZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLnB1c2goZmlsZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKGUub3BlcmF0aW9uID09PSBcInJlbW92ZVwiKSB7XHJcbiAgICAgIGlmIChleGlzdGluZ0ZpbGVJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdLnNwbGljZShleGlzdGluZ0ZpbGVJbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwienVwbG9hZC1vblN1Y2Nlc3NcIixcclxuICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25TdWNjZXNzLFxyXG4gICAgICBldmVudDogZSxcclxuICAgICAgZGF0YTogeyB2YWx1ZTogZS5maWxlc1swXSwgZmllbGQ6IHRoaXMuZGF0YSB9LFxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wcmVzc2lvbkNvbmZpZ0hhbmRsZXIoaW1nQ29uZmlnOiBJbWFnZUNvbXByZXNzaW9uQ29uZmlnKTogSW1hZ2VDb21wcmVzc2lvbkNvbmZpZyB7XHJcbiAgICBpZiAoaW1nQ29uZmlnLkZpbGVTaXplTWF4U2l6ZSkge1xyXG4gICAgICBpbWdDb25maWcuRmlsZVNpemVNYXhTaXplQnl0ZSA9IHRoaXMuY29udmVydFNpemVUb0J5dGUoaW1nQ29uZmlnLkZpbGVTaXplTWF4U2l6ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemUpIHtcclxuICAgICAgaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZUJ5dGUgPSB0aGlzLmNvbnZlcnRTaXplVG9CeXRlKGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGltZ0NvbmZpZy5GaWxlU2l6ZU1pblNpemVCeXRlID0gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW1nQ29uZmlnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0U2l6ZVRvQnl0ZShzaXplU3RyaW5nOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IF90ZW1wRmlsZVNpemVNYXhTaXplOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IHNpemVCeUJ5dGU6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgc2l6ZVR5cGUgPSAnYic7XHJcblxyXG4gICAgLy8gcmVtb3ZlIGFsbCBzcGFjZVxyXG4gICAgY29uc3QgX3RlbXBGaWxlU2l6ZSA9IHNpemVTdHJpbmcucmVwbGFjZSgvIC9nLCAnJyk7XHJcblxyXG4gICAgLy8gY2hlY2sgbGFzdCBjaGFyIGlzIGFscGhhYmV0aWNcclxuICAgIGNvbnN0IGxhc3RDaGFyID0gX3RlbXBGaWxlU2l6ZS5zdWJzdHIoX3RlbXBGaWxlU2l6ZS5sZW5ndGggLSAxKTtcclxuICAgIGlmIChpc05hTihwYXJzZUZsb2F0KGxhc3RDaGFyKSkpIHtcclxuICAgICAgY29uc3Qgc2VjTGFzdENoYXIgPSBfdGVtcEZpbGVTaXplLnN1YnN0cihfdGVtcEZpbGVTaXplLmxlbmd0aCAtIDIpLnNsaWNlKDAsIC0xKTtcclxuXHJcbiAgICAgIGlmIChpc05hTihwYXJzZUZsb2F0KHNlY0xhc3RDaGFyKSkpIHtcclxuICAgICAgICAvLyBjaGVjayBsYXN0IDJuZCBjaGFyIGlzIGFscGhhYmV0aWNcclxuICAgICAgICBzaXplVHlwZSA9IHNlY0xhc3RDaGFyICsgc2l6ZVR5cGU7XHJcbiAgICAgICAgX3RlbXBGaWxlU2l6ZU1heFNpemUgPSBwYXJzZUZsb2F0KF90ZW1wRmlsZVNpemUuc2xpY2UoMCwgLTIpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBfdGVtcEZpbGVTaXplTWF4U2l6ZSA9IHBhcnNlRmxvYXQoX3RlbXBGaWxlU2l6ZS5zbGljZSgwLCAtMSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzd2l0Y2ggKHNpemVUeXBlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICBjYXNlIFwiYlwiOlxyXG4gICAgICAgICAgc2l6ZUJ5Qnl0ZSA9IF90ZW1wRmlsZVNpemVNYXhTaXplXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwia2JcIjpcclxuICAgICAgICAgIHNpemVCeUJ5dGUgPSBfdGVtcEZpbGVTaXplTWF4U2l6ZSAqIDEwMjRcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJtYlwiOlxyXG4gICAgICAgICAgc2l6ZUJ5Qnl0ZSA9IF90ZW1wRmlsZVNpemVNYXhTaXplICogMTA0ODU3NlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImdiXCI6XHJcbiAgICAgICAgICBzaXplQnlCeXRlID0gX3RlbXBGaWxlU2l6ZU1heFNpemUgKiAxMDczNzQxODI0XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGRlZmF1bHQgdXNpbmcgYnl0ZXMgaWYgbm8gc2l6ZSB0eXBlXHJcbiAgICAgIHNpemVCeUJ5dGUgPSBwYXJzZUZsb2F0KF90ZW1wRmlsZVNpemUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzaXplQnlCeXRlO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRXZlbnRIYW5kbGVyKGU6IFVwbG9hZEV2ZW50KSB7XHJcbiAgICAvLyBJbWFnZSBQcmV2aWV3XHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICBlLmZpbGVzLmZvckVhY2goKGZpbGU6IEZpbGVJbmZvKSA9PiB7XHJcbiAgICAgIGlmIChmaWxlLnJhd0ZpbGUgJiYgZmlsZS5yYXdGaWxlLnR5cGUuaW5jbHVkZXMoXCJpbWFnZVwiKSkge1xyXG4gICAgICAgIGlmICghZmlsZS52YWxpZGF0aW9uRXJyb3JzKSB7XHJcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uIChldikge1xyXG4gICAgICAgICAgICBpZiAobWUuZGF0YS5FbmFibGVJbWFnZVByZXZpZXcpIHtcclxuICAgICAgICAgICAgICBpZiAoIW1lLnVpZC5pbmNsdWRlcyhmaWxlLnVpZCkpIHtcclxuICAgICAgICAgICAgICAgIG1lLnVpZC5wdXNoKGZpbGUudWlkKTtcclxuICAgICAgICAgICAgICAgIG1lLmltYWdlUHJldmlld3MucHVzaCh7IC4uLmZpbGUsIHNyYzogPHN0cmluZz5yZWFkZXIucmVzdWx0IH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5yYXdGaWxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFkZCBtZXRhZGF0YSB0byB0aGUgdXBsb2FkIGV2ZW50XHJcbiAgICBsZXQgYWRkaXRpb25hbDogVXBsb2FkTWV0YURhdGEgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlVwbG9hZE1ldGFEYXRhKTtcclxuXHJcbiAgICBpZiAoIShhZGRpdGlvbmFsIGluc3RhbmNlb2YgVXBsb2FkTWV0YURhdGEpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJVcGxvYWRNZXRhRGF0YSBkZWZpbmVkIGF0IFwiICsgdGhpcy5kYXRhLlVwbG9hZE1ldGFEYXRhICsgXCIgaXMgaW52YWxpZDogXCIsIGFkZGl0aW9uYWwpO1xyXG4gICAgICBhZGRpdGlvbmFsID0gbmV3IFVwbG9hZE1ldGFEYXRhKG51bGwsIFwiMFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdHIgPSBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsKTtcclxuXHJcbiAgICBlLmRhdGEgPSB7IGFkZGl0aW9uYWw6IHN0ciwgfTtcclxuICAgIGUuaGVhZGVycyA9IGUuaGVhZGVycy5hcHBlbmQoXCJBdXRob3JpemF0aW9uXCIsIFwiQmVhcmVyIFwiICsgdGhpcy5hdXRoU2VydmljZS5lMUFjY2Vzc1Rva2VuKTtcclxuICB9XHJcblxyXG4gIG9uUmVtb3ZlKGU6IFJlbW92ZUV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyByZW1vdmUgZmlsZSBmcm9tIGNvbXBvbmVudCBtZW1vcnlcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWxlTGlzdC5maW5kSW5kZXgoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtLnVpZCA9PT0gZS5maWxlc1swXS51aWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmdyb3VwWyd6dXBsb2FkXycgKyB0aGlzLmRhdGEuVmFsdWVdID0gdGhpcy5maWxlTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydGaWxlUmVtb3ZlZEV2ZW50J10pIHtcclxuICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgIHR5cGU6IFwienVwbG9hZC1maWxlUmVtb3ZlZEV2ZW50XCIsXHJcbiAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGFbJ0ZpbGVSZW1vdmVkRXZlbnQnXSxcclxuICAgICAgICBkYXRhOiBlXHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBteUZpbGU6IE15RmlsZUluZm8gPSBlLmZpbGVzWzBdIGFzIE15RmlsZUluZm87XHJcblxyXG4gICAgICAvLyBjb25zb2xlLmxvZygncmVtb3ZlIGRvbmU6ICcsIGUpO1xyXG4gICAgICBlLmRhdGEgPSB7XHJcbiAgICAgICAgaWQ6IG15RmlsZS5teVVpZCxcclxuICAgICAgfTtcclxuICAgICAgZS5oZWFkZXJzID0gZS5oZWFkZXJzLmFwcGVuZChcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIixcclxuICAgICAgICBcIkJlYXJlciBcIiArIHRoaXMuYXV0aFNlcnZpY2UuZTFBY2Nlc3NUb2tlblxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5FbmFibGVJbWFnZVByZXZpZXcpIHtcclxuICAgICAgICBlLmZpbGVzLmZvckVhY2goKGZpbGU6IEZpbGVJbmZvKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmltYWdlUHJldmlld3MgPSB0aGlzLmltYWdlUHJldmlld3MuZmlsdGVyKGYgPT4gZi51aWQgIT09IGZpbGUudWlkKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoZmlsZTogRmlsZUluZm9bXSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YVsnRmlsZUNoYW5nZWRFdmVudCddKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcInp1cGxvYWQtZmlsZUNoYW5nZWRFdmVudFwiLFxyXG4gICAgICAgIHRhcmdldDogdGhpcy5kYXRhWydGaWxlQ2hhbmdlZEV2ZW50J10sXHJcbiAgICAgICAgZGF0YTogZmlsZVxyXG4gICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RFdmVudEhhbmRsZXIoZTogU2VsZWN0RXZlbnQpIHtcclxuICAgIGNvbnN0IG1lID0gdGhpcztcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydTZWxlY3RGaWxlT25seSddKSB7XHJcbiAgICAgIC8vIGFwcGVuZCBhbGwgZmlsZSB0byBjb21wb25lbnQgbWVtb3J5XHJcbiAgICAgIGUuZmlsZXMuZm9yRWFjaChhc3luYyAoZmlsZTogRmlsZUluZm8pID0+IHtcclxuICAgICAgICBpZiAoZmlsZS5yYXdGaWxlKSB7XHJcbiAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uIChldikge1xyXG4gICAgICAgICAgICAvLyBjbG9uZSB0aGUgZGF0YSBhbmQgYWxzbyBhZGQgdGhlIHJlYWRlZCBmaWxlIHRvIHRoZSBvYmplY3RcclxuICAgICAgICAgICAgY29uc3QgZmlsZURhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBmaWxlKTtcclxuICAgICAgICAgICAgZmlsZURhdGFbJ2ZpbGUnXSA9IGV2LnRhcmdldFtcInJlc3VsdFwiXTtcclxuICAgICAgICAgICAgLy8gcHVzaCB0byBjb21wb25lbnQgZmlsZUxpc3RcclxuICAgICAgICAgICAgbWUuZmlsZUxpc3QucHVzaChmaWxlRGF0YSk7XHJcbiAgICAgICAgICAgIG1lLmdyb3VwWyd6dXBsb2FkXycgKyBtZS5kYXRhLlZhbHVlXSA9IG1lLmZpbGVMaXN0O1xyXG5cclxuICAgICAgICAgICAgaWYgKG1lLmRhdGFbJ0ZpbGVTZWxlY3RlZEV2ZW50J10pIHtcclxuICAgICAgICAgICAgICAvLyBjYWxsIHRoZSBwcm9qZWN0IGV2ZW50XHJcbiAgICAgICAgICAgICAgbWUuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwienVwbG9hZC1maWxlU2VsZWN0ZWRFdmVudFwiLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBtZS5kYXRhWydGaWxlU2VsZWN0ZWRFdmVudCddLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogbWUuZmlsZUxpc3RcclxuICAgICAgICAgICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBhd2FpdCByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlLnJhd0ZpbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gT25seSB3b3JrYWJsZSBmb3IgQXV0byBVcGxvYWQgPSBmYWxzZVxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5BdXRvVXBsb2FkKSB7XHJcbiAgICAgICAgLy8gQ29tcHJlc3Npb24gZm9yIGltYWdlIGZpbGVcclxuICAgICAgICBjb25zdCBpbWFnZUNvbXByZXNzaW9uRW5hYmxlZCA9IHRoaXMuZGF0YS5Db21wcmVzc2lvbiA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgLy9DaGVjayBpZiBJbWFnZSBDb21wcmVzc2lvbiBpcyBlbmFibGVkLlxyXG4gICAgICAgIGlmIChpbWFnZUNvbXByZXNzaW9uRW5hYmxlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgZS5maWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlSW5mbykgPT4ge1xyXG4gICAgICAgICAgICAvLyBDb21wcmVzcyBvbmx5IGlmIGl0IGlzIGFuIGltYWdlIGZpbGVcclxuICAgICAgICAgICAgaWYgKGZpbGUucmF3RmlsZSAmJiBmaWxlLnJhd0ZpbGUudHlwZS5pbmNsdWRlcyhcImltYWdlXCIpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKCFmaWxlLnZhbGlkYXRpb25FcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGltZ0NvbmZpZyA9IHRoaXMuY29tcHJlc3Npb25Db25maWdIYW5kbGVyKHRoaXMuZGF0YS5Db21wcmVzc2lvbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS5zaXplID4gaW1nQ29uZmlnLkZpbGVTaXplTWluU2l6ZUJ5dGUpIHtcclxuICAgICAgICAgICAgICAgICAgbWUuY29tcHJlc3NJbWFnZS5jb21wcmVzcyhmaWxlLnJhd0ZpbGUsIGltZ0NvbmZpZykgIC8vUGFzcyBpbiBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBDb21wcmVzc2lvbiBPcHRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGNvbXByZXNzRmlsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLnJhd0ZpbGUgPSBjb21wcmVzc0ZpbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuc2l6ZSA9IGNvbXByZXNzRmlsZS5zaXplO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvbmUgdGhlIGRhdGEgYW5kIGFsc28gYWRkIHRoZSByZWFkZWQgZmlsZSB0byB0aGUgb2JqZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB1c2ggdG8gY29tcG9uZW50IGZpbGVMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lLmZpbGVMaXN0LnB1c2goZmlsZURhdGEpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZS5yYXdGaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENvbXByZXNzZWQgZmlsZSBzaXplOiAkeyhmaWxlLnJhd0ZpbGUuc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMil9S0JgKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gLy8gZmlsZSBzaXplIGNoZWNrXHJcbiAgICAgICAgICAgICAgfSAvLyB2YWxpZGF0aW9uRXJyb3JzIGNoZWNrXHJcbiAgICAgICAgICAgIH0gLy8gZmlsZSB0eXBlIGNoZWNrXHJcbiAgICAgICAgICB9KSAvLyBsb29wIGVhY2ggZmlsZVxyXG4gICAgICAgIH0gLy8gaW1hZ2Vjb21wcmVzc2lvbiBjaGVja1xyXG5cclxuICAgICAgICAvLyBhZGQgdG8gZ3JvdXAgc2NvcGVcclxuICAgICAgICBtZS5ncm91cFsnenVwbG9hZF8nICsgbWUuZGF0YS5WYWx1ZV0gPSBlLmZpbGVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbGVzKCkge1xyXG4gICAgdGhpcy51cGxvYWRDb21wb25lbnQuY2xlYXJGaWxlcygpO1xyXG4gICAgdGhpcy5ncm91cFsnenVwbG9hZF8nICsgdGhpcy5kYXRhLlZhbHVlXSA9IHRoaXMuZmlsZUxpc3Q7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24taXRlbSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIFtuZ0NsYXNzXT1cImdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybSwgZGF0YSlcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTVweDtcIj5cclxuICA8aW9uLWxhYmVsIFthdHRyLmZvcl09XCJkYXRhLlZhbHVlXCIgKm5nSWY9XCJkYXRhLlNob3dMYWJlbCA9PT0gdW5kZWZpbmVkIHx8IGRhdGEuU2hvd0xhYmVsXCIgcG9zaXRpb249XCJzdGFja2VkXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4O1wiPlxyXG4gICAge3tkYXRhLkxhYmVsfX0gPGlvbi10ZXh0ICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQpXCIgY29sb3I9XCJkYW5nZXJcIj4qPC9pb24tdGV4dD5cclxuICA8L2lvbi1sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB3aWR0aDogMTAwJVwiPlxyXG4gICAgPHNwYW4gc3R5bGU9XCJmbGV4OiAxO1wiPlxyXG4gICAgICA8a2VuZG8tdXBsb2FkICN1cGxvYWRDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkYXRhLlNlbGVjdEZpbGVPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9VcGxvYWRdPVwiaXNBdXRvVXBsb2FkXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2F2ZVVybF09XCJ1cGxvYWRTYXZlVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVtb3ZlVXJsXT1cInVwbG9hZFJlbW92ZVVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc3RyaWN0aW9uc109XCJyZXN0cmljdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaHVua2FibGVdPVwiY2h1bmtTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dGaWxlTGlzdF09XCJzaG93RmlsZUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3QpPVwic2VsZWN0RXZlbnRIYW5kbGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwib25SZW1vdmUoJGV2ZW50KVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChzdWNjZXNzKT1cIm9uU3VjY2VzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAodXBsb2FkKT1cInVwbG9hZEV2ZW50SGFuZGxlcigkZXZlbnQpXCI+XHJcbiAgICAgIDwva2VuZG8tdXBsb2FkPlxyXG5cclxuICAgICAgPGtlbmRvLWZpbGVzZWxlY3QgI3VwbG9hZENvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuU2VsZWN0RmlsZU9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3QpPVwic2VsZWN0RXZlbnRIYW5kbGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVzdHJpY3Rpb25zXT1cInJlc3RyaWN0aW9uc1wiID5cclxuICAgICAgPC9rZW5kby1maWxlc2VsZWN0PlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2lvbi1pdGVtPlxyXG48YnIgLz5cclxuPCEtLTxkaXYgY2xhc3M9XCJ3cmFwXCIgKm5nSWY9XCJkYXRhLkVuYWJsZUNvbXByZXNzaW9uXCI+XHJcbiAgPGlvbi1sYWJlbD5FbmFibGUgQ29tcHJlc3Npb246IDwvaW9uLWxhYmVsPlxyXG4gIDxpb24tY2hlY2tib3ggc3R5bGU9XCJtYXJnaW46IC01cHggMDtcIiBjb2xvcj1cInByaW1hcnlcIiAoaW9uQ2hhbmdlKT1cInRvb2dsZUVuYWJsZUNvbXByZXNzaW9uKCRldmVudClcIj48L2lvbi1jaGVja2JveD5cclxuPC9kaXY+LS0+XHJcbjxpb24tbGFiZWwgKm5nSWY9XCJpbWFnZVByZXZpZXdzLmxlbmd0aFwiIHBvc2l0aW9uPVwic3RhY2tlZFwiPlxyXG4gIEltYWdlIFByZXZpZXc6XHJcbjwvaW9uLWxhYmVsPlxyXG48ZGl2ICpuZ0lmPVwiaW1hZ2VQcmV2aWV3cy5sZW5ndGhcIiA+XHJcbiAgPGltZyAqbmdGb3I9XCJsZXQgaW1hZ2Ugb2YgaW1hZ2VQcmV2aWV3c1wiXHJcbiAgICAgICBbc3JjXT1cImltYWdlLnNyY1wiXHJcbiAgICAgICBhbHQ9XCJpbWFnZSBwcmV2aWV3XCJcclxuICAgICAgIGhlaWdodD1cIjEwMFwiXHJcbiAgICAgICBzdHlsZT1cIm1hcmdpbjogNXB4OyBib3JkZXI6IDFweCBzb2xpZCBncmF5O1wiLz5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -8215,10 +8215,11 @@ function toQueryRule(queryBuilderModel) {
|
|
|
8215
8215
|
|
|
8216
8216
|
/********** Angular **********/
|
|
8217
8217
|
class ZreportComponent {
|
|
8218
|
-
constructor(resourceApiService, authService, alertService) {
|
|
8218
|
+
constructor(resourceApiService, authService, alertService, zcoreService) {
|
|
8219
8219
|
this.resourceApiService = resourceApiService;
|
|
8220
8220
|
this.authService = authService;
|
|
8221
8221
|
this.alertService = alertService;
|
|
8222
|
+
this.zcoreService = zcoreService;
|
|
8222
8223
|
this.componentProperties = new ZComponentProperties();
|
|
8223
8224
|
this.allowPrintPDF = true;
|
|
8224
8225
|
this.isVisible = true;
|
|
@@ -8245,7 +8246,7 @@ class ZreportComponent {
|
|
|
8245
8246
|
this.onRenderingEnd = this.renderingEnd.bind(this);
|
|
8246
8247
|
this.onPrintBegin = this.printBegin.bind(this);
|
|
8247
8248
|
this.onPrintEnd = this.printEnd.bind(this);
|
|
8248
|
-
this.serviceUrl = this.resourceApiService.getURL(this.data.ResourceURL);
|
|
8249
|
+
this.serviceUrl = this.zcoreService.normalizeUrl(this.resourceApiService.getURL(this.data.ResourceURL));
|
|
8249
8250
|
if (!this.serviceUrl) {
|
|
8250
8251
|
console.log("resourceURL is empty.");
|
|
8251
8252
|
}
|
|
@@ -8371,7 +8372,7 @@ class ZreportComponent {
|
|
|
8371
8372
|
this.reportSource.parameters.Authorization = this.authService.authorizationBearer.Authorization;
|
|
8372
8373
|
}
|
|
8373
8374
|
if (this.reportSource['url']) {
|
|
8374
|
-
this.serviceUrl = this.reportSource['url'];
|
|
8375
|
+
this.serviceUrl = this.zcoreService.normalizeUrl(this.reportSource['url']);
|
|
8375
8376
|
}
|
|
8376
8377
|
this.viewer.setReportSource(this.reportSource);
|
|
8377
8378
|
//this.viewer.refreshReport();
|
|
@@ -8380,12 +8381,12 @@ class ZreportComponent {
|
|
|
8380
8381
|
return ZComponentHelper.getFontAwesome(iconName);
|
|
8381
8382
|
}
|
|
8382
8383
|
}
|
|
8383
|
-
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }, { token: i1.AuthService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8384
|
+
ZreportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, deps: [{ token: i1.ResourceApiService }, { token: i1.AuthService }, { token: i1.AlertService }, { token: i1.ZCoreService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8384
8385
|
ZreportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZreportComponent, selector: "app-zreport", inputs: { data: "data", group: "group" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ["reportViewer1"], descendants: true }], ngImport: i0, template: "<div width=\"100%\" height=\"800px\">\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"serviceUrl\"\r\n [reportSource]=\"reportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"onReady\"\r\n [exportBegin]=\"onExportBegin\"\r\n [exportEnd]=\"onExportEnd\"\r\n [renderingBegin]=\"onRenderingBegin\"\r\n [renderingEnd]=\"onRenderingEnd\"\r\n [printBegin]=\"onPrintBegin\"\r\n [printEnd]=\"onPrintEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"], components: [{ type: i2$6.TelerikReportViewerComponent, selector: "tr-viewer", inputs: ["keepClientAlive", "id", "serviceUrl", "reportServer", "templateUrl", "initialPageAreaImageUrl", "reportSource", "sendEmail", "parameters", "scale", "scaleMode", "viewMode", "pageMode", "persistSession", "parameterEditors", "authenticationToken", "printMode", "selector", "disabledButtonClass", "checkedButtonClass", "enableAccessibility", "searchMetadataOnDemand", "parametersAreaVisible", "documentMapVisible", "ready", "error", "parametersAreaPosition", "documentMapAreaPosition", "exportBegin", "exportEnd", "sendEmailBegin", "sendEmailEnd", "pageReady", "printBegin", "printEnd", "renderingBegin", "renderingEnd", "updateUi", "interactiveActionExecuting", "interactiveActionEnter", "interactiveActionLeave", "viewerToolTipOpening", "containerStyle"] }] });
|
|
8385
8386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZreportComponent, decorators: [{
|
|
8386
8387
|
type: Component,
|
|
8387
8388
|
args: [{ selector: "app-zreport", template: "<div width=\"100%\" height=\"800px\">\r\n <tr-viewer #reportViewer1\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"serviceUrl\"\r\n [reportSource]=\"reportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [scale]=\"1.0\"\r\n [enableAccessibility]=\"false\"\r\n [ready]=\"onReady\"\r\n [exportBegin]=\"onExportBegin\"\r\n [exportEnd]=\"onExportEnd\"\r\n [renderingBegin]=\"onRenderingBegin\"\r\n [renderingEnd]=\"onRenderingEnd\"\r\n [printBegin]=\"onPrintBegin\"\r\n [printEnd]=\"onPrintEnd\">\r\n </tr-viewer>\r\n</div>\r\n", styles: ["#reportViewer1{height:200px}#reportViewer1 .k-splitter .k-scrollable{overflow:hidden}.k-pdf-export,.k-pdf-export *{font-family:Arial Unicode MS}\n"] }]
|
|
8388
|
-
}], ctorParameters: function () { return [{ type: i1.ResourceApiService }, { type: i1.AuthService }, { type: i1.AlertService }]; }, propDecorators: { viewer: [{
|
|
8389
|
+
}], ctorParameters: function () { return [{ type: i1.ResourceApiService }, { type: i1.AuthService }, { type: i1.AlertService }, { type: i1.ZCoreService }]; }, propDecorators: { viewer: [{
|
|
8389
8390
|
type: ViewChild,
|
|
8390
8391
|
args: ['reportViewer1', { static: false }]
|
|
8391
8392
|
}], data: [{
|
|
@@ -10416,9 +10417,12 @@ class ZuploadComponent {
|
|
|
10416
10417
|
this.componentProperties.isRequired = status;
|
|
10417
10418
|
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
10418
10419
|
};
|
|
10419
|
-
|
|
10420
|
-
this.
|
|
10421
|
-
|
|
10420
|
+
const environment = this.zcoreService.getEnvironment();
|
|
10421
|
+
this.uploadAttachmentUrl = this.zcoreService.normalizeUrl(environment && environment.uploadAttachmentUrl);
|
|
10422
|
+
if (this.uploadAttachmentUrl) {
|
|
10423
|
+
this.uploadSaveUrl = this.uploadAttachmentUrl + this.uploadSaveUrl;
|
|
10424
|
+
this.uploadRemoveUrl = this.uploadAttachmentUrl + this.uploadRemoveUrl;
|
|
10425
|
+
}
|
|
10422
10426
|
}
|
|
10423
10427
|
ngOnInit() {
|
|
10424
10428
|
ZComponentHelper.setComponentProperties(this);
|