tango-app-ui-manage-tickets 3.7.0-beta.54 → 3.7.0-beta.55

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.
@@ -106,6 +106,9 @@ export class TicketService {
106
106
  getDataMismathList(data) {
107
107
  return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
108
108
  }
109
+ accuracyReasonsupdate(data) {
110
+ return this.http.post(`${this.footfallDirapiUrl}/tango-review-accuracy-ticket`, data);
111
+ }
109
112
  exportDataMismatchList(data) {
110
113
  return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: "arraybuffer" });
111
114
  }
@@ -118,6 +121,9 @@ export class TicketService {
118
121
  getTicketSummaryApi(client, fromDate, toDate, tangoType) {
119
122
  return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&tangoType=${tangoType}`);
120
123
  }
124
+ accuracyReasons(client) {
125
+ return this.http.get(`${this.footfallDirapiUrl}/get-accuarcy-issues?clientId=${client}`);
126
+ }
121
127
  getTicketListOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
122
128
  return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`);
123
129
  }
@@ -297,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
297
303
  providedIn: "root",
298
304
  }]
299
305
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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QUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsc0JBQXNCLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFhO1FBQzNCLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBR3pGLENBQUM7SUFDTyxZQUFZLENBQU07SUFFMUIsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzt3R0F6Y1UsYUFBYTs0R0FBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBjYXRjaEVycm9yLFxyXG4gIG1hcCxcclxuICBvZixcclxuICB0aHJvd0Vycm9yLFxyXG59IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIGF1ZGl0bWV0cmljQXBpVXJsOiBhbnk7XHJcbiAgem9uZWF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjogYW55O1xyXG4gIHRyYWZmaWNBcGlVcmw6IGFueTtcclxuICByZXZvcEFwaVVybDogYW55O1xyXG4gIGNsaWVudEFwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuY2xpZW50QXBpVXJsID0gZW52LmNsaWVudEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsID0gZW52LmZvb3RmYWxsRGlyYXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxDRE4gPSBlbnYuZm9vdGZhbGxDRE47XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5yZXZvcEFwaVVybCA9IGVudi5yZXZvcEFwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvc3RvcmVGaWx0ZXJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0SXNzdWUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9lbXBsb3llZVRyYW5pbmcvdXBkYXRlY29tbWVudGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyQWN0aXZlTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2xpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYWxsQ291bnRzYCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljc0V4cG9ydChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBnZXRjbGllbnRMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9jbGllbnRzYClcclxuICB9XHJcbiAgZ2V0dXNlckxpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L3RhbmdvLXVzZXJzYClcclxuICB9XHJcbiAgYXVkaXRyZXRyaWdnZXIoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3MvcmUtdHJpZ2dlcmAsZGF0YSlcclxuIH1cclxuIGdldGZvb3RmYWxsY291bnQoZGF0YTphbnkpe1xyXG4gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmV2b3BBcGlVcmx9L3N0b3JlLXByb2Nlc3NlZC1kYXRhP3N0b3JlSWQ9JHtkYXRhLnN0b3JlSWR9JmZyb21EYXRlPSR7ZGF0YS5EYXRlfSZ0b0RhdGU9JHtkYXRhLkRhdGV9YClcclxuICBcclxuIH1cclxuIGdldHN0b3JlTGlzdChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LXN0b3Jlc2AsZGF0YSlcclxuIH1cclxuIGNoZWNrVGlja2V0RXhpc3RzKGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vY2hlY2tUaWNrZXRFeGlzdHNgLGRhdGEpXHJcbiB9XHJcbiBtZXJnZXRpY2tldChkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L21lcmdldGlja2V0YCxkYXRhKVxyXG4gfVxyXG4gIGdldERhdGFNaXNtYXRoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXVkaXRJbWFnZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgRXhwb3J0QXVkaXRJbWFnZXNhc3hsc3goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtaW1hZ2VzP2ZpbGVEYXRlPSR7ZGF0YT8uZmlsZURhdGV9JnN0b3JlSWQ9JHtkYXRhPy5zdG9yZUlkfSZpbWFnZVR5cGU9JHtkYXRhPy5pbWFnZVR5cGV9JmV4cG9ydD0ke2RhdGE/LmV4cG9ydH0mem9uZU5hbWU9JHtkYXRhPy56b25lTmFtZX0mbW9kdWxlVHlwZT0ke2RhdGE/Lm1vZHVsZVR5cGV9YCxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0U3VtbWFyeUFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgdGFuZ29UeXBlOmFueSxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM6IGFueVtdO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlcjogYW55IHwgbnVsbDtcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI6IGFueSB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvOiBhbnkgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlZEJ5OiBhbnlbXTtcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IGFueVtdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICAvLyBhcnJheSBwYXJhbXMg4oCTIHNlbmQgYXMgY29tbWEtc2VwYXJhdGVkXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHJpbmcgcGFyYW1zIOKAkyBKU09OIHN0cmluZ2lmaWVkIGFjY3VyYWN5XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbn1cclxuXHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEV4cG9ydEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM/OiBzdHJpbmdbXTtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlBcHByb3Zlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeT86IHN0cmluZ1tdO1xyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeT86IHN0cmluZ1tdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IG9wdGlvbnMgPSBpc0V4cG9ydFxyXG4gICAgPyB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyBhcyAnanNvbicgfVxyXG4gICAgOiB7fTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zKTtcclxufVxyXG5cclxuXHJcbiAgZ2V0VGlja2V0c0FwaShcclxuICAgIHN0b3JlOiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICByZXZvcHNUeXBlOiBhbnksXHJcbiAgICBzdGF0dXM6IGFueSxcclxuICAgIGFjdGlvbjogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBsaW1pdDogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJzdG9yZUlkXCIsIHN0b3JlKVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKVxyXG4gICAgICAuc2V0KFwib2Zmc2V0XCIsIG9mZnNldClcclxuICAgICAgLnNldChcImxpbWl0XCIsIGxpbWl0KTtcclxuICAgIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJyZXZvcHNUeXBlXCIsIHJldm9wc1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic3RhdHVzXCIsIHN0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJhY3Rpb25cIiwgYWN0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzTmV3QXBpKHRpY2tldElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwidGlja2V0SWRcIiwgdGlja2V0SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRhZ2dlZFN0b3Jlc0FwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNoVmFsdWU6IGFueSxcclxuICAgIGNsdXN0ZXJzOiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50KVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic2VhcmNoVmFsdWVcIiwgc2VhcmNoVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjbHVzdGVycyAmJiBjbHVzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJjbHVzdGVyc1wiLCBjbHVzdGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAoc29ydE9yZGVyKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzb3J0T3JkZXJcIiwgc29ydE9yZGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10YWdnZWQtc3RvcmVzYCwge1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGVtcFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10ZW1wLXN0YXR1c2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlblRpY2tldExpc3RBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9vcGVuLXRpY2tldC1saXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUaWNrZXRTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRpY2tldC1zdGF0dXNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldENyZWF0ZVRpY2tldExpc3RBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuQ3JlYXRlaW50ZXJuYWxUaWNrZXRBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtaW50ZXJuYWx0aWNrZXRgLCBkYXRhKTtcclxufVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyY2x1c3Rlcl92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2aWV3ZXJBcGkoY2xpZW50SWQ6IGFueSx0eXBlOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZClcclxuICAgICAgLnNldChcInR5cGVcIix0eXBlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3Jldmlld2VyLWxpc3RgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldEFzc2lnbkFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2Fzc2lnbi10aWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE11bHRpQ2xvc2VUaWNrZXRBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbXVsdGktY2xvc2UtdGlja2V0c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlRnVuY3Rpb24oY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LWZvb3RmYWxsLWRpcmVjdG9yeS1jb25maWdgLCB7IHBhcmFtcyB9KTtcclxuXHJcbiAgICBcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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QUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaWNrZXRTZXJ2aWNlIHtcclxuICB1c2VyQXBpVXJsOiBhbnk7XHJcbiAgdGlja2V0c0FwaVVybDogYW55O1xyXG4gIGF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6IGFueTtcclxuICB6b25lYXVkaXRBcGlVcmw6IGFueTtcclxuICBmb290ZmFsbERpcmFwaVVybDogYW55O1xyXG4gIGZvb3RmYWxsQ0ROOiBhbnk7XHJcbiAgdHJhZmZpY0FwaVVybDogYW55O1xyXG4gIHJldm9wQXBpVXJsOiBhbnk7XHJcbiAgY2xpZW50QXBpVXJsOmFueTtcclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudXNlckFwaVVybCA9IGVudi51c2VyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9IGVudi50aWNrZXRzQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRtZXRyaWNBcGlVcmwgPSBlbnYuYXVkaXRtZXRyaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5hdWRpdEFwaVVybCA9IGVudi5hdWRpdEFwaVVybDtcclxuICAgICAgICB0aGlzLnpvbmVhdWRpdEFwaVVybCA9IGVudi56b25lYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSBlbnYuY2xpZW50QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxEaXJhcGlVcmwgPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9IGVudi5mb290ZmFsbENETjtcclxuICAgICAgICB0aGlzLnRyYWZmaWNBcGlVcmwgPSBlbnYudHJhZmZpY0FwaVVybDtcclxuICAgICAgICB0aGlzLnJldm9wQXBpVXJsID0gZW52LnJldm9wQXBpVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWxpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvbWF0VGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb3RyZXNMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9zdG9yZUZpbHRlcmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzaWduVGlja2V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYXNzaWduVGlja2V0YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE1hdExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaWNrZXRJc3N1ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2VtcGxveWVlVHJhbmluZy91cGRhdGVjb21tZW50YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJBY3RpdmVMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vbGlzdGAsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0Zm9vdGZhbGxjb3VudChkYXRhOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXZvcEFwaVVybH0vc3RvcmUtcHJvY2Vzc2VkLWRhdGE/c3RvcmVJZD0ke2RhdGEuc3RvcmVJZH0mZnJvbURhdGU9JHtkYXRhLkRhdGV9JnRvRGF0ZT0ke2RhdGEuRGF0ZX1gKVxyXG4gIFxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gY2hlY2tUaWNrZXRFeGlzdHMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jaGVja1RpY2tldEV4aXN0c2AsZGF0YSlcclxuIH1cclxuIG1lcmdldGlja2V0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbWVyZ2V0aWNrZXRgLGRhdGEpXHJcbiB9XHJcbiAgZ2V0RGF0YU1pc21hdGhMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuICBhY2N1cmFjeVJlYXNvbnN1cGRhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGFuZ28tcmV2aWV3LWFjY3VyYWN5LXRpY2tldGAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnREYXRhTWlzbWF0Y2hMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEF1ZGl0SW1hZ2VzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWBcclxuICAgICk7XHJcbiAgfVxyXG4gIEV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWAsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldFN1bW1hcnlBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHRhbmdvVHlwZTphbnksXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtc3VtbWFyeT9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZ0YW5nb1R5cGU9JHt0YW5nb1R5cGV9YFxyXG4gICAgKTtcclxuICB9XHJcbiAgYWNjdXJhY3lSZWFzb25zKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtYWNjdWFyY3ktaXNzdWVzP2NsaWVudElkPSR7Y2xpZW50fWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0T2xkQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9JnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9JmxpbWl0PSR7bGltaXR9Jm9mZnNldD0ke29mZnNldH0maXNFeHBvcnQ9JHtpc0V4cG9ydH0mc29ydEJ5PSR7c29ydEJ5fSZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YFxyXG4gICAgKTtcclxuICB9XHJcblxyXG5nZXRUaWNrZXRMaXN0QXBpKFxyXG4gIGNsaWVudDogYW55LFxyXG4gIGZyb21EYXRlOiBhbnksXHJcbiAgdG9EYXRlOiBhbnksXHJcbiAgc2VhcmNodmFsdWU6IGFueSxcclxuICBsaW1pdDogYW55LFxyXG4gIG9mZnNldDogYW55LFxyXG4gIGlzRXhwb3J0OiBhbnksXHJcbiAgc29ydEJ5OiBhbnksXHJcbiAgc29ydE9yZGVyOiBhbnksXHJcbiAgdGFuZ29UeXBlOiBhbnksXHJcbiAgcGVybWlzc2lvblR5cGU/OiBzdHJpbmcgfCBudWxsLFxyXG4gIGZpbHRlcnM/OiB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogYW55W107XHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiBhbnkgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlBcHByb3ZlcjogYW55IHwgbnVsbDtcclxuICAgIGZpbHRlckJ5VGFuZ286IGFueSB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk6IGFueVtdO1xyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeTogYW55W107XHJcbiAgfVxyXG4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIGxldCB1cmwgPVxyXG4gICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/YCArXHJcbiAgICBgY2xpZW50SWQ9JHtjbGllbnR9YCArXHJcbiAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICBgJnRvRGF0ZT0ke3RvRGF0ZX1gICtcclxuICAgIGAmc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX1gICtcclxuICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgIGAmb2Zmc2V0PSR7b2Zmc2V0fWAgK1xyXG4gICAgYCZpc0V4cG9ydD0ke2lzRXhwb3J0fWAgK1xyXG4gICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICBgJnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gICtcclxuICAgIGAmdGFuZ29UeXBlPSR7dGFuZ29UeXBlfWA7XHJcblxyXG4gIGlmIChwZXJtaXNzaW9uVHlwZSkge1xyXG4gICAgdXJsICs9IGAmcGVybWlzc2lvblR5cGU9JHtwZXJtaXNzaW9uVHlwZX1gO1xyXG4gIH1cclxuXHJcbiAgaWYgKGZpbHRlcnMpIHtcclxuICAgIC8vIGFycmF5IHBhcmFtcyDigJMgc2VuZCBhcyBjb21tYS1zZXBhcmF0ZWRcclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5U3RhdHVzPy5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlTdGF0dXM9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVN0YXR1cy5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlZEJ5Py5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlSZXZpZXdlZEJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5Py5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsZXRlckJ5QXBwcm92ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbGV0ZXJCeUFwcHJvdmVkQnkuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0cmluZyBwYXJhbXMg4oCTIEpTT04gc3RyaW5naWZpZWQgYWNjdXJhY3lcclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlSZXZpZXdlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlBcHByb3Zlcikge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeUFwcHJvdmVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlBcHByb3Zlcil9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVRhbmdvKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5VGFuZ289JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVRhbmdvKX1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKTtcclxufVxyXG5cclxuXHJcbiAgZ2V0VGlja2V0TGlzdEV4cG9ydE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5nZXRUaWNrZXRMaXN0RXhwb3J0QXBpKFxyXG4gIGNsaWVudDogYW55LFxyXG4gIGZyb21EYXRlOiBhbnksXHJcbiAgdG9EYXRlOiBhbnksXHJcbiAgc2VhcmNodmFsdWU6IGFueSxcclxuICBsaW1pdDogYW55LFxyXG4gIG9mZnNldDogYW55LFxyXG4gIGlzRXhwb3J0OiBhbnksXHJcbiAgc29ydEJ5OiBhbnksXHJcbiAgc29ydE9yZGVyOiBhbnksXHJcbiAgdGFuZ29UeXBlOiBhbnksXHJcbiAgcGVybWlzc2lvblR5cGU/OiBzdHJpbmcgfCBudWxsLFxyXG4gIGZpbHRlcnM/OiB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1cz86IHN0cmluZ1tdO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeUFwcHJvdmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5VGFuZ28/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlSZXZpZXdlZEJ5Pzogc3RyaW5nW107XHJcbiAgICBmaWxldGVyQnlBcHByb3ZlZEJ5Pzogc3RyaW5nW107XHJcbiAgfVxyXG4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIGxldCB1cmwgPVxyXG4gICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/YCArXHJcbiAgICBgY2xpZW50SWQ9JHtjbGllbnR9YCArXHJcbiAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICBgJnRvRGF0ZT0ke3RvRGF0ZX1gICtcclxuICAgIGAmc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX1gICtcclxuICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgIGAmb2Zmc2V0PSR7b2Zmc2V0fWAgK1xyXG4gICAgYCZpc0V4cG9ydD0ke2lzRXhwb3J0fWAgK1xyXG4gICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICBgJnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gICtcclxuICAgIGAmdGFuZ29UeXBlPSR7dGFuZ29UeXBlfWA7XHJcblxyXG4gIGlmIChwZXJtaXNzaW9uVHlwZSkge1xyXG4gICAgdXJsICs9IGAmcGVybWlzc2lvblR5cGU9JHtwZXJtaXNzaW9uVHlwZX1gO1xyXG4gIH1cclxuXHJcbiAgaWYgKGZpbHRlcnMpIHtcclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5U3RhdHVzPy5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlTdGF0dXM9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVN0YXR1cy5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlZEJ5Py5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlSZXZpZXdlZEJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlSZXZpZXdlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5Py5sZW5ndGgpIHtcclxuICAgICAgdXJsICs9IGAmZmlsZXRlckJ5QXBwcm92ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbGV0ZXJCeUFwcHJvdmVkQnkuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlSZXZpZXdlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlBcHByb3Zlcikge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeUFwcHJvdmVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlBcHByb3Zlcil9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVRhbmdvKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5VGFuZ289JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVRhbmdvKX1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3Qgb3B0aW9ucyA9IGlzRXhwb3J0XHJcbiAgICA/IHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIGFzICdqc29uJyB9XHJcbiAgICA6IHt9O1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIG9wdGlvbnMpO1xyXG59XHJcblxyXG5cclxuICBnZXRUaWNrZXRzQXBpKFxyXG4gICAgc3RvcmU6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHJldm9wc1R5cGU6IGFueSxcclxuICAgIHN0YXR1czogYW55LFxyXG4gICAgYWN0aW9uOiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGxpbWl0OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldChcInN0b3JlSWRcIiwgc3RvcmUpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpXHJcbiAgICAgIC5zZXQoXCJvZmZzZXRcIiwgb2Zmc2V0KVxyXG4gICAgICAuc2V0KFwibGltaXRcIiwgbGltaXQpO1xyXG4gICAgaWYgKHJldm9wc1R5cGUpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInJldm9wc1R5cGVcIiwgcmV2b3BzVHlwZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzdGF0dXNcIiwgc3RhdHVzKTtcclxuICAgIH1cclxuICAgIGlmIChhY3Rpb24pIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImFjdGlvblwiLCBhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldHNOZXdBcGkodGlja2V0SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJ0aWNrZXRJZFwiLCB0aWNrZXRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGlja2V0c2AsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFnZ2VkU3RvcmVzQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2hWYWx1ZTogYW55LFxyXG4gICAgY2x1c3RlcnM6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnQpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpOyAvLyBBZGQgc2VhcmNoVmFsdWUgYXMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBwcm92aWRlZFxyXG4gICAgLy8gT25seSBhZGQgJ2NsdXN0ZXJzJyBpZiBpdCdzIG5vdCBudWxsLCB1bmRlZmluZWQsIG9yIGFuIGVtcHR5IGFycmF5L3N0cmluZ1xyXG4gICAgaWYgKHNlYXJjaFZhbHVlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzZWFyY2hWYWx1ZVwiLCBzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImNsdXN0ZXJzXCIsIGNsdXN0ZXJzKTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0T3JkZXIpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInNvcnRPcmRlclwiLCBzb3J0T3JkZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRhZ2dlZC1zdG9yZXNgLCB7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUZW1wU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRlbXAtc3RhdHVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcGVuVGlja2V0TGlzdEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L29wZW4tdGlja2V0LWxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVRpY2tldFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtdGlja2V0LXN0YXR1c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0Q3JlYXRlVGlja2V0TGlzdEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS10aWNrZXRgLCBkYXRhKTtcclxufVxyXG5DcmVhdGVpbnRlcm5hbFRpY2tldEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS1pbnRlcm5hbHRpY2tldGAsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXZpZXdlckFwaShjbGllbnRJZDogYW55LHR5cGU6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImNsaWVudElkXCIsIGNsaWVudElkKVxyXG4gICAgICAuc2V0KFwidHlwZVwiLHR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vcmV2aWV3ZXItbGlzdGAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0QXNzaWduQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vYXNzaWduLXRpY2tldGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TXVsdGlDbG9zZVRpY2tldEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9tdWx0aS1jbG9zZS10aWNrZXRzYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFR5cGVGdW5jdGlvbihjbGllbnRJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImNsaWVudElkXCIsIGNsaWVudElkKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtZm9vdGZhbGwtZGlyZWN0b3J5LWNvbmZpZ2AsIHsgcGFyYW1zIH0pO1xyXG5cclxuICAgIFxyXG4gIH1cclxuICBwcml2YXRlIGZvb3RmYWxsRGF0YTogYW55O1xyXG5cclxuICBzZXRGb290ZmFsbERhdGEoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmZvb3RmYWxsRGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBnZXRGb290ZmFsbERhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb290ZmFsbERhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==