tango-app-ui-analyse-trax 3.7.73 → 3.7.75

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.
@@ -1,6 +1,7 @@
1
1
  import { Component, Input, ViewChild } from "@angular/core";
2
2
  import * as XLSX from 'xlsx';
3
3
  import { takeUntil, Subject } from 'rxjs';
4
+ import dayjs from 'dayjs';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/forms";
6
7
  import * as i2 from "tango-app-ui-shared";
@@ -35,6 +36,7 @@ export class ChecklistPopupComponent {
35
36
  detach = new Subject();
36
37
  excelData = [];
37
38
  excelError;
39
+ dayjs = dayjs;
38
40
  constructor(fb, toast, sopService, router, dialogRef, dialog, cd) {
39
41
  this.fb = fb;
40
42
  this.toast = toast;
@@ -441,8 +443,8 @@ export class ChecklistPopupComponent {
441
443
  linkedQuestion: 0,
442
444
  nestedQuestion: [],
443
445
  historicDate: false,
444
- startDate: "",
445
- endDate: "",
446
+ startDate: this.dayjs().format("DD-MM-YYYY"),
447
+ endDate: this.dayjs().format("DD-MM-YYYY"),
446
448
  matchedCount: 0,
447
449
  notMatchedCount: 0,
448
450
  },
@@ -607,4 +609,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
607
609
  type: ViewChild,
608
610
  args: ["file1"]
609
611
  }] } });
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUUsTUFBTSxlQUFlLENBQUM7QUFHN0gsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFNBQVMsRUFBQyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBU3pDLE1BQU0sT0FBTyx1QkFBdUI7SUF1QnhCO0lBQ0E7SUFDQTtJQUNBO0lBQ0Q7SUFDQztJQUNBO0lBNUJWLGFBQWEsQ0FBWTtJQUNoQixRQUFRLENBQVM7SUFDakIsSUFBSSxDQUFTO0lBQ2IsYUFBYSxDQUFNO0lBQ0UsZUFBZSxDQUFNO0lBQ2hDLFNBQVMsQ0FBYztJQUN0QixVQUFVLENBQWM7SUFFNUMsUUFBUSxDQUFNO0lBQ2QsUUFBUSxDQUFNO0lBQ2QsY0FBYyxHQUFRO1FBQ3BCO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsYUFBYSxFQUFFLENBQUM7WUFDaEIsU0FBUyxFQUFFLEVBQUU7U0FDZDtLQUNGLENBQUM7SUFDTSxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixTQUFTLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLFVBQVUsQ0FBTTtJQUVoQixZ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Q0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksR0FBRyxHQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87Z0JBQzVCLDBDQUEwQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQzt3R0EzbEJVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHlhQ2RwQyxnMFlBOE1NOzs0RkRoTU8sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4T0FNdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ1QsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQTdCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jaGVja2xpc3QtcG9wdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrbGlzdC1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2hlY2tsaXN0Rm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNoZWNrbGlzdERhdGE6IGFueTtcclxuICBAVmlld0NoaWxkKFwiYWZ0ZXJWYWxpZGF0aW9uXCIpIGFmdGVyVmFsaWRhdGlvbjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJmaWxlXCIpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImZpbGUxXCIpIGZpbGVJbnB1dDEhOiBFbGVtZW50UmVmO1xyXG5cclxuICBmaWxlTmFtZTogYW55O1xyXG4gIGZpbGVTaXplOiBhbnk7XHJcbiAgc2VjdGlvbkRldGFpbHM6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJTZWN0aW9uIDFcIixcclxuICAgICAgc2VjdGlvbk51bWJlcjogMSxcclxuICAgICAgcXVlc3Rpb25zOiBbXSxcclxuICAgIH0sXHJcbiAgXTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZXhjZWxEYXRhOiBhbnkgPSBbXTtcclxuICBleGNlbEVycm9yOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNvcFNlcnZpY2U6IFRyYXhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNoZWNrbGlzdEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogW1wiXCJdLFxyXG4gICAgICBkZXNjcmlwdGlvbjogW1wiXCJdLFxyXG4gICAgICBtb2RlOiBbXCJpbmRpdmlkdWFsXCJdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgIT0gXCJjcmVhdGVcIikge1xyXG4gICAgICB0aGlzLmNoZWNrbGlzdEZvcm0uZ2V0KFwibW9kZVwiKT8uc2V0VmFsdWUoXCJidWxrXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLm1vZGU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb2RlKG1vZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jaGVja2xpc3RGb3JtLnBhdGNoVmFsdWUoeyBtb2RlIH0pO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5leGNlbERhdGEgPSBbXTtcclxuICAgIHRoaXMuZXhjZWxFcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLnNlY3Rpb25EZXRhaWxzID0gW107XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSA8RGF0YVRyYW5zZmVyPmV2ZW50LnRhcmdldDtcclxuICAgIGxldCBpc0V4Y2VsRmlsZSA9ICEhdGFyZ2V0LmZpbGVzWzBdLm5hbWUubWF0Y2goLygueGxzfC54bHN4KS8pO1xyXG4gICAgaWYgKCFpc0V4Y2VsRmlsZSkge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgVXBsb2FkIGEgdmFsaWQgeGxzeCBmaWxlXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnJlYWQoYnN0ciwgeyB0eXBlOiBcImJpbmFyeVwiIH0pO1xyXG4gICAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgICBjb25zdCB3czogWExTWC5Xb3JrU2hlZXQgPSB3Yi5TaGVldHNbd3NuYW1lXTtcclxuICAgICAgICBsZXQgZGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbih3cywgeyBkZWZ2YWw6IFwiXCIgfSk7XHJcbiAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhID0gZGF0YTtcclxuICAgICAgICBsZXQgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgICAgIGxldCBxdWVzdGlvbkxpc3Q6IGFueSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXhjZWxEYXRhLmZvckVhY2goKGVsZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWVsZT8uW1wiU2VjdGlvbiBOYW1lXCJdPy50b1N0cmluZygpPy50cmltKCkpIHtcclxuICAgICAgICAgICAgZXJyb3IucHVzaChgSW52YWxpZCBTZWN0aW9uIE5hbWUgLSBBJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWVsZT8uW1wiUXVlc3Rpb25cIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFF1ZXN0aW9uIE5hbWUgLSBCJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWVsZT8uW1wiQW5zd2VyIFR5cGVcIl0/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIEFuc3dlciBUeXBlIC0gQyR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlbGU/LltcIkFuc3dlciBUeXBlXCJdPy50cmltKCkgJiZcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIFwiTXVsdGlwbGUgQ2hvaWNlIFNpbmdsZVwiLFxyXG4gICAgICAgICAgICAgIFwiTXVsdGlwbGUgQ2hvaWNlIE11bHRpcGxlXCIsXHJcbiAgICAgICAgICAgICAgXCJEcm9wZG93blwiLFxyXG4gICAgICAgICAgICBdLmluY2x1ZGVzKGVsZT8uW1wiQW5zd2VyIFR5cGVcIl0pICYmXHJcbiAgICAgICAgICAgICFlbGU/LltcIkFuc3dlciBPcHRpb25zXCJdPy50b1N0cmluZygpPy50cmltKClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIEFuc3dlciBPcHRpb25zIC0gRCR7aW5kZXggKyAyfWApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGxldCBxTmFtZTogc3RyaW5nID1cclxuICAgICAgICAgICAgZWxlPy5bXCJTZWN0aW9uIE5hbWVcIl0/LnRvU3RyaW5nKCk/LnRyaW0oKS50b0xvd2VyQ2FzZSgpICtcclxuICAgICAgICAgICAgZWxlPy5bXCJRdWVzdGlvblwiXT8udG9TdHJpbmcoKT8udHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICBpZiAoIXF1ZXN0aW9uTGlzdC5pbmNsdWRlcyhxTmFtZSkpIHtcclxuICAgICAgICAgICAgcXVlc3Rpb25MaXN0LnB1c2gocU5hbWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXJyb3IucHVzaChgJHtlbGU/LltcIlF1ZXN0aW9uXCJdPy50cmltKCl9IHF1ZXN0aW9uIGlzIER1cGxpY2F0ZWRgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZXJyb3IubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICAgICAgaW1hZ2VzcmM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz5gLFxyXG4gICAgICAgICAgICB0aXRsZTogYEludmFsaWQgZGV0YWlscyFgLFxyXG4gICAgICAgICAgICBjb250ZW50OiBgUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgc3RvcmUgaW5mb3JtYXRpb24uYCxcclxuICAgICAgICAgICAgYnV0dG9udHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5leGNlbEVycm9yID0gcG9wdXBjb250ZW50O1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc2VjdGlvbk51bWJlciA9IDA7XHJcbiAgICAgICAgbGV0IGFuc3dlclR5cGU6IGFueSA9IHtcclxuICAgICAgICAgIFwiRGVzY3JpcHRpdmUgQW5zd2VyXCI6IFwiZGVzY3JpcHRpdmVcIixcclxuICAgICAgICAgIFwiQS9CIFF1ZXN0aW9uXCI6IFwieWVzL25vXCIsXHJcbiAgICAgICAgICBcIk11bHRpcGxlIENob2ljZSBTaW5nbGVcIjogXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFxyXG4gICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgTXVsdGlwbGVcIjogXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgSW1hZ2Ugd2l0aCBEZXNjcmlwdGlvblwiOiBcImRlc2NyaXB0aXZlSW1hZ2VcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZSBhcyBhbnN3ZXJcIjogXCJpbWFnZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIHZpZGVvIGFzIGFuc3dlclwiOiBcInZpZGVvXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgTXVsdGlwbGUgSW1hZ2VcIjogXCJtdWx0aXBsZUltYWdlXCIsXHJcbiAgICAgICAgICBEYXRlOiBcImRhdGVcIixcclxuICAgICAgICAgIFwiTGluZWFyIFNjYWxlXCI6IFwibGluZWFyc2NhbGVcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZS9WaWRlbyBhcyBBbnN3ZXJcIjogXCJpbWFnZS92aWRlb1wiLFxyXG4gICAgICAgICAgVGltZTogXCJ0aW1lXCIsXHJcbiAgICAgICAgICBEcm9wZG93bjogXCJkcm9wZG93blwiLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHNlY0RldGFpbHM6IGFueSA9IGRhdGEucmVkdWNlKChhY2M6IGFueSwgZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBzZWN0aW9uTmFtZSA9IGVsZVtcIlNlY3Rpb24gTmFtZVwiXT8udG9TdHJpbmcoKT8udHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICBpZiAoIWFjYz8uW3NlY3Rpb25OYW1lXSkge1xyXG4gICAgICAgICAgICBzZWN0aW9uTnVtYmVyKys7XHJcbiAgICAgICAgICAgIGFjY1tgJHtzZWN0aW9uTmFtZX1gXSA9IHtcclxuICAgICAgICAgICAgICBuYW1lOiBlbGVbXCJTZWN0aW9uIE5hbWVcIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICBzZWN0aW9uTnVtYmVyOiBzZWN0aW9uTnVtYmVyLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBxbm86IDEsXHJcbiAgICAgICAgICAgICAgICAgIHFuYW1lOiBlbGVbXCJRdWVzdGlvblwiXT8udG9TdHJpbmcoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgICBvbGRRbmFtZTogZWxlW1wiUXVlc3Rpb25cIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICAgICAgYW5zd2VyVHlwZTogYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICAgICAgYW5zd2VyczogdGhpcy5maW5kQW5zd2VyKFxyXG4gICAgICAgICAgICAgICAgICAgIGFuc3dlclR5cGVbYCR7ZWxlW1wiQW5zd2VyIFR5cGVcIl19YF0sXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlW1wiQW5zd2VyIE9wdGlvbnNcIl0sXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgcnVuQUlEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGxpbmtUeXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICAgICAgcXVlc3Rpb25SZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczogW10sXHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGVSdW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bkFJRGVzY3JpcHRpb246IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBjb21wbGlhbmNlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpdmV0eXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFjY1tgJHtzZWN0aW9uTmFtZX1gXS5xdWVzdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgcW5vOiBhY2NbYCR7c2VjdGlvbk5hbWV9YF0ucXVlc3Rpb25zLmxlbmd0aCArIDEsXHJcbiAgICAgICAgICAgICAgcW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgb2xkUW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgYW5zd2VyVHlwZTogYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICBhbnN3ZXJzOiB0aGlzLmZpbmRBbnN3ZXIoXHJcbiAgICAgICAgICAgICAgICBhbnN3ZXJUeXBlW2Ake2VsZVtcIkFuc3dlciBUeXBlXCJdfWBdLFxyXG4gICAgICAgICAgICAgICAgZWxlW1wiQW5zd2VyIE9wdGlvbnNcIl0sXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBsaW5rVHlwZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbXVsdGlRdWVzdGlvblJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBxdWVzdGlvblJlZmVyZW5jZUltYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHJ1bkFJRmVhdHVyZXM6IFtdLFxyXG4gICAgICAgICAgICAgIGRpc2FibGVSdW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBjb21wbGlhbmNlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSwge30pO1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbkRldGFpbHMgPSBPYmplY3QudmFsdWVzKHNlY0RldGFpbHMpO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGUubmFtZTtcclxuICAgICAgdGhpcy5maWxlU2l6ZSA9IE1hdGgucm91bmQoZmlsZS5zaXplIC8gMTAyNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyYWdPdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdO1xyXG5cclxuICAgIGlmIChmaWxlKSB7XHJcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBmaWxlLm5hbWU7XHJcbiAgICAgIHRoaXMuZmlsZVNpemUgPSBNYXRoLnJvdW5kKGZpbGUuc2l6ZSAvIDEwMjQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWxlSW5wdXQxKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0MS5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGxldCBlbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCIpO1xyXG4gICAgZWxlPy5jbGljaygpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDaGVja2xpc3QoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tsaXN0Rm9ybS52YWx1ZS5uYW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIkNoZWNrbGlzdCBOYW1lIGlzIG1pc3NpbmdcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5leGNlbERhdGEubGVuZ3RoICYmIHRoaXMubW9kZSA9PSBcImJ1bGtcIikge1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgY2hlY2tsaXN0TmFtZTogdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLm5hbWU/LnRyaW0oKSxcclxuICAgICAgY2hlY2tsaXN0RGVzY3JpcHRpb246IHRoaXMuY2hlY2tsaXN0Rm9ybS52YWx1ZS5kZXNjcmlwdGlvbj8udHJpbSgpLFxyXG4gICAgICBzZWN0aW9uczogdGhpcy5zZWN0aW9uRGV0YWlscyxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHN1Ym1pdFR5cGU6IFwic2F2ZVwiLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc29wU2VydmljZVxyXG4gICAgICAuY3JlYXRlQ2hlY2tsaXN0KHBhcmFtcylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcIkNoZWNrbGlzdCBjcmVhdGVkIHN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFxyXG4gICAgICAgICAgICAgICAgYC9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3Q/Y2hlY2tsaXN0SWQ9JHtyZXMuZGF0YS5jaGVja2xpc3RJZH1gLFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzbWlzcygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byBjcmVhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBlcnIgPVxyXG4gICAgICAgICAgICBlcnJvcj8uZXJyb3I/LmVycm9yPy5tZXNzYWdlIHx8XHJcbiAgICAgICAgICAgIFwiVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhU2VydmVyIEVycm9yIVwiO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRBbnN3ZXIodHlwZTogc3RyaW5nLCBvcHRpb25zOiBzdHJpbmcpIHtcclxuICAgIGxldCBhbnN3ZXI6IGFueSA9IFtdO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFwieWVzL25vXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiWWVzXCIsXHJcbiAgICAgICAgICAgIGFuc3dlcm9wdGlvbk51bWJlcjogMSxcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFwiXCIsXHJcbiAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJOb1wiLFxyXG4gICAgICAgICAgICBhbnN3ZXJvcHRpb25OdW1iZXI6IDIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRlc2NyaXB0aXZlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aXZldHlwZTogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5zcGxpdChcIixcIikuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGUudHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGFuc3dlci5wdXNoKHtcclxuICAgICAgICAgICAgICBhbnN3ZXI6IGVsZSxcclxuICAgICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtdO1xyXG4gICAgICAgIG9wdGlvbnMuc3BsaXQoXCIsXCIpLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlPy50cmltKCkpIHtcclxuICAgICAgICAgICAgYW5zd2VyLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFuc3dlcjogZWxlLFxyXG4gICAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJkZXNjcmlwdGl2ZUltYWdlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImltYWdlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIG1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgICAgbm90TWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJ2aWRlb1wiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtdWx0aXBsZUltYWdlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRhdGVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgaGlzdG9yaWNEYXRlOiBmYWxzZSxcclxuICAgICAgICAgICAgc3RhcnREYXRlOiBcIlwiLFxyXG4gICAgICAgICAgICBlbmREYXRlOiBcIlwiLFxyXG4gICAgICAgICAgICBtYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIG5vdE1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibGluZWFyc2NhbGVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIHJhbmdlU3RhcnQ6IDAsXHJcbiAgICAgICAgICAgIHJhbmdlRW5kOiAxMDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgbGluZWFyVHlwZTogXCJudW1iZXJcIixcclxuICAgICAgICAgICAgbWluVmFsdWU6IDAsXHJcbiAgICAgICAgICAgIG1heFZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgIG1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgICAgbm90TWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImltYWdlL3ZpZGVvXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIGxpbWl0OiBmYWxzZSxcclxuICAgICAgICAgICAgdmlkZW9MaW1pdDogMCxcclxuICAgICAgICAgICAgaW1hZ2VMaW1pdDogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZHJvcGRvd25cIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBvcHRpb25zLnNwbGl0KFwiLFwiKS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGFuc3dlci5wdXNoKHtcclxuICAgICAgICAgICAgICBhbnN3ZXI6IGVsZSxcclxuICAgICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRvd25sb2FkVGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLnNvcFNlcnZpY2VcclxuICAgICAgLmRvd25sb2FkUXVlc3Rpb24odGhpcy5jaGVja2xpc3REYXRhLmNoZWNrbGlzdElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLnNvcFNlcnZpY2Uuc2F2ZUFzRXhjZWxGaWxlKHJlcywgXCJDaGVja2xpc3QgUXVlc3Rpb25cIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gZG93bmxvYWQgdGVtcGxhdGUhXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byBkb3dubG9hZCB0ZW1wbGF0ZSFcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoZWNrbGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5jaGVja2xpc3REYXRhLmNoZWNrTGlzdE5hbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiQ2hlY2tsaXN0IE5hbWUgaXMgbWlzc2luZ1wiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmV4Y2VsRGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiUGxlYXNlIHVwbG9hZCBhIHZhbGlkIGZpbGVcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNoZWNrbGlzdE5hbWU6IHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja0xpc3ROYW1lPy50cmltKCksXHJcbiAgICAgIGNoZWNrbGlzdERlc2NyaXB0aW9uOiB0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tMaXN0RGVzY3JpcHRpb24/LnRyaW0oKSxcclxuICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbkRldGFpbHMsXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNoZWNrbGlzdERhdGEuY2xpZW50SWQsXHJcbiAgICAgIHN1Ym1pdFR5cGU6IFwic2F2ZVwiLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc29wU2VydmljZVxyXG4gICAgICAuZ2V0VXBkYXRlQ2hlY2tsaXN0KHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja2xpc3RJZCwgcGFyYW1zKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwicmVsb2FkXCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFwiQ2hlY2tsaXN0IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIHVwZGF0ZSBjaGVja2xpc3QhXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZXJyID1cclxuICAgICAgICAgICAgZXJyb3I/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICBcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVNlcnZlciBFcnJvciFcIjtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjaGVja2xpc3QtY2FyZFwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICAgPGRpdiAqbmdJZj1cIiFleGNlbERhdGEubGVuZ3RoXCI+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zXCI+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1pY29uIG1lLTJcIj5cclxuICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cclxuICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI4IDIxVjM1TTIxIDI4SDM1XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wIHRpdGxlVGV4dFwiPnt7dHlwZSA9PSAnY3JlYXRlJyA/ICdDcmVhdGUgQ2hlY2tsaXN0JyA6ICdCdWxrIFVwbG9hZCd9fTwvZGl2PlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNoZWNrbGlzdEZvcm1cIj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBDaGVja2xpc3QgTmFtZSAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q2hlY2tsaXN0IE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RGVzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJvd3M9XCIzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBNb2RlIFNlbGVjdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTIgbXktM1wiICpuZ0lmPVwidHlwZSA9PSAnY3JlYXRlJ1wiPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1ib3hcIlxyXG4gICAgICAgICAgICAgICBbY2xhc3Mub3B0aW9uLWFjdGl2ZV09XCJtb2RlPT09J2luZGl2aWR1YWwnXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUoJ2luZGl2aWR1YWwnKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8c3Bhbj5BZGQgcXVlc3Rpb25zIGluZGl2aWR1YWxseTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIHZhbHVlPVwiaW5kaXZpZHVhbFwiIGZvcm1Db250cm9sTmFtZT1cIm1vZGVcIiBzdHlsZT1cIndpZHRoOjE1cHg7aGVpZ2h0OjE1cHhcIj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvbi1ib3hcIlxyXG4gICAgICAgICAgICAgICBbY2xhc3Mub3B0aW9uLWFjdGl2ZV09XCJtb2RlPT09J2J1bGsnXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUoJ2J1bGsnKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8c3Bhbj5BZGQgcXVlc3Rpb25zIGluIGJ1bGs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImJ1bGtcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgc3R5bGU9XCJ3aWR0aDoxNXB4O2hlaWdodDoxNXB4XCI+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gQnVsayBVcGxvYWQgU2VjdGlvbiAtLT5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdidWxrJ1wiIGNsYXNzPVwiYnVsa1RleHRcIj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj4xLiBVc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBxdWVzdGlvbnMgYXQgb25jZTwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgMi4gRG93bmxvYWQgdGhlIHRlbXBsYXRlIGhlcmUgLVxyXG4gICAgICAgICAgICAgICBAaWYodHlwZSA9PSAnY3JlYXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgaHJlZj1cIi9hc3NldHMvZmlsZXMvY2hlY2tsaXN0UXVlc3Rpb24ueGxzeFwiIGRvd25sb2FkPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE3IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODM1OSAxMC44MzU5VjE0LjE2OTNDMTUuODM1OSAxNC42MTEzIDE1LjY2MDMgMTUuMDM1MiAxNS4zNDc4IDE1LjM0NzhDMTUuMDM1MiAxNS42NjAzIDE0LjYxMTMgMTUuODM1OSAxNC4xNjkzIDE1LjgzNTlIMi41MDI2QzIuMDYwNTggMTUuODM1OSAxLjYzNjY1IDE1LjY2MDMgMS4zMjQwOSAxNS4zNDc4QzEuMDExNTMgMTUuMDM1MiAwLjgzNTkzOCAxNC42MTEzIDAuODM1OTM4IDE0LjE2OTNWMTAuODM1OU00LjE2OTI3IDYuNjY5MjdMOC4zMzU5NCAxMC44MzU5TTguMzM1OTQgMTAuODM1OUwxMi41MDI2IDYuNjY5MjdNOC4zMzU5NCAxMC44MzU5VjAuODM1OTM4XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBEb3dubG9hZCBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvd25sb2FkLWxpbmtcIiAoY2xpY2spPVwiZG93bmxvYWRUZW1wbGF0ZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuODM1OSAxMC44MzU5VjE0LjE2OTNDMTUuODM1OSAxNC42MTEzIDE1LjY2MDMgMTUuMDM1MiAxNS4zNDc4IDE1LjM0NzhDMTUuMDM1MiAxNS42NjAzIDE0LjYxMTMgMTUuODM1OSAxNC4xNjkzIDE1LjgzNTlIMi41MDI2QzIuMDYwNTggMTUuODM1OSAxLjYzNjY1IDE1LjY2MDMgMS4zMjQwOSAxNS4zNDc4QzEuMDExNTMgMTUuMDM1MiAwLjgzNTkzOCAxNC42MTEzIDAuODM1OTM4IDE0LjE2OTNWMTAuODM1OU00LjE2OTI3IDYuNjY5MjdMOC4zMzU5NCAxMC44MzU5TTguMzM1OTQgMTAuODM1OUwxMi41MDI2IDYuNjY5MjdNOC4zMzU5NCAxMC44MzU5VjAuODM1OTM4XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgPC9zdmc+IERvd25sb2FkIFRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+My4gQWRkIHlvdXIgZGF0YSB0byB0aGUgdGVtcGxhdGU8L2Rpdj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+NC4gVXBsb2FkIGl0IGZvciBwcm9jZXNzaW5nPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPCEtLSBVcGxvYWQgQXJlYSAtLT5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWJveCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2XCIgaGVpZ2h0PVwiNDZcIiB2aWV3Qm94PVwiMCAwIDQ2IDQ2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xOTAzNF82Njk5NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNi4zMzI2IDI2LjMzMTNMMjIuOTk5MiAyMi45OThNMjIuOTk5MiAyMi45OThMMTkuNjY1OSAyNi4zMzEzTTIyLjk5OTIgMjIuOTk4VjMwLjQ5OE0yOS45OTA5IDI4LjMyM0MzMC44MDM3IDI3Ljg3OTggMzEuNDQ1OCAyNy4xNzg3IDMxLjgxNTggMjYuMzMwMUMzMi4xODU4IDI1LjQ4MTYgMzIuMjYyNyAyNC41MzQgMzIuMDM0NCAyMy42MzY5QzMxLjgwNjEgMjIuNzM5NyAzMS4yODU1IDIxLjk0NDIgMzAuNTU0OCAyMS4zNzU4QzI5LjgyNDEgMjAuODA3NCAyOC45MjUgMjAuNDk4NiAyNy45OTkyIDIwLjQ5OEgyNi45NDkyQzI2LjY5NyAxOS41MjIzIDI2LjIyNjkgMTguNjE2NiAyNS41NzQyIDE3Ljg0ODhDMjQuOTIxNSAxNy4wODEgMjQuMTAzMyAxNi40NzEyIDIzLjE4MSAxNi4wNjUxQzIyLjI1ODcgMTUuNjU5MSAyMS4yNTY0IDE1LjQ2NzQgMjAuMjQ5MyAxNS41MDQ1QzE5LjI0MjMgMTUuNTQxNiAxOC4yNTY4IDE1LjgwNjUgMTcuMzY2OSAxNi4yNzkzQzE2LjQ3NyAxNi43NTIxIDE1LjcwNTggMTcuNDIwNSAxNS4xMTE0IDE4LjIzNDNDMTQuNTE3IDE5LjA0OCAxNC4xMTQ4IDE5Ljk4NTkgMTMuOTM1MSAyMC45Nzc0QzEzLjc1NTMgMjEuOTY5IDEzLjgwMjcgMjIuOTg4NCAxNC4wNzM2IDIzLjk1OUMxNC4zNDQ1IDI0LjkyOTYgMTQuODMxOSAyNS44MjYyIDE1LjQ5OTIgMjYuNTgxM1wiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xOTAzNF82Njk5NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTMgMTMpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZnctc2VtaWJvbGQgdXBsb2FkVGV4dFwiPkNsaWNrIFRvIFVwbG9hZDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPCEtLSBIaWRkZW4gRmlsZSBJbnB1dCAtLT5cclxuICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICNmaWxlSW5wdXRcclxuICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgaGlkZGVuXHJcbiAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgID5cclxuICAgICBcclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwhLS0gVXBsb2FkZWQgRmlsZSAtLT5cclxuICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZU5hbWVcIiBjbGFzcz1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI0XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE4LjY2OCAxMS4zMzU5SDE0LjAwMTNDMTMuNjQ3NyAxMS4zMzU5IDEzLjMwODUgMTEuNDc2NCAxMy4wNTg1IDExLjcyNjVDMTIuODA4NCAxMS45NzY1IDEyLjY2OCAxMi4zMTU2IDEyLjY2OCAxMi42NjkzVjIzLjMzNTlDMTIuNjY4IDIzLjY4OTYgMTIuODA4NCAyNC4wMjg3IDEzLjA1ODUgMjQuMjc4N0MxMy4zMDg1IDI0LjUyODggMTMuNjQ3NyAyNC42NjkzIDE0LjAwMTMgMjQuNjY5M0gyMi4wMDEzQzIyLjM1NDkgMjQuNjY5MyAyMi42OTQxIDI0LjUyODggMjIuOTQ0MSAyNC4yNzg3QzIzLjE5NDIgMjQuMDI4NyAyMy4zMzQ2IDIzLjY4OTYgMjMuMzM0NiAyMy4zMzU5VjE2LjAwMjZNMTguNjY4IDExLjMzNTlMMjMuMzM0NiAxNi4wMDI2TTE4LjY2OCAxMS4zMzU5VjE2LjAwMjZIMjMuMzM0NlwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0IG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2Pnt7ZmlsZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWNjZXNzVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAge3tmaWxlU2l6ZX19IEtCIOKAkyBVcGxvYWRlZFxyXG4gICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOS4zMzQ2IDE0Ljc3MDVWMTUuOTk3MkMyOS4zMzMgMTguODcyNCAyOC40MDIgMjEuNjcwMSAyNi42ODA0IDIzLjk3M0MyNC45NTg5IDI2LjI3NTggMjIuNTM5IDI3Ljk2MDUgMTkuNzgxOCAyOC43NzU3QzE3LjAyNDUgMjkuNTkxIDE0LjA3NzYgMjkuNDkzMSAxMS4zODA2IDI4LjQ5NjdDOC42ODM1NCAyNy41MDAyIDYuMzgwODQgMjUuNjU4NyA0LjgxNTkyIDIzLjI0NjZDMy4yNTA5OSAyMC44MzQ2IDIuNTA3NjkgMTcuOTgxMyAyLjY5Njg3IDE1LjExMjNDMi44ODYwNSAxMi4yNDMzIDMuOTk3NTggOS41MTIzMiA1Ljg2NTY4IDcuMzI2NjVDNy43MzM3NyA1LjE0MDk3IDEwLjI1ODMgMy42MTc3MiAxMy4wNjI5IDIuOTg0MDhDMTUuODY3NCAyLjM1MDQzIDE4LjgwMTcgMi42NDAzMyAyMS40MjggMy44MTA1NU0yOS4zMzQ2IDUuMzMwNTVMMTYuMDAxMyAxOC42NzcyTDEyLjAwMTMgMTQuNjc3MlwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8IS0tIEJ1dHRvbnMgLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTJcIiAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKClcIj5cclxuICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidHlwZSA9PSAnY3JlYXRlJyA/IGNyZWF0ZUNoZWNrbGlzdCgpIDogdXBkYXRlQ2hlY2tsaXN0KClcIj5cclxuICAgICAgICAgICAgIFByb2NlZWRcclxuICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICA8L2Zvcm0+XHJcbiAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJib3JkZXItMCB2YWxpZGF0ZUJveFwiICpuZ0lmPVwiZXhjZWxEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBtdC0wXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+PHNwYW4gY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1zZW1pYm9sZCB3LWF1dG9cIj5Bc3NpZ24gU3RvcmVzPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRGF0YT8ubGVuZ3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+VG90YWwgUmVjb3JkczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jYXJkIHJvdW5kZWQtMyBwLTMgZmxleC1jb2x1bW4gaC04MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7ZXhjZWxEYXRhPy5sZW5ndGh9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPlJvd3MgcHJvY2Vzc2VkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXJyb3ItaGVhZGluZyc6JydcIiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbEVycm9yPy5lcnJvcj8ubGVuZ3RoIHx8IDB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4Y2VsRXJyb3IgPyAnZXhjZWwtZXJyb3InOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBzdWJ0aXRsZSBtdC0xXCI+RXJyb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZXhjZWxFcnJvclwiIGNsYXNzPVwidGFibGUtaGVhZGVyIG10LTVcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA0MDA7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PllvdSdyZSBhYm91dCB0byBhc3NpZ24ge3tleGNlbERhdGE/Lmxlbmd0aH19IHN0b3JlcyB0byB0aGUgY2hlY2tsaXN0LiBBcmUgeW91IHN1cmUgd2FudCB0byBwcm9jZWVkPzwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4Y2VsRXJyb3JcIiBjbGFzcz1cImZsZXgtY29sdW1uIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWctaGVhZGluZyBmdy1ib2xkXCI+SW52YWxpZCBEZXRhaWxzICE8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0aXRsZSBtdC01XCI+UGxlYXNlIHByb3ZpZGUgY29ycmVjdCBhbmQgY29tcGxldGUgbGF5b3V0IGluZm9ybWF0aW9uLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNSB3LTEwMCByb3VuZGVkLTMgYm9yZGVyLWVycm9yIG10LTUgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIGV4Y2VsRXJyb3I/LmVycm9yOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIiBbbmdDbGFzc109XCIhbGFzdCA/ICdtYi0yJyA6ICcnXCIgY2xhc3M9XCJ0ZXh0LWVycm9yXCI+e3tpICsgMX19KSB7e2Vycm9yfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjtcIiAjZmlsZUlucHV0MSB0eXBlPVwiZmlsZVwiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC00XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0yXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAqbmdJZj1cIiFleGNlbEVycm9yXCIgKGNsaWNrKT1cInR5cGUgPT0gJ2NyZWF0ZScgPyBjcmVhdGVDaGVja2xpc3QoKSA6IHVwZGF0ZUNoZWNrbGlzdCgpXCI+XHJcbiAgICAgICAgUHJvY2VlZFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImV4Y2VsRXJyb3JcIiBjbGFzcz1cImJ0biBweS0zIG1zLTMgYnRuLWRhbmdlclwiIChjbGljayk9XCJSZXVwbG9hZCgpO1wiPlJldXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
612
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWNoZWNrbGlzdC9jaGVja2xpc3QtcG9wdXAvY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUUsTUFBTSxlQUFlLENBQUM7QUFHN0gsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFNBQVMsRUFBQyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHekMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQU8xQixNQUFNLE9BQU8sdUJBQXVCO0lBd0J4QjtJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBQ0M7SUFDQTtJQTdCVixhQUFhLENBQVk7SUFDaEIsUUFBUSxDQUFTO0lBQ2pCLElBQUksQ0FBUztJQUNiLGFBQWEsQ0FBTTtJQUNFLGVBQWUsQ0FBTTtJQUNoQyxTQUFTLENBQWM7SUFDdEIsVUFBVSxDQUFjO0lBRTVDLFFBQVEsQ0FBTTtJQUNkLFFBQVEsQ0FBTTtJQUNkLGNBQWMsR0FBUTtRQUNwQjtZQUNFLElBQUksRUFBRSxXQUFXO1lBQ2pCLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsRUFBRSxFQUFFO1NBQ2Q7S0FDRixDQUFDO0lBQ00sTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDL0IsU0FBUyxHQUFRLEVB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QUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2lCQUN6RDthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDekQ7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksR0FBRyxHQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87Z0JBQzVCLDBDQUEwQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQzt3R0E1bEJVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHlhQ2ZwQyxnMFlBOE1NOzs0RkQvTE8sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs4T0FNdEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDd0IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ1QsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUNHLFVBQVU7c0JBQTdCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jaGVja2xpc3QtcG9wdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NoZWNrbGlzdC1wb3B1cC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vY2hlY2tsaXN0LXBvcHVwLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY2hlY2tsaXN0Rm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNoZWNrbGlzdERhdGE6IGFueTtcclxuICBAVmlld0NoaWxkKFwiYWZ0ZXJWYWxpZGF0aW9uXCIpIGFmdGVyVmFsaWRhdGlvbjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJmaWxlXCIpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImZpbGUxXCIpIGZpbGVJbnB1dDEhOiBFbGVtZW50UmVmO1xyXG5cclxuICBmaWxlTmFtZTogYW55O1xyXG4gIGZpbGVTaXplOiBhbnk7XHJcbiAgc2VjdGlvbkRldGFpbHM6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJTZWN0aW9uIDFcIixcclxuICAgICAgc2VjdGlvbk51bWJlcjogMSxcclxuICAgICAgcXVlc3Rpb25zOiBbXSxcclxuICAgIH0sXHJcbiAgXTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZXhjZWxEYXRhOiBhbnkgPSBbXTtcclxuICBleGNlbEVycm9yOiBhbnk7XHJcbiAgZGF5anMgPSBkYXlqcztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc29wU2VydmljZTogVHJheFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHRoaXMuY2hlY2tsaXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbXCJcIl0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBbXCJcIl0sXHJcbiAgICAgIG1vZGU6IFtcImluZGl2aWR1YWxcIl0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHlwZSAhPSBcImNyZWF0ZVwiKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0Rm9ybS5nZXQoXCJtb2RlXCIpPy5zZXRWYWx1ZShcImJ1bGtcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbW9kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubW9kZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdE1vZGUobW9kZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNoZWNrbGlzdEZvcm0ucGF0Y2hWYWx1ZSh7IG1vZGUgfSk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmV4Y2VsRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5leGNlbEVycm9yID0gbnVsbDtcclxuICAgIHRoaXMuc2VjdGlvbkRldGFpbHMgPSBbXTtcclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBjb25zdCB0YXJnZXQ6IERhdGFUcmFuc2ZlciA9IDxEYXRhVHJhbnNmZXI+ZXZlbnQudGFyZ2V0O1xyXG4gICAgbGV0IGlzRXhjZWxGaWxlID0gISF0YXJnZXQuZmlsZXNbMF0ubmFtZS5tYXRjaCgvKC54bHN8Lnhsc3gpLyk7XHJcbiAgICBpZiAoIWlzRXhjZWxGaWxlKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBVcGxvYWQgYSB2YWxpZCB4bHN4IGZpbGVcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNFeGNlbEZpbGUpIHtcclxuICAgICAgY29uc3QgcmVhZGVyOiBGaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyh0YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGJzdHI6IHN0cmluZyA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICBjb25zdCB3YjogWExTWC5Xb3JrQm9vayA9IFhMU1gucmVhZChic3RyLCB7IHR5cGU6IFwiYmluYXJ5XCIgfSk7XHJcbiAgICAgICAgY29uc3Qgd3NuYW1lOiBzdHJpbmcgPSB3Yi5TaGVldE5hbWVzWzBdO1xyXG4gICAgICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWVdO1xyXG4gICAgICAgIGxldCBkYXRhID0gWExTWC51dGlscy5zaGVldF90b19qc29uKHdzLCB7IGRlZnZhbDogXCJcIiB9KTtcclxuICAgICAgICBpZiAoIWRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5leGNlbERhdGEgPSBkYXRhO1xyXG4gICAgICAgIGxldCBlcnJvcjogYW55ID0gW107XHJcbiAgICAgICAgbGV0IHF1ZXN0aW9uTGlzdDogYW55ID0gW107XHJcbiAgICAgICAgdGhpcy5leGNlbERhdGEuZm9yRWFjaCgoZWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmICghZWxlPy5bXCJTZWN0aW9uIE5hbWVcIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGBJbnZhbGlkIFNlY3Rpb24gTmFtZSAtIEEke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJRdWVzdGlvblwiXT8udG9TdHJpbmcoKT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgUXVlc3Rpb24gTmFtZSAtIEIke2luZGV4ICsgMn1gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXT8udHJpbSgpKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIFR5cGUgLSBDJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGVsZT8uW1wiQW5zd2VyIFR5cGVcIl0/LnRyaW0oKSAmJlxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgU2luZ2xlXCIsXHJcbiAgICAgICAgICAgICAgXCJNdWx0aXBsZSBDaG9pY2UgTXVsdGlwbGVcIixcclxuICAgICAgICAgICAgICBcIkRyb3Bkb3duXCIsXHJcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoZWxlPy5bXCJBbnN3ZXIgVHlwZVwiXSkgJiZcclxuICAgICAgICAgICAgIWVsZT8uW1wiQW5zd2VyIE9wdGlvbnNcIl0/LnRvU3RyaW5nKCk/LnRyaW0oKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGVycm9yLnB1c2goYEludmFsaWQgQW5zd2VyIE9wdGlvbnMgLSBEJHtpbmRleCArIDJ9YCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgbGV0IHFOYW1lOiBzdHJpbmcgPVxyXG4gICAgICAgICAgICBlbGU/LltcIlNlY3Rpb24gTmFtZVwiXT8udG9TdHJpbmcoKT8udHJpbSgpLnRvTG93ZXJDYXNlKCkgK1xyXG4gICAgICAgICAgICBlbGU/LltcIlF1ZXN0aW9uXCJdPy50b1N0cmluZygpPy50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICghcXVlc3Rpb25MaXN0LmluY2x1ZGVzKHFOYW1lKSkge1xyXG4gICAgICAgICAgICBxdWVzdGlvbkxpc3QucHVzaChxTmFtZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlcnJvci5wdXNoKGAke2VsZT8uW1wiUXVlc3Rpb25cIl0/LnRyaW0oKX0gcXVlc3Rpb24gaXMgRHVwbGljYXRlZGApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChlcnJvci5sZW5ndGgpIHtcclxuICAgICAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgICAgICBpbWFnZXNyYzogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPmAsXHJcbiAgICAgICAgICAgIHRpdGxlOiBgSW52YWxpZCBkZXRhaWxzIWAsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBQbGVhc2UgcHJvdmlkZSBjb3JyZWN0IGFuZCBjb21wbGV0ZSBzdG9yZSBpbmZvcm1hdGlvbi5gLFxyXG4gICAgICAgICAgICBidXR0b250eXBlOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnJvcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLmV4Y2VsRXJyb3IgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzZWN0aW9uTnVtYmVyID0gMDtcclxuICAgICAgICBsZXQgYW5zd2VyVHlwZTogYW55ID0ge1xyXG4gICAgICAgICAgXCJEZXNjcmlwdGl2ZSBBbnN3ZXJcIjogXCJkZXNjcmlwdGl2ZVwiLFxyXG4gICAgICAgICAgXCJBL0IgUXVlc3Rpb25cIjogXCJ5ZXMvbm9cIixcclxuICAgICAgICAgIFwiTXVsdGlwbGUgQ2hvaWNlIFNpbmdsZVwiOiBcIm11bHRpcGxlY2hvaWNlc2luZ2xlXCIsXHJcbiAgICAgICAgICBcIk11bHRpcGxlIENob2ljZSBNdWx0aXBsZVwiOiBcIm11bHRpcGxlY2hvaWNlbXVsdGlwbGVcIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBJbWFnZSB3aXRoIERlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpdmVJbWFnZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIEltYWdlIGFzIGFuc3dlclwiOiBcImltYWdlXCIsXHJcbiAgICAgICAgICBcIkNhcHR1cmUgdmlkZW8gYXMgYW5zd2VyXCI6IFwidmlkZW9cIixcclxuICAgICAgICAgIFwiQ2FwdHVyZSBNdWx0aXBsZSBJbWFnZVwiOiBcIm11bHRpcGxlSW1hZ2VcIixcclxuICAgICAgICAgIERhdGU6IFwiZGF0ZVwiLFxyXG4gICAgICAgICAgXCJMaW5lYXIgU2NhbGVcIjogXCJsaW5lYXJzY2FsZVwiLFxyXG4gICAgICAgICAgXCJDYXB0dXJlIEltYWdlL1ZpZGVvIGFzIEFuc3dlclwiOiBcImltYWdlL3ZpZGVvXCIsXHJcbiAgICAgICAgICBUaW1lOiBcInRpbWVcIixcclxuICAgICAgICAgIERyb3Bkb3duOiBcImRyb3Bkb3duXCIsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgc2VjRGV0YWlsczogYW55ID0gZGF0YS5yZWR1Y2UoKGFjYzogYW55LCBlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHNlY3Rpb25OYW1lID0gZWxlW1wiU2VjdGlvbiBOYW1lXCJdPy50b1N0cmluZygpPy50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGlmICghYWNjPy5bc2VjdGlvbk5hbWVdKSB7XHJcbiAgICAgICAgICAgIHNlY3Rpb25OdW1iZXIrKztcclxuICAgICAgICAgICAgYWNjW2Ake3NlY3Rpb25OYW1lfWBdID0ge1xyXG4gICAgICAgICAgICAgIG5hbWU6IGVsZVtcIlNlY3Rpb24gTmFtZVwiXT8udG9TdHJpbmcoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgIHNlY3Rpb25OdW1iZXI6IHNlY3Rpb25OdW1iZXIsXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIHFubzogMSxcclxuICAgICAgICAgICAgICAgICAgcW5hbWU6IGVsZVtcIlF1ZXN0aW9uXCJdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgICAgICAgICAgICAgIG9sZFFuYW1lOiBlbGVbXCJRdWVzdGlvblwiXT8udG9TdHJpbmcoKT8udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJUeXBlOiBhbnN3ZXJUeXBlW2Ake2VsZVtcIkFuc3dlciBUeXBlXCJdfWBdLFxyXG4gICAgICAgICAgICAgICAgICBhbnN3ZXJzOiB0aGlzLmZpbmRBbnN3ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgYW5zd2VyVHlwZVtgJHtlbGVbXCJBbnN3ZXIgVHlwZVwiXX1gXSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVbXCJBbnN3ZXIgT3B0aW9uc1wiXSxcclxuICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSURlZmF1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgbGlua1R5cGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvblJlZmVyZW5jZUltYWdlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICBydW5BSUZlYXR1cmVzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZVJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgcnVuQUlEZXNjcmlwdGlvbjogXCJcIixcclxuICAgICAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIGNvbXBsaWFuY2U6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGl2ZXR5cGU6IFwidGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWNjW2Ake3NlY3Rpb25OYW1lfWBdLnF1ZXN0aW9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICBxbm86IGFjY1tgJHtzZWN0aW9uTmFtZX1gXS5xdWVzdGlvbnMubGVuZ3RoICsgMSxcclxuICAgICAgICAgICAgICBxbmFtZTogZWxlW1wiUXVlc3Rpb25cIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICBvbGRRbmFtZTogZWxlW1wiUXVlc3Rpb25cIl0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgICAgICAgICBhbnN3ZXJUeXBlOiBhbnN3ZXJUeXBlW2Ake2VsZVtcIkFuc3dlciBUeXBlXCJdfWBdLFxyXG4gICAgICAgICAgICAgIGFuc3dlcnM6IHRoaXMuZmluZEFuc3dlcihcclxuICAgICAgICAgICAgICAgIGFuc3dlclR5cGVbYCR7ZWxlW1wiQW5zd2VyIFR5cGVcIl19YF0sXHJcbiAgICAgICAgICAgICAgICBlbGVbXCJBbnN3ZXIgT3B0aW9uc1wiXSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICBydW5BSURlZmF1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGxpbmtUeXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBtdWx0aVF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2U6IFwiXCIsXHJcbiAgICAgICAgICAgICAgcnVuQUlGZWF0dXJlczogW10sXHJcbiAgICAgICAgICAgICAgZGlzYWJsZVJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgICBydW5BSURlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2U6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aXZldHlwZTogXCJ0ZXh0XCIsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uRGV0YWlscyA9IE9iamVjdC52YWx1ZXMoc2VjRGV0YWlscyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0MSkge1xyXG4gICAgICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICB0aGlzLmZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgICB0aGlzLmZpbGVTaXplID0gTWF0aC5yb3VuZChmaWxlLnNpemUgLyAxMDI0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF07XHJcblxyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgdGhpcy5maWxlTmFtZSA9IGZpbGUubmFtZTtcclxuICAgICAgdGhpcy5maWxlU2l6ZSA9IE1hdGgucm91bmQoZmlsZS5zaXplIC8gMTAyNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBSZXVwbG9hZCgpIHtcclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dCkge1xyXG4gICAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbGVJbnB1dDEpIHtcclxuICAgICAgdGhpcy5maWxlSW5wdXQxLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgfVxyXG4gICAgbGV0IGVsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzJcIik7XHJcbiAgICBlbGU/LmNsaWNrKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNoZWNrbGlzdCgpIHtcclxuICAgIGlmICghdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLm5hbWUpIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiQ2hlY2tsaXN0IE5hbWUgaXMgbWlzc2luZ1wiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmV4Y2VsRGF0YS5sZW5ndGggJiYgdGhpcy5tb2RlID09IFwiYnVsa1wiKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLmNoZWNrbGlzdEZvcm0udmFsdWUubmFtZT8udHJpbSgpLFxyXG4gICAgICBjaGVja2xpc3REZXNjcmlwdGlvbjogdGhpcy5jaGVja2xpc3RGb3JtLnZhbHVlLmRlc2NyaXB0aW9uPy50cmltKCksXHJcbiAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25EZXRhaWxzLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJZCxcclxuICAgICAgc3VibWl0VHlwZTogXCJzYXZlXCIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVDaGVja2xpc3QocGFyYW1zKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICBpZiAocmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFwiQ2hlY2tsaXN0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoXHJcbiAgICAgICAgICAgICAgICBgL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdD9jaGVja2xpc3RJZD0ke3Jlcy5kYXRhLmNoZWNrbGlzdElkfWAsXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGNyZWF0ZSBjaGVja2xpc3QhXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9XHJcbiAgICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHxcclxuICAgICAgICAgICAgXCJVbmFibGUgdG8gY3JlYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhXCI7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEFuc3dlcih0eXBlOiBzdHJpbmcsIG9wdGlvbnM6IHN0cmluZykge1xyXG4gICAgbGV0IGFuc3dlcjogYW55ID0gW107XHJcblxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ5ZXMvbm9cIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJZZXNcIixcclxuICAgICAgICAgICAgYW5zd2Vyb3B0aW9uTnVtYmVyOiAxLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogXCJcIixcclxuICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICBhbGxvd1VwbG9hZGZyb21HYWxsZXJ5OiBmYWxzZSxcclxuICAgICAgICAgICAgY29tcGxpYW5jZVNjb3JlOiAwLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIk5vXCIsXHJcbiAgICAgICAgICAgIGFuc3dlcm9wdGlvbk51bWJlcjogMixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJDYXB0dXJlIEltYWdlXCIsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFwiXCIsXHJcbiAgICAgICAgICAgIHJ1bkFJOiBmYWxzZSxcclxuICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZGVzY3JpcHRpdmVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpdmV0eXBlOiBcInRleHRcIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibXVsdGlwbGVjaG9pY2VzaW5nbGVcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXTtcclxuICAgICAgICBvcHRpb25zLnNwbGl0KFwiLFwiKS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZS50cmltKCkpIHtcclxuICAgICAgICAgICAgYW5zd2VyLnB1c2goe1xyXG4gICAgICAgICAgICAgIGFuc3dlcjogZWxlLFxyXG4gICAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIkNhcHR1cmUgSW1hZ2VcIixcclxuICAgICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgICAgcnVuQUk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGFsbG93VXBsb2FkZnJvbUdhbGxlcnk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgICBjb21wbGlhbmNlU2NvcmU6IDAsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtdWx0aXBsZWNob2ljZW11bHRpcGxlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5zcGxpdChcIixcIikuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGU/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBhbnN3ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGUsXHJcbiAgICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRlc2NyaXB0aXZlSW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiaW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgICAgbWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgICBub3RNYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInZpZGVvXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm11bHRpcGxlSW1hZ2VcIjpcclxuICAgICAgICBhbnN3ZXIgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uVHlwZTogXCJcIixcclxuICAgICAgICAgICAgdmFsaWRhdGlvbkFuc3dlcjogXCJcIixcclxuICAgICAgICAgICAgcmVmZXJlbmNlSW1hZ2U6IFtdLFxyXG4gICAgICAgICAgICBzaG93TGlua2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgbGlua2VkUXVlc3Rpb246IDAsXHJcbiAgICAgICAgICAgIG5lc3RlZFF1ZXN0aW9uOiBbXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBoaXN0b3JpY0RhdGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgbWF0Y2hlZENvdW50OiAwLFxyXG4gICAgICAgICAgICBub3RNYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImxpbmVhcnNjYWxlXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBhbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHNvcEZsYWc6IGZhbHNlLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25BbnN3ZXI6IFwiXCIsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgc2hvd0xpbmtlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICByYW5nZVN0YXJ0OiAwLFxyXG4gICAgICAgICAgICByYW5nZUVuZDogMTAwLFxyXG4gICAgICAgICAgICBuZXN0ZWRRdWVzdGlvbjogW10sXHJcbiAgICAgICAgICAgIGxpbmVhclR5cGU6IFwibnVtYmVyXCIsXHJcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLFxyXG4gICAgICAgICAgICBtYXhWYWx1ZTogMTAwLFxyXG4gICAgICAgICAgICBtYXRjaGVkQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIG5vdE1hdGNoZWRDb3VudDogMCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJpbWFnZS92aWRlb1wiOlxyXG4gICAgICAgIGFuc3dlciA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICBzb3BGbGFnOiBmYWxzZSxcclxuICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25UeXBlOiBcIlwiLFxyXG4gICAgICAgICAgICB2YWxpZGF0aW9uQW5zd2VyOiBcIlwiLFxyXG4gICAgICAgICAgICByZWZlcmVuY2VJbWFnZTogW10sXHJcbiAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBsaW5rZWRRdWVzdGlvbjogMCxcclxuICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICBsaW1pdDogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpZGVvTGltaXQ6IDAsXHJcbiAgICAgICAgICAgIGltYWdlTGltaXQ6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImRyb3Bkb3duXCI6XHJcbiAgICAgICAgYW5zd2VyID0gW107XHJcbiAgICAgICAgb3B0aW9ucy5zcGxpdChcIixcIikuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChlbGU/LnRyaW0oKSkge1xyXG4gICAgICAgICAgICBhbnN3ZXIucHVzaCh7XHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBlbGUsXHJcbiAgICAgICAgICAgICAgc29wRmxhZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmFsaWRhdGlvblR5cGU6IFwiQ2FwdHVyZSBJbWFnZVwiLFxyXG4gICAgICAgICAgICAgIGxpbmtlZFF1ZXN0aW9uOiAwLFxyXG4gICAgICAgICAgICAgIHNob3dMaW5rZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUltYWdlOiBbXSxcclxuICAgICAgICAgICAgICBydW5BSTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgYWxsb3dVcGxvYWRmcm9tR2FsbGVyeTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgbmVzdGVkUXVlc3Rpb246IFtdLFxyXG4gICAgICAgICAgICAgIGNvbXBsaWFuY2VTY29yZTogMCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5zb3BTZXJ2aWNlXHJcbiAgICAgIC5kb3dubG9hZFF1ZXN0aW9uKHRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja2xpc3RJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zb3BTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShyZXMsIFwiQ2hlY2tsaXN0IFF1ZXN0aW9uXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KFwiVW5hYmxlIHRvIGRvd25sb2FkIHRlbXBsYXRlIVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gZG93bmxvYWQgdGVtcGxhdGUhXCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGVja2xpc3QoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tsaXN0RGF0YS5jaGVja0xpc3ROYW1lKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIkNoZWNrbGlzdCBOYW1lIGlzIG1pc3NpbmdcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5leGNlbERhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjaGVja2xpc3ROYW1lOiB0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tMaXN0TmFtZT8udHJpbSgpLFxyXG4gICAgICBjaGVja2xpc3REZXNjcmlwdGlvbjogdGhpcy5jaGVja2xpc3REYXRhLmNoZWNrTGlzdERlc2NyaXB0aW9uPy50cmltKCksXHJcbiAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25EZXRhaWxzLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jaGVja2xpc3REYXRhLmNsaWVudElkLFxyXG4gICAgICBzdWJtaXRUeXBlOiBcInNhdmVcIixcclxuICAgIH07XHJcbiAgICB0aGlzLnNvcFNlcnZpY2VcclxuICAgICAgLmdldFVwZGF0ZUNoZWNrbGlzdCh0aGlzLmNoZWNrbGlzdERhdGEuY2hlY2tsaXN0SWQsIHBhcmFtcylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcInJlbG9hZFwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChcIkNoZWNrbGlzdCB1cGRhdGVkIHN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoXCJVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlVuYWJsZSB0byB1cGRhdGUgY2hlY2tsaXN0IVwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyciA9XHJcbiAgICAgICAgICAgIGVycm9yPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHxcclxuICAgICAgICAgICAgXCJVbmFibGUgdG8gdXBkYXRlIGNoZWNrbGlzdCFTZXJ2ZXIgRXJyb3IhXCI7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWNhcmRcIj5cclxuXHJcbiAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgIDxkaXYgKm5nSWY9XCIhZXhjZWxEYXRhLmxlbmd0aFwiPlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtaWNvbiBtZS0yXCI+XHJcbiAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yOCAyMVYzNU0yMSAyOEgzNVwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwibWItMCB0aXRsZVRleHRcIj57e3R5cGUgPT0gJ2NyZWF0ZScgPyAnQ3JlYXRlIENoZWNrbGlzdCcgOiAnQnVsayBVcGxvYWQnfX08L2Rpdj5cclxuICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjaGVja2xpc3RGb3JtXCI+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gQ2hlY2tsaXN0IE5hbWUgLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJ0eXBlID09ICdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNoZWNrbGlzdCBOYW1lPC9sYWJlbD5cclxuICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJ0eXBlID09ICdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkRlc2NyaXB0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiM1wiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwhLS0gTW9kZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yIG15LTNcIiAqbmdJZj1cInR5cGUgPT0gJ2NyZWF0ZSdcIj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24tYm94XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLm9wdGlvbi1hY3RpdmVdPVwibW9kZT09PSdpbmRpdmlkdWFsJ1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb2RlKCdpbmRpdmlkdWFsJylcIj5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPHNwYW4+QWRkIHF1ZXN0aW9ucyBpbmRpdmlkdWFsbHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImluZGl2aWR1YWxcIiBmb3JtQ29udHJvbE5hbWU9XCJtb2RlXCIgc3R5bGU9XCJ3aWR0aDoxNXB4O2hlaWdodDoxNXB4XCI+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24tYm94XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLm9wdGlvbi1hY3RpdmVdPVwibW9kZT09PSdidWxrJ1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb2RlKCdidWxrJylcIj5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPHNwYW4+QWRkIHF1ZXN0aW9ucyBpbiBidWxrPC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJidWxrXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9kZVwiIHN0eWxlPVwid2lkdGg6MTVweDtoZWlnaHQ6MTVweFwiPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8IS0tIEJ1bGsgVXBsb2FkIFNlY3Rpb24gLS0+XHJcbiAgICAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09PSAnYnVsaydcIiBjbGFzcz1cImJ1bGtUZXh0XCI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+MS4gVXNlIHRoZSB0ZW1wbGF0ZSB0byB1cGxvYWQgbXVsdGlwbGUgcXVlc3Rpb25zIGF0IG9uY2U8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgIDIuIERvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC1cclxuICAgICAgICAgICAgICAgQGlmKHR5cGUgPT0gJ2NyZWF0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZG93bmxvYWQtbGlua1wiIGhyZWY9XCIvYXNzZXRzL2ZpbGVzL2NoZWNrbGlzdFF1ZXN0aW9uLnhsc3hcIiBkb3dubG9hZD5cclxuICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNyAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzNTkgMTAuODM1OVYxNC4xNjkzQzE1LjgzNTkgMTQuNjExMyAxNS42NjAzIDE1LjAzNTIgMTUuMzQ3OCAxNS4zNDc4QzE1LjAzNTIgMTUuNjYwMyAxNC42MTEzIDE1LjgzNTkgMTQuMTY5MyAxNS44MzU5SDIuNTAyNkMyLjA2MDU4IDE1LjgzNTkgMS42MzY2NSAxNS42NjAzIDEuMzI0MDkgMTUuMzQ3OEMxLjAxMTUzIDE1LjAzNTIgMC44MzU5MzggMTQuNjExMyAwLjgzNTkzOCAxNC4xNjkzVjEwLjgzNTlNNC4xNjkyNyA2LjY2OTI3TDguMzM1OTQgMTAuODM1OU04LjMzNTk0IDEwLjgzNTlMMTIuNTAyNiA2LjY2OTI3TTguMzM1OTQgMTAuODM1OVYwLjgzNTkzOFwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gRG93bmxvYWQgVGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgKGNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1LjgzNTkgMTAuODM1OVYxNC4xNjkzQzE1LjgzNTkgMTQuNjExMyAxNS42NjAzIDE1LjAzNTIgMTUuMzQ3OCAxNS4zNDc4QzE1LjAzNTIgMTUuNjYwMyAxNC42MTEzIDE1LjgzNTkgMTQuMTY5MyAxNS44MzU5SDIuNTAyNkMyLjA2MDU4IDE1LjgzNTkgMS42MzY2NSAxNS42NjAzIDEuMzI0MDkgMTUuMzQ3OEMxLjAxMTUzIDE1LjAzNTIgMC44MzU5MzggMTQuNjExMyAwLjgzNTkzOCAxNC4xNjkzVjEwLjgzNTlNNC4xNjkyNyA2LjY2OTI3TDguMzM1OTQgMTAuODM1OU04LjMzNTk0IDEwLjgzNTlMMTIuNTAyNiA2LjY2OTI3TTguMzM1OTQgMTAuODM1OVYwLjgzNTkzOFwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPiBEb3dubG9hZCBUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPjMuIEFkZCB5b3VyIGRhdGEgdG8gdGhlIHRlbXBsYXRlPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPjQuIFVwbG9hZCBpdCBmb3IgcHJvY2Vzc2luZzwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwhLS0gVXBsb2FkIEFyZWEgLS0+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1ib3ggY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaWNvbiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTkwMzRfNjY5OTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYuMzMyNiAyNi4zMzEzTDIyLjk5OTIgMjIuOTk4TTIyLjk5OTIgMjIuOTk4TDE5LjY2NTkgMjYuMzMxM00yMi45OTkyIDIyLjk5OFYzMC40OThNMjkuOTkwOSAyOC4zMjNDMzAuODAzNyAyNy44Nzk4IDMxLjQ0NTggMjcuMTc4NyAzMS44MTU4IDI2LjMzMDFDMzIuMTg1OCAyNS40ODE2IDMyLjI2MjcgMjQuNTM0IDMyLjAzNDQgMjMuNjM2OUMzMS44MDYxIDIyLjczOTcgMzEuMjg1NSAyMS45NDQyIDMwLjU1NDggMjEuMzc1OEMyOS44MjQxIDIwLjgwNzQgMjguOTI1IDIwLjQ5ODYgMjcuOTk5MiAyMC40OThIMjYuOTQ5MkMyNi42OTcgMTkuNTIyMyAyNi4yMjY5IDE4LjYxNjYgMjUuNTc0MiAxNy44NDg4QzI0LjkyMTUgMTcuMDgxIDI0LjEwMzMgMTYuNDcxMiAyMy4xODEgMTYuMDY1MUMyMi4yNTg3IDE1LjY1OTEgMjEuMjU2NCAxNS40Njc0IDIwLjI0OTMgMTUuNTA0NUMxOS4yNDIzIDE1LjU0MTYgMTguMjU2OCAxNS44MDY1IDE3LjM2NjkgMTYuMjc5M0MxNi40NzcgMTYuNzUyMSAxNS43MDU4IDE3LjQyMDUgMTUuMTExNCAxOC4yMzQzQzE0LjUxNyAxOS4wNDggMTQuMTE0OCAxOS45ODU5IDEzLjkzNTEgMjAuOTc3NEMxMy43NTUzIDIxLjk2OSAxMy44MDI3IDIyLjk4ODQgMTQuMDczNiAyMy45NTlDMTQuMzQ0NSAyNC45Mjk2IDE0LjgzMTkgMjUuODI2MiAxNS40OTkyIDI2LjU4MTNcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTkwMzRfNjY5OTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEzIDEzKVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGZ3LXNlbWlib2xkIHVwbG9hZFRleHRcIj5DbGljayBUbyBVcGxvYWQ8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDwhLS0gSGlkZGVuIEZpbGUgSW5wdXQgLS0+XHJcbiAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAjZmlsZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgIGhpZGRlblxyXG4gICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICA+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICA8IS0tIFVwbG9hZGVkIEZpbGUgLS0+XHJcbiAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVOYW1lXCIgY2xhc3M9XCJ1cGxvYWQtZmlsZVwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOC42NjggMTEuMzM1OUgxNC4wMDEzQzEzLjY0NzcgMTEuMzM1OSAxMy4zMDg1IDExLjQ3NjQgMTMuMDU4NSAxMS43MjY1QzEyLjgwODQgMTEuOTc2NSAxMi42NjggMTIuMzE1NiAxMi42NjggMTIuNjY5M1YyMy4zMzU5QzEyLjY2OCAyMy42ODk2IDEyLjgwODQgMjQuMDI4NyAxMy4wNTg1IDI0LjI3ODdDMTMuMzA4NSAyNC41Mjg4IDEzLjY0NzcgMjQuNjY5MyAxNC4wMDEzIDI0LjY2OTNIMjIuMDAxM0MyMi4zNTQ5IDI0LjY2OTMgMjIuNjk0MSAyNC41Mjg4IDIyLjk0NDEgMjQuMjc4N0MyMy4xOTQyIDI0LjAyODcgMjMuMzM0NiAyMy42ODk2IDIzLjMzNDYgMjMuMzM1OVYxNi4wMDI2TTE4LjY2OCAxMS4zMzU5TDIzLjMzNDYgMTYuMDAyNk0xOC42NjggMTEuMzM1OVYxNi4wMDI2SDIzLjMzNDZcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICBcclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydCBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgPGRpdj57e2ZpbGVOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzc1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgIHt7ZmlsZVNpemV9fSBLQiDigJMgVXBsb2FkZWRcclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjkuMzM0NiAxNC43NzA1VjE1Ljk5NzJDMjkuMzMzIDE4Ljg3MjQgMjguNDAyIDIxLjY3MDEgMjYuNjgwNCAyMy45NzNDMjQuOTU4OSAyNi4yNzU4IDIyLjUzOSAyNy45NjA1IDE5Ljc4MTggMjguNzc1N0MxNy4wMjQ1IDI5LjU5MSAxNC4wNzc2IDI5LjQ5MzEgMTEuMzgwNiAyOC40OTY3QzguNjgzNTQgMjcuNTAwMiA2LjM4MDg0IDI1LjY1ODcgNC44MTU5MiAyMy4yNDY2QzMuMjUwOTkgMjAuODM0NiAyLjUwNzY5IDE3Ljk4MTMgMi42OTY4NyAxNS4xMTIzQzIuODg2MDUgMTIuMjQzMyAzLjk5NzU4IDkuNTEyMzIgNS44NjU2OCA3LjMyNjY1QzcuNzMzNzcgNS4xNDA5NyAxMC4yNTgzIDMuNjE3NzIgMTMuMDYyOSAyLjk4NDA4QzE1Ljg2NzQgMi4zNTA0MyAxOC44MDE3IDIuNjQwMzMgMjEuNDI4IDMuODEwNTVNMjkuMzM0NiA1LjMzMDU1TDE2LjAwMTMgMTguNjc3MkwxMi4wMDEzIDE0LjY3NzJcIiBzdHJva2U9XCIjMTJCNzZBXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICBcclxuICAgICAgICAgPCEtLSBCdXR0b25zIC0tPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtNFwiPlxyXG4gICAgIFxyXG4gICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0yXCIgKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICBcclxuICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInR5cGUgPT0gJ2NyZWF0ZScgPyBjcmVhdGVDaGVja2xpc3QoKSA6IHVwZGF0ZUNoZWNrbGlzdCgpXCI+XHJcbiAgICAgICAgICAgICBQcm9jZWVkXHJcbiAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgXHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgIFxyXG4gICAgICAgPC9mb3JtPlxyXG4gICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLTAgdmFsaWRhdGVCb3hcIiAqbmdJZj1cImV4Y2VsRGF0YS5sZW5ndGhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgbXQtMFwiPlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPjxzcGFuIGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctc2VtaWJvbGQgdy1hdXRvXCI+QXNzaWduIFN0b3Jlczwvc3Bhbj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbmZpZy1oZWFkaW5nIHctMTAwXCI+e3tleGNlbERhdGE/Lmxlbmd0aH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPlRvdGFsIFJlY29yZHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY2FyZCByb3VuZGVkLTMgcC0zIGZsZXgtY29sdW1uIGgtODBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGQgY29uZmlnLWhlYWRpbmcgdy0xMDBcIj57e2V4Y2VsRGF0YT8ubGVuZ3RofX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkIHN1YnRpdGxlIG10LTFcIj5Sb3dzIHByb2Nlc3NlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNhcmQgcm91bmRlZC0zIHAtMyBmbGV4LWNvbHVtbiBoLTgwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2Vycm9yLWhlYWRpbmcnOicnXCIgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb25maWctaGVhZGluZyB3LTEwMFwiPnt7ZXhjZWxFcnJvcj8uZXJyb3I/Lmxlbmd0aCB8fCAwfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleGNlbEVycm9yID8gJ2V4Y2VsLWVycm9yJzonJ1wiIGNsYXNzPVwiZnctc2VtaWJvbGQgc3VidGl0bGUgbXQtMVwiPkVycm9yPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV4Y2VsRXJyb3JcIiBjbGFzcz1cInRhYmxlLWhlYWRlciBtdC01XCIgc3R5bGU9XCJmb250LXdlaWdodDogNDAwO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5Zb3UncmUgYWJvdXQgdG8gYXNzaWduIHt7ZXhjZWxEYXRhPy5sZW5ndGh9fSBzdG9yZXMgdG8gdGhlIGNoZWNrbGlzdC4gQXJlIHlvdSBzdXJlIHdhbnQgdG8gcHJvY2VlZD88L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJleGNlbEVycm9yXCIgY2xhc3M9XCJmbGV4LWNvbHVtbiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWhlYWRpbmcgZnctYm9sZFwiPkludmFsaWQgRGV0YWlscyAhPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbXQtNVwiPlBsZWFzZSBwcm92aWRlIGNvcnJlY3QgYW5kIGNvbXBsZXRlIGxheW91dCBpbmZvcm1hdGlvbi48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTUgdy0xMDAgcm91bmRlZC0zIGJvcmRlci1lcnJvciBtdC01IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiBleGNlbEVycm9yPy5lcnJvcjsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCIgW25nQ2xhc3NdPVwiIWxhc3QgPyAnbWItMicgOiAnJ1wiIGNsYXNzPVwidGV4dC1lcnJvclwiPnt7aSArIDF9fSkge3tlcnJvcn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW47XCIgI2ZpbGVJbnB1dDEgdHlwZT1cImZpbGVcIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8yXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtNFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMlwiIChjbGljayk9XCJkaWFsb2dSZWYuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKm5nSWY9XCIhZXhjZWxFcnJvclwiIChjbGljayk9XCJ0eXBlID09ICdjcmVhdGUnID8gY3JlYXRlQ2hlY2tsaXN0KCkgOiB1cGRhdGVDaGVja2xpc3QoKVwiPlxyXG4gICAgICAgIFByb2NlZWRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJleGNlbEVycm9yXCIgY2xhc3M9XCJidG4gcHktMyBtcy0zIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwiUmV1cGxvYWQoKTtcIj5SZXVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=