@dotglitch/ngx-common 1.1.26 → 1.1.28

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.
@@ -230,9 +230,9 @@ export class FilemanagerComponent {
230
230
  let path = file.path + file.name;
231
231
  if (file.kind == "directory" && !path.endsWith('/'))
232
232
  path += "/";
233
- const url = this.config.apiSettings.deleteEntryUrlTemplate
234
- ? this.config.apiSettings.deleteEntryUrlTemplate(path)
235
- : this.config.apiSettings.deleteEntryUrl;
233
+ const url = this.config.apiSettings.downloadEntryUrlTemplate
234
+ ? this.config.apiSettings.downloadEntryUrlTemplate(path)
235
+ : this.config.apiSettings.downloadEntryUrl;
236
236
  // window.open(target);
237
237
  var link = document.createElement("a");
238
238
  link.download = file.name;
@@ -314,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
314
314
  }], filesSelect: [{
315
315
  type: Output
316
316
  }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQTRKN0IsTUFB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRUYWJHcm91cCwgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0RHJhd2VyQ29udGFpbmVyLCBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBBbmd1bGFyU3BsaXRNb2R1bGUgfSBmcm9tICdhbmd1bGFyLXNwbGl0JztcblxuaW1wb3J0IHsgRmlsZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtZ3JpZC9maWxlLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVTb3J0aW5nLCBOR1hfV0VCX0NPTVBPTkVOVFNfQ09ORklHLCBOZ3hXZWJDb21wb25lbnRzQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWNvblJlc29sdmVyIH0gZnJvbSAnLi9pY29uLXJlc29sdmVyJztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlLCBOR1hfTEFaWV9MT0FERVJfQ09ORklHIH0gZnJvbSAnLi4vbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGZXRjaCB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgdWxpZCB9IGZyb20gJ3VsaWR4JztcblxuLy8gVE9ETzpcbi8qKlxuICogTXVsdGlwbGUgbXVzaWMgLyB2aWRlbyAvIGltYWdlIGZpbGVzIHNlbGVjdGVkIHR1cm5zIGludG8gYSBwbGF5bGlzdFxuICogRHJhZ2dpbmcgbXVzaWMgLyB2aWRlbyAvIGltYWdlIHF1ZXVlcyB0aGUgZmlsZShzKVxuICogQ2FuIHNhdmUgYW5kIGVkaXQgYSBsaXN0IG9mIGZpbGVzIGFzIHBsYXlsaXN0XG4gKiBDYW4gXCJsb29wXCIgXCJyYW5kb21pemVcIlxuICovXG5cbmV4cG9ydCB0eXBlIERpcmVjdG9yeURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJkaXJlY3RvcnlcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nXG4gICAgY29udGVudHM6IHtcbiAgICAgICAgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdLFxuICAgICAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXVxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRmlsZURlc2NyaXB0b3IgPSB7XG4gICAga2luZDogXCJmaWxlXCIsXG4gICAgc3RhdHM6IHtcbiAgICAgICAgc2l6ZTogbnVtYmVyO1xuICAgICAgICAvLyBTaXplIGZvciB6aXBwZWQgZmlsZVxuICAgICAgICBjb21wcmVzc2VkU2l6ZT86IG51bWJlcixcbiAgICAgICAgYXRpbWVNczogbnVtYmVyO1xuICAgICAgICBtdGltZU1zOiBudW1iZXI7XG4gICAgICAgIGN0aW1lTXM6IG51bWJlcjtcbiAgICAgICAgYmlydGh0aW1lTXM6IG51bWJlcjtcbiAgICB9LFxuICAgIHBhdGg6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBleHQ6IHN0cmluZyxcbiAgICAvLyBDb21tZW50IGZvciBlbnRyaWVzIGluIGEgemlwIGZpbGUuXG4gICAgY29tbWVudD86IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgRlNEZXNjcmlwdG9yID0gRGlyZWN0b3J5RGVzY3JpcHRvciB8IEZpbGVEZXNjcmlwdG9yO1xuXG5leHBvcnQgdHlwZSBGaWxlVmlld1RhYiA9IHtcbiAgICBpZDogc3RyaW5nLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjoge1xuICAgICAgICBpZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgfVtdLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBzZWxlY3Rpb246IEZTRGVzY3JpcHRvcltdLFxuICAgIHZpZXdNb2RlOiBcImdyaWRcIiB8IFwibGlzdFwiLFxuICAgIGhpc3RvcnlJbmRleDogbnVtYmVyLFxuICAgIGhpc3Rvcnk6IHN0cmluZ1tdLFxuICAgIHNpZGViYXJJdGVtczogRlNEZXNjcmlwdG9yW10sXG4gICAgc29ydE9yZGVyOiBGaWxlU29ydGluZ1xufVxuXG4vLyBUT0RPOiByZXBsYWNlIGh0dHAgY29uZmlnc1xudHlwZSBIdHRwQ29uZmlndXJhdGlvbiA9IChcbiAgICB7IHVybDogc3RyaW5nIH0gfFxuICAgIHsgdXJsVGVtcGxhdGU6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyB9XG4pICYge1xuICAgIG1ldGhvZD86IFwiZ2V0XCIgfCBcInB1dFwiIHwgXCJwb3N0XCIgfCBcInBhdGNoXCIgfCBcImRlbGV0ZVwiLFxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG59XG5cbmV4cG9ydCB0eXBlIE5neEZpbGVNYW5hZ2VyQ29uZmlndXJhdGlvbiA9IFBhcnRpYWw8e1xuICAgIC8qKlxuICAgICAqIEluaXRpYWwgcGF0aFxuICAgICAqL1xuICAgIHBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSByb290IHBhdGggKHdpbGwgYXBwZWFyIGFzICcvJykuXG4gICAgICogRGVmYXVsdHMgdG8gJy8nLlxuICAgICAqXG4gICAgICogVXNlciBjYW5ub3QgdmlldyBvdXRzaWRlIG9mIHRoaXMgcGF0aC5cbiAgICAgKiAgIChOb3QgdG8gYmUgdXNlZCBhcyBhIHNlY3VyaXR5IG1lYXN1cmUhKVxuICAgICAqL1xuICAgIGNocm9vdFBhdGg6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFJlc3RyaWN0IHVzZXJzIHRvIG9ubHkgbmF2aWdhdGUgYXJvdW5kIHRvIHN1YnBhdGhzIG9mIHRoZSBzcGVjaWZpZWQgYHBhdGhgXG4gICAgICovXG4gICAgbmF2aWdhdGVPbmx5VG9EZXNjZW5kYW50czogYm9vbGVhbixcbiAgICBzaG93QnJlYWRjcnVtYjogYm9vbGVhbixcbiAgICBzaG93VHJlZXZpZXc6IGJvb2xlYW4sXG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBcInJvb3RcIiBwYXRoIGAvYFxuICAgICAqIERlZmF1bHRzIHRvIFwiU3RvcmFnZVwiXG4gICAgICovXG4gICAgcm9vdE5hbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIHN0b3JlZCBpbiBoaXN0b3J5LlxuICAgICAqL1xuICAgIG1heEhpc3RvcnlMZW5ndGg6IG51bWJlcixcblxuICAgIGFwaVNldHRpbmdzOiB7XG4gICAgICAgIGxpc3RFbnRyaWVzVXJsPzogc3RyaW5nLFxuICAgICAgICBsaXN0RW50cmllc1VybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICBkb3dubG9hZEVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIHVwbG9hZEVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICB1cGxvYWRFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBkZWxldGVFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgZGVsZXRlRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgcmVuYW1lRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIHJlbmFtZUVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZURpcmVjdG9yeVVybD86IHN0cmluZyxcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdGhhdCBpbWFnZXMgYXJlIGxvYWRlZCBmcm9tLlxuICAgICAqIERlZmF1bHQgdmFsdWUgYC9hc3NldHMvZG90Z2xpdGNoL3dlYmNvbXBvbmVudHMvYFxuICAgICAqL1xuICAgIGFzc2V0UGF0aDogc3RyaW5nLFxuICAgIHNpZGViYXJMb2NhdGlvblN0cmF0ZWd5OiBcImtub3duXCIgfCBcImN1cnJlbnREaXJlY3RvcnlcIixcblxuICAgIGljb25SZXNvbHZlcjogKGZpbGU6IEZTRGVzY3JpcHRvcikgPT4gc3RyaW5nLFxuXG4gICAgaW1hZ2VTaXplOiBcIm5vcm1hbFwiIHwgXCJzbWFsbFwiIHwgXCJodWdlXCIsXG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIHNlbGVjdGlvbk1vZGU6IFwic2luZ2xlXCIgfCBcIm11bHRpcGxlXCIsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGRldGVybWluZXMgaWYgdGhlIGZpbGVtYW5hZ2VyIHNob3dzIHNlbGVjdGVkIGVudHJpZXNcbiAgICAgKlxuICAgICAqIElmIHNldCB0byBgZm9jdXNGaWxlc2AsIGZpbGUgcGF0aHMgdGhhdCBtYXRjaCBmcm9tIHRoZSBwcm92aWRlZCBgZm9jdXNlZEZpbGVzYFxuICAgICAqIHdpbGwgYmUgaGlnaGxpZ2h0ZWQsIGFuZCBjYW4gYmUgc2VsZWN0ZWQgLyBkZXNlbGVjdGVkLlxuICAgICAqL1xuICAgIG1vZGU6IFwiZm9jdXNGaWxlc1wiIHwgXCJub3JtYWxcIixcbiAgICBmb2N1c2VkRmlsZXM6IHN0cmluZ1tdXG59PlxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1maWxlbWFuYWdlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlbWFuYWdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgQW5ndWxhclNwbGl0TW9kdWxlLFxuICAgICAgICBGaWxlR3JpZENvbXBvbmVudCxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgVHJlZVZpZXdDb21wb25lbnRcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRmlsZW1hbmFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RhYkdyb3VwJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xuICAgIEBWaWV3Q2hpbGRyZW4oRmlsZUdyaWRDb21wb25lbnQpIGZpbGVHcmlkczogUXVlcnlMaXN0PEZpbGVHcmlkQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKFRyZWVWaWV3Q29tcG9uZW50KSB0cmVlVmlldzogVHJlZVZpZXdDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZChUb29sYmFyQ29tcG9uZW50KSB0b29sYmFyOiBUb29sYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKSBkcmF3ZXI6IE1hdERyYXdlckNvbnRhaW5lcjtcblxuICAgIEBJbnB1dCgpIGNvbmZpZzogTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBhcGlTZXR0aW5nczoge1xuICAgICAgICAgICAgbGlzdEVudHJpZXNVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIHVwbG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkb3dubG9hZEVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBkZWxldGVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2ZvbGRlcmAsXG4gICAgICAgICAgICByZW5hbWVFbnRyeVVybDogYC9hcGkvZmlsZXN5c3RlbS9yZW5hbWVgXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQElucHV0KCkgZ3JpZFNpemU6IFwic21hbGxcIiB8IFwibm9ybWFsXCIgfCBcImxhcmdlXCIgPSBcIm5vcm1hbFwiO1xuICAgIEBJbnB1dCgpIG1vZGU6IFwiZ3JpZFwiIHwgXCJsaXN0XCI7XG4gICAgQElucHV0KCkgY29udGV4dFRhZ3M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG5cbiAgICBASW5wdXQoKSB2YWx1ZTogRlNEZXNjcmlwdG9yW10gPSBbXTtcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuXG4gICAgZ3JpZFZhbHVlczogRlNEZXNjcmlwdG9yW11bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBmb2N1c2VkIGZpbGVzIGNoYW5nZS5cbiAgICAgKiBPbmx5IGF2YWlsYWJsZSBpbiBgZm9jdXNGaWxlc2AgbW9kZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZm9jdXNlZEZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIHVwbG9hZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYSBmaWxlIGlzIGRvd25sb2FkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVEb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZVJlbmFtZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZUNvcHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGZpbGVQYXN0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBmaWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZmlsZURibENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRGVzY3JpcHRvcj4oKTtcbiAgICBAT3V0cHV0KCkgZm9sZGVyU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3RvcnlEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmb2xkZXJEYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RGlyZWN0b3J5RGVzY3JpcHRvcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb25zIGNoYW5nZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZXNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEZTRGVzY3JpcHRvcltdPigpO1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gYW55IHNlbGVjdGlvbiBjaGFuZ2VzLCBzaW5nbGUgb3IgbXVsdGlwbGUgZmlsZXMuXG4gICAgICovXG4gICAgLy8gQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBzaG93SGlkZGVuRmlsZXMgPSBmYWxzZTtcbiAgICBzaG93U2lkZWJhciA9IHRydWU7XG4gICAgc2lkZWJhck92ZXJsYXkgPSBmYWxzZTtcbiAgICB3aWR0aCA9IDA7XG5cbiAgICBpc0hvbWVBbmNlc3RvciA9IGZhbHNlO1xuXG4gICAgY3VycmVudFRhYjogRmlsZVZpZXdUYWIgPSB7fSBhcyBhbnk7XG4gICAgZ2V0IGN1cnJlbnRGaWxlR3JpZCgpIHsgcmV0dXJuIHRoaXMuZmlsZUdyaWRzLmdldCh0aGlzLnRhYkluZGV4KSB9XG4gICAgdGFiSW5kZXggPSAwO1xuICAgIHRhYnM6IEZpbGVWaWV3VGFiW10gPSBbXTtcblxuICAgIGljb25SZXNvbHZlcjogSWNvblJlc29sdmVyO1xuXG4gICAgY29uc3RydWN0b3IgKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5HWF9XRUJfQ09NUE9ORU5UU19DT05GSUcpIHJlYWRvbmx5IGxpYkNvbmZpZzogTmd4V2ViQ29tcG9uZW50c0NvbmZpZyA9IHt9LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZmV0Y2g6IEZldGNoXG4gICAgKSB7XG4gICAgICAgIGxhenlMb2FkZXIucmVnaXN0ZXJDb21wb25lbnQoe1xuICAgICAgICAgICAgaWQ6IFwiZm9sZGVyLXJlbmFtZVwiLFxuICAgICAgICAgICAgZ3JvdXA6IFwiQGRvdGdsaXRjaC9uZ3gtd2ViLWNvbXBvbmVudHNcIixcbiAgICAgICAgICAgIGxvYWQ6ICgpID0+IGltcG9ydCgnLi9mb2xkZXItcmVuYW1lL2ZvbGRlci1yZW5hbWUuY29tcG9uZW50JylcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLmljb25SZXNvbHZlciA9IG5ldyBJY29uUmVzb2x2ZXIobGliQ29uZmlnLmFzc2V0UGF0aCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFRhYih0aGlzLmNvbmZpZy5wYXRoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiID0gdGhpcy50YWJzWzBdO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vblJlc2l6ZSgpLCAyNTApO1xuICAgIH1cblxuICAgIG9uVHJlZVZpZXdMb2FkQ2hpbGRyZW4oe2l0ZW0sIGNifSkge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5saXN0RW50cmllc1VybFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGUoaXRlbS5wYXRoICsgaXRlbS5uYW1lKVxuICAgICAgICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5saXN0RW50cmllc1VybFxuXG4gICAgICAgIHRoaXMuZmV0Y2gucG9zdCh1cmwsIHsgcGF0aDogaXRlbS5wYXRoICsgaXRlbS5uYW1lLCBzaG93SGlkZGVuOiB0aGlzLnNob3dIaWRkZW5GaWxlcyB9KVxuICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcnM6IERpcmVjdG9yeURlc2NyaXB0b3JbXSA9IGRhdGEuZGlycztcbiAgICAgICAgICAgICAgICBjYihkaXJzKTtcbiAgICAgICAgICAgIH0pXG4gICAgfVxuXG4gICAgaW5pdFRhYihwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50YWJzLnB1c2godGhpcy5jdXJyZW50VGFiID0ge1xuICAgICAgICAgICAgaWQ6IHVsaWQoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFRhYkxhYmVsKHBhdGgpLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogdGhpcy5jYWxjQnJlYWRjcnVtYihwYXRoKSxcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzZWxlY3Rpb246IFtdLFxuICAgICAgICAgICAgdmlld01vZGU6IHRoaXMubW9kZSB8fCAnZ3JpZCcsXG4gICAgICAgICAgICBoaXN0b3J5SW5kZXg6IDAsXG4gICAgICAgICAgICBoaXN0b3J5OiBbXSxcbiAgICAgICAgICAgIHNpZGViYXJJdGVtczogW10sXG4gICAgICAgICAgICBzb3J0T3JkZXI6ICdhLXonXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjbG9zZVRhYih0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRoaXMudGFicy5zcGxpY2UodGhpcy50YWJzLmZpbmRJbmRleCh0ID0+IHQuaWQgPT0gdGFiLmlkKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY0JyZWFkY3J1bWIocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShcIiMvXCIsICcvJyk7XG5cbiAgICAgICAgLy8gSWYgd2UncmUgYWN0aW5nIGxpa2Ugd2UncmUgaW4gYSBjaGFuZ2VkIHJvb3QsIHdlIHdpcGUgb3V0XG4gICAgICAgIC8vIGJyZWFkY3J1bWJzIGJlbG93IHRoZSByb290XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMuY29uZmlnLmNocm9vdFBhdGgsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgdGhpcy5jb25maWcuY2hyb290UGF0aCk7XG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogKHRoaXMuY29uZmlnLmNocm9vdFBhdGggKyAocGF0aCB8fCAnLycpKS5yZXBsYWNlKC9cXC8rL2csICcvJyksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwYXJ0cy5zbGljZSgwLCBpICsgMSkuam9pbignLycpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBhdGggfHwgJy8nLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcCB8fCBcIlwiXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CcmVhZGNydW1iQ2xpY2soY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGNydW1iLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGFiLmJyZWFkY3J1bWIgPSB0aGlzLmNhbGNCcmVhZGNydW1iKGNydW1iLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiUGF0aENoYW5nZSh0YWI6IEZpbGVWaWV3VGFiKSB7XG4gICAgICAgIHRhYi5sYWJlbCA9IHRoaXMuZ2V0VGFiTGFiZWwodGFiLnBhdGgpO1xuICAgICAgICB0YWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIodGFiLnBhdGgpO1xuXG4gICAgICAgIHRhYi5oaXN0b3J5SW5kZXgrKztcbiAgICAgICAgdGFiLmhpc3RvcnkucHVzaCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5oaXN0b3J5LnNwbGljZSh0eXBlb2YgdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA9PSAnbnVtYmVyJyA/IHRoaXMuY29uZmlnLm1heEhpc3RvcnlMZW5ndGggOiA1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld1NlbGVjdChpdGVtOiBGU0Rlc2NyaXB0b3IpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFiLnBhdGggPSBpdGVtLnBhdGggKyBpdGVtLm5hbWU7XG4gICAgfVxuXG4gICAgb25UYWJMb2FkRmlsZXModGFiOiBGaWxlVmlld1RhYiwgZmlsZXM6IEZTRGVzY3JpcHRvcltdKSB7XG4gICAgICAgIGlmICh0YWIuc2lkZWJhckl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gZmlsZXMuZmlsdGVyKGYgPT4gZi5raW5kID09IFwiZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW1zID0gdGFiLnNpZGViYXJJdGVtcztcbiAgICAgICAgY29uc3QgZGlySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoaSA9PiB0YWIucGF0aD8uc3RhcnRzV2l0aChpLnBhdGgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQgPSByZWN1cnNlKGN1cnJlbnRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRhcmdldClcbiAgICAgICAgICAgIHRhcmdldFsnX2NoaWxkcmVuJ10gPSBkaXJJdGVtcztcblxuICAgICAgICB0YWIuc2lkZWJhckl0ZW1zID0gY3VycmVudEl0ZW1zO1xuICAgIH1cblxuICAgIG9uR3JpZFZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5ncmlkVmFsdWVzLmZsYXQoMSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gcGF0aD8uc3BsaXQoJy8nKS5maWx0ZXIocCA9PiBwKS5wb3AoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblJlc2l6ZSgpIHtcbiAgICAgICAgLy8gVHJpZ2dlciByZS1jYWxjdWxhdGlvbiBvZiB0aGUgdmlld1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5yZXNpemUoKSk7XG5cbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBib3VuZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy53aWR0aCA9IGJvdW5kcy53aWR0aDtcblxuICAgICAgICAvLyBJZiB0aGUgdmlldyBhcmVhIGlzIGxlc3MgdGhhbiA2NTBweCB3aWRlLCB1c2Ugb3ZlcmxheSB0aGUgc2lkZWJhciBwYW5lbFxuICAgICAgICB0aGlzLnNpZGViYXJPdmVybGF5ID0gYm91bmRzLndpZHRoIDwgNjUwO1xuICAgICAgICBpZiAodGhpcy5zaWRlYmFyT3ZlcmxheSA9PSBmYWxzZSAmJiBbLi4udGhpcy5kcmF3ZXIuX2RyYXdlcnNdWzBdLm9wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplRW5kKCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50VGFiLnZpZXdNb2RlID09IFwiZ3JpZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFiLnNlbGVjdGlvblxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5maWxlR3JpZHMuZm9yRWFjaChnID0+IGcuY2xlYXJTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgLy8gVGVsbCB0aGUgY2hpbGQgZ3JpZCB0byByZWZyZXNoIGl0J3Mgc29ydGluZ1xuICAgIHJlZnJlc2hTb3J0aW5nKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5zb3J0KCkpO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5sb2FkRm9sZGVyKCkpO1xuICAgIH1cblxuICAgIGdldEZpbGVEYXRhKGZpbGU6IEZpbGVEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGUoZmlsZS5wYXRoICsgZmlsZS5uYW1lKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5yZW5hbWVFbnRyeVVybDtcblxuICAgICAgICB1cmwgPSAodXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPycpICsgYGRpcj0ke2ZpbGUucGF0aH0mZmlsZT0ke2ZpbGUubmFtZX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxuXG4gICAgZG93bmxvYWRGaWxlKGZpbGU6IEZTRGVzY3JpcHRvcikge1xuICAgICAgICBsZXQgcGF0aCA9IGZpbGUucGF0aCArIGZpbGUubmFtZTtcbiAgICAgICAgaWYgKGZpbGUua2luZCA9PSBcImRpcmVjdG9yeVwiICYmICFwYXRoLmVuZHNXaXRoKCcvJykpXG4gICAgICAgICAgICBwYXRoICs9IFwiL1wiO1xuXG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmRlbGV0ZUVudHJ5VXJsVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZGVsZXRlRW50cnlVcmxUZW1wbGF0ZShwYXRoKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5kZWxldGVFbnRyeVVybDtcblxuICAgICAgICAvLyB3aW5kb3cub3Blbih0YXJnZXQpO1xuICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgICBsaW5rLmRvd25sb2FkID0gZmlsZS5uYW1lO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgICAgbGluay5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5maWxlRG93bmxvYWQubmV4dChmaWxlKTtcbiAgICB9XG59XG4iLCI8YXBwLXRvb2xiYXJcbiAgICBbY3VycmVudFRhYl09XCJjdXJyZW50VGFiXCJcbiAgICBbKHNob3dIaWRkZW5GaWxlcyldPVwic2hvd0hpZGRlbkZpbGVzXCJcbiAgICBbKHNob3dTaWRlYmFyKV09XCJzaG93U2lkZWJhclwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtzaG93QmFyZU1pbmltdW1dPVwid2lkdGggPCA1MDAgJiYgY29uZmlnLnNob3dCcmVhZGNydW1iICE9IGZhbHNlXCJcbiAgICAob25CcmVhZGNydW1iQ2xpY2spPVwib25CcmVhZGNydW1iQ2xpY2soJGV2ZW50KVwiXG4vPlxuXG48bWF0LWRyYXdlci1jb250YWluZXI+XG4gICAgPG1hdC1kcmF3ZXIgI2RyYXdlciBtb2RlPVwib3ZlclwiPlxuICAgICAgICA8YXBwLXRvb2xiYXJcbiAgICAgICAgICAgICpuZ0lmPVwid2lkdGggPCA1MDAgJiYgY29uZmlnLnNob3dCcmVhZGNydW1iICE9IGZhbHNlXCJcbiAgICAgICAgICAgIFtjdXJyZW50VGFiXT1cImN1cnJlbnRUYWJcIlxuICAgICAgICAgICAgWyhzaG93SGlkZGVuRmlsZXMpXT1cInNob3dIaWRkZW5GaWxlc1wiXG4gICAgICAgICAgICBbKHNob3dTaWRlYmFyKV09XCJzaG93U2lkZWJhclwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgICBbZHJhd2VyTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIChvbkJyZWFkY3J1bWJDbGljayk9XCJvbkJyZWFkY3J1bWJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGFwcC10cmVlLXZpZXdcbiAgICAgICAgICAgIFtkYXRhXT1cImN1cnJlbnRUYWIuc2lkZWJhckl0ZW1zXCJcbiAgICAgICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25UcmVlVmlld0xvYWRDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblRyZWVWaWV3U2VsZWN0KCRldmVudClcIlxuICAgICAgICAvPlxuICAgIDwvbWF0LWRyYXdlcj5cbiAgICA8bWF0LWRyYXdlci1jb250ZW50PlxuICAgICAgICA8YXMtc3BsaXQgZGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiIFtndXR0ZXJTaXplXT1cInNpZGViYXJPdmVybGF5ID8gMCA6IDJcIiBbdW5pdF09XCIncGl4ZWwnXCIgKGRyYWdFbmQpPVwib25SZXNpemVFbmQoKVwiPlxuICAgICAgICAgICAgPGFzLXNwbGl0LWFyZWFcbiAgICAgICAgICAgICAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpbGVtYW5hZ2VyLXNpZGViYXItYmFja2dyb3VuZC1jb2xvciwgIzJjMmMyYylcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIjIxNVwiXG4gICAgICAgICAgICAgICAgW21pblNpemVdPVwiMjE1XCJcbiAgICAgICAgICAgICAgICBbbWF4U2l6ZV09XCJ3aWR0aC80XCJcbiAgICAgICAgICAgICAgICBbdmlzaWJsZV09XCIhc2lkZWJhck92ZXJsYXkgJiYgY29uZmlnLnNob3dUcmVldmlldyAhPSBmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaWRlYmFyT3ZlcmxheSAmJiBjb25maWcuc2hvd1RyZWV2aWV3ICE9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRUYWIuc2VsZWN0aW9uID0gW11cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC10cmVlLXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImN1cnJlbnRUYWIuc2lkZWJhckl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2FkQ2hpbGRyZW4pPVwib25UcmVlVmlld0xvYWRDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRyZWVWaWV3U2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICAgICAgPGFzLXNwbGl0LWFyZWEgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWxlbWFuYWdlci1iYWNrZ3JvdW5kLWNvbG9yLCAjMjcyNzI3KTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLXRhYi1oZWlnaHRdPVwidGFicy5sZW5ndGggPiAxID8gJzM2cHgnIDogJzAnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwICN0YWJHcm91cCAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwiY3VycmVudFRhYiA9IHRhYnNbJGV2ZW50LmluZGV4XVwiIFsoc2VsZWN0ZWRJbmRleCldPVwidGFiSW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3RhYi5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VUYWIodGFiKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZmlsZS1ncmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlld01vZGVdPVwidGFiLnZpZXdNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJdPVwidGFiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncmlkU2l6ZV09XCJncmlkU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydE9yZGVyXT1cInRhYi5zb3J0T3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3Rpb24pXT1cInRhYi5zZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhwYXRoKV09XCJ0YWIucGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGF0aENoYW5nZSk9XCJvblRhYlBhdGhDaGFuZ2UodGFiKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJncmlkVmFsdWVzW2ldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkdyaWRWYWx1ZUNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2FkRmlsZXMpPVwib25UYWJMb2FkRmlsZXModGFiLCAkZXZlbnQpXCJcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGVTZWxlY3QpPVwiZmlsZVNlbGVjdC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGVEYmxDbGljayk9XCJmaWxlRGJsQ2xpY2submV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2xkZXJTZWxlY3QpPVwiZm9sZGVyU2VsZWN0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9sZGVyRGJsQ2xpY2spPVwiZm9sZGVyRGJsQ2xpY2submV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FzLXNwbGl0LWFyZWE+XG4gICAgICAgIDwvYXMtc3BsaXQ+XG4gICAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuXG4iXX0=
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZW1hbmFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb21wb25lbnRzL2ZpbGVtYW5hZ2VyL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9maWxlbWFuYWdlci9maWxlbWFuYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQWUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQWUseUJBQXlCLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQTRKN0IsTUFB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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFRhYkdyb3VwLCBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXREcmF3ZXJDb250YWluZXIsIE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IEFuZ3VsYXJTcGxpdE1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3BsaXQnO1xuXG5pbXBvcnQgeyBGaWxlR3JpZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1ncmlkL2ZpbGUtZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3L3RyZWUtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVNvcnRpbmcsIE5HWF9XRUJfQ09NUE9ORU5UU19DT05GSUcsIE5neFdlYkNvbXBvbmVudHNDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBJY29uUmVzb2x2ZXIgfSBmcm9tICcuL2ljb24tcmVzb2x2ZXInO1xuaW1wb3J0IHsgTGF6eUxvYWRlclNlcnZpY2UsIE5HWF9MQVpZX0xPQURFUl9DT05GSUcgfSBmcm9tICcuLi9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZldGNoIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyB1bGlkIH0gZnJvbSAndWxpZHgnO1xuXG4vLyBUT0RPOlxuLyoqXG4gKiBNdWx0aXBsZSBtdXNpYyAvIHZpZGVvIC8gaW1hZ2UgZmlsZXMgc2VsZWN0ZWQgdHVybnMgaW50byBhIHBsYXlsaXN0XG4gKiBEcmFnZ2luZyBtdXNpYyAvIHZpZGVvIC8gaW1hZ2UgcXVldWVzIHRoZSBmaWxlKHMpXG4gKiBDYW4gc2F2ZSBhbmQgZWRpdCBhIGxpc3Qgb2YgZmlsZXMgYXMgcGxheWxpc3RcbiAqIENhbiBcImxvb3BcIiBcInJhbmRvbWl6ZVwiXG4gKi9cblxuZXhwb3J0IHR5cGUgRGlyZWN0b3J5RGVzY3JpcHRvciA9IHtcbiAgICBraW5kOiBcImRpcmVjdG9yeVwiLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBjb250ZW50czoge1xuICAgICAgICBkaXJzOiBEaXJlY3RvcnlEZXNjcmlwdG9yW10sXG4gICAgICAgIGZpbGVzOiBGaWxlRGVzY3JpcHRvcltdXG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBGaWxlRGVzY3JpcHRvciA9IHtcbiAgICBraW5kOiBcImZpbGVcIixcbiAgICBzdGF0czoge1xuICAgICAgICBzaXplOiBudW1iZXI7XG4gICAgICAgIC8vIFNpemUgZm9yIHppcHBlZCBmaWxlXG4gICAgICAgIGNvbXByZXNzZWRTaXplPzogbnVtYmVyLFxuICAgICAgICBhdGltZU1zOiBudW1iZXI7XG4gICAgICAgIG10aW1lTXM6IG51bWJlcjtcbiAgICAgICAgY3RpbWVNczogbnVtYmVyO1xuICAgICAgICBiaXJ0aHRpbWVNczogbnVtYmVyO1xuICAgIH0sXG4gICAgcGF0aDogc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGV4dDogc3RyaW5nLFxuICAgIC8vIENvbW1lbnQgZm9yIGVudHJpZXMgaW4gYSB6aXAgZmlsZS5cbiAgICBjb21tZW50Pzogc3RyaW5nXG59O1xuXG5leHBvcnQgdHlwZSBGU0Rlc2NyaXB0b3IgPSBEaXJlY3RvcnlEZXNjcmlwdG9yIHwgRmlsZURlc2NyaXB0b3I7XG5cbmV4cG9ydCB0eXBlIEZpbGVWaWV3VGFiID0ge1xuICAgIGlkOiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBicmVhZGNydW1iOiB7XG4gICAgICAgIGlkOiBzdHJpbmcsXG4gICAgICAgIGxhYmVsOiBzdHJpbmdcbiAgICB9W10sXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHNlbGVjdGlvbjogRlNEZXNjcmlwdG9yW10sXG4gICAgdmlld01vZGU6IFwiZ3JpZFwiIHwgXCJsaXN0XCIsXG4gICAgaGlzdG9yeUluZGV4OiBudW1iZXIsXG4gICAgaGlzdG9yeTogc3RyaW5nW10sXG4gICAgc2lkZWJhckl0ZW1zOiBGU0Rlc2NyaXB0b3JbXSxcbiAgICBzb3J0T3JkZXI6IEZpbGVTb3J0aW5nXG59XG5cbi8vIFRPRE86IHJlcGxhY2UgaHR0cCBjb25maWdzXG50eXBlIEh0dHBDb25maWd1cmF0aW9uID0gKFxuICAgIHsgdXJsOiBzdHJpbmcgfSB8XG4gICAgeyB1cmxUZW1wbGF0ZTogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nIH1cbikgJiB7XG4gICAgbWV0aG9kPzogXCJnZXRcIiB8IFwicHV0XCIgfCBcInBvc3RcIiB8IFwicGF0Y2hcIiB8IFwiZGVsZXRlXCIsXG4gICAgaGVhZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbn1cblxuZXhwb3J0IHR5cGUgTmd4RmlsZU1hbmFnZXJDb25maWd1cmF0aW9uID0gUGFydGlhbDx7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBwYXRoXG4gICAgICovXG4gICAgcGF0aDogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIHJvb3QgcGF0aCAod2lsbCBhcHBlYXIgYXMgJy8nKS5cbiAgICAgKiBEZWZhdWx0cyB0byAnLycuXG4gICAgICpcbiAgICAgKiBVc2VyIGNhbm5vdCB2aWV3IG91dHNpZGUgb2YgdGhpcyBwYXRoLlxuICAgICAqICAgKE5vdCB0byBiZSB1c2VkIGFzIGEgc2VjdXJpdHkgbWVhc3VyZSEpXG4gICAgICovXG4gICAgY2hyb290UGF0aDogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogUmVzdHJpY3QgdXNlcnMgdG8gb25seSBuYXZpZ2F0ZSBhcm91bmQgdG8gc3VicGF0aHMgb2YgdGhlIHNwZWNpZmllZCBgcGF0aGBcbiAgICAgKi9cbiAgICBuYXZpZ2F0ZU9ubHlUb0Rlc2NlbmRhbnRzOiBib29sZWFuLFxuICAgIHNob3dCcmVhZGNydW1iOiBib29sZWFuLFxuICAgIHNob3dUcmVldmlldzogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIFwicm9vdFwiIHBhdGggYC9gXG4gICAgICogRGVmYXVsdHMgdG8gXCJTdG9yYWdlXCJcbiAgICAgKi9cbiAgICByb290TmFtZTogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gYmUgc3RvcmVkIGluIGhpc3RvcnkuXG4gICAgICovXG4gICAgbWF4SGlzdG9yeUxlbmd0aDogbnVtYmVyLFxuXG4gICAgYXBpU2V0dGluZ3M6IHtcbiAgICAgICAgbGlzdEVudHJpZXNVcmw/OiBzdHJpbmcsXG4gICAgICAgIGxpc3RFbnRyaWVzVXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGRvd25sb2FkRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIGRvd25sb2FkRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgdXBsb2FkRW50cnlVcmw/OiBzdHJpbmcsXG4gICAgICAgIHVwbG9hZEVudHJ5VXJsVGVtcGxhdGU/OiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICAgICAgIGRlbGV0ZUVudHJ5VXJsPzogc3RyaW5nLFxuICAgICAgICBkZWxldGVFbnRyeVVybFRlbXBsYXRlPzogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICByZW5hbWVFbnRyeVVybD86IHN0cmluZyxcbiAgICAgICAgcmVuYW1lRW50cnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgY3JlYXRlRGlyZWN0b3J5VXJsPzogc3RyaW5nLFxuICAgICAgICBjcmVhdGVEaXJlY3RvcnlVcmxUZW1wbGF0ZT86IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZ1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCB0aGF0IGltYWdlcyBhcmUgbG9hZGVkIGZyb20uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBgL2Fzc2V0cy9kb3RnbGl0Y2gvd2ViY29tcG9uZW50cy9gXG4gICAgICovXG4gICAgYXNzZXRQYXRoOiBzdHJpbmcsXG4gICAgc2lkZWJhckxvY2F0aW9uU3RyYXRlZ3k6IFwia25vd25cIiB8IFwiY3VycmVudERpcmVjdG9yeVwiLFxuXG4gICAgaWNvblJlc29sdmVyOiAoZmlsZTogRlNEZXNjcmlwdG9yKSA9PiBzdHJpbmcsXG5cbiAgICBpbWFnZVNpemU6IFwibm9ybWFsXCIgfCBcInNtYWxsXCIgfCBcImh1Z2VcIixcblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgc2VsZWN0aW9uTW9kZTogXCJzaW5nbGVcIiB8IFwibXVsdGlwbGVcIixcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZGV0ZXJtaW5lcyBpZiB0aGUgZmlsZW1hbmFnZXIgc2hvd3Mgc2VsZWN0ZWQgZW50cmllc1xuICAgICAqXG4gICAgICogSWYgc2V0IHRvIGBmb2N1c0ZpbGVzYCwgZmlsZSBwYXRocyB0aGF0IG1hdGNoIGZyb20gdGhlIHByb3ZpZGVkIGBmb2N1c2VkRmlsZXNgXG4gICAgICogd2lsbCBiZSBoaWdobGlnaHRlZCwgYW5kIGNhbiBiZSBzZWxlY3RlZCAvIGRlc2VsZWN0ZWQuXG4gICAgICovXG4gICAgbW9kZTogXCJmb2N1c0ZpbGVzXCIgfCBcIm5vcm1hbFwiLFxuICAgIGZvY3VzZWRGaWxlczogc3RyaW5nW11cbn0+XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWZpbGVtYW5hZ2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGVtYW5hZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBBbmd1bGFyU3BsaXRNb2R1bGUsXG4gICAgICAgIEZpbGVHcmlkQ29tcG9uZW50LFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgICAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBUcmVlVmlld0NvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlbWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgndGFiR3JvdXAnKSB0YWJHcm91cDogTWF0VGFiR3JvdXA7XG4gICAgQFZpZXdDaGlsZHJlbihGaWxlR3JpZENvbXBvbmVudCkgZmlsZUdyaWRzOiBRdWVyeUxpc3Q8RmlsZUdyaWRDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoVHJlZVZpZXdDb21wb25lbnQpIHRyZWVWaWV3OiBUcmVlVmlld0NvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKFRvb2xiYXJDb21wb25lbnQpIHRvb2xiYXI6IFRvb2xiYXJDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZChNYXREcmF3ZXJDb250YWluZXIpIGRyYXdlcjogTWF0RHJhd2VyQ29udGFpbmVyO1xuXG4gICAgQElucHV0KCkgY29uZmlnOiBOZ3hGaWxlTWFuYWdlckNvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGFwaVNldHRpbmdzOiB7XG4gICAgICAgICAgICBsaXN0RW50cmllc1VybDogYC9hcGkvZmlsZXN5c3RlbS9gLFxuICAgICAgICAgICAgdXBsb2FkRW50cnlVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIGRvd25sb2FkRW50cnlVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vYCxcbiAgICAgICAgICAgIGRlbGV0ZUVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL2AsXG4gICAgICAgICAgICBjcmVhdGVEaXJlY3RvcnlVcmw6IGAvYXBpL2ZpbGVzeXN0ZW0vZm9sZGVyYCxcbiAgICAgICAgICAgIHJlbmFtZUVudHJ5VXJsOiBgL2FwaS9maWxlc3lzdGVtL3JlbmFtZWBcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBASW5wdXQoKSBncmlkU2l6ZTogXCJzbWFsbFwiIHwgXCJub3JtYWxcIiB8IFwibGFyZ2VcIiA9IFwibm9ybWFsXCI7XG4gICAgQElucHV0KCkgbW9kZTogXCJncmlkXCIgfCBcImxpc3RcIjtcbiAgICBASW5wdXQoKSBjb250ZXh0VGFnczoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG5cblxuICAgIEBJbnB1dCgpIHZhbHVlOiBGU0Rlc2NyaXB0b3JbXSA9IFtdO1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG5cbiAgICBncmlkVmFsdWVzOiBGU0Rlc2NyaXB0b3JbXVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIGZvY3VzZWQgZmlsZXMgY2hhbmdlLlxuICAgICAqIE9ubHkgYXZhaWxhYmxlIGluIGBmb2N1c0ZpbGVzYCBtb2RlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmb2N1c2VkRmlsZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBhIGZpbGUgaXMgdXBsb2FkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIGZpbGVVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBhIGZpbGUgaXMgZG93bmxvYWRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgZmlsZURvd25sb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWxlUmVuYW1lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWxlRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBmaWxlQ29weSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmlsZVBhc3RlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmaWxlRGJsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVEZXNjcmlwdG9yPigpO1xuICAgIEBPdXRwdXQoKSBmb2xkZXJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERpcmVjdG9yeURlc2NyaXB0b3I+KCk7XG4gICAgQE91dHB1dCgpIGZvbGRlckRibENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxEaXJlY3RvcnlEZXNjcmlwdG9yPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtdWx0aXBsZSBmaWxlIHNlbGVjdGlvbnMgY2hhbmdlLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBmaWxlc1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RlNEZXNjcmlwdG9yW10+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBhbnkgc2VsZWN0aW9uIGNoYW5nZXMsIHNpbmdsZSBvciBtdWx0aXBsZSBmaWxlcy5cbiAgICAgKi9cbiAgICAvLyBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGU0Rlc2NyaXB0b3JbXT4oKTtcblxuICAgIHNob3dIaWRkZW5GaWxlcyA9IGZhbHNlO1xuICAgIHNob3dTaWRlYmFyID0gdHJ1ZTtcbiAgICBzaWRlYmFyT3ZlcmxheSA9IGZhbHNlO1xuICAgIHdpZHRoID0gMDtcblxuICAgIGlzSG9tZUFuY2VzdG9yID0gZmFsc2U7XG5cbiAgICBjdXJyZW50VGFiOiBGaWxlVmlld1RhYiA9IHt9IGFzIGFueTtcbiAgICBnZXQgY3VycmVudEZpbGVHcmlkKCkgeyByZXR1cm4gdGhpcy5maWxlR3JpZHMuZ2V0KHRoaXMudGFiSW5kZXgpIH1cbiAgICB0YWJJbmRleCA9IDA7XG4gICAgdGFiczogRmlsZVZpZXdUYWJbXSA9IFtdO1xuXG4gICAgaWNvblJlc29sdmVyOiBJY29uUmVzb2x2ZXI7XG5cbiAgICBjb25zdHJ1Y3RvciAoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdYX1dFQl9DT01QT05FTlRTX0NPTkZJRykgcmVhZG9ubHkgbGliQ29uZmlnOiBOZ3hXZWJDb21wb25lbnRzQ29uZmlnID0ge30sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGF6eUxvYWRlcjogTGF6eUxvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBmZXRjaDogRmV0Y2hcbiAgICApIHtcbiAgICAgICAgbGF6eUxvYWRlci5yZWdpc3RlckNvbXBvbmVudCh7XG4gICAgICAgICAgICBpZDogXCJmb2xkZXItcmVuYW1lXCIsXG4gICAgICAgICAgICBncm91cDogXCJAZG90Z2xpdGNoL25neC13ZWItY29tcG9uZW50c1wiLFxuICAgICAgICAgICAgbG9hZDogKCkgPT4gaW1wb3J0KCcuL2ZvbGRlci1yZW5hbWUvZm9sZGVyLXJlbmFtZS5jb21wb25lbnQnKVxuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuaWNvblJlc29sdmVyID0gbmV3IEljb25SZXNvbHZlcihsaWJDb25maWcuYXNzZXRQYXRoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0VGFiKHRoaXMuY29uZmlnLnBhdGgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIgPSB0aGlzLnRhYnNbMF07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUmVzaXplKCksIDI1MCk7XG4gICAgfVxuXG4gICAgb25UcmVlVmlld0xvYWRDaGlsZHJlbih7aXRlbSwgY2J9KSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MubGlzdEVudHJpZXNVcmxUZW1wbGF0ZShpdGVtLnBhdGggKyBpdGVtLm5hbWUpXG4gICAgICAgICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmxpc3RFbnRyaWVzVXJsXG5cbiAgICAgICAgdGhpcy5mZXRjaC5wb3N0KHVybCwgeyBwYXRoOiBpdGVtLnBhdGggKyBpdGVtLm5hbWUsIHNob3dIaWRkZW46IHRoaXMuc2hvd0hpZGRlbkZpbGVzIH0pXG4gICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyczogRGlyZWN0b3J5RGVzY3JpcHRvcltdID0gZGF0YS5kaXJzO1xuICAgICAgICAgICAgICAgIGNiKGRpcnMpO1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBpbml0VGFiKHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhYnMucHVzaCh0aGlzLmN1cnJlbnRUYWIgPSB7XG4gICAgICAgICAgICBpZDogdWxpZCgpLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0VGFiTGFiZWwocGF0aCksXG4gICAgICAgICAgICBicmVhZGNydW1iOiB0aGlzLmNhbGNCcmVhZGNydW1iKHBhdGgpLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHNlbGVjdGlvbjogW10sXG4gICAgICAgICAgICB2aWV3TW9kZTogdGhpcy5tb2RlIHx8ICdncmlkJyxcbiAgICAgICAgICAgIGhpc3RvcnlJbmRleDogMCxcbiAgICAgICAgICAgIGhpc3Rvcnk6IFtdLFxuICAgICAgICAgICAgc2lkZWJhckl0ZW1zOiBbXSxcbiAgICAgICAgICAgIHNvcnRPcmRlcjogJ2EteidcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgIH1cblxuICAgIGNsb3NlVGFiKHRhYjogRmlsZVZpZXdUYWIpIHtcbiAgICAgICAgdGhpcy50YWJzLnNwbGljZSh0aGlzLnRhYnMuZmluZEluZGV4KHQgPT4gdC5pZCA9PSB0YWIuaWQpLCAxKTtcbiAgICB9XG5cbiAgICBjYWxjQnJlYWRjcnVtYihwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFwYXRoKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKFwiIy9cIiwgJy8nKTtcblxuICAgICAgICAvLyBJZiB3ZSdyZSBhY3RpbmcgbGlrZSB3ZSdyZSBpbiBhIGNoYW5nZWQgcm9vdCwgd2Ugd2lwZSBvdXRcbiAgICAgICAgLy8gYnJlYWRjcnVtYnMgYmVsb3cgdGhlIHJvb3RcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNocm9vdFBhdGgpIHtcbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UodGhpcy5jb25maWcuY2hyb290UGF0aCwgJycpO1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC8vLCB0aGlzLmNvbmZpZy5jaHJvb3RQYXRoKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJ0cy5tYXAoKHAsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gcGFydHMuc2xpY2UoMCwgaSArIDEpLmpvaW4oJy8nKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAodGhpcy5jb25maWcuY2hyb290UGF0aCArIChwYXRoIHx8ICcvJykpLnJlcGxhY2UoL1xcLysvZywgJy8nKSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAgfHwgXCJcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKChwLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBhcnRzLnNsaWNlKDAsIGkgKyAxKS5qb2luKCcvJyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpZDogcGF0aCB8fCAnLycsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwIHx8IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJyZWFkY3J1bWJDbGljayhjcnVtYikge1xuICAgICAgICBpZiAoY3J1bWIuaWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRhYi5wYXRoID0gY3J1bWIuaWQ7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWIuYnJlYWRjcnVtYiA9IHRoaXMuY2FsY0JyZWFkY3J1bWIoY3J1bWIuaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UYWJQYXRoQ2hhbmdlKHRhYjogRmlsZVZpZXdUYWIpIHtcbiAgICAgICAgdGFiLmxhYmVsID0gdGhpcy5nZXRUYWJMYWJlbCh0YWIucGF0aCk7XG4gICAgICAgIHRhYi5icmVhZGNydW1iID0gdGhpcy5jYWxjQnJlYWRjcnVtYih0YWIucGF0aCk7XG5cbiAgICAgICAgdGFiLmhpc3RvcnlJbmRleCsrO1xuICAgICAgICB0YWIuaGlzdG9yeS5wdXNoKHRhYi5wYXRoKTtcbiAgICAgICAgdGFiLmhpc3Rvcnkuc3BsaWNlKHR5cGVvZiB0aGlzLmNvbmZpZy5tYXhIaXN0b3J5TGVuZ3RoID09ICdudW1iZXInID8gdGhpcy5jb25maWcubWF4SGlzdG9yeUxlbmd0aCA6IDUwKTtcbiAgICB9XG5cbiAgICBvblRyZWVWaWV3U2VsZWN0KGl0ZW06IEZTRGVzY3JpcHRvcikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWIucGF0aCA9IGl0ZW0ucGF0aCArIGl0ZW0ubmFtZTtcbiAgICB9XG5cbiAgICBvblRhYkxvYWRGaWxlcyh0YWI6IEZpbGVWaWV3VGFiLCBmaWxlczogRlNEZXNjcmlwdG9yW10pIHtcbiAgICAgICAgaWYgKHRhYi5zaWRlYmFySXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRhYi5zaWRlYmFySXRlbXMgPSBmaWxlcy5maWx0ZXIoZiA9PiBmLmtpbmQgPT0gXCJkaXJlY3RvcnlcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50SXRlbXMgPSB0YWIuc2lkZWJhckl0ZW1zO1xuICAgICAgICBjb25zdCBkaXJJdGVtcyA9IGZpbGVzLmZpbHRlcihmID0+IGYua2luZCA9PSBcImRpcmVjdG9yeVwiKTtcblxuICAgICAgICBmdW5jdGlvbiByZWN1cnNlKGl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuZmluZChpID0+IHRhYi5wYXRoPy5zdGFydHNXaXRoKGkucGF0aCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHJlY3Vyc2UoY3VycmVudEl0ZW1zKTtcblxuICAgICAgICBpZiAodGFyZ2V0KVxuICAgICAgICAgICAgdGFyZ2V0WydfY2hpbGRyZW4nXSA9IGRpckl0ZW1zO1xuXG4gICAgICAgIHRhYi5zaWRlYmFySXRlbXMgPSBjdXJyZW50SXRlbXM7XG4gICAgfVxuXG4gICAgb25HcmlkVmFsdWVDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdyaWRWYWx1ZXMuZmxhdCgxKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpXG4gICAgfVxuXG4gICAgZ2V0VGFiTGFiZWwocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBwYXRoPy5zcGxpdCgnLycpLmZpbHRlcihwID0+IHApLnBvcCgpO1xuICAgIH1cblxuICAgIGFzeW5jIG9uUmVzaXplKCkge1xuICAgICAgICAvLyBUcmlnZ2VyIHJlLWNhbGN1bGF0aW9uIG9mIHRoZSB2aWV3XG4gICAgICAgIHRoaXMuZmlsZUdyaWRzLmZvckVhY2goZyA9PiBnLnJlc2l6ZSgpKTtcblxuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB0aGlzLndpZHRoID0gYm91bmRzLndpZHRoO1xuXG4gICAgICAgIC8vIElmIHRoZSB2aWV3IGFyZWEgaXMgbGVzcyB0aGFuIDY1MHB4IHdpZGUsIHVzZSBvdmVybGF5IHRoZSBzaWRlYmFyIHBhbmVsXG4gICAgICAgIHRoaXMuc2lkZWJhck92ZXJsYXkgPSBib3VuZHMud2lkdGggPCA2NTA7XG4gICAgICAgIGlmICh0aGlzLnNpZGViYXJPdmVybGF5ID09IGZhbHNlICYmIFsuLi50aGlzLmRyYXdlci5fZHJhd2Vyc11bMF0ub3BlbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb25SZXNpemVFbmQoKSB7XG4gICAgICAgIHRoaXMub25SZXNpemUoKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25SZXNpemUoKSwgMjUwKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUYWIudmlld01vZGUgPT0gXCJncmlkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRUYWIuc2VsZWN0aW9uXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLmZpbGVHcmlkcy5mb3JFYWNoKGcgPT4gZy5jbGVhclNlbGVjdGlvbigpKTtcbiAgICB9XG5cbiAgICAvLyBUZWxsIHRoZSBjaGlsZCBncmlkIHRvIHJlZnJlc2ggaXQncyBzb3J0aW5nXG4gICAgcmVmcmVzaFNvcnRpbmcoKSB7XG4gICAgICAgIHRoaXMuZmlsZUdyaWRzLmZvckVhY2goZyA9PiBnLnNvcnQoKSk7XG4gICAgfVxuXG4gICAgcmVmcmVzaERhdGEoKSB7XG4gICAgICAgIHRoaXMuZmlsZUdyaWRzLmZvckVhY2goZyA9PiBnLmxvYWRGb2xkZXIoKSk7XG4gICAgfVxuXG4gICAgZ2V0RmlsZURhdGEoZmlsZTogRmlsZURlc2NyaXB0b3IpIHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsVGVtcGxhdGVcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MucmVuYW1lRW50cnlVcmxUZW1wbGF0ZShmaWxlLnBhdGggKyBmaWxlLm5hbWUpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLnJlbmFtZUVudHJ5VXJsO1xuXG4gICAgICAgIHVybCA9ICh1cmwuaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/JykgKyBgZGlyPSR7ZmlsZS5wYXRofSZmaWxlPSR7ZmlsZS5uYW1lfWA7XG5cbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG5cbiAgICBkb3dubG9hZEZpbGUoZmlsZTogRlNEZXNjcmlwdG9yKSB7XG4gICAgICAgIGxldCBwYXRoID0gZmlsZS5wYXRoICsgZmlsZS5uYW1lO1xuICAgICAgICBpZiAoZmlsZS5raW5kID09IFwiZGlyZWN0b3J5XCIgJiYgIXBhdGguZW5kc1dpdGgoJy8nKSlcbiAgICAgICAgICAgIHBhdGggKz0gXCIvXCI7XG5cbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5jb25maWcuYXBpU2V0dGluZ3MuZG93bmxvYWRFbnRyeVVybFRlbXBsYXRlXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmFwaVNldHRpbmdzLmRvd25sb2FkRW50cnlVcmxUZW1wbGF0ZShwYXRoKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZy5hcGlTZXR0aW5ncy5kb3dubG9hZEVudHJ5VXJsO1xuXG4gICAgICAgIC8vIHdpbmRvdy5vcGVuKHRhcmdldCk7XG4gICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlLm5hbWU7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICBsaW5rLnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmZpbGVEb3dubG9hZC5uZXh0KGZpbGUpO1xuICAgIH1cbn1cbiIsIjxhcHAtdG9vbGJhclxuICAgIFtjdXJyZW50VGFiXT1cImN1cnJlbnRUYWJcIlxuICAgIFsoc2hvd0hpZGRlbkZpbGVzKV09XCJzaG93SGlkZGVuRmlsZXNcIlxuICAgIFsoc2hvd1NpZGViYXIpXT1cInNob3dTaWRlYmFyXCJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgW3Nob3dCYXJlTWluaW11bV09XCJ3aWR0aCA8IDUwMCAmJiBjb25maWcuc2hvd0JyZWFkY3J1bWIgIT0gZmFsc2VcIlxuICAgIChvbkJyZWFkY3J1bWJDbGljayk9XCJvbkJyZWFkY3J1bWJDbGljaygkZXZlbnQpXCJcbi8+XG5cbjxtYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiAgICA8bWF0LWRyYXdlciAjZHJhd2VyIG1vZGU9XCJvdmVyXCI+XG4gICAgICAgIDxhcHAtdG9vbGJhclxuICAgICAgICAgICAgKm5nSWY9XCJ3aWR0aCA8IDUwMCAmJiBjb25maWcuc2hvd0JyZWFkY3J1bWIgIT0gZmFsc2VcIlxuICAgICAgICAgICAgW2N1cnJlbnRUYWJdPVwiY3VycmVudFRhYlwiXG4gICAgICAgICAgICBbKHNob3dIaWRkZW5GaWxlcyldPVwic2hvd0hpZGRlbkZpbGVzXCJcbiAgICAgICAgICAgIFsoc2hvd1NpZGViYXIpXT1cInNob3dTaWRlYmFyXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgICAgIFtkcmF3ZXJNb2RlXT1cInRydWVcIlxuICAgICAgICAgICAgKG9uQnJlYWRjcnVtYkNsaWNrKT1cIm9uQnJlYWRjcnVtYkNsaWNrKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8YXBwLXRyZWUtdmlld1xuICAgICAgICAgICAgW2RhdGFdPVwiY3VycmVudFRhYi5zaWRlYmFySXRlbXNcIlxuICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvblRyZWVWaWV3TG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVHJlZVZpZXdTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgPC9tYXQtZHJhd2VyPlxuICAgIDxtYXQtZHJhd2VyLWNvbnRlbnQ+XG4gICAgICAgIDxhcy1zcGxpdCBkaXJlY3Rpb249XCJob3Jpem9udGFsXCIgW2d1dHRlclNpemVdPVwic2lkZWJhck92ZXJsYXkgPyAwIDogMlwiIFt1bml0XT1cIidwaXhlbCdcIiAoZHJhZ0VuZCk9XCJvblJlc2l6ZUVuZCgpXCI+XG4gICAgICAgICAgICA8YXMtc3BsaXQtYXJlYVxuICAgICAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlsZW1hbmFnZXItc2lkZWJhci1iYWNrZ3JvdW5kLWNvbG9yLCAjMmMyYzJjKVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiMjE1XCJcbiAgICAgICAgICAgICAgICBbbWluU2l6ZV09XCIyMTVcIlxuICAgICAgICAgICAgICAgIFttYXhTaXplXT1cIndpZHRoLzRcIlxuICAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cIiFzaWRlYmFyT3ZlcmxheSAmJiBjb25maWcuc2hvd1RyZWV2aWV3ICE9IGZhbHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZWJhclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNpZGViYXJPdmVybGF5ICYmIGNvbmZpZy5zaG93VHJlZXZpZXcgIT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VycmVudFRhYi5zZWxlY3Rpb24gPSBbXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXRyZWUtdmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiY3VycmVudFRhYi5zaWRlYmFySXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvblRyZWVWaWV3TG9hZENoaWxkcmVuKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVHJlZVZpZXdTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FzLXNwbGl0LWFyZWE+XG4gICAgICAgICAgICA8YXMtc3BsaXQtYXJlYSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpbGVtYW5hZ2VyLWJhY2tncm91bmQtY29sb3IsICMyNzI3MjcpO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLi0tdGFiLWhlaWdodF09XCJ0YWJzLmxlbmd0aCA+IDEgPyAnMzZweCcgOiAnMCdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgI3RhYkdyb3VwIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJjdXJyZW50VGFiID0gdGFic1skZXZlbnQuaW5kZXhdXCIgWyhzZWxlY3RlZEluZGV4KV09XCJ0YWJJbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dGFiLmxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRhYih0YWIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1maWxlLWdyaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aWV3TW9kZV09XCJ0YWIudmlld01vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYl09XCJ0YWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWRTaXplXT1cImdyaWRTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0T3JkZXJdPVwidGFiLnNvcnRPcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGlvbildPVwidGFiLnNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHBhdGgpXT1cInRhYi5wYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXRoQ2hhbmdlKT1cIm9uVGFiUGF0aENoYW5nZSh0YWIpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cImdyaWRWYWx1ZXNbaV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uR3JpZFZhbHVlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWRGaWxlcyk9XCJvblRhYkxvYWRGaWxlcyh0YWIsICRldmVudClcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZVNlbGVjdCk9XCJmaWxlU2VsZWN0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZURibENsaWNrKT1cImZpbGVEYmxDbGljay5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvbGRlclNlbGVjdCk9XCJmb2xkZXJTZWxlY3QubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2xkZXJEYmxDbGljayk9XCJmb2xkZXJEYmxDbGljay5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXMtc3BsaXQtYXJlYT5cbiAgICAgICAgPC9hcy1zcGxpdD5cbiAgICA8L21hdC1kcmF3ZXItY29udGVudD5cbjwvbWF0LWRyYXdlci1jb250YWluZXI+XG5cbiJdfQ==
@@ -148,8 +148,9 @@ export class CommandPaletteService {
148
148
  data: {
149
149
  contextElement: document.activeElement
150
150
  },
151
+ panelClass: ['ngx-command-palette'],
152
+ backdropClass: ['ngx-command-palette'],
151
153
  restoreFocus: true,
152
- // autoFocus: false,
153
154
  role: 'dialog'
154
155
  });
