@bnsights/bbsf-admin-portal 1.0.35 → 1.0.36

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.
Files changed (29) hide show
  1. package/README.md +4 -0
  2. package/bnsights-bbsf-admin-portal-1.0.36.tgz +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +214 -103
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +1 -7
  6. package/esm2015/lib/Pages/_layout/components/toolbar/toolbar.component.js +3 -1
  7. package/esm2015/lib/Pages/_layout/components/topbar/topbar.component.js +10 -2
  8. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +2 -2
  9. package/esm2015/lib/Pages/license/license/license.component.js +40 -31
  10. package/esm2015/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.js +20 -3
  11. package/esm2015/lib/Pages/localizations/localizations.component.js +4 -4
  12. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +2 -1
  13. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +8 -2
  14. package/esm2015/lib/Pages/providers/provider/provider.component.js +23 -7
  15. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +2 -2
  16. package/esm2015/lib/Pages/shared/Services/ConfigurationsService.service.js +5 -2
  17. package/esm2015/lib/Pages/shared/Services/userService.service.js +4 -1
  18. package/esm2015/lib/Pages/shared/models/UserModels/IdentityModel.js +3 -0
  19. package/fesm2015/bnsights-bbsf-admin-portal.js +212 -104
  20. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  21. package/lib/Pages/_layout/components/toolbar/toolbar.component.d.ts +1 -0
  22. package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +4 -1
  23. package/lib/Pages/license/license/license.component.d.ts +3 -0
  24. package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +3 -1
  25. package/lib/Pages/providers/provider/provider.component.d.ts +3 -1
  26. package/lib/Pages/shared/Services/userService.service.d.ts +1 -0
  27. package/lib/Pages/shared/models/UserModels/IdentityModel.d.ts +9 -0
  28. package/package.json +3 -3
  29. package/bnsights-bbsf-admin-portal-1.0.35.tgz +0 -0
@@ -61,7 +61,8 @@ export class LicenseComponent {
61
61
  this.OnSuccessHandler = (res) => {
62
62
  this.utilityService.notifySuccessMessage();
63
63
  this.utilityService.stopBlockUI();
64
- this.ngOnInit();
64
+ clearInterval(this.intervalConst);
65
+ this.setPageLicenseData(res.val);
65
66
  };
66
67
  }
67
68
  ;
@@ -84,38 +85,46 @@ export class LicenseComponent {
84
85
  this.licenseService.getOrganizationLicense().subscribe((result) => {
85
86
  let Model = result;
86
87
  if (Model != null) {
87
- let startDate = new Date(Model.val.licenseStartDate);
88
- let endDate = new Date(Model.val.licenseEndDate);
89
- let activationDate = new Date(Model.val.activationDate);
90
- this.activationDate = activationDate.toLocaleDateString();
91
- this.licenseStartDate = startDate.toLocaleDateString();
92
- this.licenseEndDate = endDate.toLocaleDateString();
93
- this.name = Model.val.name.current;
94
- let CurrentDate = new Date();
95
- if ((endDate.toLocaleDateString() == CurrentDate.toLocaleDateString()))
96
- this.noLicenseFound = true;
97
- else
98
- this.noLicenseFound = false;
99
- this.dateInMinutes = this.getDifferenceInMinutes(CurrentDate, endDate);
100
- setInterval(() => {
101
- this.date_future = endDate;
102
- this.date_now = new Date();
103
- this.seconds = Math.floor((this.date_future - (this.date_now)) / 1000);
104
- this.minutes = Math.floor(this.seconds / 60);
105
- this.hours = Math.floor(this.minutes / 60);
106
- this.days = Math.floor(this.hours / 24);
107
- this.months = Math.floor(this.days / 31);
108
- this.years = Math.floor(this.months / 12);
109
- this.hours = this.hours - (this.days * 24);
110
- this.minutes = this.minutes - (this.days * 24 * 60) - (this.hours * 60);
111
- this.seconds = this.seconds - (this.days * 24 * 60 * 60) - (this.hours * 60 * 60) - (this.minutes * 60);
112
- this.days = this.days - (this.months * 31);
113
- this.months = this.months - (this.years * 12);
114
- }, 1000);
88
+ this.setPageLicenseData(Model.val);
115
89
  }
116
- this.showTimer = true;
117
90
  });
118
91
  }
92
+ setPageLicenseData(license) {
93
+ let startDate = new Date(license.licenseStartDate);
94
+ let endDate = new Date(license.licenseEndDate);
95
+ let activationDate = new Date(license.activationDate);
96
+ this.activationDate = activationDate.toLocaleDateString();
97
+ this.licenseStartDate = startDate.toLocaleDateString();
98
+ this.licenseEndDate = endDate.toLocaleDateString();
99
+ this.name = license.name.current;
100
+ let CurrentDate = new Date();
101
+ if ((endDate.toLocaleDateString() == CurrentDate.toLocaleDateString()))
102
+ this.noLicenseFound = true;
103
+ else
104
+ this.noLicenseFound = false;
105
+ this.dateInMinutes = this.getDifferenceInMinutes(CurrentDate, endDate);
106
+ //set first time
107
+ this.setCounter(endDate);
108
+ this.showTimer = true;
109
+ this.intervalConst = setInterval(() => {
110
+ this.setCounter(endDate);
111
+ }, 1000);
112
+ }
113
+ setCounter(endDate) {
114
+ this.date_future = endDate;
115
+ this.date_now = new Date();
116
+ this.seconds = Math.floor((this.date_future - (this.date_now)) / 1000);
117
+ this.minutes = Math.floor(this.seconds / 60);
118
+ this.hours = Math.floor(this.minutes / 60);
119
+ this.days = Math.floor(this.hours / 24);
120
+ this.months = Math.floor(this.days / 31);
121
+ this.years = Math.floor(this.months / 12);
122
+ this.hours = this.hours - (this.days * 24);
123
+ this.minutes = this.minutes - (this.days * 24 * 60) - (this.hours * 60);
124
+ this.seconds = this.seconds - (this.days * 24 * 60 * 60) - (this.hours * 60 * 60) - (this.minutes * 60);
125
+ this.days = this.days - (this.months * 31);
126
+ this.months = this.months - (this.years * 12);
127
+ }
119
128
  getDifferenceInMinutes(date1, date2) {
120
129
  const diffInMs = Math.abs(date2 - date1);
121
130
  return diffInMs / (1000 * 60);
@@ -158,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
158
167
  styleUrls: ['./license.component.css'],
159
168
  }]
