@ksremp/ngx-ksremp-app-lib 1.0.24 → 1.0.26

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.
@@ -748,13 +748,13 @@ export class EmployerGridComponent {
748
748
  this.validationService.bpEmpLstFrmService.subscribe(res => {
749
749
  if (res) {
750
750
  this.claimAppEmpResponseModelFromService = res.valueOf();
751
+ this.param = {
752
+ basePeriodStartDate: this.util.getDateInMMDDYYYYFormat(this.claimAppEmpResponseModelFromService.basePeriodStartDate),
753
+ todaysDate: this.util.getDateInMMDDYYYYFormat(new Date())
754
+ };
751
755
  if (this.claimAppEmpResponseModelFromService && this.claimAppEmpResponseModelFromService.isNewClaimApplication) {
752
756
  this.isNewClaim = this.claimAppEmpResponseModelFromService.isNewClaimApplication.valueOf();
753
757
  this.claimantDob = new Date(this.claimAppEmpResponseModelFromService.dateOfBirth.replace("-", "/").replace("-", "/"));
754
- this.param = {
755
- basePeriodStartDate: this.util.getDateInMMDDYYYYFormat(this.claimAppEmpResponseModelFromService.basePeriodStartDate),
756
- todaysDate: this.util.getDateInMMDDYYYYFormat(new Date())
757
- };
758
758
  }
759
759
  }
760
760
  });
@@ -1167,4 +1167,4 @@ export class EmployerGridComponent {
1167
1167
  type: Output
1168
1168
  }] }); })();