155
156
  }
@@ -205,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
205
206
  providedIn: 'root'
206
207
  }]
207
208
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.LazyLoaderService }] });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2NvbW1hbmQtcGFsZXR0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7O0FBRWxHLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztBQWtKdEUsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNxQixNQUFpQixFQUNqQixVQUE2QjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTDFDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU92QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzdCLDREQUE0RDtZQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFekMsc0RBQXNEO2dCQUN0RCxrREFBa0Q7Z0JBQ2xELDZCQUE2QjtnQkFDN0IseURB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Q0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7OEdBcE9RLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRmxCLE1BQU07OzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBIb3N0TGlzdGVuZXIsIFR5cGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvbnNvbGVMb2dnZXIsIExvZ0ljb24gfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29tbWFuZC1wYWxldHRlL2NvbW1hbmQtcGFsZXR0ZS5jb21wb25lbnQnO1xuXG5jb25zdCB7IGxvZywgd2FybiwgZXJyIH0gPSBDb25zb2xlTG9nZ2VyKFwiQ29tbWFuZFBhbGV0dGVcIiwgXCIjMjE5NmYzXCIpO1xuXG50eXBlIEtleUNvZGUgPSBcIkJhY2tzcGFjZVwiIHwgXCJUYWJcIiB8IFwiRW50ZXJcIiB8IFwiU2hpZnRMZWZ0XCIgfCBcIlNoaWZ0UmlnaHRcIlxuICAgIHwgXCJDb250cm9sTGVmdFwiIHwgXCJDb250cm9sUmlnaHRcIiB8IFwiQWx0TGVmdFwiIHwgXCJBbHRSaWdodFwiIHwgXCJQYXVzZVwiIHwgXCJDYXBzTG9ja1wiXG4gICAgfCBcIkVzY2FwZVwiIHwgXCJTcGFjZVwiIHwgXCJQYWdlVXBcIiB8IFwiUGFnZURvd25cIiB8IFwiRW5kXCIgfCBcIkhvbWVcIiB8IFwiQXJyb3dMZWZ0XCJcbiAgICB8IFwiQXJyb3dVcFwiIHwgXCJBcnJvd1JpZ2h0XCIgfCBcIkFycm93RG93blwiIHwgXCJQcmludFNjcmVlblwiIHwgXCJJbnNlcnRcIiB8IFwiRGVsZXRlXCJcbiAgICB8IFwiTWV0YUxlZnRcIiB8IFwiTWV0YVJpZ2h0XCIgfCBcIkNvbnRleHRNZW51XCIgfCBcIk51bXBhZDBcIiB8IFwiTnVtcGFkMVwiIHwgXCJOdW1wYWQyXCJcbiAgICB8IFwiTnVtcGFkM1wiIHwgXCJOdW1wYWQ0XCIgfCBcIk51bXBhZDVcIiB8IFwiTnVtcGFkNlwiIHwgXCJOdW1wYWQ3XCIgfCBcIk51bXBhZDhcIlxuICAgIHwgXCJOdW1wYWQ5XCIgfCBcIk51bXBhZE11bHRpcGx5XCIgfCBcIk51bXBhZEFkZFwiIHwgXCJOdW1wYWRTdWJ0cmFjdFwiXG4gICAgfCBcIk51bXBhZERlY2ltYWxcIiB8IFwiTnVtcGFkRGl2aWRlXCJcbiAgICB8IFwiRjFcIiB8IFwiRjJcIiB8IFwiRjNcIiB8IFwiRjRcIiB8IFwiRjVcIiB8IFwiRjZcIiB8IFwiRjdcIiB8IFwiRjhcIiB8IFwiRjlcIiB8IFwiRjEwXCIgfCBcIkYxMVwiIHwgXCJGMTJcIlxuICAgIHwgXCJOdW1Mb2NrXCIgfCBcIlNjcm9sbExvY2tcIiB8IFwiU2VtaWNvbG9uXCIgfCBcIkVxdWFsXCIgfCBcIkNvbW1hXCIgfCBcIk1pbnVzXCJcbiAgICB8IFwiUGVyaW9kXCIgfCBcIlNsYXNoXCIgfCBcIkJhY2txdW90ZVwiIHwgXCJCcmFja2V0TGVmdFwiIHwgXCJCYWNrc2xhc2hcIlxuICAgIHwgXCJCcmFja2V0UmlnaHRcIiB8IFwiUXVvdGVcIiB8IFwiYmFja3NwYWNlXCIgfCBcInRhYlwiIHwgXCJlbnRlclwiIHwgXCJzaGlmdGxlZnRcIlxuICAgIHwgXCJzaGlmdHJpZ2h0XCIgfCBcImNvbnRyb2xsZWZ0XCIgfCBcImNvbnRyb2xyaWdodFwiIHwgXCJhbHRsZWZ0XCIgfCBcImFsdHJpZ2h0XCJcbiAgICB8IFwicGF1c2VcIiB8IFwiY2Fwc2xvY2tcIiB8IFwiZXNjYXBlXCIgfCBcInNwYWNlXCIgfCBcInBhZ2V1cFwiIHwgXCJwYWdlZG93blwiIHwgXCJlbmRcIlxuICAgIHwgXCJob21lXCIgfCBcImFycm93bGVmdFwiIHwgXCJhcnJvd3VwXCIgfCBcImFycm93cmlnaHRcIiB8IFwiYXJyb3dkb3duXCIgfCBcInByaW50c2NyZWVuXCJcbiAgICB8IFwiaW5zZXJ0XCIgfCBcImRlbGV0ZVwiIHwgXCJtZXRhbGVmdFwiIHwgXCJtZXRhcmlnaHRcIiB8IFwiY29udGV4dG1lbnVcIlxuICAgIHwgXCJudW1wYWQwXCIgfCBcIm51bXBhZDFcIiB8IFwibnVtcGFkMlwiIHwgXCJudW1wYWQzXCIgfCBcIm51bXBhZDRcIiB8IFwibnVtcGFkNVwiXG4gICAgfCBcIm51bXBhZDZcIiB8IFwibnVtcGFkN1wiIHwgXCJudW1wYWQ4XCIgfCBcIm51bXBhZDlcIiB8IFwibnVtcGFkbXVsdGlwbHlcIiB8IFwibnVtcGFkYWRkXCJcbiAgICB8IFwibnVtcGFkc3VidHJhY3RcIiB8IFwibnVtcGFkZGVjaW1hbFwiIHwgXCJudW1wYWRkaXZpZGVcIlxuICAgIHwgXCJmMVwiIHwgXCJmMlwiIHwgXCJmM1wiIHwgXCJmNFwiIHwgXCJmNVwiIHwgXCJmNlwiIHwgXCJmN1wiIHwgXCJmOFwiIHwgXCJmOVwiIHwgXCJmMTBcIiB8IFwiZjExXCIgfCBcImYxMlwiXG4gICAgfCBcIm51bWxvY2tcIiB8IFwic2Nyb2xsbG9ja1wiIHwgXCJzZW1pY29sb25cIiB8IFwiZXF1YWxcIiB8IFwiY29tbWFcIiB8IFwibWludXNcIiB8IFwicGVyaW9kXCJcbiAgICB8IFwic2xhc2hcIiB8IFwiYmFja3F1b3RlXCIgfCBcImJyYWNrZXRsZWZ0XCIgfCBcImJhY2tzbGFzaFwiIHwgXCJicmFja2V0cmlnaHRcIiB8IFwicXVvdGVcIlxuICAgIHwgXCJBXCIgfCBcIkJcIiB8IFwiQ1wiIHwgXCJEXCIgfCBcIkVcIiB8IFwiRlwiIHwgXCJHXCIgfCBcIkhcIiB8IFwiSVwiIHwgXCJKXCIgfCBcIktcIiB8IFwiTFwiIHwgXCJNXCJcbiAgICB8IFwiTlwiIHwgXCJPXCIgfCBcIlBcIiB8IFwiUVwiIHwgXCJSXCIgfCBcIlNcIiB8IFwiVFwiIHwgXCJVXCIgfCBcIlZcIiB8IFwiV1wiIHwgXCJYXCIgfCBcIllcIiB8IFwiWlwiXG4gICAgfCBcImFcIiB8IFwiYlwiIHwgXCJjXCIgfCBcImRcIiB8IFwiZVwiIHwgXCJmXCIgfCBcImdcIiB8IFwiaFwiIHwgXCJpXCIgfCBcImpcIiB8IFwia1wiIHwgXCJsXCIgfCBcIm1cIlxuICAgIHwgXCJuXCIgfCBcIm9cIiB8IFwicFwiIHwgXCJxXCIgfCBcInJcIiB8IFwic1wiIHwgXCJ0XCIgfCBcInVcIiB8IFwidlwiIHwgXCJ3XCIgfCBcInhcIiB8IFwieVwiIHwgXCJ6XCI7XG5cbi8vIGN0cmwrYWx0K21ldGErc2hpZnRcbnR5cGUgS2V5UHJlZml4ID1cbiAgICBgY3RybGAgfFxuICAgIGBjdHJsK2FsdGAgfFxuICAgIGBjdHJsK2FsdCtzaGlmdGAgfFxuICAgIGBjdHJsK2FsdCtzaGlmdCttZXRhYCB8XG4gICAgYGN0cmwrYWx0K21ldGFgIHxcbiAgICBgY3RybCtzaGlmdGAgfFxuICAgIGBjdHJsK3NoaWZ0K21ldGFgIHxcbiAgICBgY3RybCttZXRhYCB8XG4gICAgYGFsdGAgfFxuICAgIGBhbHQrc2hpZnRgIHxcbiAgICBgYWx0K3NoaWZ0K21ldGFgIHxcbiAgICBgYWx0K21ldGFgIHxcbiAgICBgc2hpZnRgIHxcbiAgICBgc2hpZnQrbWV0YWAgfFxuICAgIGBtZXRhYFxuXG5leHBvcnQgdHlwZSBLZXliaW5kRXZlbnQgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEtleWJpbmRDb2RlID0gYCR7S2V5UHJlZml4fSske0tleUNvZGV9YCB8IEtleUNvZGU7XG5cblxuXG5leHBvcnQgdHlwZSBDb21tYW5kQWN0aW9uPFQgPSBhbnk+ID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBub24tbW9kaWZpZXIga2V5KHMpIHRoYXQgbXVzdCBiZSBwcmVzc2VkIGZvciB0aGUgZXZlbnQgdG8gZmlyZS5cbiAgICAgKi9cbiAgICBzaG9ydGN1dEtleT86IEtleWJpbmRDb2RlIHwgS2V5YmluZENvZGVbXSxcblxuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0aGF0IGlzIGludm9rZWQgd2hlbiB0aGUga2V5Ym9hcmQgc2hvcnRjdXQgaXMgcHJlc3NlZCBvciB0aGUgaXRlbVxuICAgICAqIGlzIGFjdGl2YXRlZCBpbiB0aGUgR1VJIG1lbnVcbiAgICAgKiBJZiB0aGUgR1VJIG1lbnUgaXMgb3BlbiwgaXQgd2lsbCBzaG93IGEgc3Bpbm5lciBpZiB0aGUgYWN0aW9uIHJldHVybnMgYSBgUHJvbWlzZWBcbiAgICAgKi9cbiAgICBhY3Rpb24/OiAoZXZ0OiBLZXlib2FyZEV2ZW50LCBkYXRhPzogVCkgPT4gUHJvbWlzZTxhbnk+IHwgYW55LFxuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBhY3Rpb25cbiAgICAgKi9cbiAgICBkYXRhPzogVCxcblxuICAgIC8qKlxuICAgICAqIExhYmVsIGluIHRoZSBjb21tYW5kIHBhbGV0dGUgcG9wdXBcbiAgICAgKi9cbiAgICBsYWJlbD86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEhpbnQgdGhhdCBmb2xsb3dzIHRoZSBsYWJlbCwgc3VidGx5XG4gICAgICovXG4gICAgaGludD86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEljb24gZm9yIHRoZSBlbnRyeVxuICAgICAqIENhbiBiZSBhIG1hdC1pY29uXG4gICAgICogV2lsbCBiZSBhIG1hdC1pY29uIGlmIHRoZSBzdHJpbmcgaXMgc2ltcGxlXG4gICAgICogSWYgdGhlIHN0cmluZyBjb250YWlucyBhIHNsYXNoIG9yIGNvbG9uLCBpdCB3aWxsIGJlIGxvYWRlZCBhc1xuICAgICAqIGFuIGltYWdlIHNvdXJjZVxuICAgICAqL1xuICAgIGljb24/OiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBLZXl3b3JkcyB0aGF0IGNhbiBoZWxwIHBpY2sgdGhpcyBjb21tYW5kXG4gICAgICovXG4gICAga2V5d29yZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSxcblxuICAgIC8qKlxuICAgICAqIERlc2NyaXB0aW9uIGZvciB0aGUgcG9wdXBcbiAgICAgKiBXSVBcbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSByb290IGFuY2VzdG9yIGVsZW1lbnQgb2YgdGhlIGFjdGlvblxuICAgICAqIChUaGlzIGFsbG93cyBzY29waW5nIGNvbW1hbmRzIHRvIHNwZWNpZmljIEhUTUwgZWxlbWVudHMpXG4gICAgICogVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBldmVudCB0YXJnZXQgbXVzdCBiZSBhIGRlc2NlbmRhbnRcbiAgICAgKlxuICAgICAqIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBtYXRjaGluZyBkZXNjZW5kYW50cywgb25seVxuICAgICAqIHRoZSBmdXJ0aGVzdCBkZXNjZW5kYW50IHdpbGwgYmUgZmlyZWRcbiAgICAgKlxuICAgICAqIEZvciBjb21tYW5kIHNjb3BpbmcsIHdlIHJlYWQgdGhlIGRhdGEtbGFiZWwgYXR0cmlidXRlXG4gICAgICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzZXQgbGFiZWwgYW5kIGVsZW1lbnQgYXMgYW4gb2JqZWN0IGhlcmUuXG4gICAgICovXG4gICAgcm9vdEVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IHN0cmluZyB8IHtcbiAgICAgICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBzdHJpbmcsXG4gICAgICAgIGxhYmVsOiBzdHJpbmdcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIGZvciB0aGUgcm9vdC4gVXNlZCBmb3IgdGhlIFVJIGNvbnRyb2wgYW5kIGRlYnVnZ2luZy5cbiAgICAgKi9cbiAgICByb290TmFtZT86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2wgd2hldGhlciB0aGlzIGNvbW1hbmQgYWN0aW9uIGlzIHZpc2libGUgaW4gdGhlIHBvcHVwIGNvbW1hbmRcbiAgICAgKiBwYWxldHRlIEdVSS5cbiAgICAgKi9cbiAgICB2aXNpYmxlSW5MaXN0PzogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSBzZWxlY3RpbmcgYW4gaXRlbSB0byBzaG93IGEgbGlzdCBvZiBzdWItaXRlbXNcbiAgICAgKi9cbiAgICBzdWJNZW51PzogQ29tbWFuZEFjdGlvbjxUPltdIHwgKCgpID0+IFByb21pc2U8Q29tbWFuZEFjdGlvbjxUPltdPikgfCAoKCkgPT4gQ29tbWFuZEFjdGlvbjxUPltdKVxuXG59O1xuXG50eXBlIENvbW1hbmRCbG9jayA9IHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBhY3Rpb25zOiBDb21tYW5kQWN0aW9uW107XG59O1xuXG5leHBvcnQgdHlwZSBDb21tYW5kUGFsZXR0ZU9wdGlvbnMgPSB7XG4gICAga2V5YmluZDogS2V5YmluZENvZGVcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFsZXR0ZVNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBjb21tYW5kQmxvY2tzOiBDb21tYW5kQmxvY2tbXSA9IFtdO1xuICAgIHByaXZhdGUgaW50ZXJ2YWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsYXp5TG9hZGVyOiBMYXp5TG9hZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGV2dCkgPT4gdGhpcy5vbktleURvd24oZXZ0KSk7XG5cbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEdvIGJhY2t3YXJkcyBzaW5jZSB3ZSdyZSBzcGxpY2luZyBpdGVtcyBvdXQgb2YgdGhlIGFycmF5LlxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuY29tbWFuZEJsb2Nrcy5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbW1hbmRCbG9jayA9IHRoaXMuY29tbWFuZEJsb2Nrc1tpXTtcblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGluZGV4IGlzIHNvbWVob3cgbnVsbCwgcmlwIGl0IG91dCBvZlxuICAgICAgICAgICAgICAgIC8vIHRoZSBhcnJheSBhbmQgd2FpdCBmb3IgY2xlYW51cCB0byB0cmlnZ2VyIGFnYWluXG4gICAgICAgICAgICAgICAgLy8gZm9yIHRoZSByZXN0IG9mIHRoZSBhcnJheS5cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBDb3VsZCB0aGlzIGxlYWQgdG8gbGVha3Mgd2hlcmUgdGhpbmdzIGF0IHRoZSBlbmRcbiAgICAgICAgICAgICAgICAvLyBuZXZlciBnZXQgY2xlYW5lZD9cbiAgICAgICAgICAgICAgICBpZiAoY29tbWFuZEJsb2NrID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21tYW5kQmxvY2tzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50IGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBET00sIHdlIHdpbGxcbiAgICAgICAgICAgICAgICAvLyB0cmVhdCBpdCBhcyBoYXZpbmcgYmVlbiBwZXJtYW5lbnRseSByZW1vdmVkLlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IENvdWxkIHRoaXMgZXZlciBjYXVzZSB1bmludGVuZGVkIGNvbnNlcXVlbmNlcz9cbiAgICAgICAgICAgICAgICBpZiAoIWNvbW1hbmRCbG9jaz8uZWxlbWVudC5pc0Nvbm5lY3RlZClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21tYW5kQmxvY2tzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgNSAqIDYwICogMTAwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbW1hbmRCbG9ja3MoZWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRQYXRoOiBIVE1MRWxlbWVudFtdID0gW2VsZW1lbnRdO1xuICAgICAgICBsZXQgY3VycmVudFRhcmdldDogSFRNTEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBlbGVtZW50UGF0aC51bnNoaWZ0KGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQpO1xuICAgICAgICB9IHdoaWxlIChjdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQpO1xuXG4gICAgICAgIC8vIE9yZGVyZWQgbWF0Y2hpbmcgY29tbWFuZCBibG9ja3MsIGNsb3Nlc3QgZmlyc3RcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdDb21tYW5kQmxvY2tzOiBDb21tYW5kQmxvY2tbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudFBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRCbG9jayA9IHRoaXMuY29tbWFuZEJsb2Nrcy5maW5kKGNiID0+IGNiLmVsZW1lbnQgPT0gZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoY29tbWFuZEJsb2NrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hpbmdDb21tYW5kQmxvY2tzLnVuc2hpZnQoY29tbWFuZEJsb2NrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGluZ0NvbW1hbmRCbG9ja3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGtleWRvd24gZXZlbnRzXG4gICAgICpcbiAgICAgKiBJZiBhbiBldmVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIERPTSB0cmVlLCB3ZSBkb24ndCBuZWVkXG4gICAgICogdG8gZXhwbGljaXRseSByZW1vdmUgdGhlIGJpbmRpbmdzLCBhcyB0aGV5IHdpbGwgbmV2ZXIgZmlyZVxuICAgICAqXG4gICAgICogV2UgcGVyaW9kaWNhbGx5IGNoZWNrIGFuZCByZW1vdmUgdW5jb25uZWN0ZWQgY29tbWFuZCBibG9ja3NcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdDb21tYW5kQmxvY2tzID0gdGhpcy5nZXRDb21tYW5kQmxvY2tzKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICAgIC8vIFN0cmluZyBpbiBmb3JtYXQgYGN0cmwrYWx0K0ZgLCBgY3RybCtGYCBldGMuXG4gICAgICAgIGNvbnN0IGtleSA9IFtcbiAgICAgICAgICAgIGV2dC5jdHJsS2V5ID8gXCJjdHJsXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBldnQuYWx0S2V5ID8gXCJhbHRcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5zaGlmdEtleSA/IFwic2hpZnRcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5tZXRhS2V5ID8gXCJtZXRhXCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBldnQuY29kZS5zdGFydHNXaXRoKFwiS2V5XCIpID8gZXZ0LmtleSA6IGV2dC5jb2RlXG4gICAgICAgIF0uZmlsdGVyKGEgPT4gYSkuam9pbignKycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBjb21tYW5kQmxvY2sgb2YgbWF0Y2hpbmdDb21tYW5kQmxvY2tzKSB7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBjb21tYW5kQmxvY2suYWN0aW9ucy5maW5kKGEgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEuc2hvcnRjdXRLZXkpXG4gICAgICAgICAgICAgICAgICAgID8gYS5zaG9ydGN1dEtleS5pbmNsdWRlcyhrZXkgYXMgYW55KVxuICAgICAgICAgICAgICAgICAgICA6IGEuc2hvcnRjdXRLZXkgPT0ga2V5IGFzIGFueVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZUFjdGlvbihhY3Rpb24pO1xuXG4gICAgICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgYWN0aW9uIGFuZCBtb3ZlIG9uLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEtlZXAgY2hlY2tpbmcgZm9yIG1hdGNoaW5nIGFjdGlvbnNcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGV4ZWN1dGlvbiByZWFjaGVzIHRoaXMgcG9pbnQsIHRoZXJlIHdlcmUgbm8gbWF0Y2hpbmcgYWN0aW9ucyBvbiB0aGVcbiAgICAgICAgLy8gcGF0aCBvZiBlbGVtZW50cyB0aGF0IHdlcmUgcmVnaXN0ZXJlZC5cbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZENvbW1hbmQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGlvbjogQ29tbWFuZEFjdGlvbikge1xuICAgICAgICBjb25zdCBjb21tYW5kQmxvY2sgPSB0aGlzLmNvbW1hbmRCbG9ja3MuZmluZChiID0+IGIuZWxlbWVudCA9PSBlbGVtZW50KSA/PyAoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2IgPSB7IGVsZW1lbnQsIGFjdGlvbnM6IFtdIH07XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRCbG9ja3MucHVzaChjYik7XG4gICAgICAgICAgICByZXR1cm4gY2I7XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgLy8gVGhpcyBpcyBsaWtlbHkgYSBkdXBsaWNhdGUgZW50cnlcbiAgICAgICAgaWYgKGNvbW1hbmRCbG9jay5hY3Rpb25zLmZpbmQoYSA9PiBhLnNob3J0Y3V0S2V5ICYmIGEuc2hvcnRjdXRLZXkgPT0gYWN0aW9uLnNob3J0Y3V0S2V5KSkge1xuICAgICAgICAgICAgd2FybihgSW5zZXJ0aW5nIGR1cGxpY2F0ZSBhY3Rpb24gb24gZWxlbWVudGAsIHsgZWxlbWVudCwgYWN0aW9uIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbG9nKExvZ0ljb24uY2lyY2xlX2JsdWUsIGBJbnNlcnRlZCBhY3Rpb25gLCBhY3Rpb24pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBNYWtlIHRoZSBzaG9ydGN1dCBrZXlzIGxvd2VyY2FzZSBzbyBjYXNlIHNlbnNpdGl2aXR5IGRvZXNuJ3Qgc2NhbHAgc29tZW9uZVxuICAgICAgICBpZiAoYWN0aW9uLnNob3J0Y3V0S2V5KSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24uc2hvcnRjdXRLZXkpKVxuICAgICAgICAgICAgICAgIGFjdGlvbi5zaG9ydGN1dEtleSA9IGFjdGlvbi5zaG9ydGN1dEtleS5tYXAoayA9PiBrLnRvTG93ZXJDYXNlKCkpIGFzIGFueTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBhY3Rpb24uc2hvcnRjdXRLZXkgPSBhY3Rpb24uc2hvcnRjdXRLZXkudG9Mb3dlckNhc2UoKSBhcyBhbnk7XG4gICAgICAgIH1cblxuICAgICAgICBjb21tYW5kQmxvY2suYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVDb21tYW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhY3Rpb246IENvbW1hbmRBY3Rpb24gfCBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzLmZpbmQoYiA9PiBiLmVsZW1lbnQgPT0gZWxlbWVudCkgPz8geyBlbGVtZW50LCBhY3Rpb25zOiBbXSB9O1xuICAgICAgICBjb25zdCBhY3Rpb25JbmRleCA9IGNvbW1hbmRCbG9jaz8uYWN0aW9ucy5maW5kSW5kZXgoYSA9PiB0eXBlb2YgYWN0aW9uID09IFwic3RyaW5nXCIgPyBhLnNob3J0Y3V0S2V5ID09IGFjdGlvbiA6IGEgPT0gYWN0aW9uKTtcblxuICAgICAgICBpZiAoIWNvbW1hbmRCbG9jaykge1xuICAgICAgICAgICAgZXJyKExvZ0ljb24ud2FybmluZywgYENhbm5vdCByZW1vdmUgY29tbWFuZDogZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBjb21tYW5kcyByZWdpc3RlcmVkYCwgeyBlbGVtZW50LCBhY3Rpb24gfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChhY3Rpb25JbmRleCA9PSAtMSkge1xuICAgICAgICAgICAgd2FybihMb2dJY29uLndhcm5pbmcsIGBDYW5ub3QgcmVtb3ZlIGNvbW1hbmQ6IG5vdCBwcmVzZW50IGluIGxpc3RgLCB7IGVsZW1lbnQsIGFjdGlvbiB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29tbWFuZEJsb2NrLmFjdGlvbnMuc3BsaWNlKGFjdGlvbkluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZShvcHRpb25zOiBDb21tYW5kUGFsZXR0ZU9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5hdHRhY2hFbGVtZW50Q29tbWFuZHMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNob3J0Y3V0S2V5OiBvcHRpb25zLmtleWJpbmQsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm9wZW5QYWxldHRlKCksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT3BlbiB0aGUgY29tbWFuZCBwYWxldHRlXCIsXG4gICAgICAgICAgICAgICAga2V5d29yZHM6IFtcImNvbW1hbmRcIiwgXCJwcm9tcHRcIiwgXCJjb25zb2xlXCIsIFwiYWN0aW9uc1wiXSxcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb21tYW5kIFBhbGV0dGVcIixcbiAgICAgICAgICAgICAgICB2aXNpYmxlSW5MaXN0OiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIHRoZSBjb21tYW5kIHBhbGV0dGVcbiAgICAgKi9cbiAgICBvcGVuUGFsZXR0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW4oQ29tbWFuZFBhbGV0dGVDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgdG9wOiBcIjhweFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGNvbnRleHRFbGVtZW50OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgICAgICAgLy8gYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJvbGU6ICdkaWFsb2cnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1YmxpYyBoZWxwZXIgdG8gaW52b2tlIGFuIGFjdGlvbi5cbiAgICAgKi9cbiAgICBpbnZva2VBY3Rpb24oYWN0aW9uOiBDb21tYW5kQWN0aW9uLCBhcmdzPykge1xuICAgICAgICBjb25zdCBmbiA9IGFjdGlvbi5hY3Rpb247XG4gICAgICAgIGlmICh0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJykge1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGZuKGFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIHByb21pc2VzIHNvIHRoYXQgdGhlIEdVSSBjYW4gc2hvdyBzcGlubmVycyBmb3IgdGhlbVxuICAgICAgICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgICAgICBlcnIoTG9nSWNvbi5ib21iLCBgRXhlY3V0aW5nIGFjdGlvbiB0aHJldyBhbiBlcnJvcmAsIHsgYWN0aW9uIH0sIGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHdhcm4oTG9nSWNvbi53YXJuaW5nLCBgQ2Fubm90IGV4ZWN1dGUgYWN0aW9uLCB0eXBlIGlzIG5vdCBcImZ1bmN0aW9uXCJgLCB7IGFjdGlvbiB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF0dGFjaCBjb21tYW5kcyB0byBhbiBFbGVtZW50IGFuZCBpdCdzIHN1YnRyZWVcbiAgICAgKi9cbiAgICBhdHRhY2hFbGVtZW50Q29tbWFuZHMoYWN0aW9uczogQ29tbWFuZEFjdGlvbltdKVxuICAgIGF0dGFjaEVsZW1lbnRDb21tYW5kcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdKVxuICAgIGF0dGFjaEVsZW1lbnRDb21tYW5kcyhlbGVtZW50OiBDb21tYW5kQWN0aW9uW10gfCBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHksIGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXSA9IFtdKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBhY3Rpb25zID0gZWxlbWVudDtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICB9XG5cbiAgICAgICAgYWN0aW9ucy5mb3JFYWNoKGEgPT4gdGhpcy5hZGRDb21tYW5kKGVsZW1lbnQgYXMgYW55LCBhKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0YWNoIHNwZWNpZmllZCBjb21tYW5kcyBmcm9tIGFuIEVsZW1lbnQgc3VidHJlZVxuICAgICAqL1xuICAgIGRldGFjaEVsZW1lbnRDb21tYW5kcyhlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHksIGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXSA9IFtdKSB7XG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaChhID0+IHRoaXMucmVtb3ZlQ29tbWFuZChlbGVtZW50LCBhKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgY29tbWFuZHMgdW5kZXIgYSBnaXZlbiBlbGVtZW50XG4gICAgICovXG4gICAgZ2V0UmVnaXN0ZXJlZENvbW1hbmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb21tYW5kQmxvY2tzKGVsZW1lbnQpLm1hcChjID0+IGMuYWN0aW9ucykuZmxhdCgpO1xuICAgIH1cbn1cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2NvbW1hbmQtcGFsZXR0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7O0FBRWxHLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztBQWtKdEUsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNxQixNQUFpQixFQUNqQixVQUE2QjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTDFDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU92QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzdCLDREQUE0RDtZQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFekMsc0RBQXNEO2dCQUN0RCxrREFBa0Q7Z0JBQ2xELDZCQUE2QjtnQkFDN0IseURB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QUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckUsQ0FBQzs4R0FyT1EscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTs7MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEhvc3RMaXN0ZW5lciwgVHlwZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29uc29sZUxvZ2dlciwgTG9nSWNvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1hbmRQYWxldHRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudCc7XG5cbmNvbnN0IHsgbG9nLCB3YXJuLCBlcnIgfSA9IENvbnNvbGVMb2dnZXIoXCJDb21tYW5kUGFsZXR0ZVwiLCBcIiMyMTk2ZjNcIik7XG5cbnR5cGUgS2V5Q29kZSA9IFwiQmFja3NwYWNlXCIgfCBcIlRhYlwiIHwgXCJFbnRlclwiIHwgXCJTaGlmdExlZnRcIiB8IFwiU2hpZnRSaWdodFwiXG4gICAgfCBcIkNvbnRyb2xMZWZ0XCIgfCBcIkNvbnRyb2xSaWdodFwiIHwgXCJBbHRMZWZ0XCIgfCBcIkFsdFJpZ2h0XCIgfCBcIlBhdXNlXCIgfCBcIkNhcHNMb2NrXCJcbiAgICB8IFwiRXNjYXBlXCIgfCBcIlNwYWNlXCIgfCBcIlBhZ2VVcFwiIHwgXCJQYWdlRG93blwiIHwgXCJFbmRcIiB8IFwiSG9tZVwiIHwgXCJBcnJvd0xlZnRcIlxuICAgIHwgXCJBcnJvd1VwXCIgfCBcIkFycm93UmlnaHRcIiB8IFwiQXJyb3dEb3duXCIgfCBcIlByaW50U2NyZWVuXCIgfCBcIkluc2VydFwiIHwgXCJEZWxldGVcIlxuICAgIHwgXCJNZXRhTGVmdFwiIHwgXCJNZXRhUmlnaHRcIiB8IFwiQ29udGV4dE1lbnVcIiB8IFwiTnVtcGFkMFwiIHwgXCJOdW1wYWQxXCIgfCBcIk51bXBhZDJcIlxuICAgIHwgXCJOdW1wYWQzXCIgfCBcIk51bXBhZDRcIiB8IFwiTnVtcGFkNVwiIHwgXCJOdW1wYWQ2XCIgfCBcIk51bXBhZDdcIiB8IFwiTnVtcGFkOFwiXG4gICAgfCBcIk51bXBhZDlcIiB8IFwiTnVtcGFkTXVsdGlwbHlcIiB8IFwiTnVtcGFkQWRkXCIgfCBcIk51bXBhZFN1YnRyYWN0XCJcbiAgICB8IFwiTnVtcGFkRGVjaW1hbFwiIHwgXCJOdW1wYWREaXZpZGVcIlxuICAgIHwgXCJGMVwiIHwgXCJGMlwiIHwgXCJGM1wiIHwgXCJGNFwiIHwgXCJGNVwiIHwgXCJGNlwiIHwgXCJGN1wiIHwgXCJGOFwiIHwgXCJGOVwiIHwgXCJGMTBcIiB8IFwiRjExXCIgfCBcIkYxMlwiXG4gICAgfCBcIk51bUxvY2tcIiB8IFwiU2Nyb2xsTG9ja1wiIHwgXCJTZW1pY29sb25cIiB8IFwiRXF1YWxcIiB8IFwiQ29tbWFcIiB8IFwiTWludXNcIlxuICAgIHwgXCJQZXJpb2RcIiB8IFwiU2xhc2hcIiB8IFwiQmFja3F1b3RlXCIgfCBcIkJyYWNrZXRMZWZ0XCIgfCBcIkJhY2tzbGFzaFwiXG4gICAgfCBcIkJyYWNrZXRSaWdodFwiIHwgXCJRdW90ZVwiIHwgXCJiYWNrc3BhY2VcIiB8IFwidGFiXCIgfCBcImVudGVyXCIgfCBcInNoaWZ0bGVmdFwiXG4gICAgfCBcInNoaWZ0cmlnaHRcIiB8IFwiY29udHJvbGxlZnRcIiB8IFwiY29udHJvbHJpZ2h0XCIgfCBcImFsdGxlZnRcIiB8IFwiYWx0cmlnaHRcIlxuICAgIHwgXCJwYXVzZVwiIHwgXCJjYXBzbG9ja1wiIHwgXCJlc2NhcGVcIiB8IFwic3BhY2VcIiB8IFwicGFnZXVwXCIgfCBcInBhZ2Vkb3duXCIgfCBcImVuZFwiXG4gICAgfCBcImhvbWVcIiB8IFwiYXJyb3dsZWZ0XCIgfCBcImFycm93dXBcIiB8IFwiYXJyb3dyaWdodFwiIHwgXCJhcnJvd2Rvd25cIiB8IFwicHJpbnRzY3JlZW5cIlxuICAgIHwgXCJpbnNlcnRcIiB8IFwiZGVsZXRlXCIgfCBcIm1ldGFsZWZ0XCIgfCBcIm1ldGFyaWdodFwiIHwgXCJjb250ZXh0bWVudVwiXG4gICAgfCBcIm51bXBhZDBcIiB8IFwibnVtcGFkMVwiIHwgXCJudW1wYWQyXCIgfCBcIm51bXBhZDNcIiB8IFwibnVtcGFkNFwiIHwgXCJudW1wYWQ1XCJcbiAgICB8IFwibnVtcGFkNlwiIHwgXCJudW1wYWQ3XCIgfCBcIm51bXBhZDhcIiB8IFwibnVtcGFkOVwiIHwgXCJudW1wYWRtdWx0aXBseVwiIHwgXCJudW1wYWRhZGRcIlxuICAgIHwgXCJudW1wYWRzdWJ0cmFjdFwiIHwgXCJudW1wYWRkZWNpbWFsXCIgfCBcIm51bXBhZGRpdmlkZVwiXG4gICAgfCBcImYxXCIgfCBcImYyXCIgfCBcImYzXCIgfCBcImY0XCIgfCBcImY1XCIgfCBcImY2XCIgfCBcImY3XCIgfCBcImY4XCIgfCBcImY5XCIgfCBcImYxMFwiIHwgXCJmMTFcIiB8IFwiZjEyXCJcbiAgICB8IFwibnVtbG9ja1wiIHwgXCJzY3JvbGxsb2NrXCIgfCBcInNlbWljb2xvblwiIHwgXCJlcXVhbFwiIHwgXCJjb21tYVwiIHwgXCJtaW51c1wiIHwgXCJwZXJpb2RcIlxuICAgIHwgXCJzbGFzaFwiIHwgXCJiYWNrcXVvdGVcIiB8IFwiYnJhY2tldGxlZnRcIiB8IFwiYmFja3NsYXNoXCIgfCBcImJyYWNrZXRyaWdodFwiIHwgXCJxdW90ZVwiXG4gICAgfCBcIkFcIiB8IFwiQlwiIHwgXCJDXCIgfCBcIkRcIiB8IFwiRVwiIHwgXCJGXCIgfCBcIkdcIiB8IFwiSFwiIHwgXCJJXCIgfCBcIkpcIiB8IFwiS1wiIHwgXCJMXCIgfCBcIk1cIlxuICAgIHwgXCJOXCIgfCBcIk9cIiB8IFwiUFwiIHwgXCJRXCIgfCBcIlJcIiB8IFwiU1wiIHwgXCJUXCIgfCBcIlVcIiB8IFwiVlwiIHwgXCJXXCIgfCBcIlhcIiB8IFwiWVwiIHwgXCJaXCJcbiAgICB8IFwiYVwiIHwgXCJiXCIgfCBcImNcIiB8IFwiZFwiIHwgXCJlXCIgfCBcImZcIiB8IFwiZ1wiIHwgXCJoXCIgfCBcImlcIiB8IFwialwiIHwgXCJrXCIgfCBcImxcIiB8IFwibVwiXG4gICAgfCBcIm5cIiB8IFwib1wiIHwgXCJwXCIgfCBcInFcIiB8IFwiclwiIHwgXCJzXCIgfCBcInRcIiB8IFwidVwiIHwgXCJ2XCIgfCBcIndcIiB8IFwieFwiIHwgXCJ5XCIgfCBcInpcIjtcblxuLy8gY3RybCthbHQrbWV0YStzaGlmdFxudHlwZSBLZXlQcmVmaXggPVxuICAgIGBjdHJsYCB8XG4gICAgYGN0cmwrYWx0YCB8XG4gICAgYGN0cmwrYWx0K3NoaWZ0YCB8XG4gICAgYGN0cmwrYWx0K3NoaWZ0K21ldGFgIHxcbiAgICBgY3RybCthbHQrbWV0YWAgfFxuICAgIGBjdHJsK3NoaWZ0YCB8XG4gICAgYGN0cmwrc2hpZnQrbWV0YWAgfFxuICAgIGBjdHJsK21ldGFgIHxcbiAgICBgYWx0YCB8XG4gICAgYGFsdCtzaGlmdGAgfFxuICAgIGBhbHQrc2hpZnQrbWV0YWAgfFxuICAgIGBhbHQrbWV0YWAgfFxuICAgIGBzaGlmdGAgfFxuICAgIGBzaGlmdCttZXRhYCB8XG4gICAgYG1ldGFgXG5cbmV4cG9ydCB0eXBlIEtleWJpbmRFdmVudCA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgS2V5YmluZENvZGUgPSBgJHtLZXlQcmVmaXh9KyR7S2V5Q29kZX1gIHwgS2V5Q29kZTtcblxuXG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBY3Rpb248VCA9IGFueT4gPSB7XG4gICAgLyoqXG4gICAgICogVGhlIG5vbi1tb2RpZmllciBrZXkocykgdGhhdCBtdXN0IGJlIHByZXNzZWQgZm9yIHRoZSBldmVudCB0byBmaXJlLlxuICAgICAqL1xuICAgIHNob3J0Y3V0S2V5PzogS2V5YmluZENvZGUgfCBLZXliaW5kQ29kZVtdLFxuXG4gICAgLyoqXG4gICAgICogQWN0aW9uIHRoYXQgaXMgaW52b2tlZCB3aGVuIHRoZSBrZXlib2FyZCBzaG9ydGN1dCBpcyBwcmVzc2VkIG9yIHRoZSBpdGVtXG4gICAgICogaXMgYWN0aXZhdGVkIGluIHRoZSBHVUkgbWVudVxuICAgICAqIElmIHRoZSBHVUkgbWVudSBpcyBvcGVuLCBpdCB3aWxsIHNob3cgYSBzcGlubmVyIGlmIHRoZSBhY3Rpb24gcmV0dXJucyBhIGBQcm9taXNlYFxuICAgICAqL1xuICAgIGFjdGlvbj86IChldnQ6IEtleWJvYXJkRXZlbnQsIGRhdGE/OiBUKSA9PiBQcm9taXNlPGFueT4gfCBhbnksXG5cbiAgICAvKipcbiAgICAgKiBBcmJpdHJhcnkgZGF0YSBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIGFjdGlvblxuICAgICAqL1xuICAgIGRhdGE/OiBULFxuXG4gICAgLyoqXG4gICAgICogTGFiZWwgaW4gdGhlIGNvbW1hbmQgcGFsZXR0ZSBwb3B1cFxuICAgICAqL1xuICAgIGxhYmVsPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogSGludCB0aGF0IGZvbGxvd3MgdGhlIGxhYmVsLCBzdWJ0bHlcbiAgICAgKi9cbiAgICBoaW50Pzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogSWNvbiBmb3IgdGhlIGVudHJ5XG4gICAgICogQ2FuIGJlIGEgbWF0LWljb25cbiAgICAgKiBXaWxsIGJlIGEgbWF0LWljb24gaWYgdGhlIHN0cmluZyBpcyBzaW1wbGVcbiAgICAgKiBJZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGEgc2xhc2ggb3IgY29sb24sIGl0IHdpbGwgYmUgbG9hZGVkIGFzXG4gICAgICogYW4gaW1hZ2Ugc291cmNlXG4gICAgICovXG4gICAgaWNvbj86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEtleXdvcmRzIHRoYXQgY2FuIGhlbHAgcGljayB0aGlzIGNvbW1hbmRcbiAgICAgKi9cbiAgICBrZXl3b3Jkcz86IHN0cmluZyB8IHN0cmluZ1tdLFxuXG4gICAgLyoqXG4gICAgICogRGVzY3JpcHRpb24gZm9yIHRoZSBwb3B1cFxuICAgICAqIFdJUFxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHJvb3QgYW5jZXN0b3IgZWxlbWVudCBvZiB0aGUgYWN0aW9uXG4gICAgICogKFRoaXMgYWxsb3dzIHNjb3BpbmcgY29tbWFuZHMgdG8gc3BlY2lmaWMgSFRNTCBlbGVtZW50cylcbiAgICAgKiBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGV2ZW50IHRhcmdldCBtdXN0IGJlIGEgZGVzY2VuZGFudFxuICAgICAqXG4gICAgICogSWYgdGhlcmUgYXJlIG11bHRpcGxlIG1hdGNoaW5nIGRlc2NlbmRhbnRzLCBvbmx5XG4gICAgICogdGhlIGZ1cnRoZXN0IGRlc2NlbmRhbnQgd2lsbCBiZSBmaXJlZFxuICAgICAqXG4gICAgICogRm9yIGNvbW1hbmQgc2NvcGluZywgd2UgcmVhZCB0aGUgZGF0YS1sYWJlbCBhdHRyaWJ1dGVcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNldCBsYWJlbCBhbmQgZWxlbWVudCBhcyBhbiBvYmplY3QgaGVyZS5cbiAgICAgKi9cbiAgICByb290RWxlbWVudD86IEhUTUxFbGVtZW50IHwgc3RyaW5nIHwge1xuICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHN0cmluZyxcbiAgICAgICAgbGFiZWw6IHN0cmluZ1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIHRoZSByb290LiBVc2VkIGZvciB0aGUgVUkgY29udHJvbCBhbmQgZGVidWdnaW5nLlxuICAgICAqL1xuICAgIHJvb3ROYW1lPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQ29udHJvbCB3aGV0aGVyIHRoaXMgY29tbWFuZCBhY3Rpb24gaXMgdmlzaWJsZSBpbiB0aGUgcG9wdXAgY29tbWFuZFxuICAgICAqIHBhbGV0dGUgR1VJLlxuICAgICAqL1xuICAgIHZpc2libGVJbkxpc3Q/OiBib29sZWFuLFxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHNlbGVjdGluZyBhbiBpdGVtIHRvIHNob3cgYSBsaXN0IG9mIHN1Yi1pdGVtc1xuICAgICAqL1xuICAgIHN1Yk1lbnU/OiBDb21tYW5kQWN0aW9uPFQ+W10gfCAoKCkgPT4gUHJvbWlzZTxDb21tYW5kQWN0aW9uPFQ+W10+KSB8ICgoKSA9PiBDb21tYW5kQWN0aW9uPFQ+W10pXG5cbn07XG5cbnR5cGUgQ29tbWFuZEJsb2NrID0ge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRQYWxldHRlT3B0aW9ucyA9IHtcbiAgICBrZXliaW5kOiBLZXliaW5kQ29kZVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRQYWxldHRlU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGNvbW1hbmRCbG9ja3M6IENvbW1hbmRCbG9ja1tdID0gW107XG4gICAgcHJpdmF0ZSBpbnRlcnZhbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZXZ0KSA9PiB0aGlzLm9uS2V5RG93bihldnQpKTtcblxuICAgICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgLy8gR28gYmFja3dhcmRzIHNpbmNlIHdlJ3JlIHNwbGljaW5nIGl0ZW1zIG91dCBvZiB0aGUgYXJyYXkuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5jb21tYW5kQmxvY2tzLmxlbmd0aDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBsZXQgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzW2ldO1xuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaW5kZXggaXMgc29tZWhvdyBudWxsLCByaXAgaXQgb3V0IG9mXG4gICAgICAgICAgICAgICAgLy8gdGhlIGFycmF5IGFuZCB3YWl0IGZvciBjbGVhbnVwIHRvIHRyaWdnZXIgYWdhaW5cbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHJlc3Qgb2YgdGhlIGFycmF5LlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IENvdWxkIHRoaXMgbGVhZCB0byBsZWFrcyB3aGVyZSB0aGluZ3MgYXQgdGhlIGVuZFxuICAgICAgICAgICAgICAgIC8vIG5ldmVyIGdldCBjbGVhbmVkP1xuICAgICAgICAgICAgICAgIGlmIChjb21tYW5kQmxvY2sgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRCbG9ja3Muc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaGFzIGJlZW4gZGlzY29ubmVjdGVkIGZyb20gdGhlIERPTSwgd2Ugd2lsbFxuICAgICAgICAgICAgICAgIC8vIHRyZWF0IGl0IGFzIGhhdmluZyBiZWVuIHBlcm1hbmVudGx5IHJlbW92ZWQuXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQ291bGQgdGhpcyBldmVyIGNhdXNlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzP1xuICAgICAgICAgICAgICAgIGlmICghY29tbWFuZEJsb2NrPy5lbGVtZW50LmlzQ29ubmVjdGVkKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRCbG9ja3Muc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA1ICogNjAgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29tbWFuZEJsb2NrcyhlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFBhdGg6IEhUTUxFbGVtZW50W10gPSBbZWxlbWVudF07XG4gICAgICAgIGxldCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGVsZW1lbnRQYXRoLnVuc2hpZnQoY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIH0gd2hpbGUgKGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCk7XG5cbiAgICAgICAgLy8gT3JkZXJlZCBtYXRjaGluZyBjb21tYW5kIGJsb2NrcywgY2xvc2VzdCBmaXJzdFxuICAgICAgICBjb25zdCBtYXRjaGluZ0NvbW1hbmRCbG9ja3M6IENvbW1hbmRCbG9ja1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50UGF0aCkge1xuICAgICAgICAgICAgY29uc3QgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzLmZpbmQoY2IgPT4gY2IuZWxlbWVudCA9PSBlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChjb21tYW5kQmxvY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaGluZ0NvbW1hbmRCbG9ja3MudW5zaGlmdChjb21tYW5kQmxvY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoaW5nQ29tbWFuZEJsb2NrcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUga2V5ZG93biBldmVudHNcbiAgICAgKlxuICAgICAqIElmIGFuIGV2ZW50IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgRE9NIHRyZWUsIHdlIGRvbid0IG5lZWRcbiAgICAgKiB0byBleHBsaWNpdGx5IHJlbW92ZSB0aGUgYmluZGluZ3MsIGFzIHRoZXkgd2lsbCBuZXZlciBmaXJlXG4gICAgICpcbiAgICAgKiBXZSBwZXJpb2RpY2FsbHkgY2hlY2sgYW5kIHJlbW92ZSB1bmNvbm5lY3RlZCBjb21tYW5kIGJsb2Nrc1xuICAgICAqL1xuICAgIHByaXZhdGUgb25LZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBtYXRjaGluZ0NvbW1hbmRCbG9ja3MgPSB0aGlzLmdldENvbW1hbmRCbG9ja3MoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgLy8gU3RyaW5nIGluIGZvcm1hdCBgY3RybCthbHQrRmAsIGBjdHJsK0ZgIGV0Yy5cbiAgICAgICAgY29uc3Qga2V5ID0gW1xuICAgICAgICAgICAgZXZ0LmN0cmxLZXkgPyBcImN0cmxcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5hbHRLZXkgPyBcImFsdFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0LnNoaWZ0S2V5ID8gXCJzaGlmdFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0Lm1ldGFLZXkgPyBcIm1ldGFcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5jb2RlLnN0YXJ0c1dpdGgoXCJLZXlcIikgPyBldnQua2V5IDogZXZ0LmNvZGVcbiAgICAgICAgXS5maWx0ZXIoYSA9PiBhKS5qb2luKCcrJykudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmRCbG9jayBvZiBtYXRjaGluZ0NvbW1hbmRCbG9ja3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGNvbW1hbmRCbG9jay5hY3Rpb25zLmZpbmQoYSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYS5zaG9ydGN1dEtleSlcbiAgICAgICAgICAgICAgICAgICAgPyBhLnNob3J0Y3V0S2V5LmluY2x1ZGVzKGtleSBhcyBhbnkpXG4gICAgICAgICAgICAgICAgICAgIDogYS5zaG9ydGN1dEtleSA9PSBrZXkgYXMgYW55XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlQWN0aW9uKGFjdGlvbik7XG5cbiAgICAgICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIG1vdmUgb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gS2VlcCBjaGVja2luZyBmb3IgbWF0Y2hpbmcgYWN0aW9uc1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXhlY3V0aW9uIHJlYWNoZXMgdGhpcyBwb2ludCwgdGhlcmUgd2VyZSBubyBtYXRjaGluZyBhY3Rpb25zIG9uIHRoZVxuICAgICAgICAvLyBwYXRoIG9mIGVsZW1lbnRzIHRoYXQgd2VyZSByZWdpc3RlcmVkLlxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ29tbWFuZChlbGVtZW50OiBIVE1MRWxlbWVudCwgYWN0aW9uOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRCbG9jayA9IHRoaXMuY29tbWFuZEJsb2Nrcy5maW5kKGIgPT4gYi5lbGVtZW50ID09IGVsZW1lbnQpID8/ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYiA9IHsgZWxlbWVudCwgYWN0aW9uczogW10gfTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZEJsb2Nrcy5wdXNoKGNiKTtcbiAgICAgICAgICAgIHJldHVybiBjYjtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICAvLyBUaGlzIGlzIGxpa2VseSBhIGR1cGxpY2F0ZSBlbnRyeVxuICAgICAgICBpZiAoY29tbWFuZEJsb2NrLmFjdGlvbnMuZmluZChhID0+IGEuc2hvcnRjdXRLZXkgJiYgYS5zaG9ydGN1dEtleSA9PSBhY3Rpb24uc2hvcnRjdXRLZXkpKSB7XG4gICAgICAgICAgICB3YXJuKGBJbnNlcnRpbmcgZHVwbGljYXRlIGFjdGlvbiBvbiBlbGVtZW50YCwgeyBlbGVtZW50LCBhY3Rpb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsb2coTG9nSWNvbi5jaXJjbGVfYmx1ZSwgYEluc2VydGVkIGFjdGlvbmAsIGFjdGlvbilcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIHNob3J0Y3V0IGtleXMgbG93ZXJjYXNlIHNvIGNhc2Ugc2Vuc2l0aXZpdHkgZG9lc24ndCBzY2FscCBzb21lb25lXG4gICAgICAgIGlmIChhY3Rpb24uc2hvcnRjdXRLZXkpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdGlvbi5zaG9ydGN1dEtleSkpXG4gICAgICAgICAgICAgICAgYWN0aW9uLnNob3J0Y3V0S2V5ID0gYWN0aW9uLnNob3J0Y3V0S2V5Lm1hcChrID0+IGsudG9Mb3dlckNhc2UoKSkgYXMgYW55O1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFjdGlvbi5zaG9ydGN1dEtleSA9IGFjdGlvbi5zaG9ydGN1dEtleS50b0xvd2VyQ2FzZSgpIGFzIGFueTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbW1hbmRCbG9jay5hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUNvbW1hbmQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGlvbjogQ29tbWFuZEFjdGlvbiB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBjb21tYW5kQmxvY2sgPSB0aGlzLmNvbW1hbmRCbG9ja3MuZmluZChiID0+IGIuZWxlbWVudCA9PSBlbGVtZW50KSA/PyB7IGVsZW1lbnQsIGFjdGlvbnM6IFtdIH07XG4gICAgICAgIGNvbnN0IGFjdGlvbkluZGV4ID0gY29tbWFuZEJsb2NrPy5hY3Rpb25zLmZpbmRJbmRleChhID0+IHR5cGVvZiBhY3Rpb24gPT0gXCJzdHJpbmdcIiA/IGEuc2hvcnRjdXRLZXkgPT0gYWN0aW9uIDogYSA9PSBhY3Rpb24pO1xuXG4gICAgICAgIGlmICghY29tbWFuZEJsb2NrKSB7XG4gICAgICAgICAgICBlcnIoTG9nSWNvbi53YXJuaW5nLCBgQ2Fubm90IHJlbW92ZSBjb21tYW5kOiBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IGNvbW1hbmRzIHJlZ2lzdGVyZWRgLCB7IGVsZW1lbnQsIGFjdGlvbiB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGFjdGlvbkluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICB3YXJuKExvZ0ljb24ud2FybmluZywgYENhbm5vdCByZW1vdmUgY29tbWFuZDogbm90IHByZXNlbnQgaW4gbGlzdGAsIHsgZWxlbWVudCwgYWN0aW9uIH0pXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb21tYW5kQmxvY2suYWN0aW9ucy5zcGxpY2UoYWN0aW9uSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBpbml0aWFsaXplKG9wdGlvbnM6IENvbW1hbmRQYWxldHRlT3B0aW9ucykge1xuICAgICAgICB0aGlzLmF0dGFjaEVsZW1lbnRDb21tYW5kcyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2hvcnRjdXRLZXk6IG9wdGlvbnMua2V5YmluZCxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMub3BlblBhbGV0dGUoKSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPcGVuIHRoZSBjb21tYW5kIHBhbGV0dGVcIixcbiAgICAgICAgICAgICAgICBrZXl3b3JkczogW1wiY29tbWFuZFwiLCBcInByb21wdFwiLCBcImNvbnNvbGVcIiwgXCJhY3Rpb25zXCJdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbW1hbmQgUGFsZXR0ZVwiLFxuICAgICAgICAgICAgICAgIHZpc2libGVJbkxpc3Q6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gdGhlIGNvbW1hbmQgcGFsZXR0ZVxuICAgICAqL1xuICAgIG9wZW5QYWxldHRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbihDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICB0b3A6IFwiOHB4XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY29udGV4dEVsZW1lbnQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbJ25neC1jb21tYW5kLXBhbGV0dGUnXSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnbmd4LWNvbW1hbmQtcGFsZXR0ZSddLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiB0cnVlLFxuICAgICAgICAgICAgcm9sZTogJ2RpYWxvZydcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGljIGhlbHBlciB0byBpbnZva2UgYW4gYWN0aW9uLlxuICAgICAqL1xuICAgIGludm9rZUFjdGlvbihhY3Rpb246IENvbW1hbmRBY3Rpb24sIGFyZ3M/KSB7XG4gICAgICAgIGNvbnN0IGZuID0gYWN0aW9uLmFjdGlvbjtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nKSB7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZm4oYXJncyk7XG5cbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcHJvbWlzZXMgc28gdGhhdCB0aGUgR1VJIGNhbiBzaG93IHNwaW5uZXJzIGZvciB0aGVtXG4gICAgICAgICAgICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAgIGVycihMb2dJY29uLmJvbWIsIGBFeGVjdXRpbmcgYWN0aW9uIHRocmV3IGFuIGVycm9yYCwgeyBhY3Rpb24gfSwgZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd2FybihMb2dJY29uLndhcm5pbmcsIGBDYW5ub3QgZXhlY3V0ZSBhY3Rpb24sIHR5cGUgaXMgbm90IFwiZnVuY3Rpb25cImAsIHsgYWN0aW9uIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXR0YWNoIGNvbW1hbmRzIHRvIGFuIEVsZW1lbnQgYW5kIGl0J3Mgc3VidHJlZVxuICAgICAqL1xuICAgIGF0dGFjaEVsZW1lbnRDb21tYW5kcyhhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10pXG4gICAgYXR0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10pXG4gICAgYXR0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IENvbW1hbmRBY3Rpb25bXSB8IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSwgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdID0gW10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGFjdGlvbnMgPSBlbGVtZW50O1xuICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgIH1cblxuICAgICAgICBhY3Rpb25zLmZvckVhY2goYSA9PiB0aGlzLmFkZENvbW1hbmQoZWxlbWVudCBhcyBhbnksIGEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRhY2ggc3BlY2lmaWVkIGNvbW1hbmRzIGZyb20gYW4gRWxlbWVudCBzdWJ0cmVlXG4gICAgICovXG4gICAgZGV0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSwgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdID0gW10pIHtcbiAgICAgICAgYWN0aW9ucy5mb3JFYWNoKGEgPT4gdGhpcy5yZW1vdmVDb21tYW5kKGVsZW1lbnQsIGEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCBjb21tYW5kcyB1bmRlciBhIGdpdmVuIGVsZW1lbnRcbiAgICAgKi9cbiAgICBnZXRSZWdpc3RlcmVkQ29tbWFuZHMoZWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbW1hbmRCbG9ja3MoZWxlbWVudCkubWFwKGMgPT4gYy5hY3Rpb25zKS5mbGF0KCk7XG4gICAgfVxufVxuIl19
@@ -2877,8 +2877,9 @@ class CommandPaletteService {
2877
2877
  data: {
2878
2878
  contextElement: document.activeElement
2879
2879
  },
2880
+ panelClass: ['ngx-command-palette'],
2881
+ backdropClass: ['ngx-command-palette'],
2880
2882
  restoreFocus: true,
2881
- // autoFocus: false,
2882
2883
  role: 'dialog'
2883
2884
  });
2884
2885
  }
@@ -10466,9 +10467,9 @@ class FilemanagerComponent {
10466
10467
  let path = file.path + file.name;
10467
10468
  if (file.kind == "directory" && !path.endsWith('/'))
10468
10469
  path += "/";
10469
- const url = this.config.apiSettings.deleteEntryUrlTemplate
10470
- ? this.config.apiSettings.deleteEntryUrlTemplate(path)
10471
- : this.config.apiSettings.deleteEntryUrl;
10470
+ const url = this.config.apiSettings.downloadEntryUrlTemplate
10471
+ ? this.config.apiSettings.downloadEntryUrlTemplate(path)
10472
+ : this.config.apiSettings.downloadEntryUrl;
10472
10473
  // window.open(target);
10473
10474
  var link = document.createElement("a");
10474
10475
  link.download = file.name;