160
169
  }], ctorParameters: function () { return [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.EnvironmentService }, { type: i3.LicenseService }, { type: i4.NgbModal }, { type: i2.RequestHandlerService }]; } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7O0FBU3JGLE1BQU0sT0FBTyxnQkFBZ0I7SUE4QjNCLFlBQ1UsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0Isa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLFlBQXNCLEVBQ3RCLHFCQUE0QztRQUw1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFsQ3RELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFdBQU0s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RUFBRSxhQUFhO29CQUN2QixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsZVR5cGUsIEZpbGVVcGxvYWRPcHRpb25zLCBGb3JtT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgTGljZW5zZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9MaWNlbnNlU2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0xpY2Vuc2VNb2RlbC9MaWNlbnNlTW9kZWwnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbGljZW5zZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xpY2Vuc2UuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGljZW5zZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIFNob3dQYWdlQ29udGVudCA9IGZhbHNlO1xyXG4gIGNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dTaGFkb3cgPSBbXTtcclxuICBub0xpY2Vuc2VGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFjdGl2YXRpb25EYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZVN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gIGxpY2Vuc2VFbmREYXRlOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBwcm9kdWN0aW9uTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGVJbk1pbnV0ZXM6IG51bWJlciA9IDBcclxuICBzZWNvbmRzOiBudW1iZXIgPSAwO1xyXG4gIG1pbnV0ZXM6IG51bWJlciA9IDA7XHJcbiAgaG91cnM6IG51bWJlciA9IDA7XHJcbiAgZGF5czogbnVtYmVyID0gMDtcclxuICB3ZWVrczogbnVtYmVyID0gMDtcclxuICBtb250aHM6IG51bWJlciA9IDA7XHJcbiAgeWVhcnM6IG51bWJlciA9IDA7XHJcbiAgZGF0ZV9mdXR1cmU6IGFueTtcclxuICBkYXRlX25vdzogYW55O1xyXG4gIHNob3dUaW1lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vVXBsb2FkIE1vZGVsIENvbnRyb2xzXHJcbiAgdXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICB1cGxvYWRGaWxlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbGljZW5zZUZpbGVJbnB1dDogRmlsZVVwbG9hZE9wdGlvbnM7XHJcbiAgYXBwZW5kRXhpc3Rpbmc6IGJvb2xlYW47XHJcbiAgaW5pdGlhbE1pbnV0ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgyNCAqIDYwICogMzApOztcclxuICB2YWx1ZSA9IDA7XHJcbiAgdGltZXIkOiBhbnlcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbGljZW5zZVNlcnZpY2U6IExpY2Vuc2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLnByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKVxyXG4gICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5saWNlbnNlU2VydmljZS5nZXRPcmdhbml6YXRpb25MaWNlbnNlKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBpZiAoTW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBzdGFydERhdGUgPSBuZXcgRGF0ZShNb2RlbC52YWwubGljZW5zZVN0YXJ0RGF0ZSk7XHJcbiAgICAgICAgbGV0IGVuZERhdGUgPSBuZXcgRGF0ZShNb2RlbC52YWwubGljZW5zZUVuZERhdGUpO1xyXG4gICAgICAgIGxldCBhY3RpdmF0aW9uRGF0ZSA9IG5ldyBEYXRlKE1vZGVsLnZhbC5hY3RpdmF0aW9uRGF0ZSk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0aW9uRGF0ZSA9IGFjdGl2YXRpb25EYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIHRoaXMubGljZW5zZVN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgICAgIHRoaXMubGljZW5zZUVuZERhdGUgPSBlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICAgICAgdGhpcy5uYW1lID0gTW9kZWwudmFsLm5hbWUuY3VycmVudFxyXG4gICAgICAgIGxldCBDdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgaWYgKChlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpID09IEN1cnJlbnREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpKSlcclxuICAgICAgICAgIHRoaXMubm9MaWNlbnNlRm91bmQgPSB0cnVlXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZCA9IGZhbHNlXHJcblxyXG4gICAgICAgIHRoaXMuZGF0ZUluTWludXRlcyA9IHRoaXMuZ2V0RGlmZmVyZW5jZUluTWludXRlcyhDdXJyZW50RGF0ZSwgZW5kRGF0ZSk7XHJcblxyXG4gICAgICAgIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGF0ZV9mdXR1cmUgPSBlbmREYXRlO1xyXG4gICAgICAgICAgdGhpcy5kYXRlX25vdyA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zZWNvbmRzID0gTWF0aC5mbG9vcigodGhpcy5kYXRlX2Z1dHVyZSAtICh0aGlzLmRhdGVfbm93KSkgLyAxMDAwKTtcclxuICAgICAgICAgIHRoaXMubWludXRlcyA9IE1hdGguZmxvb3IodGhpcy5zZWNvbmRzIC8gNjApO1xyXG4gICAgICAgICAgdGhpcy5ob3VycyA9IE1hdGguZmxvb3IodGhpcy5taW51dGVzIC8gNjApO1xyXG4gICAgICAgICAgdGhpcy5kYXlzID0gTWF0aC5mbG9vcih0aGlzLmhvdXJzIC8gMjQpO1xyXG4gICAgICAgICAgdGhpcy5tb250aHMgPSBNYXRoLmZsb29yKHRoaXMuZGF5cyAvIDMxKTtcclxuICAgICAgICAgIHRoaXMueWVhcnMgPSBNYXRoLmZsb29yKHRoaXMubW9udGhzIC8gMTIpO1xyXG5cclxuICAgICAgICAgIHRoaXMuaG91cnMgPSB0aGlzLmhvdXJzIC0gKHRoaXMuZGF5cyAqIDI0KTtcclxuICAgICAgICAgIHRoaXMubWludXRlcyA9IHRoaXMubWludXRlcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwKSAtICh0aGlzLmhvdXJzICogNjApO1xyXG4gICAgICAgICAgdGhpcy5zZWNvbmRzID0gdGhpcy5zZWNvbmRzIC0gKHRoaXMuZGF5cyAqIDI0ICogNjAgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwICogNjApIC0gKHRoaXMubWludXRlcyAqIDYwKTtcclxuICAgICAgICAgIHRoaXMuZGF5cyA9IHRoaXMuZGF5cyAtICh0aGlzLm1vbnRocyAqIDMxKTtcclxuICAgICAgICAgIHRoaXMubW9udGhzID0gdGhpcy5tb250aHMgLSAodGhpcy55ZWFycyAqIDEyKTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2hvd1RpbWVyID0gdHJ1ZVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RGlmZmVyZW5jZUluTWludXRlcyhkYXRlMSwgZGF0ZTIpIHtcclxuICAgIGNvbnN0IGRpZmZJbk1zID0gTWF0aC5hYnMoZGF0ZTIgLSBkYXRlMSk7XHJcbiAgICByZXR1cm4gZGlmZkluTXMgLyAoMTAwMCAqIDYwKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8vLy8vLy8vLy8vIFN0YXJ0IGFkZCBMaWNlbnNlIFBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgc2hvd1VwbG9hZE1vZGFsKHVwbG9hZEZpbGVNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm0ucmVzZXQoKTtcclxuXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy51cGxvYWRGaWxlRm9ybVxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZU1vZGVsO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlRnVuY3Rpb247XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5PblN1Y2Nlc3NIYW5kbGVyO1xyXG5cclxuXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5OYW1lID0gXCJMaWNlbnNlRmlsZUlucHV0XCJcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5MYWJlbEtleSA9IFwiVXBsb2FkRmlsZVwiXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuSXNNdWx0aXBsZUZpbGUgPSBmYWxzZVxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LklzUmVxdWlyZWQgPSB0cnVlXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuRmlsZVVwbG9hZEFjY2VwdHNUeXBlcyA9IFtGaWxlVHlwZS5MaWNlbnNlXVxyXG5cclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHVwbG9hZEZpbGVNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFkZExpY2Vuc2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy51cGxvYWRGaWxlRm9ybS52YWx1ZTtcclxuICAgIGxldCBNb2RlbCA9IG5ldyBMaWNlbnNlTW9kZWwoKTtcclxuXHJcbiAgICBNb2RlbC5hcHBlbmRFeGlzdGluZyA9IHRoaXMuYXBwZW5kRXhpc3Rpbmc7XHJcbiAgICBNb2RlbC5MaWNlbnNlRmlsZSA9IHtcclxuICAgICAgRmlsZUJhc2U2NDogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZUJhc2U2NCxcclxuICAgICAgRmlsZU5hbWU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVOYW1lLFxyXG4gICAgICBGaWxlU2l6ZUluTUI6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVTaXplSW5NQixcclxuICAgICAgRmlsZVR5cGU6IFJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXS5GaWxlLkZpbGVUeXBlXHJcbiAgICB9XHJcbiAgICBwYXJhbUFycmF5LnB1c2goTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMaWNlbnNlRnVuY3Rpb24gPSAoTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubGljZW5zZVNlcnZpY2UudXBsb2FkTGljZW5zZShNb2RlbCk7XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExpY2Vuc2UgIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuICBpc0FwcGVuZEV4aXN0aW5nKGFwcGVuZEV4aXN0aW5nKSB7XHJcbiAgICB0aGlzLmFwcGVuZEV4aXN0aW5nID0gYXBwZW5kRXhpc3RpbmdcclxuICB9XHJcbiAgT25TdWNjZXNzSGFuZGxlcj0ocmVzKT0+e1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSgpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpXHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vL0Rlc3Ryb3kgT2JzZXJ2YWJsZSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG4gIDwhLS1CZWdpbjo6U2VjdGlvbi0tPlxyXG4gIDxkaXYgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlXCI+XHJcbiAgICAgICAgICA8aDMgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cIlwiPnt7bmFtZX19PC9oMz5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG0tMyBiYWRnZS1sZ1wiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlQWN0aXZhdGVkU3VjY2Vzc2Z1bGx5XCIpfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmF0ZVwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93VGltZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX1RpbWVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllYXJzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInllYXJzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7eWVhcnN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTW9udGhzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1vbnRocyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21vbnRoc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEYXlzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRheXMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tkYXlzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvdXJzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdXJzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7aG91cnN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWludXRlc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaW4gZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3ttaW51dGVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWNvbmRzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlYyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e3NlY29uZHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbGljZW5zZS1oZWFkXCIgKm5nSWY9XCJub0xpY2Vuc2VGb3VuZFwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VOb3RGb3VuZFwiKX19XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VTdGFydERhdGVcIil9fTo8L3A+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtd2VpZ2h0LTUwMFwiPnt7bGljZW5zZVN0YXJ0RGF0ZSB8IGRhdGU6J2RkLU1NLXknfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyIGZzLTcgZnctYm9sZGVyIG1lLTIgbWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlRXhwaXJ5RGF0ZVwiKX19OjwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlRW5kRGF0ZSB8IGRhdGU6J2RkLU1NLXknfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBhY3RpdmF0ZS0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjdXBsb2FkRmlsZU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4uLy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVwbG9hZExpY2Vuc2VcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cInVwbG9hZEZpbGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLUZpbGVVcGxhb2QgW29wdGlvbnNdPVwibGljZW5zZUZpbGVJbnB1dFwiIFtncm91cF09XCJ1cGxvYWRGaWxlRm9ybVwiPlxyXG4gICAgICAgIDwvQkJTRi1GaWxlVXBsYW9kPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uICNDbG9zZUxpY2Vuc2VGaWxlTW9kYWwgaWQ9XCJDbG9zZUxpY2Vuc2VGaWxlTW9kYWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJpc0FwcGVuZEV4aXN0aW5nKGZhbHNlKVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiaXNBcHBlbmRFeGlzdGluZyh0cnVlKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXBwZW5kXCIpfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7O0FBU3JGLE1BQU0sT0FBTyxnQkFBZ0I7SUErQjNCLFlBQ1UsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0Isa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLFlBQXNCLEVBQ3RCLHFCQUE0QztRQUw1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFuQ3RELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFdBQU0s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NUQsZ0JBQWdCLENBQUMsY0FBYztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQTtJQUN0QyxDQUFDO0lBUUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7OEdBbExVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1EQ2Y3Qiw0ek5BNEhBOzRGRDdHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVHlwZSwgRmlsZVVwbG9hZE9wdGlvbnMsIEZvcm1PcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgU2hvd1BhZ2VDb250ZW50ID0gZmFsc2U7XHJcbiAgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1NoYWRvdyA9IFtdO1xyXG4gIG5vTGljZW5zZUZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWN0aXZhdGlvbkRhdGU6IHN0cmluZztcclxuICBsaWNlbnNlU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgbGljZW5zZUVuZERhdGU6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZUluTWludXRlczogbnVtYmVyID0gMFxyXG4gIHNlY29uZHM6IG51bWJlciA9IDA7XHJcbiAgbWludXRlczogbnVtYmVyID0gMDtcclxuICBob3VyczogbnVtYmVyID0gMDtcclxuICBkYXlzOiBudW1iZXIgPSAwO1xyXG4gIHdlZWtzOiBudW1iZXIgPSAwO1xyXG4gIG1vbnRoczogbnVtYmVyID0gMDtcclxuICB5ZWFyczogbnVtYmVyID0gMDtcclxuICBkYXRlX2Z1dHVyZTogYW55O1xyXG4gIGRhdGVfbm93OiBhbnk7XHJcbiAgc2hvd1RpbWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW50ZXJ2YWxDb25zdDphbnk7XHJcbiAgLy9VcGxvYWQgTW9kZWwgQ29udHJvbHNcclxuICB1cGxvYWRGaWxlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHVwbG9hZEZpbGVGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBsaWNlbnNlRmlsZUlucHV0OiBGaWxlVXBsb2FkT3B0aW9ucztcclxuICBhcHBlbmRFeGlzdGluZzogYm9vbGVhbjtcclxuICBpbml0aWFsTWludXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDI0ICogNjAgKiAzMCk7O1xyXG4gIHZhbHVlID0gMDtcclxuICB0aW1lciQ6IGFueVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsaWNlbnNlU2VydmljZTogTGljZW5zZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvL1BhZ2UgaGVhZGVyIChicmVhZGNydW1iIGFuZCB0aXRsZSlcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMucHJvZHVjdGlvbk1vZGUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRQcm9kdWN0aW9uTW9kZSgpXHJcbiAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxpY2Vuc2VTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTW9kZWwgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIGlmIChNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlTGljZW5zZURhdGEoTW9kZWwudmFsKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2V0UGFnZUxpY2Vuc2VEYXRhKGxpY2Vuc2U6IGFueSkge1xyXG4gICAgbGV0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKGxpY2Vuc2UubGljZW5zZVN0YXJ0RGF0ZSk7XHJcbiAgICBsZXQgZW5kRGF0ZSA9IG5ldyBEYXRlKGxpY2Vuc2UubGljZW5zZUVuZERhdGUpO1xyXG4gICAgbGV0IGFjdGl2YXRpb25EYXRlID0gbmV3IERhdGUobGljZW5zZS5hY3RpdmF0aW9uRGF0ZSk7XHJcbiAgICB0aGlzLmFjdGl2YXRpb25EYXRlID0gYWN0aXZhdGlvbkRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XHJcbiAgICB0aGlzLmxpY2Vuc2VTdGFydERhdGUgPSBzdGFydERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKClcclxuICAgIHRoaXMubGljZW5zZUVuZERhdGUgPSBlbmREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpXHJcbiAgICB0aGlzLm5hbWUgPSBsaWNlbnNlLm5hbWUuY3VycmVudFxyXG5cclxuICAgIGxldCBDdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAoKGVuZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgPT0gQ3VycmVudERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkpKVxyXG4gICAgICB0aGlzLm5vTGljZW5zZUZvdW5kID0gdHJ1ZVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLm5vTGljZW5zZUZvdW5kID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLmRhdGVJbk1pbnV0ZXMgPSB0aGlzLmdldERpZmZlcmVuY2VJbk1pbnV0ZXMoQ3VycmVudERhdGUsIGVuZERhdGUpO1xyXG4gICAgLy9zZXQgZmlyc3QgdGltZVxyXG4gICAgdGhpcy5zZXRDb3VudGVyKGVuZERhdGUpO1xyXG4gICAgdGhpcy5zaG93VGltZXIgPSB0cnVlXHJcblxyXG4gICAgdGhpcy5pbnRlcnZhbENvbnN0ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldENvdW50ZXIoZW5kRGF0ZSk7XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHNldENvdW50ZXIoZW5kRGF0ZTpEYXRlKSB7XHJcbiAgICB0aGlzLmRhdGVfZnV0dXJlID0gZW5kRGF0ZTtcclxuICAgIHRoaXMuZGF0ZV9ub3cgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRoaXMuZGF0ZV9mdXR1cmUgLSAodGhpcy5kYXRlX25vdykpIC8gMTAwMCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuc2Vjb25kcyAvIDYwKTtcclxuICAgIHRoaXMuaG91cnMgPSBNYXRoLmZsb29yKHRoaXMubWludXRlcyAvIDYwKTtcclxuICAgIHRoaXMuZGF5cyA9IE1hdGguZmxvb3IodGhpcy5ob3VycyAvIDI0KTtcclxuICAgIHRoaXMubW9udGhzID0gTWF0aC5mbG9vcih0aGlzLmRheXMgLyAzMSk7XHJcbiAgICB0aGlzLnllYXJzID0gTWF0aC5mbG9vcih0aGlzLm1vbnRocyAvIDEyKTtcclxuXHJcbiAgICB0aGlzLmhvdXJzID0gdGhpcy5ob3VycyAtICh0aGlzLmRheXMgKiAyNCk7XHJcbiAgICB0aGlzLm1pbnV0ZXMgPSB0aGlzLm1pbnV0ZXMgLSAodGhpcy5kYXlzICogMjQgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwKTtcclxuICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwICogNjApIC0gKHRoaXMuaG91cnMgKiA2MCAqIDYwKSAtICh0aGlzLm1pbnV0ZXMgKiA2MCk7XHJcbiAgICB0aGlzLmRheXMgPSB0aGlzLmRheXMgLSAodGhpcy5tb250aHMgKiAzMSk7XHJcbiAgICB0aGlzLm1vbnRocyA9IHRoaXMubW9udGhzIC0gKHRoaXMueWVhcnMgKiAxMik7XHJcbiAgfVxyXG5cclxuICBnZXREaWZmZXJlbmNlSW5NaW51dGVzKGRhdGUxLCBkYXRlMikge1xyXG4gICAgY29uc3QgZGlmZkluTXMgPSBNYXRoLmFicyhkYXRlMiAtIGRhdGUxKTtcclxuICAgIHJldHVybiBkaWZmSW5NcyAvICgxMDAwICogNjApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExpY2Vuc2UgUGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93VXBsb2FkTW9kYWwodXBsb2FkRmlsZU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybS5yZXNldCgpO1xyXG5cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLnVwbG9hZEZpbGVGb3JtXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMaWNlbnNlTW9kZWw7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VGdW5jdGlvbjtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIgPSB0aGlzLk9uU3VjY2Vzc0hhbmRsZXI7XHJcblxyXG5cclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dCA9IG5ldyBGaWxlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0Lk5hbWUgPSBcIkxpY2Vuc2VGaWxlSW5wdXRcIlxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LkxhYmVsS2V5ID0gXCJVcGxvYWRGaWxlXCJcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5Jc011bHRpcGxlRmlsZSA9IGZhbHNlXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuSXNSZXF1aXJlZCA9IHRydWVcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gW0ZpbGVUeXBlLkxpY2Vuc2VdXHJcblxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odXBsb2FkRmlsZU1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTGljZW5zZU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLnVwbG9hZEZpbGVGb3JtLnZhbHVlO1xyXG4gICAgbGV0IE1vZGVsID0gbmV3IExpY2Vuc2VNb2RlbCgpO1xyXG5cclxuICAgIE1vZGVsLmFwcGVuZEV4aXN0aW5nID0gdGhpcy5hcHBlbmRFeGlzdGluZztcclxuICAgIE1vZGVsLkxpY2Vuc2VGaWxlID0ge1xyXG4gICAgICBGaWxlQmFzZTY0OiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlQmFzZTY0LFxyXG4gICAgICBGaWxlTmFtZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZU5hbWUsXHJcbiAgICAgIEZpbGVTaXplSW5NQjogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVNpemVJbk1CLFxyXG4gICAgICBGaWxlVHlwZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVR5cGVcclxuICAgIH1cclxuICAgIHBhcmFtQXJyYXkucHVzaChNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZExpY2Vuc2VGdW5jdGlvbiA9IChNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5saWNlbnNlU2VydmljZS51cGxvYWRMaWNlbnNlKE1vZGVsKTtcclxuICB9XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTGljZW5zZSAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIGlzQXBwZW5kRXhpc3RpbmcoYXBwZW5kRXhpc3RpbmcpIHtcclxuICAgIHRoaXMuYXBwZW5kRXhpc3RpbmcgPSBhcHBlbmRFeGlzdGluZ1xyXG4gIH1cclxuICBPblN1Y2Nlc3NIYW5kbGVyPShyZXMpPT57XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxDb25zdCk7XHJcbiAgICB0aGlzLnNldFBhZ2VMaWNlbnNlRGF0YShyZXMudmFsKTtcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbiAgPCEtLUJlZ2luOjpTZWN0aW9uLS0+XHJcbiAgPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cclxuICAgICAgICAgIDxoMyAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiXCI+e3tuYW1lfX08L2gzPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbS0zIGJhZGdlLWxnXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VBY3RpdmF0ZWRTdWNjZXNzZnVsbHlcIil9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2YXRlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUaW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fVGltZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVhcnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieWVhcnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3t5ZWFyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNb250aHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bW9udGhzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRheXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5cyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2RheXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG91cnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91cnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tob3Vyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW51dGVzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbiBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21pbnV0ZXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSAgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlY29uZHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VjIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7c2Vjb25kc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBsaWNlbnNlLWhlYWRcIiAqbmdJZj1cIm5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZU5vdEZvdW5kXCIpfX1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVN0YXJ0RGF0ZVwiKX19OjwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tsaWNlbnNlU3RhcnREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VFeHBpcnlEYXRlXCIpfX06PC9wPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e2xpY2Vuc2VFbmREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIGFjdGl2YXRlLS0+XHJcbiAgPG5nLXRlbXBsYXRlICN1cGxvYWRGaWxlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi4vLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwidXBsb2FkRmlsZUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtRmlsZVVwbGFvZCBbb3B0aW9uc109XCJsaWNlbnNlRmlsZUlucHV0XCIgW2dyb3VwXT1cInVwbG9hZEZpbGVGb3JtXCI+XHJcbiAgICAgICAgPC9CQlNGLUZpbGVVcGxhb2Q+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gI0Nsb3NlTGljZW5zZUZpbGVNb2RhbCBpZD1cIkNsb3NlTGljZW5zZUZpbGVNb2RhbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcoZmFsc2UpXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJpc0FwcGVuZEV4aXN0aW5nKHRydWUpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcHBlbmRcIil9fTwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19