1169
1169
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EmployerGridComponent, { className: "EmployerGridComponent", filePath: "lib\\components\\employer-grid\\employer-grid.component.ts", lineNumber: 34 }); })();
1170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVLLE9BQU8sRUFBMEMsaUJBQWlCLEVBQWUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0E1QiwwQkFBSSxhQUFBO0lBRUEsWUFDRjs7SUFB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QUE7WUFHWixnRkF3SFUscUZBQUEsdUVBQUEsc0VBQUE7WUFrRlYsaUJBQU07O1lBMU5ELG9DQUFrQjtZQUdWLGVBQWdDO1lBQWhDLGtEQUFnQztZQUNuQyxlQUE4RTtZQUE5RSxxSUFBOEU7WUFDM0UsZUFBNkI7WUFBN0Isa0RBQTZCO1lBQ2hDLGVBQTZFO1lBQTdFLHNJQUE2RTtZQUMxRSxlQUF3QjtZQUF4QixrREFBd0I7WUFDM0IsZUFBMEU7WUFBMUUsbUlBQTBFO1lBQ3ZFLGVBQXdCO1lBQXhCLGtEQUF3QjtZQUMzQixlQUEyRTtZQUEzRSxvSUFBMkU7WUFDeEUsZUFBcUM7WUFBckMsa0RBQXFDO1lBQ3hDLGVBQThFO1lBQTlFLHVJQUE4RTtZQUtwRSxlQUF5QztZQUF6Qyw4REFBeUM7WUF3SHhDLGVBQWE7WUFBYixrQ0FBYTtZQU1xRSxlQUFzQjtZQUF0QiwyQ0FBc0I7WUFnRHRCLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRDlKaEgscUJBQXFCO2NBWmpDLFNBQVM7MkJBQ0UsbUJBQW1CLGFBR2xCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx1QkFBdUI7d0JBQ2xDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUMsbUJBQ2UsdUJBQXVCLENBQUMsT0FBTzs2UUFzQnZDLElBQUk7a0JBQVosS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFJSSxZQUFZO2tCQUFyQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUNHLGFBQWE7a0JBQXRCLE1BQU07O2tGQTFCSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIEFmdGVyUmVuZGVyUGhhc2UsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nTW9kdWxlLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwnO1xyXG5pbXBvcnQgeyBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wUmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRW1wbG95ZXJXYWdlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJXYWdlc01vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IEZiQ29uc3RhbnRzIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS9GYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgRHluYW1pY0JpekNvbnN0YW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRHluYW1pY0JpekNvbnN0YW50TW9kZWwnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZW1wbG95ZXItZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBFbXBsb3llckdyaWRDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEVtcGxveWVyR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgYWN0aXZhdGVkUm91dGUgOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIGNsYWltc1NlcnZpY2UgOiBDbGFpbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2UgOiBTdG9yYWdlKSB7XHJcbiAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncC10YWJsZSB0YWJsZScpLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgncm9sZScsICdwcmVzZW50YXRpb24nKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Atc2VsZWN0YnV0dG9uIGRpdiBkaXYnKS5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5Jyk7XHJcbiAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcpOyBcclxuICAgICAgfSk7XHJcbiAgICAgIH0sIHtwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZX0pO1xyXG4gIH1cclxuXHJcbiAgY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2U6ICBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XHJcbiAgY29sczogYW55W107XHJcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBkeW5hbWljUGFyYW0gOiBhbnk7XHJcbiAgZGlzcGxheTogYm9vbGVhbjtcclxuICBub0VkaXRNb2RlOiBib29sZWFuO1xyXG4gIGJhc2VQZXJpb2RkaXNwbGF5OiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBtb2RlbERpc3BsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsRGF0YVBhc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgY2FpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XHJcbiAgc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICBzZWxlY3RlZEJhc2VQZXJpb2RFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XHJcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzTmV3Q2xhaW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1Qb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd2JwRW1wRGVsUG9wdXAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3NuRm9yQ1NSIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICB1dWlkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgc3RhdGVzT3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBtaWxpdGFyeVNlcnZpY2VPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIGNsYWltYW50RG9iIDogRGF0ZTtcclxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb246IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0NvbW1lbnRCb3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYnBFbXBEZWxPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIGlzTG9hZGluZ0NvbnN0YW50ID0gZmFsc2U7XHJcbiAgcHVibGljIHBhcmFtO1xyXG4gIHB1YmxpYyBpc0VtcGxveWVyRGVsZXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgbG9hZE1hc3RlckRhdGEoKXtcclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLldPUktfQ09VTlRSWV9FUztcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX0VTO1xyXG4gICAgICB0aGlzLmJwRW1wRGVsT3B0aW9ucyA9IENvbWJvT3B0aW9uLkJQX0VNUF9ERUxfT1BUU19FUztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xyXG4gICAgICB0aGlzLmNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICAgICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcclxuICAgICAgdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zID0gQ29tYm9PcHRpb24uTUlMSVRBUllfU0VSVklDRTtcclxuICAgICAgdGhpcy5icEVtcERlbE9wdGlvbnMgPSBDb21ib09wdGlvbi5CUF9FTVBfREVMX09QVFM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHMgPSBbXHJcbiAgICAgIHsgZmllbGQ6ICdlbXBsb3llcicsIGhlYWRlcjogJ0VtcGxveWVyJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnam9iVGl0bGUnLCBoZWFkZXI6ICdKb2IgVGl0bGUnIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdQYXknLCBoZWFkZXI6ICdQYXknIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdzdGFydEVuZERhdGUnLCBoZWFkZXI6ICdTdGFydCBhbmQgRW5kJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnc2VwYXJhdGlvblJlYXNvbicsIGhlYWRlcjogJ1NlcGFyYXRpb24gUmVhc29uJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnJywgaGVhZGVyOiAnJyB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd246IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgb3RoZXJDb21tZW50OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQgKX0pO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSA9IHJlcy52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UgJiYgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5pc05ld0NsYWltQXBwbGljYXRpb24pe1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNOZXdDbGFpbSA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uLnZhbHVlT2YoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNsYWltYW50RG9iID0gbmV3IERhdGUodGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5kYXRlT2ZCaXJ0aC5yZXBsYWNlKFwiLVwiLFwiL1wiKS5yZXBsYWNlKFwiLVwiLFwiL1wiKSk7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICB0aGlzLnBhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgICBiYXNlUGVyaW9kU3RhcnREYXRlOiB0aGlzLnV0aWwuZ2V0RGF0ZUluTU1ERFlZWVlGb3JtYXQodGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5iYXNlUGVyaW9kU3RhcnREYXRlKSxcclxuICAgICAgICAgICAgICAgICAgdG9kYXlzRGF0ZTogdGhpcy51dGlsLmdldERhdGVJbk1NRERZWVlZRm9ybWF0KG5ldyBEYXRlKCkpXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ecm9wZG93bkNoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLnNob3dDb21tZW50Qm94ID0gKHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdPdGhlcicgfHwgdGhpcy5zZWxlY3RlZE9wdGlvbiA9PT0gJ090cm8nKTsgLy8gQ2hlY2sgaWYgJ290aGVyJyBpcyBzZWxlY3RlZFxyXG4gICAgaWYgKHRoaXMuc2hvd0NvbW1lbnRCb3gpIHtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkTmV3RW1wRGV0YWlscygpIHtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyPWZhbHNlO1xyXG4gICAgdGhpcy5ub0VkaXRNb2RlPWZhbHNlO1xyXG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYodmFsdWUpe1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHZhbHVlKTtcclxuICAgIH0gZWxzZXtcclxuICAgICAgdGhpcy5zZXR1cEVtcGxveWVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmblxyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2Uuc3Vic2NyaWJlKGZuKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRJZGVudGlmaWVyKCl7XHJcbiAgICBsZXQgdXVpZDtcclxuICAgIGxldCBkYXRhID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnaWRlbnRpZmllcicpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJkYXRhIGZvciBpZGVudGlmaWVyIGlzIDogXCIsIGRhdGEpXHJcbiAgICAgIGlmKGRhdGEpeyAgICAgICAgICBcclxuICAgICAgICB1dWlkID0gZGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1dWlkID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChGYkNvbnN0YW50cy51dWlkKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdXVpZDtcclxuICB9XHJcbiAgYXN5bmMgc2V0dXBFbXBsb3llcigpIHtcclxuICAgIGxldCBtb2RlbCA9IG5ldyBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCgpO1xyXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKSB7XHJcbiAgICAgIHRoaXMudXVpZCA9IGF3YWl0IHRoaXMuZ2V0SWRlbnRpZmllcigpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndXVpZCBpcyA9PT09JywgdGhpcy51dWlkKTtcclxuICAgICAgbGV0IHVybCA9IFwiXCI7XHJcbiAgICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpID09PSB0cnVlKXtcclxuICAgICAgICB1cmwgPSBcIi9jbGFpbXMtc2VydmljZS9jbGFpbS9jbGFpbWFudC9hcHAvYnBlbXBsb3llcnNcIjtcclxuICAgICAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xyXG4gICAgICAgIGlmKHByb2Nlc3N0eXBlID09PSAnYWljLXJlb3Blbicpe1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlLnJlbW92ZShGYkNvbnN0YW50cy51dWlkKTtcclxuICAgICAgICAgIG1vZGVsLmZsb3dGcm9tID0gXCJBaWMtUmVvcGVuLWZsb3dcIjtcclxuICAgICAgICB9ICBlbHNlIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmxvd0tleVwiKSA9PSAnNjAwJykge1xyXG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2tleScpO1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgdGhpcy5zc25Gb3JDU1IgPSBKU09OLnBhcnNlKGF0b2IoZGF0YSkpO1xyXG4gICAgICAgICAgbW9kZWwuc3NuID0gdGhpcy5zc25Gb3JDU1I7XHJcbiAgICAgICAgfSAgIFxyXG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2FwcC9icGVtcGxveWVyc1wiO1xyXG4gICAgICB9XHJcbiAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCd0aGUgdXVpZCB1c2VkIGluIG1vZGVsIGlzIDogJywgdGhpcy51dWlkKTtcclxuICAgICAgaWYobW9kZWwuZmxvd0Zyb20gPT09ICdBaWMtUmVvcGVuLWZsb3cnKXtcclxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSW5zaWRlIGFpYyByZW9wZW4gZmxvd1wiKTtcclxuICAgICAgICB0aGlzLmZldGNoRW1wbG95ZXJzRnJvbUJhY2tFbmQobW9kZWwsIHVybCk7XHJcbiAgICAgIH0gZWxzZSBpZih0aGlzLnV1aWQpe1xyXG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIkluc2lkZSBnZXR0aW5nIHZhbHVlcyBiYXNlZCBvbiB1dWlkXCIpO1xyXG4gICAgICAgICAgbW9kZWwudXVpZCA9IHRoaXMudXVpZDtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiS2VlcCB3YWl0aW5nLi4uLnV1aWQgbm90IGZvdW5kLi5cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbDogQ2xhaW1BcHBFbXBSZXF1ZXN0TW9kZWwsIHVybDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IHRydWU7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnBvc3Q8Q2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsPih1cmwsIG1vZGVsKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgaWYocmVzLmJwRW1wTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgICAgIHJlcy5icEVtcExpc3QuZm9yRWFjaChlbXAgPT4gdGhpcy5zZXRDaG9pc2VNb2RlbHMoZW1wKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UubmV4dChyZXMpO1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VtcGxveWVyIExpc3QgZnJvbSBTZXJ2aWNlJywgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyID0+IHtcclxuICAgICAgICBsZXQgbGlzdCA9IG5ldyBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KGxpc3QpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIFxyXG4gIGRlbGV0ZUJwRW1wbChldmVudDpudW1iZXIpe1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkICcsIGV2ZW50KTtcclxuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShldmVudCwgMSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFbXBsb3llcihlbGVtZW50SW5kZXgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGNhbGxlZCBmb3IgPSAnLCBlbGVtZW50SW5kZXgpO1xyXG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcj1mYWxzZTtcclxuICAgIC8vdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5lbXBEZWxldGVkID0gXCJZXCI7XHJcbiAgICB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5zcGxpY2UoZWxlbWVudEluZGV4LCAxKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRW1wbG95ZXJCYXNlUGVyaW9kKGVsZW1lbnRJbmRleCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgYmFzZSBwZXJpb2QgZW1wbG95ZXIgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLndvcmtGbGFnID0gXCJOXCI7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmVtcERlbGV0ZWQgPSBcIllcIjtcclxuICAgIGNvbnN0IGJwRGVsUmVhc29uID0gdGhpcy5zZWxlY3RlZE9wdGlvbiArIFwiIFwiICsgKHRoaXMuc2hvd0NvbW1lbnRCb3ggPyBcIi0gXCIrdGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LnZhbHVlOiBcIlwiKTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uYnBFbXBEZWxSZWFzb24gPSBicERlbFJlYXNvbjtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBZnRlciBkZWxldGUgYmFzZSBwZXJpb2QgZW1wbG95ZXIgbGlzdCBpcyA9ICcsIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgZWRpdEVtcGxveWVyKGVtcGxveWVyKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRWRpdCBtZXRob2QgY2FsbGVkJywgZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luZGV4IFRvIEVkaXQgPSAnLCB0aGlzLmluZGV4VG9FZGl0KTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLm5vRWRpdE1vZGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZmluaXNoKGVtcGxveWVyKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRmluaXNoIEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyKTtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcclxuICAgIGVtcGxveWVyLndvcmtGbGFnID0gJ1knO1xyXG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciA9IHRydWU7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5tb2RlbERpc3BsYXkuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFZGl0IEJhc2VQZXJpb2QgRW1wbG95ZXIgY2FsbGVkIGZvciAnLCBlbXBsb3llcik7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5kZXggVG8gRWRpdCA9ICcsIHRoaXMuaW5kZXhUb0VkaXQpO1xyXG4gIH1cclxuXHJcbiAgb25Nb2RlbENhbmNlbChjYW5jZWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDYW5jZWwgTWV0aG9kICAnLCBjYW5jZWwpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gY2FuY2VsO1xyXG4gICAgdGhpcy5iYXNlUGVyaW9kZGlzcGxheSA9IGNhbmNlbDtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gICAgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FmdGVyIHZhbHVlIGNoYW5nZSBvbiBlbXBsb3llciBncmlkICcsIHRoaXMuZGlzcGxheSk7XHJcbiAgfVxyXG5cclxuICBhZGRFbXBsb3llcihldmVudDogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FkZCBFbXBsb3llciBjYWxsZWQgZnJvbSBncmlkICcsIGV2ZW50LCAnaW5kZXhUb0VkaXQnLCB0aGlzLmluZGV4VG9FZGl0LCd0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyJyx0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKTtcclxuICAgIGV2ZW50LmVtcERlbGV0ZWQgPSAnTic7XHJcbiAgICBpZiAodGhpcy5pbmRleFRvRWRpdCB8fCB0aGlzLmluZGV4VG9FZGl0ID09IDApIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBpZiBvZiBhZGQgZW1wbG95ZXIgLS0gJyxldmVudClcclxuICAgICAgbGV0IGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpO1xyXG4gICAgICBsZXQgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSBuZXcgRW1wbG95ZXJXYWdlc01vZGVsKCk7XHJcbiAgICAgIGlmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwgPSAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0uZW1wbG95ZXJEYXRhO1xyXG4gICAgICAgIGVtcFByb3ZpZGVkV2FnZU1vZGVsID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0uZW1wbG95ZXJQcm92aWRlZFdhZ2VzO1xyXG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzEnXHJcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJEYXRhID0gZW1wRGF0YU1vZGVsO1xyXG4gICAgICAgIGV2ZW50LmVtcGxveWVyUHJvdmlkZWRXYWdlcyA9IGVtcFByb3ZpZGVkV2FnZU1vZGVsO1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNldHRpbmcgdGhlIHZhbHVlIGFnYWluID0gICcsZXZlbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gZXZlbnQ7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XHJcbiAgICAgICBpZihldmVudC5lbXBsb3llclR5cGU9PT0nUkVHJyl7XHJcbiAgICAgICAgaWYoZXZlbnQucHJldldvcmtlZFN0YXRlPT09J0tTJyl7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQub3RoU3RhdGVFbXBOYW1lO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5wcmV2V29ya2VkU3RhdGUgPSBldmVudC5wcmV2V29ya2VkU3RhdGU7ICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XHJcbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJzxicj4tJyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctPGJyPicgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpeyBcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5mZWRFbXBsb3llck5hbWU7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XHJcbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJzxicj4tJyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctPGJyPicgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwibm8gYWRkcmVzcyBmb3IgdGhpcyBlbXBsb3llciB0eXBlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcclxuICAgICAgICBldmVudC5lbXBsb3llckRhdGEgPSBlbXBEYXRhTW9kZWw7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUyPWV2ZW50LmFkZHJlc3M/Lm9wdGlvbmFsQWRkcmVzcztcclxuICAgICAgICBldmVudC5icEVtcGxveWVyRmxhZyA9ICcwJ1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMuaW5kZXhUb0VkaXRdID0gZXZlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIGVsc2Ugb2YgYWRkIGVtcGxveWVyIC0tICcsZXZlbnQpXHJcbiAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgICAgIGxldCBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKVxyXG4gICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcclxuICAgICAgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XHJcbiAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcclxuICAgICAgICBpZihldmVudC5wcmV2V29ya2VkU3RhdGU9PT0nS1MnKXtcclxuICAgICAgICAgICAgZW1wRGF0YU1vZGVsLmRpc3BsYXlOYW1lID0gZXZlbnQuZW1wbG95ZXJOYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5vdGhTdGF0ZUVtcE5hbWU7XHJcbiAgICAgICAgICBlbXBEYXRhTW9kZWwucHJldldvcmtlZFN0YXRlID0gZXZlbnQucHJldldvcmtlZFN0YXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XHJcbiAgICAgIGV2ZW50LmFkZHJlc3NbJ3N0cmVldEFkZHJlc3MnXSArICc8YnI+JysgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcclxuICAgICAgfSBlbHNlIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdGRUQnKXtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5mZWRFbXBsb3llck5hbWU7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9XHJcbiAgICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddKyAnPGJyPicgKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLTxicj4nICsgKGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXSA/IGV2ZW50LmFkZHJlc3NbJ2NvdW50cnknXS52YWx1ZSA6ICcnKTtcclxuICAgICAgfWVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIGVsc2UgLSBubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVyVHlwZSA9IGV2ZW50LmVtcGxveWVyVHlwZTtcclxuICAgICAgZW1wRGF0YU1vZGVsLmVtcGxveWVySWQ9ZXZlbnQuZW1wbG95ZXJJZDtcclxuICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTE9ZXZlbnQuYWRkcmVzcz8uc3RyZWV0QWRkcmVzcztcclxuICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xyXG4gICAgICBpZiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbC5icEVtcGxveWVyRmxhZyA9ICcxJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwuYnBFbXBsb3llckZsYWcgPSAnMCc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coXCJBZGRpbmcgZW1wbHIgZGF0YSB0byBjbGFpbWRldGFpbG1vZGU6OlwiLGVtcERhdGFNb2RlbCk7XHJcbiAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbC5lbXBsb3llckRhdGEgPSBlbXBEYXRhTW9kZWw7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQWRkaW5nIGVtcGxyIGRhdGEgdG8gY2xhaW1kZXRhaWxtb2RlOjpcIixlbXBEYXRhTW9kZWwpO1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdC5wdXNoKHRoaXMuY2xhaW1kZXRhaWxNb2RlbCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnJvbSBicGxpc3QgaW4gZ3JpZDo6OlwiLHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0Lmxlbmd0aCk7XHJcbiAgICAgIHRoaXMubW9kZWxEYXRhUGFzcy5lbWl0KGVtcERhdGFNb2RlbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRW1wbG95bWVudChzZWxlY3RlZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsLCBpbmRleCl7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdDb25zdGFudCkgcmV0dXJuOyAvLyBwcmV2ZW50IHJhcGlkIG11bHRpcGxlIGNsaWNrc1xyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nQ29uc3RhbnQgPSB0cnVlO1xyXG4gICAgY29uc3QgcGF5bG9hZDogRHluYW1pY0JpekNvbnN0YW50TW9kZWwgPSB7XHJcbiAgICAgIGtleTogJ0FVVE9fUE9QVUxBVEVEX0VNUExPWUVSX0RFTEVURV9MT0NLJyxcclxuICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICBlZmZlY3RpdmVEYXRlOiBudWxsLFxyXG4gICAgICBpc0R5YW5hbWljQml6Q29uc3RhbnQ6IGZhbHNlLFxyXG4gICAgICBub25DYWNoZWFibGU6IHRydWVcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldENvbnN0YW50VmFsdWUocGF5bG9hZClcclxuICAgIC5waXBlKFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzTG9hZGluZ0NvbnN0YW50ID0gZmFsc2UpIC8vcmVzZXQgXHJcbiAgICApXHJcbiAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogRHluYW1pY0JpekNvbnN0YW50TW9kZWwpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNFbXBsb3llckRlbGV0YWJsZSA9IHJlcz8udmFsdWU7ICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5pbmRleFRvRWRpdCA9IGluZGV4O1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEVtcGxveWVyID0gc2VsZWN0ZWRFbXBsb3llcjtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1Qb3B1cCA9IHRydWU7ICAgICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAvLyBzYWZlIGZhbGxiYWNrXHJcbiAgICAgICAgdGhpcy5pc0VtcGxveWVyRGVsZXRhYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5QnBFbXBDb25maXJtYXRpb24oKXtcclxuICAgIHRoaXMuc2hvd2JwRW1wRGVsUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuICByZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKXtcclxuICAgIHRoaXMuZGVsZXRlRW1wbG95ZXJCYXNlUGVyaW9kKHRoaXMuaW5kZXhUb0VkaXQpO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dicEVtcERlbFBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlRW1wbG95bWVudChzZWxlY3RlZEVtcGxveWVyOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsLCBpbmRleCl7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgaW5kZXgpO1xyXG4gICAgbGV0IGN1cnJlbnRXb3JrRmxhZ1ZhbHVlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbaW5kZXhdLndvcmtGbGFnID0gY3VycmVudFdvcmtGbGFnVmFsdWUgPyAoY3VycmVudFdvcmtGbGFnVmFsdWUgPT0gXCJOXCIgPyBcIllcIiA6IFwiTlwiKSA6IG51bGw7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0uZW1wRGVsZXRlZCA9IFwiTlwiO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dicEVtcERlbFBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBudWxsO1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgfVxyXG4gIHNldENob2lzZU1vZGVscyhlbXA6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwpOiB2b2lkIHtcclxuICAgIGxldCBzZXBSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAucmVhc29uU2VwYXJhdGlvbj8udmFsdWUpO1xyXG4gICAgaWYoc2VwUmVhc29uLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAucmVhc29uU2VwYXJhdGlvbiA9IHNlcFJlYXNvblswXTtcclxuICAgIH1cclxuICAgIGxldCBkaXNjaGFyZ2VSZWFzb24gOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5kaXNjaGFyZ2VEZXRhaWw/LnZhbHVlKTtcclxuICAgIGlmKGRpc2NoYXJnZVJlYXNvbi5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLmRpc2NoYXJnZURldGFpbCA9IGRpc2NoYXJnZVJlYXNvblswXTtcclxuICAgIH1cclxuICAgIGxldCB2b2xRdWl0IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnZvbFF1aXREZXRhaWxzPy52YWx1ZSk7XHJcbiAgICBpZih2b2xRdWl0Lmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAudm9sUXVpdERldGFpbHMgPSB2b2xRdWl0WzBdO1xyXG4gICAgfVxyXG4gICAgbGV0IHBheVJhdGVGcmVxdWVuY3kgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAucGF5UmF0ZUZyZXF1ZW5jeT8udmFsdWUpO1xyXG4gICAgaWYocGF5UmF0ZUZyZXF1ZW5jeS5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLnBheVJhdGVGcmVxdWVuY3kgPSBwYXlSYXRlRnJlcXVlbmN5WzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb3VudHJ5IDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrQ291bnRyeT8udmFsdWUpO1xyXG4gICAgaWYoY291bnRyeS5sZW5ndGggPiAwKXtcclxuICAgICAgZW1wLmZlZFdvcmtDb3VudHJ5ID0gY291bnRyeVswXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3RhdGUgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMuc3RhdGVzT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5mZWRXb3JrU3RhdGU/LnZhbHVlKTtcclxuICAgIGlmKHN0YXRlLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuZmVkV29ya1N0YXRlID0gc3RhdGVbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNlcnZpY2VCcmFuY2ggOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5zZXJ2aWNlQnJhbmNoPy52YWx1ZSk7XHJcbiAgICBpZihzZXJ2aWNlQnJhbmNoLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuc2VydmljZUJyYW5jaCA9IHNlcnZpY2VCcmFuY2hbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdvcmtTdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLndvcmtTdGF0ZT8udmFsdWU/LnRyaW0oKSk7XHJcbiAgICBlbXAud29ya1N0YXRlID0gd29ya1N0YXRlWzBdO1xyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC01cHg7XCI+XHJcbjxpb24tcm93PlxyXG4gIDxpb24tY29sPlxyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5jb25maXJtJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmRlbGV0ZScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+LCZuYnNwO1xyXG4gICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuYWRkJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5lZGl0JyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1yZXN0b3JlLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIucmVzdG9yZScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9pb24tY29sPlxyXG48L2lvbi1yb3c+XHJcblxyXG48cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY29sc1wiIFt2YWx1ZV09XCJjbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3RcIiBbbG9hZGluZ109XCJzaG93UHJvZ3Jlc3NCYXJcIlxyXG4gW3Jvd0hvdmVyXT1cInRydWVcIiAqbmdJZj1cImNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZSBpb24tcGFkZGluZy10b3BcIj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnMgcm9sZT1cInByZXNlbnRhdGlvblwiPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggY29sc3Bhbj1cIjJcIiBzY29wZT1cImNvbGdyb3VwXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5qb2IudGl0bGVcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUucGF5XCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmRhdGVzXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgIDwvdGg+XHJcbiAgICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLnNlcC5yZWFzb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIFxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVtcGxveWVyIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XHJcbiAgICA8dHIgY2xhc3M9XCJ1aS1zZWxlY3RhYmxlLXJvd1wiIFtuZ0NsYXNzXT1cImVtcGxveWVyLmVtcERlbGV0ZWQ9PSdZJyA/ICdzdHJpa2V0aHJvdWdoJyA6IG51bGxcIj5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cIihlbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lIHx8IGVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZSkgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmVtcGxveWVyLnRleHRcInx0cmFuc2xhdGV9fTwvc3Bhbj48c3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZX19PGJyPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLnRyYWRlTmFtZX19PGJyPlxyXG4gICAgICA8L3NwYW4+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cImVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lICYmIGVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCdcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5lbXBsb3llci50ZXh0XCJ8dHJhbnNsYXRlfX08L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J01JTCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5lbXBsb3llci50ZXh0XCJ8dHJhbnNsYXRlfX08L3NwYW4+PHNwYW4+XHJcbiAgICAgICAgICB7e2VtcGxveWVyLnNlcnZpY2VCcmFuY2gudGV4dH19IDxicj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj4gXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIucGF5UmF0ZSAmJiBlbXBsb3llci5zdGFydERhdGUgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QmFzZVBlcmlvZEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdEVtcGxveWVyKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiRWRpdCBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgIWVtcGxveWVyLnBheVJhdGUgJiYgIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImZpbmlzaChlbXBsb3llcik7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNvbmZpcm0gZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2NoZWNrLWNpcmNsZSddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMCdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUVtcGxveWVyKHJvd0luZGV4KTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzEnICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZD09J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZXN0b3JlRW1wbG95bWVudChlbXBsb3llciwgcm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZXN0b3JlXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1yZXN0b3JlLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmICFlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmIGVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5qb2IudGl0bGVcInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbiAmJiBlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuam9iLnRpdGxlXCJ8dHJhbnNsYXRlfX08L3NwYW4+e3tlbXBsb3llci5qb2JUaWxlT3JQb3NpdGlvbn19e3tlbXBsb3llci5mZWRKb2JUaWxlT3JQb3NpdGlvbn19PC90ZD5cclxuICAgICAgICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLnBheVJhdGVcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnBheVwifHRyYW5zbGF0ZX19PC9zcGFuPnt7ZW1wbG95ZXIucGF5UmF0ZSB8IGN1cnJlbmN5fX0ve3tlbXBsb3llci5wYXlSYXRlRnJlcXVlbmN5LnRleHR9fTwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5wYXlSYXRlXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5wYXlcInx0cmFuc2xhdGV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J1JFRydcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnN0YXJ0LmFuZC5lbmRcInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZSB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdGRUQnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zdGFydC5hbmQuZW5kXCJ8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVGZWQgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc3RhcnQuYW5kLmVuZFwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlTWlsIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLnN0YXJ0RGF0ZSAmJiAgIWVtcGxveWVyLnN0YXJ0RGF0ZUZlZCAmJiAhZW1wbG95ZXIuc3RhcnREYXRlTWlsXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zdGFydC5hbmQuZW5kXCJ8dHJhbnNsYXRlfX08L3NwYW4+PC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZSE9J01JTCcgJiYgZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc2VwZXJhdGlvbi5yZWFzb25cInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLnJlYXNvblNlcGFyYXRpb24udGV4dH19XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJyAmJiAhZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvblwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc2VwZXJhdGlvbi5yZWFzb25cInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgIFxyXG4gICAgICBcclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInN1bW1hcnlcIiBsZXQtY29sdW1ucz5cclxuICAgIDx0YWJsZT5cclxuICAgICAgPHRyPlxyXG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIjJcIiBzdHlsZT1cIndpZHRoOiA0MCU7XCI+XHJcbiAgICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LmZvb3Rlci5sYWJlbCcgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIj48L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA5Ljc1JTsgdGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIChjbGljayk9XCJhZGROZXdFbXBEZXRhaWxzKClcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQWRkIGVtcGxveWVyXCIgW2lkXT1cIididG5BZGRFbXBsb3llcidcIj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjb2xzcGFuPVwiNFwiPiZuYnNwOzwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG48L3AtdGFibGU+XHJcbiAgPGFwcC1hZGQtZW1wbG95ZXIgKm5nSWY9XCJkaXNwbGF5XCIgKHN1Y2Nlc3MpPVwiYWRkRW1wbG95ZXIoJGV2ZW50KVwiICBbcmVjb3JkSW5kZXhUb0VkaXRdPVwiaW5kZXhUb0VkaXRcIiBcclxuICAgIChiYXNlUGVyaW9kSW5kZXgpPVwiZGVsZXRlQnBFbXBsKCRldmVudClcIiBbaXNCYXNlUGVyaW9kRW1wbG95ZXJdPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBbaXNOZXdDbGFpbV09XCJpc05ld0NsYWltXCIgXHJcbiAgICAobW9kZWxDYW5jZWwpPVwib25Nb2RlbENhbmNlbCgkZXZlbnQpXCIgW2RvYl09XCJjbGFpbWFudERvYlwiIFtub0VkaXRNb2RlXT1cIm5vRWRpdE1vZGVcIj5cclxuICA8L2FwcC1hZGQtZW1wbG95ZXI+XHJcblxyXG4gIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93Q29uZmlybVBvcHVwXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiAqbmdJZj1cInNob3dDb25maXJtUG9wdXBcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJoZWFkaW5nXCI+e3sgKCF0aGlzLmlzRW1wbG95ZXJEZWxldGFibGUgPyAnaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5oZWFkaW5nJ1xyXG4gICAgICAgIDogJ2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuYXR0ZW50aW9uJyApIHwgdHJhbnNsYXRlfX08L2g0PlxyXG4gICAgICAgIDxpb24tbGFiZWw+e3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZX19PC9pb24tbGFiZWw+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPnt7c2VsZWN0ZWRFbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lfX08L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWxhYmVsPjxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgW2lubmVySHRtbF09XCJzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgfCB0cnVzdEh0bWxcIj48L2Rpdj48L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiAqbmdJZj1cIiFpc0VtcGxveWVyRGVsZXRhYmxlXCI+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmZhaWx1cmUubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDEucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQxLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDIucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQyLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIDxiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDMucS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvYj5cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQzLmEubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIiFpc0VtcGxveWVyRGVsZXRhYmxlXCI+XHJcbiAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmRpZG50LndvcmsubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNFbXBsb3llckRlbGV0YWJsZVwiPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0My5iLmxhYmVsJyB8IHRyYW5zbGF0ZTogcGFyYW19fVxyXG4gICAgICAgICAgPC9pb24tbGFiZWw+PGJyLz48YnIvPiAgICAgICAgICBcclxuICAgICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZGlkLndvcmsubGFiZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBbZmlsbF09XCJpc0VtcGxveWVyRGVsZXRhYmxlID8gJ3NvbGlkJyA6ICdvdXRsaW5lJ1wiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAge3soIXRoaXMuaXNFbXBsb3llckRlbGV0YWJsZSA/ICdpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmNhbmNlbCcgOiAnaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5yZXN1bWUnKSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwiIXRoaXMuaXNFbXBsb3llckRlbGV0YWJsZVwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwiZGlzcGxheUJwRW1wQ29uZmlybWF0aW9uKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnJlbW92ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kaWFsb2c+XHJcbiAgICA8cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd2JwRW1wRGVsUG9wdXBcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNDV2dyd9XCJcclxuICAgIFtiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGFwcGVuZFRvPVwiYm9keVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiICpuZ0lmPVwic2VsZWN0ZWRFbXBsb3llclwiPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj57eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmhlYWRpbmcnIHwgdHJhbnNsYXRlfX08L2g0Pjxici8+XHJcbiAgICAgICAgPHAtZHJvcGRvd24gZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWREcm9wZG93blwiIGlucHV0SWQ9XCJicEVtcERlbE9wdGlvbnNcIiAgIFtvcHRpb25zXT1cImJwRW1wRGVsT3B0aW9uc1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25cIiAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiAob25DaGFuZ2UpPVwib25Ecm9wZG93bkNoYW5nZSgkZXZlbnQpXCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgcGxhY2Vob2xkZXI9J3t7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmhlYWRpbmcucGxhY2Vob2xkZXJcIiB8IHRyYW5zbGF0ZX19JyBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgcmVxdWlyZWQ+IFxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q29tbWVudEJveFwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImNvbW1lbnRcIj5cclxuICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5yZWFzb24uc2VsZWN0aW5nJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L2xhYmVsPjxici8+XHJcbiAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJDb21tZW50XCIgcm93cz1cIjVcIiBjb2xzPVwiMzBcIiBtYXhsZW5ndGg9XCIyNTBcIiBwbGFjZWhvbGRlcj0ne3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuZXhwbGFpbi5yZWFzb25cIiB8IHRyYW5zbGF0ZX19Jz48L3RleHRhcmVhPlxyXG4gICAgICAgICAgPHNtYWxsICpuZ0lmPVwidGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LmludmFsaWQgJiYgdGhpcy5mb3JtLmdldCgnb3RoZXJDb21tZW50Jyk/LnRvdWNoZWRcIiBjbGFzcz1cInAtZXJyb3JcIj5cclxuICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5maWVsZC5yZXF1aXJlZCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9zbWFsbD5cclxuICAgICAgICAgIDxzbWFsbD5cclxuICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5tYXhsZW5ndGguMjUwJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L3NtYWxsPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwidGhpcy5mb3JtLmludmFsaWRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwicmVtb3ZlQmFzZVBlcmlvZEVtcGxveWVyKClcIj5cclxuICAgICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLnJlbW92ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC1kaWFsb2c+XHJcbjwvZGl2PiJdfQ==
1170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZW1wbG95ZXItZ3JpZC9lbXBsb3llci1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbXBsb3llci1ncmlkL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVLLE9BQU8sRUFBMEMsaUJBQWlCLEVBQWUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1SSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0E1QiwwQkFBSSxhQUFBO0lBRUEsWUFDRjs7SUFB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QUE7WUFHWixnRkF3SFUscUZBQUEsdUVBQUEsc0VBQUE7WUFrRlYsaUJBQU07O1lBMU5ELG9DQUFrQjtZQUdWLGVBQWdDO1lBQWhDLGtEQUFnQztZQUNuQyxlQUE4RTtZQUE5RSxxSUFBOEU7WUFDM0UsZUFBNkI7WUFBN0Isa0RBQTZCO1lBQ2hDLGVBQTZFO1lBQTdFLHNJQUE2RTtZQUMxRSxlQUF3QjtZQUF4QixrREFBd0I7WUFDM0IsZUFBMEU7WUFBMUUsbUlBQTBFO1lBQ3ZFLGVBQXdCO1lBQXhCLGtEQUF3QjtZQUMzQixlQUEyRTtZQUEzRSxvSUFBMkU7WUFDeEUsZUFBcUM7WUFBckMsa0RBQXFDO1lBQ3hDLGVBQThFO1lBQTlFLHVJQUE4RTtZQUtwRSxlQUF5QztZQUF6Qyw4REFBeUM7WUF3SHhDLGVBQWE7WUFBYixrQ0FBYTtZQU1xRSxlQUFzQjtZQUF0QiwyQ0FBc0I7WUFnRHRCLGVBQXNCO1lBQXRCLDJDQUFzQjs7O2lGRDlKaEgscUJBQXFCO2NBWmpDLFNBQVM7MkJBQ0UsbUJBQW1CLGFBR2xCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx1QkFBdUI7d0JBQ2xDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUMsbUJBQ2UsdUJBQXVCLENBQUMsT0FBTzs2UUFzQnZDLElBQUk7a0JBQVosS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFJSSxZQUFZO2tCQUFyQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUNHLGFBQWE7a0JBQXRCLE1BQU07O2tGQTFCSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIEFmdGVyUmVuZGVyUGhhc2UsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nTW9kdWxlLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwnO1xyXG5pbXBvcnQgeyBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wUmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRW1wbG95ZXJXYWdlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJXYWdlc01vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IEZiQ29uc3RhbnRzIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS9GYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgRHluYW1pY0JpekNvbnN0YW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRHluYW1pY0JpekNvbnN0YW50TW9kZWwnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZW1wbG95ZXItZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBFbXBsb3llckdyaWRDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEVtcGxveWVyR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBwdWJsaWMgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgYWN0aXZhdGVkUm91dGUgOiBBY3RpdmF0ZWRSb3V0ZSwgcHVibGljIGNsYWltc1NlcnZpY2UgOiBDbGFpbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2UgOiBTdG9yYWdlKSB7XHJcbiAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncC10YWJsZSB0YWJsZScpLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICBlLnNldEF0dHJpYnV0ZSgncm9sZScsICdwcmVzZW50YXRpb24nKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Atc2VsZWN0YnV0dG9uIGRpdiBkaXYnKS5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5Jyk7XHJcbiAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcpOyBcclxuICAgICAgfSk7XHJcbiAgICAgIH0sIHtwaGFzZTogQWZ0ZXJSZW5kZXJQaGFzZS5Xcml0ZX0pO1xyXG4gIH1cclxuXHJcbiAgY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2U6ICBDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XHJcbiAgY29sczogYW55W107XHJcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBkeW5hbWljUGFyYW0gOiBhbnk7XHJcbiAgZGlzcGxheTogYm9vbGVhbjtcclxuICBub0VkaXRNb2RlOiBib29sZWFuO1xyXG4gIGJhc2VQZXJpb2RkaXNwbGF5OiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBtb2RlbERpc3BsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG1vZGVsRGF0YVBhc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2xhaW1kZXRhaWxNb2RlbCA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgY2FpbUFwcEVtcFJlc3BvbnNlTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsKCk7XHJcbiAgc2VsZWN0ZWRFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICBzZWxlY3RlZEJhc2VQZXJpb2RFbXBsb3llcjogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XHJcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzTmV3Q2xhaW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1Qb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd2JwRW1wRGVsUG9wdXAgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3NuRm9yQ1NSIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICB1dWlkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgc3RhdGVzT3B0aW9ucyA6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBtaWxpdGFyeVNlcnZpY2VPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIGNsYWltYW50RG9iIDogRGF0ZTtcclxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb246IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0NvbW1lbnRCb3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYnBFbXBEZWxPcHRpb25zIDogYW55ID0gW107XHJcbiAgcHVibGljIGlzTG9hZGluZ0NvbnN0YW50ID0gZmFsc2U7XHJcbiAgcHVibGljIHBhcmFtO1xyXG4gIHB1YmxpYyBpc0VtcGxveWVyRGVsZXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgbG9hZE1hc3RlckRhdGEoKXtcclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCduZyBvbml0IG9mIGVtcGxveWVyIGdyaWQnKVxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLldPUktfQ09VTlRSWV9FUztcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX0VTO1xyXG4gICAgICB0aGlzLmJwRW1wRGVsT3B0aW9ucyA9IENvbWJvT3B0aW9uLkJQX0VNUF9ERUxfT1BUU19FUztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xyXG4gICAgICB0aGlzLmNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICAgICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcclxuICAgICAgdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zID0gQ29tYm9PcHRpb24uTUlMSVRBUllfU0VSVklDRTtcclxuICAgICAgdGhpcy5icEVtcERlbE9wdGlvbnMgPSBDb21ib09wdGlvbi5CUF9FTVBfREVMX09QVFM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbHMgPSBbXHJcbiAgICAgIHsgZmllbGQ6ICdlbXBsb3llcicsIGhlYWRlcjogJ0VtcGxveWVyJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnam9iVGl0bGUnLCBoZWFkZXI6ICdKb2IgVGl0bGUnIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdQYXknLCBoZWFkZXI6ICdQYXknIH0sXHJcbiAgICAgIHsgZmllbGQ6ICdzdGFydEVuZERhdGUnLCBoZWFkZXI6ICdTdGFydCBhbmQgRW5kJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnc2VwYXJhdGlvblJlYXNvbicsIGhlYWRlcjogJ1NlcGFyYXRpb24gUmVhc29uJyB9LFxyXG4gICAgICB7IGZpZWxkOiAnJywgaGVhZGVyOiAnJyB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgIHNlbGVjdGVkRHJvcGRvd246IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgb3RoZXJDb21tZW50OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQgKX0pO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSA9IHJlcy52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGJhc2VQZXJpb2RTdGFydERhdGU6IHRoaXMudXRpbC5nZXREYXRlSW5NTUREWVlZWUZvcm1hdCh0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJhc2VQZXJpb2RTdGFydERhdGUpLFxyXG4gICAgICAgICAgICAgICAgICB0b2RheXNEYXRlOiB0aGlzLnV0aWwuZ2V0RGF0ZUluTU1ERFlZWVlGb3JtYXQobmV3IERhdGUoKSlcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZih0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlICYmIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuaXNOZXdDbGFpbUFwcGxpY2F0aW9uKXtcclxuICAgICAgICAgICAgICB0aGlzLmlzTmV3Q2xhaW0gPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmlzTmV3Q2xhaW1BcHBsaWNhdGlvbi52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jbGFpbWFudERvYiA9IG5ldyBEYXRlKHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuZGF0ZU9mQmlydGgucmVwbGFjZShcIi1cIixcIi9cIikucmVwbGFjZShcIi1cIixcIi9cIikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuc2hvd0NvbW1lbnRCb3ggPSAodGhpcy5zZWxlY3RlZE9wdGlvbiA9PT0gJ090aGVyJyB8fCB0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnT3RybycpOyAvLyBDaGVjayBpZiAnb3RoZXInIGlzIHNlbGVjdGVkXHJcbiAgICBpZiAodGhpcy5zaG93Q29tbWVudEJveCkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybS5nZXQoJ290aGVyQ29tbWVudCcpPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBhZGROZXdFbXBEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXI9ZmFsc2U7XHJcbiAgICB0aGlzLm5vRWRpdE1vZGU9ZmFsc2U7XHJcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZih2YWx1ZSl7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQodmFsdWUpO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnNldHVwRW1wbG95ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5zdWJzY3JpYmUoZm4pO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm5cclxuICB9XHJcblxyXG4gIGFzeW5jIGdldElkZW50aWZpZXIoKXtcclxuICAgIGxldCB1dWlkO1xyXG4gICAgbGV0IGRhdGEgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdpZGVudGlmaWVyJyk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImRhdGEgZm9yIGlkZW50aWZpZXIgaXMgOiBcIiwgZGF0YSlcclxuICAgICAgaWYoZGF0YSl7ICAgICAgICAgIFxyXG4gICAgICAgIHV1aWQgPSBkYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHV1aWQgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KEZiQ29uc3RhbnRzLnV1aWQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1dWlkO1xyXG4gIH1cclxuICBhc3luYyBzZXR1cEVtcGxveWVyKCkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IENsYWltQXBwRW1wUmVxdWVzdE1vZGVsKCk7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpIHtcclxuICAgICAgdGhpcy51dWlkID0gYXdhaXQgdGhpcy5nZXRJZGVudGlmaWVyKCk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1dWlkIGlzID09PT0nLCB0aGlzLnV1aWQpO1xyXG4gICAgICBsZXQgdXJsID0gXCJcIjtcclxuICAgICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkgPT09IHRydWUpe1xyXG4gICAgICAgIHVybCA9IFwiL2NsYWltcy1zZXJ2aWNlL2NsYWltL2NsYWltYW50L2FwcC9icGVtcGxveWVyc1wiO1xyXG4gICAgICAgIGxldCBwcm9jZXNzdHlwZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3Byb2Nlc3N0eXBlJyk7XHJcbiAgICAgICAgaWYocHJvY2Vzc3R5cGUgPT09ICdhaWMtcmVvcGVuJyl7XHJcbiAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKEZiQ29uc3RhbnRzLnV1aWQpO1xyXG4gICAgICAgICAgbW9kZWwuZmxvd0Zyb20gPSBcIkFpYy1SZW9wZW4tZmxvd1wiO1xyXG4gICAgICAgIH0gIGVsc2UgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmbG93S2V5XCIpID09ICc2MDAnKSB7XHJcbiAgICAgICAgICBtb2RlbC5mbG93RnJvbSA9IFwiQWljLVJlb3Blbi1mbG93XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgna2V5Jyk7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICB0aGlzLnNzbkZvckNTUiA9IEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XHJcbiAgICAgICAgICBtb2RlbC5zc24gPSB0aGlzLnNzbkZvckNTUjtcclxuICAgICAgICB9ICAgXHJcbiAgICAgICAgdXJsID0gXCIvY2xhaW1zLXNlcnZpY2UvY2xhaW0vYXBwL2JwZW1wbG95ZXJzXCI7XHJcbiAgICAgIH1cclxuICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ3RoZSB1dWlkIHVzZWQgaW4gbW9kZWwgaXMgOiAnLCB0aGlzLnV1aWQpO1xyXG4gICAgICBpZihtb2RlbC5mbG93RnJvbSA9PT0gJ0FpYy1SZW9wZW4tZmxvdycpe1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJbnNpZGUgYWljIHJlb3BlbiBmbG93XCIpO1xyXG4gICAgICAgIHRoaXMuZmV0Y2hFbXBsb3llcnNGcm9tQmFja0VuZChtb2RlbCwgdXJsKTtcclxuICAgICAgfSBlbHNlIGlmKHRoaXMudXVpZCl7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSW5zaWRlIGdldHRpbmcgdmFsdWVzIGJhc2VkIG9uIHV1aWRcIik7XHJcbiAgICAgICAgICBtb2RlbC51dWlkID0gdGhpcy51dWlkO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsLCB1cmwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJLZWVwIHdhaXRpbmcuLi4udXVpZCBub3QgZm91bmQuLlwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBmZXRjaEVtcGxveWVyc0Zyb21CYWNrRW5kKG1vZGVsOiBDbGFpbUFwcEVtcFJlcXVlc3RNb2RlbCwgdXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UucG9zdDxDbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWw+KHVybCwgbW9kZWwpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICBpZihyZXMuYnBFbXBMaXN0Lmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgcmVzLmJwRW1wTGlzdC5mb3JFYWNoKGVtcCA9PiB0aGlzLnNldENob2lzZU1vZGVscyhlbXApKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5uZXh0KHJlcyk7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlLmVtaXQodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIgTGlzdCBmcm9tIFNlcnZpY2UnLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIGxldCBsaXN0ID0gbmV3IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLm5leHQobGlzdCk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgXHJcbiAgZGVsZXRlQnBFbXBsKGV2ZW50Om51bWJlcil7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBjYWxsZWQgJywgZXZlbnQpO1xyXG4gICAgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3Quc3BsaWNlKGV2ZW50LCAxKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUVtcGxveWVyKGVsZW1lbnRJbmRleCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0RlbGV0ZSBtZXRob2QgY2FsbGVkIGZvciA9ICcsIGVsZW1lbnRJbmRleCk7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyPWZhbHNlO1xyXG4gICAgLy90aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdFtlbGVtZW50SW5kZXhdLmVtcERlbGV0ZWQgPSBcIllcIjtcclxuICAgIHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LnNwbGljZShlbGVtZW50SW5kZXgsIDEpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFbXBsb3llckJhc2VQZXJpb2QoZWxlbWVudEluZGV4KSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnRGVsZXRlIG1ldGhvZCBiYXNlIHBlcmlvZCBlbXBsb3llciBjYWxsZWQgZm9yID0gJywgZWxlbWVudEluZGV4KTtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0ud29ya0ZsYWcgPSBcIk5cIjtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2VsZW1lbnRJbmRleF0uZW1wRGVsZXRlZCA9IFwiWVwiO1xyXG4gICAgY29uc3QgYnBEZWxSZWFzb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9uICsgXCIgXCIgKyAodGhpcy5zaG93Q29tbWVudEJveCA/IFwiLSBcIit0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8udmFsdWU6IFwiXCIpO1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbZWxlbWVudEluZGV4XS5icEVtcERlbFJlYXNvbiA9IGJwRGVsUmVhc29uO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0FmdGVyIGRlbGV0ZSBiYXNlIHBlcmlvZCBlbXBsb3llciBsaXN0IGlzID0gJywgdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBlZGl0RW1wbG95ZXIoZW1wbG95ZXIpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdFZGl0IG1ldGhvZCBjYWxsZWQnLCBlbXBsb3llcik7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gdGhpcy5jbGFpbUFwcEVtcFJlc3BvbnNlTW9kZWxGcm9tU2VydmljZS5icEVtcExpc3QuaW5kZXhPZihlbXBsb3llcik7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5kZXggVG8gRWRpdCA9ICcsIHRoaXMuaW5kZXhUb0VkaXQpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMubm9FZGl0TW9kZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmaW5pc2goZW1wbG95ZXIpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdGaW5pc2ggRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMuY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2UuYnBFbXBMaXN0LmluZGV4T2YoZW1wbG95ZXIpO1xyXG4gICAgZW1wbG95ZXIud29ya0ZsYWcgPSAnWSc7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLm1vZGVsRGlzcGxheS5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZWRpdEJhc2VQZXJpb2RFbXBsb3llcihlbXBsb3llcikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0VkaXQgQmFzZVBlcmlvZCBFbXBsb3llciBjYWxsZWQgZm9yICcsIGVtcGxveWVyKTtcclxuICAgIHRoaXMuaW5kZXhUb0VkaXQgPSB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdC5pbmRleE9mKGVtcGxveWVyKTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRydWU7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbmRleCBUbyBFZGl0ID0gJywgdGhpcy5pbmRleFRvRWRpdCk7XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NhbmNlbCBNZXRob2QgICcsIGNhbmNlbCk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBjYW5jZWw7XHJcbiAgICB0aGlzLmJhc2VQZXJpb2RkaXNwbGF5ID0gY2FuY2VsO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgICB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYWZ0ZXIgdmFsdWUgY2hhbmdlIG9uIGVtcGxveWVyIGdyaWQgJywgdGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGFkZEVtcGxveWVyKGV2ZW50OiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWRkIEVtcGxveWVyIGNhbGxlZCBmcm9tIGdyaWQgJywgZXZlbnQsICdpbmRleFRvRWRpdCcsIHRoaXMuaW5kZXhUb0VkaXQsJ3RoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXInLHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpO1xyXG4gICAgZXZlbnQuZW1wRGVsZXRlZCA9ICdOJztcclxuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT0gMCkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIGlmIG9mIGFkZCBlbXBsb3llciAtLSAnLGV2ZW50KVxyXG4gICAgICBsZXQgZW1wRGF0YU1vZGVsID0gbmV3IENsYWltT25seUVtcGxveWVyRGF0YU1vZGVsKCk7XHJcbiAgICAgIGxldCBlbXBQcm92aWRlZFdhZ2VNb2RlbCA9IG5ldyBFbXBsb3llcldhZ2VzTW9kZWwoKTtcclxuICAgICAgaWYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xyXG4gICAgICAgIGVtcERhdGFNb2RlbCA9ICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llckRhdGE7XHJcbiAgICAgICAgZW1wUHJvdmlkZWRXYWdlTW9kZWwgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLmluZGV4VG9FZGl0XS5lbXBsb3llclByb3ZpZGVkV2FnZXM7XHJcbiAgICAgICAgZXZlbnQuYnBFbXBsb3llckZsYWcgPSAnMSdcclxuICAgICAgICBldmVudC5lbXBsb3llckRhdGEgPSBlbXBEYXRhTW9kZWw7XHJcbiAgICAgICAgZXZlbnQuZW1wbG95ZXJQcm92aWRlZFdhZ2VzID0gZW1wUHJvdmlkZWRXYWdlTW9kZWw7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0dGluZyB0aGUgdmFsdWUgYWdhaW4gPSAgJyxldmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgICB0aGlzLmNsYWltZGV0YWlsTW9kZWwgPSBldmVudDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcclxuICAgICAgIGlmKGV2ZW50LmVtcGxveWVyVHlwZT09PSdSRUcnKXtcclxuICAgICAgICBpZihldmVudC5wcmV2V29ya2VkU3RhdGU9PT0nS1MnKXtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5vdGhTdGF0ZUVtcE5hbWU7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLnByZXZXb3JrZWRTdGF0ZSA9IGV2ZW50LnByZXZXb3JrZWRTdGF0ZTsgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnPGJyPi0nICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH0gZWxzZSBpZihldmVudC5lbXBsb3llclR5cGU9PT0nRkVEJyl7IFxyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10gKyAnPGJyPi0nICsgZXZlbnQuYWRkcmVzc1snY2l0eSddICArICctJyArIChldmVudC5hZGRyZXNzWydzdGF0ZSddID8gZXZlbnQuYWRkcmVzc1snc3RhdGUnXS50ZXh0IDogJycpICsgJy08YnI+JyArIChldmVudC5hZGRyZXNzWydjb3VudHJ5J10gPyBldmVudC5hZGRyZXNzWydjb3VudHJ5J10udmFsdWUgOiAnJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJubyBhZGRyZXNzIGZvciB0aGlzIGVtcGxveWVyIHR5cGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xyXG4gICAgICAgIGV2ZW50LmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcclxuICAgICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5tYWlsQWRkcmVzc0xpbmUxPWV2ZW50LmFkZHJlc3M/LnN0cmVldEFkZHJlc3M7XHJcbiAgICAgICAgZW1wRGF0YU1vZGVsLm1haWxBZGRyZXNzTGluZTI9ZXZlbnQuYWRkcmVzcz8ub3B0aW9uYWxBZGRyZXNzO1xyXG4gICAgICAgIGV2ZW50LmJwRW1wbG95ZXJGbGFnID0gJzAnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5pbmRleFRvRWRpdF0gPSBldmVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgZWxzZSBvZiBhZGQgZW1wbG95ZXIgLS0gJyxldmVudClcclxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgbGV0IGVtcERhdGFNb2RlbCA9IG5ldyBDbGFpbU9ubHlFbXBsb3llckRhdGFNb2RlbCgpXHJcbiAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbCA9IGV2ZW50O1xyXG4gICAgICBlbXBEYXRhTW9kZWwgPSBuZXcgQ2xhaW1Pbmx5RW1wbG95ZXJEYXRhTW9kZWwoKTtcclxuICAgICAgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J1JFRycpe1xyXG4gICAgICAgIGlmKGV2ZW50LnByZXZXb3JrZWRTdGF0ZT09PSdLUycpe1xyXG4gICAgICAgICAgICBlbXBEYXRhTW9kZWwuZGlzcGxheU5hbWUgPSBldmVudC5lbXBsb3llck5hbWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50Lm90aFN0YXRlRW1wTmFtZTtcclxuICAgICAgICAgIGVtcERhdGFNb2RlbC5wcmV2V29ya2VkU3RhdGUgPSBldmVudC5wcmV2V29ya2VkU3RhdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgZXZlbnQuYWRkcmVzc1snc3RyZWV0QWRkcmVzcyddICsgJzxicj4nKyBldmVudC5hZGRyZXNzWydjaXR5J10gICsgJy0nICsgKGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10gPyBldmVudC5hZGRyZXNzWydzdGF0ZSddLnRleHQgOiAnJykgKyAnLTxicj4nICsoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9IGVsc2UgaWYoZXZlbnQuZW1wbG95ZXJUeXBlPT09J0ZFRCcpe1xyXG4gICAgICAgIGVtcERhdGFNb2RlbC5kaXNwbGF5TmFtZSA9IGV2ZW50LmZlZEVtcGxveWVyTmFtZTtcclxuICAgICAgICBlbXBEYXRhTW9kZWwubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID1cclxuICAgICAgICBldmVudC5hZGRyZXNzWydzdHJlZXRBZGRyZXNzJ10rICc8YnI+JyArIGV2ZW50LmFkZHJlc3NbJ2NpdHknXSAgKyAnLScgKyAoZXZlbnQuYWRkcmVzc1snc3RhdGUnXSA/IGV2ZW50LmFkZHJlc3NbJ3N0YXRlJ10udGV4dCA6ICcnKSArICctPGJyPicgKyAoZXZlbnQuYWRkcmVzc1snY291bnRyeSddID8gZXZlbnQuYWRkcmVzc1snY291bnRyeSddLnZhbHVlIDogJycpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJJbnNpZGUgZWxzZSAtIG5vIGFkZHJlc3MgZm9yIHRoaXMgZW1wbG95ZXIgdHlwZVwiKTtcclxuICAgICAgfVxyXG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJUeXBlID0gZXZlbnQuZW1wbG95ZXJUeXBlO1xyXG4gICAgICBlbXBEYXRhTW9kZWwuZW1wbG95ZXJJZD1ldmVudC5lbXBsb3llcklkO1xyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMT1ldmVudC5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzO1xyXG4gICAgICBlbXBEYXRhTW9kZWwubWFpbEFkZHJlc3NMaW5lMj1ldmVudC5hZGRyZXNzPy5vcHRpb25hbEFkZHJlc3M7XHJcbiAgICAgIGlmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmJwRW1wbG95ZXJGbGFnID0gJzEnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2xhaW1kZXRhaWxNb2RlbC5icEVtcGxveWVyRmxhZyA9ICcwJztcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkFkZGluZyBlbXBsciBkYXRhIHRvIGNsYWltZGV0YWlsbW9kZTo6XCIsZW1wRGF0YU1vZGVsKTtcclxuICAgICAgdGhpcy5jbGFpbWRldGFpbE1vZGVsLmVtcGxveWVyRGF0YSA9IGVtcERhdGFNb2RlbDtcclxuICAgICAgY29uc29sZS5sb2coXCJBZGRpbmcgZW1wbHIgZGF0YSB0byBjbGFpbWRldGFpbG1vZGU6OlwiLGVtcERhdGFNb2RlbCk7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0LnB1c2godGhpcy5jbGFpbWRldGFpbE1vZGVsKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmcm9tIGJwbGlzdCBpbiBncmlkOjo6XCIsdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3QubGVuZ3RoKTtcclxuICAgICAgdGhpcy5tb2RlbERhdGFQYXNzLmVtaXQoZW1wRGF0YU1vZGVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZW1vdmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZ0NvbnN0YW50KSByZXR1cm47IC8vIHByZXZlbnQgcmFwaWQgbXVsdGlwbGUgY2xpY2tzXHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmdDb25zdGFudCA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBEeW5hbWljQml6Q29uc3RhbnRNb2RlbCA9IHtcclxuICAgICAga2V5OiAnQVVUT19QT1BVTEFURURfRU1QTE9ZRVJfREVMRVRFX0xPQ0snLFxyXG4gICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgIGVmZmVjdGl2ZURhdGU6IG51bGwsXHJcbiAgICAgIGlzRHlhbmFtaWNCaXpDb25zdGFudDogZmFsc2UsXHJcbiAgICAgIG5vbkNhY2hlYWJsZTogdHJ1ZVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0Q29uc3RhbnRWYWx1ZShwYXlsb2FkKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nQ29uc3RhbnQgPSBmYWxzZSkgLy9yZXNldCBcclxuICAgIClcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBEeW5hbWljQml6Q29uc3RhbnRNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0VtcGxveWVyRGVsZXRhYmxlID0gcmVzPy52YWx1ZTsgICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmluZGV4VG9FZGl0ID0gaW5kZXg7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRW1wbG95ZXIgPSBzZWxlY3RlZEVtcGxveWVyO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29uZmlybVBvcHVwID0gdHJ1ZTsgICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIC8vIHNhZmUgZmFsbGJhY2tcclxuICAgICAgICB0aGlzLmlzRW1wbG95ZXJEZWxldGFibGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlCcEVtcENvbmZpcm1hdGlvbigpe1xyXG4gICAgdGhpcy5zaG93YnBFbXBEZWxQb3B1cCA9IHRydWU7XHJcbiAgfVxyXG4gIHJlbW92ZUJhc2VQZXJpb2RFbXBsb3llcigpe1xyXG4gICAgdGhpcy5kZWxldGVFbXBsb3llckJhc2VQZXJpb2QodGhpcy5pbmRleFRvRWRpdCk7XHJcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd2JwRW1wRGVsUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbXBsb3llciA9IG51bGw7XHJcbiAgICB0aGlzLmluZGV4VG9FZGl0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJlc3RvcmVFbXBsb3ltZW50KHNlbGVjdGVkRW1wbG95ZXI6IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwsIGluZGV4KXtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdEZWxldGUgbWV0aG9kIGJhc2UgcGVyaW9kIGVtcGxveWVyIGNhbGxlZCBmb3IgPSAnLCBpbmRleCk7XHJcbiAgICBsZXQgY3VycmVudFdvcmtGbGFnVmFsdWUgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0ud29ya0ZsYWc7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFtpbmRleF0ud29ya0ZsYWcgPSBjdXJyZW50V29ya0ZsYWdWYWx1ZSA/IChjdXJyZW50V29ya0ZsYWdWYWx1ZSA9PSBcIk5cIiA/IFwiWVwiIDogXCJOXCIpIDogbnVsbDtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W2luZGV4XS5lbXBEZWxldGVkID0gXCJOXCI7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWZ0ZXIgZGVsZXRlIGJhc2UgcGVyaW9kIGVtcGxveWVyIGxpc3QgaXMgPSAnLCB0aGlzLmNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dDb25maXJtUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd2JwRW1wRGVsUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFbXBsb3llciA9IG51bGw7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICB9XHJcbiAgc2V0Q2hvaXNlTW9kZWxzKGVtcDogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCk6IHZvaWQge1xyXG4gICAgbGV0IHNlcFJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZSk7XHJcbiAgICBpZihzZXBSZWFzb24ubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5yZWFzb25TZXBhcmF0aW9uID0gc2VwUmVhc29uWzBdO1xyXG4gICAgfVxyXG4gICAgbGV0IGRpc2NoYXJnZVJlYXNvbiA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmRpc2NoYXJnZURldGFpbD8udmFsdWUpO1xyXG4gICAgaWYoZGlzY2hhcmdlUmVhc29uLmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuZGlzY2hhcmdlRGV0YWlsID0gZGlzY2hhcmdlUmVhc29uWzBdO1xyXG4gICAgfVxyXG4gICAgbGV0IHZvbFF1aXQgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAudm9sUXVpdERldGFpbHM/LnZhbHVlKTtcclxuICAgIGlmKHZvbFF1aXQubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC52b2xRdWl0RGV0YWlscyA9IHZvbFF1aXRbMF07XHJcbiAgICB9XHJcbiAgICBsZXQgcGF5UmF0ZUZyZXF1ZW5jeSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocyA9PiBzLnZhbHVlID09IGVtcC5wYXlSYXRlRnJlcXVlbmN5Py52YWx1ZSk7XHJcbiAgICBpZihwYXlSYXRlRnJlcXVlbmN5Lmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAucGF5UmF0ZUZyZXF1ZW5jeSA9IHBheVJhdGVGcmVxdWVuY3lbMF07XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvdW50cnkgOiBDaG9pY2VzTW9kZWxbXSA9IHRoaXMud29ya0NvdW50cnlPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmZlZFdvcmtDb3VudHJ5Py52YWx1ZSk7XHJcbiAgICBpZihjb3VudHJ5Lmxlbmd0aCA+IDApe1xyXG4gICAgICBlbXAuZmVkV29ya0NvdW50cnkgPSBjb3VudHJ5WzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzdGF0ZSA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5zdGF0ZXNPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLmZlZFdvcmtTdGF0ZT8udmFsdWUpO1xyXG4gICAgaWYoc3RhdGUubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5mZWRXb3JrU3RhdGUgPSBzdGF0ZVswXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2VydmljZUJyYW5jaCA6IENob2ljZXNNb2RlbFtdID0gdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zLmZpbHRlcihzID0+IHMudmFsdWUgPT0gZW1wLnNlcnZpY2VCcmFuY2g/LnZhbHVlKTtcclxuICAgIGlmKHNlcnZpY2VCcmFuY2gubGVuZ3RoID4gMCl7XHJcbiAgICAgIGVtcC5zZXJ2aWNlQnJhbmNoID0gc2VydmljZUJyYW5jaFswXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgd29ya1N0YXRlIDogQ2hvaWNlc01vZGVsW10gPSB0aGlzLnN0YXRlc09wdGlvbnMuZmlsdGVyKHMgPT4gcy52YWx1ZSA9PSBlbXAud29ya1N0YXRlPy52YWx1ZT8udHJpbSgpKTtcclxuICAgIGVtcC53b3JrU3RhdGUgPSB3b3JrU3RhdGVbMF07XHJcblxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTVweDtcIj5cclxuPGlvbi1yb3c+XHJcbiAgPGlvbi1jb2w+XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdjaGVjay1jaXJjbGUnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmNvbmZpcm0nIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvbiBmb250LWJvbGRcIj48L2ZhLWljb24+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIidpbmR1Y3Rpb24uZW1wbG95bWVudC5zdWJoZWFkZXIuZGVsZXRlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj4sJm5ic3A7XHJcbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5hZGQnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb24gZm9udC1ib2xkXCI+PC9mYS1pY29uPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuc3ViaGVhZGVyLmVkaXQnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPiwmbmJzcDtcclxuICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uIGZvbnQtYm9sZFwiPjwvZmEtaWNvbj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiJ2luZHVjdGlvbi5lbXBsb3ltZW50LnN1YmhlYWRlci5yZXN0b3JlJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2lvbi1jb2w+XHJcbjwvaW9uLXJvdz5cclxuXHJcbjxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjb2xzXCIgW3ZhbHVlXT1cImNsYWltQXBwRW1wUmVzcG9uc2VNb2RlbEZyb21TZXJ2aWNlLmJwRW1wTGlzdFwiIFtsb2FkaW5nXT1cInNob3dQcm9ncmVzc0JhclwiXHJcbiBbcm93SG92ZXJdPVwidHJ1ZVwiICpuZ0lmPVwiY2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsRnJvbVNlcnZpY2VcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucyByb2xlPVwicHJlc2VudGF0aW9uXCI+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0aCBjb2xzcGFuPVwiMlwiIHNjb3BlPVwiY29sZ3JvdXBcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmVtcGxveWVyLm5hbWVcInx0cmFuc2xhdGV9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnRhYmxlLmpvYi50aXRsZVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgPHRoPlxyXG4gICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC50YWJsZS5wYXlcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuZGF0ZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgPC90aD5cclxuICAgICAgIDx0aD5cclxuICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQudGFibGUuc2VwLnJlYXNvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICA8L3RoPlxyXG4gICAgICAgXHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW1wbG95ZXIgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgIDx0ciBjbGFzcz1cInVpLXNlbGVjdGFibGUtcm93XCIgW25nQ2xhc3NdPVwiZW1wbG95ZXIuZW1wRGVsZXRlZD09J1knID8gJ3N0cmlrZXRocm91Z2gnIDogbnVsbFwiPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiKGVtcGxveWVyLmVtcGxveWVyRGF0YS50cmFkZU5hbWUgfHwgZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lKSAmJiBlbXBsb3llci5lbXBsb3llclR5cGUhPSdNSUwnXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuZW1wbG95ZXIudGV4dFwifHRyYW5zbGF0ZX19PC9zcGFuPjxzcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX08YnI+XHJcbiAgICAgICAge3tlbXBsb3llci5lbXBsb3llckRhdGEudHJhZGVOYW1lfX08YnI+XHJcbiAgICAgIDwvc3Bhbj48ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiIFtpbm5lckh0bWxdPVwiZW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cIiFlbXBsb3llci5lbXBsb3llckRhdGEuZGlzcGxheU5hbWUgJiYgZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJ1wiIHN0eWxlPVwid2lkdGg6IDIwJTtcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmVtcGxveWVyLnRleHRcInx0cmFuc2xhdGV9fTwvc3Bhbj48c3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nTUlMJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmVtcGxveWVyLnRleHRcInx0cmFuc2xhdGV9fTwvc3Bhbj48c3Bhbj5cclxuICAgICAgICAgIHt7ZW1wbG95ZXIuc2VydmljZUJyYW5jaC50ZXh0fX0gPGJyPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPiBcclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiBlbXBsb3llci5wYXlSYXRlICYmIGVtcGxveWVyLnN0YXJ0RGF0ZSAmJiBlbXBsb3llci5lbXBEZWxldGVkIT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRCYXNlUGVyaW9kRW1wbG95ZXIoZW1wbG95ZXIpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAqbmdJZj1cImVtcGxveWVyLmJwRW1wbG95ZXJGbGFnPT09JzAnXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0RW1wbG95ZXIoZW1wbG95ZXIpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJFZGl0IGVtcGxveWVyXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiAhZW1wbG95ZXIucGF5UmF0ZSAmJiAhZW1wbG95ZXIuc3RhcnREYXRlICYmIGVtcGxveWVyLmVtcERlbGV0ZWQhPSdZJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZmluaXNoKGVtcGxveWVyKTtcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIiBhcmlhLWxhYmVsPVwiQ29uZmlybSBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnY2hlY2stY2lyY2xlJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScwJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCIgXHJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRW1wbG95ZXIocm93SW5kZXgpO1wiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgZW1wbG95ZXJcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiZW1wbG95ZXIuYnBFbXBsb3llckZsYWc9PT0nMScgJiYgZW1wbG95ZXIuZW1wRGVsZXRlZCE9J1knXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIiBcclxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSBlbXBsb3llclwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJlbXBsb3llci5icEVtcGxveWVyRmxhZz09PScxJyAmJiBlbXBsb3llci5lbXBEZWxldGVkPT0nWSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiIFxyXG4gICAgICAgICAgKGNsaWNrKT1cInJlc3RvcmVFbXBsb3ltZW50KGVtcGxveWVyLCByb3dJbmRleCk7XCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cIlJlc3RvcmVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLXJlc3RvcmUtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5qb2IudGl0bGVcInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgIWVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5qb2IudGl0bGVcInx0cmFuc2xhdGV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIuam9iVGlsZU9yUG9zaXRpb24gJiYgZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb25cIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmpvYi50aXRsZVwifHRyYW5zbGF0ZX19PC9zcGFuPnt7ZW1wbG95ZXIuZmVkSm9iVGlsZU9yUG9zaXRpb259fTwvdGQ+XHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9uICYmIGVtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5qb2IudGl0bGVcInx0cmFuc2xhdGV9fTwvc3Bhbj57e2VtcGxveWVyLmpvYlRpbGVPclBvc2l0aW9ufX17e2VtcGxveWVyLmZlZEpvYlRpbGVPclBvc2l0aW9ufX08L3RkPlxyXG4gICAgICAgICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIucGF5UmF0ZVwiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQucGF5XCJ8dHJhbnNsYXRlfX08L3NwYW4+e3tlbXBsb3llci5wYXlSYXRlIHwgY3VycmVuY3l9fS97e2VtcGxveWVyLnBheVJhdGVGcmVxdWVuY3kudGV4dH19PC90ZD5cclxuICAgICAgPHRkICpuZ0lmPVwiIWVtcGxveWVyLnBheVJhdGVcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnBheVwifHRyYW5zbGF0ZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgIFxyXG4gICAgICA8dGQgKm5nSWY9XCJlbXBsb3llci5lbXBsb3llclR5cGU9PT0nUkVHJ1wiPjxzcGFuIGNsYXNzPVwicC1jb2x1bW4tdGl0bGVcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuc3RhcnQuYW5kLmVuZFwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIHt7ZW1wbG95ZXIuc3RhcnREYXRlIHwgZGF0ZTonTS9kL3l5eXknfX0gLSB7e2VtcGxveWVyLmVuZERhdGUgfCBkYXRlOidNL2QveXl5eSd9fVxyXG4gICAgICA8L3RkPlxyXG4gICAgICBcclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlPT09J0ZFRCdcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnN0YXJ0LmFuZC5lbmRcInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICB7e2VtcGxveWVyLnN0YXJ0RGF0ZUZlZCB8IGRhdGU6J00vZC95eXl5J319IC0ge3tlbXBsb3llci5lbmREYXRlRmVkIHwgZGF0ZTonTS9kL3l5eXknfX1cclxuICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zdGFydC5hbmQuZW5kXCJ8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAge3tlbXBsb3llci5zdGFydERhdGVNaWwgfCBkYXRlOidNL2QveXl5eSd9fSAtIHt7ZW1wbG95ZXIuZW5kRGF0ZU1pbCB8IGRhdGU6J00vZC95eXl5J319XHJcbiAgICAgIDwvdGQ+XHJcblxyXG4gICAgICA8dGQgKm5nSWY9XCIhZW1wbG95ZXIuc3RhcnREYXRlICYmICAhZW1wbG95ZXIuc3RhcnREYXRlRmVkICYmICFlbXBsb3llci5zdGFydERhdGVNaWxcIj48c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LnN0YXJ0LmFuZC5lbmRcInx0cmFuc2xhdGV9fTwvc3Bhbj48L3RkPlxyXG5cclxuICAgICAgPHRkICpuZ0lmPVwiZW1wbG95ZXIuZW1wbG95ZXJUeXBlIT0nTUlMJyAmJiBlbXBsb3llci5yZWFzb25TZXBhcmF0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zZXBlcmF0aW9uLnJlYXNvblwifHRyYW5zbGF0ZX19PC9zcGFuPnt7ZW1wbG95ZXIucmVhc29uU2VwYXJhdGlvbi50ZXh0fX1cclxuICAgICAgPC90ZD5cclxuICAgICAgXHJcbiAgICAgIDx0ZCAqbmdJZj1cImVtcGxveWVyLmVtcGxveWVyVHlwZT09PSdNSUwnICYmICFlbXBsb3llci5yZWFzb25TZXBhcmF0aW9uXCI+PHNwYW4gY2xhc3M9XCJwLWNvbHVtbi10aXRsZVwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5zZXBlcmF0aW9uLnJlYXNvblwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgXHJcbiAgICAgIFxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic3VtbWFyeVwiIGxldC1jb2x1bW5zPlxyXG4gICAgPHRhYmxlPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiMlwiIHN0eWxlPVwid2lkdGg6IDQwJTtcIj5cclxuICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCInaW5kdWN0aW9uLmVtcGxveW1lbnQuZm9vdGVyLmxhYmVsJyB8IHRyYW5zbGF0ZSB8IHRydXN0SHRtbFwiPjwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDkuNzUlOyB0ZXh0LWFsaWduOiByaWdodDtcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cImFkZE5ld0VtcERldGFpbHMoKVwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJBZGQgZW1wbG95ZXJcIiBbaWRdPVwiJ2J0bkFkZEVtcGxveWVyJ1wiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+Jm5ic3A7PC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwvcC10YWJsZT5cclxuICA8YXBwLWFkZC1lbXBsb3llciAqbmdJZj1cImRpc3BsYXlcIiAoc3VjY2Vzcyk9XCJhZGRFbXBsb3llcigkZXZlbnQpXCIgIFtyZWNvcmRJbmRleFRvRWRpdF09XCJpbmRleFRvRWRpdFwiIFxyXG4gICAgKGJhc2VQZXJpb2RJbmRleCk9XCJkZWxldGVCcEVtcGwoJGV2ZW50KVwiIFtpc0Jhc2VQZXJpb2RFbXBsb3llcl09XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIFtpc05ld0NsYWltXT1cImlzTmV3Q2xhaW1cIiBcclxuICAgIChtb2RlbENhbmNlbCk9XCJvbk1vZGVsQ2FuY2VsKCRldmVudClcIiBbZG9iXT1cImNsYWltYW50RG9iXCIgW25vRWRpdE1vZGVdPVwibm9FZGl0TW9kZVwiPlxyXG4gIDwvYXBwLWFkZC1lbXBsb3llcj5cclxuXHJcbiAgPHAtZGlhbG9nIFt2aXNpYmxlXT1cInNob3dDb25maXJtUG9wdXBcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNDV2dyd9XCJcclxuICAgIFtiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGFwcGVuZFRvPVwiYm9keVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiICpuZ0lmPVwic2hvd0NvbmZpcm1Qb3B1cFwiPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj57eyAoIXRoaXMuaXNFbXBsb3llckRlbGV0YWJsZSA/ICdpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLmhlYWRpbmcnXHJcbiAgICAgICAgOiAnaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5hdHRlbnRpb24nICkgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgPGlvbi1sYWJlbD57e3NlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lfX08L2lvbi1sYWJlbD48YnIvPlxyXG4gICAgICAgIDxpb24tbGFiZWw+e3tzZWxlY3RlZEVtcGxveWVyLmVtcGxveWVyRGF0YS50cmFkZU5hbWV9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxpb24tbGFiZWw+PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiBbaW5uZXJIdG1sXT1cInNlbGVjdGVkRW1wbG95ZXIuZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheSB8IHRydXN0SHRtbFwiPjwvZGl2PjwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiICpuZ0lmPVwiIWlzRW1wbG95ZXJEZWxldGFibGVcIj5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZmFpbHVyZS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0MS5xLmxhYmVsJyB8IHRyYW5zbGF0ZX19PC9iPlxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDEuYS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0Mi5xLmxhYmVsJyB8IHRyYW5zbGF0ZX19PC9iPlxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDIuYS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGI+e3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC50ZXh0My5xLmxhYmVsJyB8IHRyYW5zbGF0ZX19PC9iPlxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+XHJcbiAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAudGV4dDMuYS5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgICA8aW9uLWxhYmVsICpuZ0lmPVwiIWlzRW1wbG95ZXJEZWxldGFibGVcIj5cclxuICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuZGlkbnQud29yay5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc0VtcGxveWVyRGVsZXRhYmxlXCI+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnRleHQzLmIubGFiZWwnIHwgdHJhbnNsYXRlOiBwYXJhbX19XHJcbiAgICAgICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+ICAgICAgICAgIFxyXG4gICAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5wb3B1cC5kaWQud29yay5sYWJlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIFtmaWxsXT1cImlzRW1wbG95ZXJEZWxldGFibGUgPyAnc29saWQnIDogJ291dGxpbmUnXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cclxuICAgICAgICAgICAgICB7eyghdGhpcy5pc0VtcGxveWVyRGVsZXRhYmxlID8gJ2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAuY2FuY2VsJyA6ICdpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLnBvcHVwLnJlc3VtZScpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCIhdGhpcy5pc0VtcGxveWVyRGVsZXRhYmxlXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJkaXNwbGF5QnBFbXBDb25maXJtYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQucG9wdXAucmVtb3ZlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLWRpYWxvZz5cclxuICAgIDxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93YnBFbXBEZWxQb3B1cFwiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgKm5nSWY9XCJzZWxlY3RlZEVtcGxveWVyXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuaGVhZGluZycgfCB0cmFuc2xhdGV9fTwvaDQ+PGJyLz5cclxuICAgICAgICA8cC1kcm9wZG93biBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZERyb3Bkb3duXCIgaW5wdXRJZD1cImJwRW1wRGVsT3B0aW9uc1wiICAgW29wdGlvbnNdPVwiYnBFbXBEZWxPcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblwiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIChvbkNoYW5nZSk9XCJvbkRyb3Bkb3duQ2hhbmdlKCRldmVudClcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICBwbGFjZWhvbGRlcj0ne3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAuaGVhZGluZy5wbGFjZWhvbGRlclwiIHwgdHJhbnNsYXRlfX0nIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiByZXF1aXJlZD4gXHJcbiAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDb21tZW50Qm94XCI+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLnJlYXNvbi5zZWxlY3RpbmcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgIDx0ZXh0YXJlYSBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckNvbW1lbnRcIiByb3dzPVwiNVwiIGNvbHM9XCIzMFwiIG1heGxlbmd0aD1cIjI1MFwiIHBsYWNlaG9sZGVyPSd7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5leHBsYWluLnJlYXNvblwiIHwgdHJhbnNsYXRlfX0nPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICA8c21hbGwgKm5nSWY9XCJ0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8uaW52YWxpZCAmJiB0aGlzLmZvcm0uZ2V0KCdvdGhlckNvbW1lbnQnKT8udG91Y2hlZFwiIGNsYXNzPVwicC1lcnJvclwiPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLmZpZWxkLnJlcXVpcmVkJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L3NtYWxsPlxyXG4gICAgICAgICAgPHNtYWxsPlxyXG4gICAgICAgICAgICB7eydpbmR1Y3Rpb24uZW1wbG95bWVudC5ncmlkLmRlbGV0ZS5icGVtcGxveWVyLnBvcHVwLm1heGxlbmd0aC4yNTAnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvc21hbGw+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAge3snaW5kdWN0aW9uLmVtcGxveW1lbnQuZ3JpZC5kZWxldGUuYnBlbXBsb3llci5wb3B1cC5jYW5jZWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJ0aGlzLmZvcm0uaW52YWxpZFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJyZW1vdmVCYXNlUGVyaW9kRW1wbG95ZXIoKVwiPlxyXG4gICAgICAgICAgICAgIHt7J2luZHVjdGlvbi5lbXBsb3ltZW50LmdyaWQuZGVsZXRlLmJwZW1wbG95ZXIucG9wdXAucmVtb3ZlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLWRpYWxvZz5cclxuPC9kaXY+Il19