@@ -161,13 +161,27 @@ export class LocalizationsReplaceTextComponent {
161
161
  this.isArabicFilter.IsFormControl = true;
162
162
  this.isArabicFilter.FilterType = FilterType.CheckBox;
163
163
  this.localizationPaging = new PagingOptions();
164
- this.localizationPaging.OnClickFiltersControlNames = ["findBtn"];
164
+ this.localizationPaging.ReinitializeFunctionName = "reinitializeResources";
165
+ //this.localizationPaging.OnClickFiltersControlNames = ["findBtn"];
165
166
  this.localizationPaging.ActionPostURL = this.apiUrl + 'FindResource';
166
167
  this.localizationPaging.OnKeyPressFiltersControlNames = ["findText", "caseSensetive", "matchWholeWord", "english", "arabic"];
167
168
  this.localizationPaging.DropdownFiltersControlNames = ["ResourceSet"];
168
169
  this.localizationPaging.Filters = [this.resourceSetFilter, this.textInputFilter, this.caseSensetiveFilter, this.matchWholeWordFilter, this.isEnglishFilter, this.isArabicFilter];
169
170
  this.localizationPaging.OnSuccessCallBackJSFunction = "findResourceOnSuccess";
170
171
  }
172
+ findResource() {
173
+ debugger;
174
+ //if has value
175
+ var isValid = this.findForm.controls["findText"].valid;
176
+ if (isValid) {
177
+ let element = this.pagingElement;
178
+ element.ReinitializePaging();
179
+ }
180
+ else {
181
+ let control = this.findForm.get("findText");
182
+ control.markAsTouched();
183
+ }
184
+ }
171
185
  setResourcesListResult(result) {
172
186
  debugger;
173
187
  this.localizationPagingResult = result;
@@ -190,7 +204,7 @@ export class LocalizationsReplaceTextComponent {
190
204
  }
191
205
  }
192
206
  LocalizationsReplaceTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsReplaceTextComponent, deps: [{ token: i1.localizationsService }, { token: i2.PageInfoService }, { token: i3.UtilityService }, { token: i3.BBSFTranslateService }, { token: i3.RequestHandlerService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component });
193
- LocalizationsReplaceTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LocalizationsReplaceTextComponent, selector: "lib-localizations-replace-text", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["formElement"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <BBSF-Form [options]=\"findFormOptions\" #formElement>\r\n\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"resourceSet\" [group]=\"findForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"findText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"caseSensetive\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"matchWholeWord\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"english\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"arabic\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"submit\" #submitFormButton hidden class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Submit\")}}</button>\r\n <button type=\"button\" id=\"findBtn\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Find\")}}</button>\r\n </div>\r\n <div *ngIf=\"showFindResult\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceId\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"English\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Arabic\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let resource of localizationPagingResult\">\r\n <td>\r\n <div class=\"text-dark\">{{resource.resourceSet}}</div>\r\n </td>\r\n <td>{{resource.resourceId}}</td>\r\n <td>{{resource.valueEN}}</td>\r\n <td>{{resource.valueAR}}</td>\r\n </tr>\r\n <tr *ngIf=\"localizationPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"row\" id=\"replaceControls\">\r\n <div class=\"col-md-9\">\r\n <BBSF-TextBox [options]=\"replaceText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button [disabled]=\"!enableReplaceBtn\" type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setResourcesListResult($event)\" \r\n [options]=\"localizationPaging\" [group]=\"findForm\" #PublicHolidayPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </BBSF-Form>\r\n</div>\r\n", styles: [""], components: [{ type: i4.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i5.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { type: i5.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i5.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i6.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i5.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
207
+ LocalizationsReplaceTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LocalizationsReplaceTextComponent, selector: "lib-localizations-replace-text", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["formElement"], descendants: true }, { propertyName: "pagingElement", first: true, predicate: ["localizationPagingViewElement"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <BBSF-Form [options]=\"findFormOptions\" #formElement>\r\n\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-body py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"resourceSet\" [group]=\"findForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"findText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"caseSensetive\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"matchWholeWord\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"english\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <BBSF-CheckBox [options]=\"arabic\" [group]=\"findForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"submit\" #submitFormButton hidden class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Submit\")}}</button>\r\n <button type=\"button\" (click)=\"findResource()\" id=\"findBtn\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Find\")}}</button>\r\n </div>\r\n <div *ngIf=\"showFindResult\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"ResourceId\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"English\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Arabic\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let resource of localizationPagingResult\">\r\n <td>\r\n <div class=\"text-dark\">{{resource.resourceSet}}</div>\r\n </td>\r\n <td>{{resource.resourceId}}</td>\r\n <td>{{resource.valueEN}}</td>\r\n <td>{{resource.valueAR}}</td>\r\n </tr>\r\n <tr *ngIf=\"localizationPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div class=\"row\" id=\"replaceControls\">\r\n <div class=\"col-md-9\">\r\n <BBSF-TextBox [options]=\"replaceText\" [group]=\"findForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <button [disabled]=\"!enableReplaceBtn\" type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setResourcesListResult($event)\" \r\n [options]=\"localizationPaging\" [group]=\"findForm\" #localizationPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n </BBSF-Form>\r\n</div>\r\n", styles: [""], components: [{ type: i4.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i5.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { type: i5.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i5.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i6.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i5.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
194
208
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsReplaceTextComponent, decorators: [{
195
209
  type: Component,
196
210
  args: [{
@@ -201,5 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
201
215
  }], ctorParameters: function () { return [{ type: i1.localizationsService }, { type: i2.PageInfoService }, { type: i3.UtilityService }, { type: i3.BBSFTranslateService }, { type: i3.RequestHandlerService }, { type: i3.AuthService }]; }, propDecorators: { formElement: [{
202
216
  type: ViewChild,
203
217
  args: ['formElement', { static: false }]
218
+ }], pagingElement: [{
219
+ type: ViewChild,
220
+ args: ['localizationPagingViewElement', { static: false }]
204
221
  }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb2NhbGl6YXRpb25zL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0L2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9jYWxpemF0aW9ucy9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFpQixlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBaUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7Ozs7QUFRbkgsTUFBTSxPQUFPLGlDQUFpQztJQW9DNUMsWUFFVSxvQkFBMEMsRUFBVSxlQUFnQyxFQUNyRixjQUE4QixFQUFVLG9CQUEwQyxFQUNqRixxQkFBNEMsRUFBVSxXQUF3QjtRQUY5RSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3JGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtR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bnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ09wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJ2NvbnNvbGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTG9jYWxpemF0aW9uTW9kZWxzL0xvY2FsaXphdGlvblJlcGxhY2VUZXh0TW9kZWwnO1xyXG5pbXBvcnQgeyBsb2NhbGl6YXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9sb2NhbGl6YXRpb25zU2VydmljZS5zZXJ2aWNlICc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbnNSZXBsYWNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50cyBcclxuICBhcGlVcmwgPSB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLkFwaVVybFxyXG4gIGlzRmlyc3RUaW1lOiBib29sZWFuID0gdHJ1ZTtcclxuICAvL1JlcXVpcmVkIENvbnRyb2xzIGZvciBGaW5kIFxyXG4gIGZpbmRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZmluZEZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICByZXNvdXJjZVNldDogRHJvcGRvd25PcHRpb25zO1xyXG4gIGZpbmRUZXh0OiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNvdXJjZVNldExpc3Q6IGFueVtdID0gW107XHJcbiAgLy9maWx0ZXJzXHJcbiAgcmVzb3VyY2VTZXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGNhc2VTZW5zZXRpdmVGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgbWF0Y2hXaG9sZVdvcmRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNFbmdsaXNoRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGlzQXJhYmljRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIC8vUmVxdWlyZWQgQ29udHJvbHMgZm9yIFJlcGxhY2VcclxuICByZXBsYWNlVGV4dDogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0ZpbmRSZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVSZXBsYWNlQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1FbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1FbGVtZW50OiBGb3JtQ29tcG9uZW50O1xyXG4gIC8vRmlsdGVyc1xyXG4gIGNhc2VTZW5zZXRpdmU6IENoZWNrQm94T3B0aW9ucztcclxuICBtYXRjaFdob2xlV29yZDogQ2hlY2tCb3hPcHRpb25zO1xyXG4gIGVuZ2xpc2g6IENoZWNrQm94T3B0aW9ucztcclxuICBhcmFiaWM6IENoZWNrQm94T3B0aW9ucztcclxuICAvL1Jlc3VsdCB0YWJsZVxyXG4gIGxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBsb2NhbGl6YXRpb25QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3JcclxuICAgIChcclxuICAgIHByaXZhdGUgbG9jYWxpemF0aW9uc1NlcnZpY2U6IGxvY2FsaXphdGlvbnNTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTogUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxyXG4gIClcclxuICB7XHJcblxyXG4gIH1cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlVGV4dFwiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvY2FsaXphdGlvbnNcIiksIHBhdGg6ICcvQWRtaW4vTG9jYWxpemF0aW9uJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG4gIH1cclxuICAvL0luaXQgcGFnZVxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5sb2FkRHJvcGRvd24oKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0TGlzdCA9IHJlc3VsdCBhcyBhbnlcclxuXHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0odHJ1ZSk7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICAgIH0sIDUwKTtcclxuXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgaW5pdGlhbGl6ZUZvcm0oaXNGaW5kOiBib29sZWFuKSB7XHJcbiAgICBpZiAoaXNGaW5kKSB7XHJcbiAgICAgIHRoaXMuZmluZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5maW5kRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5maW5kRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5maW5kRm9ybVxyXG5cclxuICAgICAgbGV0IHNlbGVjdGVkUmVzb3VyY2VTZXQgPSB0aGlzLnJlc291cmNlU2V0TGlzdC5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5OYW1lID0gXCJyZXNvdXJjZVNldFwiXHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXQuTGFiZWxLZXkgPSBcIlJlc291cmNlU2V0XCJcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5EYXRhU291cmNlID0gdGhpcy5yZXNvdXJjZVNldExpc3RcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5TaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXQuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkUmVzb3VyY2VTZXQ7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXQuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmZpbmRUZXh0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZmluZFRleHQuTmFtZSA9IFwiZmluZFRleHRcIjtcclxuICAgICAgdGhpcy5maW5kVGV4dC5MYWJlbEtleSA9IFwiRmluZFdoYXRcIjtcclxuICAgICAgdGhpcy5maW5kVGV4dC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZmluZFRleHQuVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jYXNlU2Vuc2V0aXZlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUuTmFtZSA9IFwiY2FzZVNlbnNldGl2ZVwiO1xyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUuVmFsdWUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUuTGFiZWxLZXkgPSBcIkNhc2VTZW5zZXRpdmVcIjtcclxuXHJcbiAgICAgIHRoaXMubWF0Y2hXaG9sZVdvcmQgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubWF0Y2hXaG9sZVdvcmQuTmFtZSA9IFwibWF0Y2hXaG9sZVdvcmRcIjtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5WYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMubWF0Y2hXaG9sZVdvcmQuTGFiZWxLZXkgPSBcIk1hdGNoV2hvbGVXb3JkXCI7XHJcblxyXG4gICAgICB0aGlzLmVuZ2xpc2ggPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZW5nbGlzaC5OYW1lID0gXCJlbmdsaXNoXCI7XHJcbiAgICAgIHRoaXMuZW5nbGlzaC5WYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuZW5nbGlzaC5MYWJlbEtleSA9IFwiRW5nbGlzaFwiO1xyXG5cclxuICAgICAgdGhpcy5hcmFiaWMgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYXJhYmljLk5hbWUgPSBcImFyYWJpY1wiO1xyXG4gICAgICB0aGlzLmFyYWJpYy5WYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXJhYmljLkxhYmVsS2V5ID0gXCJBcmFiaWNcIjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRSZXBsYWNlUmVzb3VyY2VNb2RlbDtcclxuICAgICAgdGhpcy5maW5kRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRSZXBsYWNlUmVzb3VyY2VGdW5jdGlvbjtcclxuXHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5OYW1lID0gXCJyZXBsYWNlVGV4dFwiO1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LkxhYmVsS2V5ID0gXCJSZXBsYWNlV2l0aFwiO1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcbiAgaW5pdGlhbGl6ZVBhZ2luZygpIHtcclxuICAgIC8vUGFnaW5nIGFuZCBGaWx0ZXJzXHJcbiAgICB0aGlzLnJlc291cmNlU2V0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJyZXNvdXJjZVNldFwiXHJcbiAgICB0aGlzLnJlc291cmNlU2V0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuRHJvcGRvd25MaXN0XHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJmaW5kVGV4dFwiXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJmaW5kVGV4dFwiXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJjYXNlU2Vuc2V0aXZlXCJcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJpc0Nhc2VTZW5zaXRpdmVcIlxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuQ2hlY2tCb3hcclxuXHJcbiAgICB0aGlzLm1hdGNoV2hvbGVXb3JkRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJtYXRjaFdob2xlV29yZFwiXHJcbiAgICB0aGlzLm1hdGNoV2hvbGVXb3JkRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImlzTWF0Y2hXaG9sZVdvcmRPbmx5XCJcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuQ2hlY2tCb3hcclxuXHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImVuZ2xpc2hcIlxyXG4gICAgdGhpcy5pc0VuZ2xpc2hGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNFbmdsaXNoXCJcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImFyYWJpY1wiXHJcbiAgICB0aGlzLmlzQXJhYmljRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImlzQXJhYmljXCJcclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuQ2hlY2tCb3hcclxuXHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5PbkNsaWNrRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcImZpbmRCdG5cIl07XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5hcGlVcmwgKyAnRmluZFJlc291cmNlJztcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wiZmluZFRleHRcIiwgXCJjYXNlU2Vuc2V0aXZlXCIsIFwibWF0Y2hXaG9sZVdvcmRcIiwgXCJlbmdsaXNoXCIsIFwiYXJhYmljXCJdXHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5Ecm9wZG93bkZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJSZXNvdXJjZVNldFwiXTtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5yZXNvdXJjZVNldEZpbHRlciwgdGhpcy50ZXh0SW5wdXRGaWx0ZXIsIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlciwgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlciwgdGhpcy5pc0VuZ2xpc2hGaWx0ZXIsIHRoaXMuaXNBcmFiaWNGaWx0ZXJdXHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZy5PblN1Y2Nlc3NDYWxsQmFja0pTRnVuY3Rpb24gPSBcImZpbmRSZXNvdXJjZU9uU3VjY2Vzc1wiO1xyXG5cclxuICB9XHJcbiAgc2V0UmVzb3VyY2VzTGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmdSZXN1bHQgPSByZXN1bHQ7XHJcbiAgICBpZiAoIXRoaXMuaXNGaXJzdFRpbWUpIHtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2hvd0ZpbmRSZXN1bHQgPSB0cnVlO1xyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgdGhpcy5lbmFibGVSZXBsYWNlQnRuID0gdHJ1ZTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuZW5hYmxlUmVwbGFjZUJ0biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oZmFsc2UpO1xyXG4gICAgICB0aGlzLmlzRmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1JlcGxhY2UgUmVzb3VyY2UgZnVuY3Rpb25zXHJcbiAgZ2V0UmVwbGFjZVJlc291cmNlTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCByZXN1bHRNb2RlbCA9IHRoaXMuZmluZEZvcm0udmFsdWU7XHJcbiAgICAvL2NvbnNvbGUubG9nKFJlc3VsdE1vZGVsKTtcclxuICAgIGxldCByZXBsYWNlTW9kZWw6IExvY2FsaXphdGlvblJlcGxhY2VUZXh0TW9kZWwgPSBuZXcgTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCgpO1xyXG4gICAgcmVwbGFjZU1vZGVsLkZpbmRXaGF0ID0gcmVzdWx0TW9kZWwuZmluZFRleHQ7XHJcbiAgICByZXBsYWNlTW9kZWwuUmVwbGFjZVdpdGggPSByZXN1bHRNb2RlbC5yZXBsYWNlVGV4dDtcclxuICAgIHJlcGxhY2VNb2RlbC5TZWxlY3RlZFJlc291cmNlU2V0cyA9IHJlc3VsdE1vZGVsLnJlc291cmNlU2V0O1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQ2FzZVNlbnNpdGl2ZSA9IHJlc3VsdE1vZGVsLmNhc2VTZW5zZXRpdmU7XHJcbiAgICByZXBsYWNlTW9kZWwuSXNNYXRjaFdob2xlV29yZE9ubHkgPSByZXN1bHRNb2RlbC5tYXRjaFdob2xlV29yZDtcclxuICAgIHJlcGxhY2VNb2RlbC5Jc0VuZ2xpc2ggPSByZXN1bHRNb2RlbC5lbmdsaXNoO1xyXG4gICAgcmVwbGFjZU1vZGVsLklzQXJhYmljID0gcmVzdWx0TW9kZWwuYXJhYmljO1xyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChyZXBsYWNlTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uID0gKHJlcGxhY2VNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25zU2VydmljZS5yZXBsYWNlUmVzb3VyY2UocmVwbGFjZU1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbjxkaXYgKm5nSWY9XCJzaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZmluZEZvcm1PcHRpb25zXCIgI2Zvcm1FbGVtZW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJyZXNvdXJjZVNldFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJmaW5kVGV4dFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJjYXNlU2Vuc2V0aXZlXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIm1hdGNoV2hvbGVXb3JkXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImVuZ2xpc2hcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiYXJhYmljXCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjc3VibWl0Rm9ybUJ1dHRvbiBoaWRkZW4gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3VibWl0XCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiZmluZEJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkZpbmRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmluZFJlc3VsdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlU2V0XCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc291cmNlSWRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRW5nbGlzaFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXNvdXJjZSBvZiBsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e3Jlc291cmNlLnJlc291cmNlU2V0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UucmVzb3VyY2VJZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVFTn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkPnt7cmVzb3VyY2UudmFsdWVBUn19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJsb2NhbGl6YXRpb25QYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBpZD1cInJlcGxhY2VDb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTlcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInJlcGxhY2VUZXh0XCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhZW5hYmxlUmVwbGFjZUJ0blwiIHR5cGU9XCJzdWJtaXRcIiAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVwbGFjZVwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0UmVzb3VyY2VzTGlzdFJlc3VsdCgkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImxvY2FsaXphdGlvblBhZ2luZ1wiIFtncm91cF09XCJmaW5kRm9ybVwiICNQdWJsaWNIb2xpZGF5UGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG48L2Rpdj5cclxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy1yZXBsYWNlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb2NhbGl6YXRpb25zL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0L2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9jYWxpemF0aW9ucy9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFpQixlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBaUIsV0FBVyxFQUFFLFNBQVMsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXpNLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQzs7Ozs7Ozs7O0FBUW5ILE1BQU0sT0FBTyxpQ0FBaUM7SUFvQzVDLFlBRVUsb0JBQTBDLEVBQVUsZUFBZ0MsRUFDckYsY0FBOEIsRUFBVSxvQkFBMEMsRUFDakYscUJBQTRDLEVBQVUsV0FBd0I7UUFGOUUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyRixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7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O1NBQzFCO0lBQ0gsQ0FBQztJQXVCRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzsrSEEzT1UsaUNBQWlDO21IQUFqQyxpQ0FBaUMsbVNDZjlDLCs5SEF3RkE7NEZEekVhLGlDQUFpQztrQkFMN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxXQUFXLEVBQUUsNkNBQTZDO29CQUMxRCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztpQkFDMUQ7dVFBeUI4QyxXQUFXO3NCQUF2RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBU29CLGFBQWE7c0JBQTNFLFNBQVM7dUJBQUMsK0JBQStCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29udHJvbExheW91dCwgRHJvcGRvd25PcHRpb25zLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtQ29tcG9uZW50LCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBQYWdpbmdDb21wb25lbnQsIFBhZ2luZ09wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBkZWJ1ZyB9IGZyb20gJ2NvbnNvbGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTG9jYWxpemF0aW9uTW9kZWxzL0xvY2FsaXphdGlvblJlcGxhY2VUZXh0TW9kZWwnO1xyXG5pbXBvcnQgeyBsb2NhbGl6YXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9sb2NhbGl6YXRpb25zU2VydmljZS5zZXJ2aWNlICc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2NhbGl6YXRpb25zLXJlcGxhY2UtdGV4dC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbnNSZXBsYWNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50cyBcclxuICBhcGlVcmwgPSB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLkFwaVVybFxyXG4gIGlzRmlyc3RUaW1lOiBib29sZWFuID0gdHJ1ZTtcclxuICAvL1JlcXVpcmVkIENvbnRyb2xzIGZvciBGaW5kIFxyXG4gIGZpbmRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZmluZEZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICByZXNvdXJjZVNldDogRHJvcGRvd25PcHRpb25zO1xyXG4gIGZpbmRUZXh0OiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNvdXJjZVNldExpc3Q6IGFueVtdID0gW107XHJcbiAgLy9maWx0ZXJzXHJcbiAgcmVzb3VyY2VTZXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGNhc2VTZW5zZXRpdmVGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgbWF0Y2hXaG9sZVdvcmRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNFbmdsaXNoRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGlzQXJhYmljRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIC8vUmVxdWlyZWQgQ29udHJvbHMgZm9yIFJlcGxhY2VcclxuICByZXBsYWNlVGV4dDogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0ZpbmRSZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVSZXBsYWNlQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1FbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1FbGVtZW50OiBGb3JtQ29tcG9uZW50O1xyXG4gIC8vRmlsdGVyc1xyXG4gIGNhc2VTZW5zZXRpdmU6IENoZWNrQm94T3B0aW9ucztcclxuICBtYXRjaFdob2xlV29yZDogQ2hlY2tCb3hPcHRpb25zO1xyXG4gIGVuZ2xpc2g6IENoZWNrQm94T3B0aW9ucztcclxuICBhcmFiaWM6IENoZWNrQm94T3B0aW9ucztcclxuICAvL1Jlc3VsdCB0YWJsZVxyXG4gIGxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBsb2NhbGl6YXRpb25QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZCgnbG9jYWxpemF0aW9uUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25zU2VydmljZTogbG9jYWxpemF0aW9uc1NlcnZpY2UsIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIGJic2ZUcmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgKVxyXG4gIHtcclxuXHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlcGxhY2VUZXh0XCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9jYWxpemF0aW9uc1wiKSwgcGF0aDogJy9BZG1pbi9Mb2NhbGl6YXRpb24nLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG4gIC8vSW5pdCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLmxvYWREcm9wZG93bigpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMucmVzb3VyY2VTZXRMaXN0ID0gcmVzdWx0IGFzIGFueVxyXG5cclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSh0cnVlKTtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd1BhZ2VDb250ZW50ID0gdHJ1ZTtcclxuICAgICAgfSwgNTApO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuICBpbml0aWFsaXplRm9ybShpc0ZpbmQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChpc0ZpbmQpIHtcclxuICAgICAgdGhpcy5maW5kRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmZpbmRGb3JtXHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRSZXNvdXJjZVNldCA9IHRoaXMucmVzb3VyY2VTZXRMaXN0Lm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0Lk5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5MYWJlbEtleSA9IFwiUmVzb3VyY2VTZXRcIlxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LkRhdGFTb3VyY2UgPSB0aGlzLnJlc291cmNlU2V0TGlzdFxyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJlc291cmNlU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRSZXNvdXJjZVNldDtcclxuICAgICAgdGhpcy5yZXNvdXJjZVNldC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuZmluZFRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5maW5kVGV4dC5OYW1lID0gXCJmaW5kVGV4dFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LkxhYmVsS2V5ID0gXCJGaW5kV2hhdFwiO1xyXG4gICAgICB0aGlzLmZpbmRUZXh0LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5maW5kVGV4dC5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZmluZFRleHQuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmNhc2VTZW5zZXRpdmUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5OYW1lID0gXCJjYXNlU2Vuc2V0aXZlXCI7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5WYWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2FzZVNlbnNldGl2ZS5MYWJlbEtleSA9IFwiQ2FzZVNlbnNldGl2ZVwiO1xyXG5cclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5OYW1lID0gXCJtYXRjaFdob2xlV29yZFwiO1xyXG4gICAgICB0aGlzLm1hdGNoV2hvbGVXb3JkLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5tYXRjaFdob2xlV29yZC5MYWJlbEtleSA9IFwiTWF0Y2hXaG9sZVdvcmRcIjtcclxuXHJcbiAgICAgIHRoaXMuZW5nbGlzaCA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lbmdsaXNoLk5hbWUgPSBcImVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lbmdsaXNoLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lbmdsaXNoLkxhYmVsS2V5ID0gXCJFbmdsaXNoXCI7XHJcblxyXG4gICAgICB0aGlzLmFyYWJpYyA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hcmFiaWMuTmFtZSA9IFwiYXJhYmljXCI7XHJcbiAgICAgIHRoaXMuYXJhYmljLlZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5hcmFiaWMuTGFiZWxLZXkgPSBcIkFyYWJpY1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZmluZEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZU1vZGVsO1xyXG4gICAgICB0aGlzLmZpbmRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldFJlcGxhY2VSZXNvdXJjZUZ1bmN0aW9uO1xyXG5cclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0Lk5hbWUgPSBcInJlcGxhY2VUZXh0XCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQuTGFiZWxLZXkgPSBcIlJlcGxhY2VXaXRoXCI7XHJcbiAgICAgIHRoaXMucmVwbGFjZVRleHQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5yZXBsYWNlVGV4dC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBpbml0aWFsaXplUGFnaW5nKCkge1xyXG4gICAgLy9QYWdpbmcgYW5kIEZpbHRlcnNcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInJlc291cmNlU2V0XCJcclxuICAgIHRoaXMucmVzb3VyY2VTZXRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwicmVzb3VyY2VTZXRcIlxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5yZXNvdXJjZVNldEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Ecm9wZG93bkxpc3RcclxuXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImZpbmRUZXh0XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcImNhc2VTZW5zZXRpdmVcIlxyXG4gICAgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImlzQ2FzZVNlbnNpdGl2ZVwiXHJcbiAgICB0aGlzLmNhc2VTZW5zZXRpdmVGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuY2FzZVNlbnNldGl2ZUZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcIm1hdGNoV2hvbGVXb3JkXCJcclxuICAgIHRoaXMubWF0Y2hXaG9sZVdvcmRGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNNYXRjaFdob2xlV29yZE9ubHlcIlxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5tYXRjaFdob2xlV29yZEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiZW5nbGlzaFwiXHJcbiAgICB0aGlzLmlzRW5nbGlzaEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJpc0VuZ2xpc2hcIlxyXG4gICAgdGhpcy5pc0VuZ2xpc2hGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMuaXNFbmdsaXNoRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkNoZWNrQm94XHJcblxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLmlzQXJhYmljRmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwiYXJhYmljXCJcclxuICAgIHRoaXMuaXNBcmFiaWNGaWx0ZXIuQWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwiaXNBcmFiaWNcIlxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5pc0FyYWJpY0ZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5DaGVja0JveFxyXG5cclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLlJlaW5pdGlhbGl6ZUZ1bmN0aW9uTmFtZT1cInJlaW5pdGlhbGl6ZVJlc291cmNlc1wiXHJcbiAgICAvL3RoaXMubG9jYWxpemF0aW9uUGFnaW5nLk9uQ2xpY2tGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wiZmluZEJ0blwiXTtcclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLmFwaVVybCArICdGaW5kUmVzb3VyY2UnO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJmaW5kVGV4dFwiLCBcImNhc2VTZW5zZXRpdmVcIiwgXCJtYXRjaFdob2xlV29yZFwiLCBcImVuZ2xpc2hcIiwgXCJhcmFiaWNcIl1cclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcIlJlc291cmNlU2V0XCJdO1xyXG4gICAgdGhpcy5sb2NhbGl6YXRpb25QYWdpbmcuRmlsdGVycyA9IFt0aGlzLnJlc291cmNlU2V0RmlsdGVyLCB0aGlzLnRleHRJbnB1dEZpbHRlciwgdGhpcy5jYXNlU2Vuc2V0aXZlRmlsdGVyLCB0aGlzLm1hdGNoV2hvbGVXb3JkRmlsdGVyLCB0aGlzLmlzRW5nbGlzaEZpbHRlciwgdGhpcy5pc0FyYWJpY0ZpbHRlcl1cclxuICAgIHRoaXMubG9jYWxpemF0aW9uUGFnaW5nLk9uU3VjY2Vzc0NhbGxCYWNrSlNGdW5jdGlvbiA9IFwiZmluZFJlc291cmNlT25TdWNjZXNzXCI7XHJcblxyXG4gIH1cclxuICBmaW5kUmVzb3VyY2UoKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIC8vaWYgaGFzIHZhbHVlXHJcbiAgICB2YXIgaXNWYWxpZCA9IHRoaXMuZmluZEZvcm0uY29udHJvbHNbXCJmaW5kVGV4dFwiXS52YWxpZDtcclxuICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5wYWdpbmdFbGVtZW50IGFzIGFueTtcclxuICAgICAgZWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBsZXQgY29udHJvbCA9IHRoaXMuZmluZEZvcm0uZ2V0KFwiZmluZFRleHRcIikgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzZXRSZXNvdXJjZXNMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICB0aGlzLmxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIGlmICghdGhpcy5pc0ZpcnN0VGltZSkge1xyXG4gICAgICB0aGlzLnJlcGxhY2VUZXh0LlZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5zaG93RmluZFJlc3VsdCA9IHRydWU7XHJcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMClcclxuICAgICAgICB0aGlzLmVuYWJsZVJlcGxhY2VCdG4gPSB0cnVlO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5lbmFibGVSZXBsYWNlQnRuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaXNGaXJzdFRpbWUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vUmVwbGFjZSBSZXNvdXJjZSBmdW5jdGlvbnNcclxuICBnZXRSZXBsYWNlUmVzb3VyY2VNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5maW5kRm9ybS52YWx1ZTtcclxuICAgIC8vY29uc29sZS5sb2coUmVzdWx0TW9kZWwpO1xyXG4gICAgbGV0IHJlcGxhY2VNb2RlbDogTG9jYWxpemF0aW9uUmVwbGFjZVRleHRNb2RlbCA9IG5ldyBMb2NhbGl6YXRpb25SZXBsYWNlVGV4dE1vZGVsKCk7XHJcbiAgICByZXBsYWNlTW9kZWwuRmluZFdoYXQgPSByZXN1bHRNb2RlbC5maW5kVGV4dDtcclxuICAgIHJlcGxhY2VNb2RlbC5SZXBsYWNlV2l0aCA9IHJlc3VsdE1vZGVsLnJlcGxhY2VUZXh0O1xyXG4gICAgcmVwbGFjZU1vZGVsLlNlbGVjdGVkUmVzb3VyY2VTZXRzID0gcmVzdWx0TW9kZWwucmVzb3VyY2VTZXQ7XHJcbiAgICByZXBsYWNlTW9kZWwuSXNDYXNlU2Vuc2l0aXZlID0gcmVzdWx0TW9kZWwuY2FzZVNlbnNldGl2ZTtcclxuICAgIHJlcGxhY2VNb2RlbC5Jc01hdGNoV2hvbGVXb3JkT25seSA9IHJlc3VsdE1vZGVsLm1hdGNoV2hvbGVXb3JkO1xyXG4gICAgcmVwbGFjZU1vZGVsLklzRW5nbGlzaCA9IHJlc3VsdE1vZGVsLmVuZ2xpc2g7XHJcbiAgICByZXBsYWNlTW9kZWwuSXNBcmFiaWMgPSByZXN1bHRNb2RlbC5hcmFiaWM7XHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKHJlcGxhY2VNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcbiAgZ2V0UmVwbGFjZVJlc291cmNlRnVuY3Rpb24gPSAocmVwbGFjZU1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvbnNTZXJ2aWNlLnJlcGxhY2VSZXNvdXJjZShyZXBsYWNlTW9kZWwpXHJcbiAgfVxyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuPGRpdiAqbmdJZj1cInNob3dQYWdlQ29udGVudFwiIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJmaW5kRm9ybU9wdGlvbnNcIiAjZm9ybUVsZW1lbnQ+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cInJlc291cmNlU2V0XCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImZpbmRUZXh0XCIgW2dyb3VwXT1cImZpbmRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImNhc2VTZW5zZXRpdmVcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwibWF0Y2hXaG9sZVdvcmRcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiZW5nbGlzaFwiIFtncm91cF09XCJmaW5kRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJhcmFiaWNcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiICNzdWJtaXRGb3JtQnV0dG9uIGhpZGRlbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTdWJtaXRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbmRSZXNvdXJjZSgpXCIgaWQ9XCJmaW5kQnRuXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRmluZFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dGaW5kUmVzdWx0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVzb3VyY2VTZXRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVzb3VyY2VJZFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY1wiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc291cmNlIG9mIGxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFya1wiPnt7cmVzb3VyY2UucmVzb3VyY2VTZXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3tyZXNvdXJjZS5yZXNvdXJjZUlkfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3tyZXNvdXJjZS52YWx1ZUVOfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+e3tyZXNvdXJjZS52YWx1ZUFSfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cImxvY2FsaXphdGlvblBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIGlkPVwicmVwbGFjZUNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwicmVwbGFjZVRleHRcIiBbZ3JvdXBdPVwiZmluZEZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFlbmFibGVSZXBsYWNlQnRuXCIgdHlwZT1cInN1Ym1pdFwiICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRSZXNvdXJjZXNMaXN0UmVzdWx0KCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwibG9jYWxpemF0aW9uUGFnaW5nXCIgW2dyb3VwXT1cImZpbmRGb3JtXCIgI2xvY2FsaXphdGlvblBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==