mmhglobal-dynamicform 2.26.0 → 2.28.0

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.
@@ -4,7 +4,7 @@ import { Component } from "@angular/core";
4
4
  /********** Plugin **********/
5
5
  import { of } from "rxjs";
6
6
  import { switchMap, tap } from "rxjs/operators";
7
- import { ZGroup, FormType } from "mmhglobal-zcore";
7
+ import { ZGroup, FormType, TriggerFromType } from "mmhglobal-zcore";
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../services/main.service";
10
10
  import * as i2 from "@angular/router";
@@ -40,7 +40,7 @@ export class UipageComponent {
40
40
  const fieldElementName = this.group.fieldName ? this.group.fieldName : ctrlName;
41
41
  this.group.fieldName = fieldElementName; // to be decprecated
42
42
  this.group.fieldElementName = fieldElementName;
43
- return this.mainService.getGroupFields(fieldElementName, formType, this.group, "fields");
43
+ return this.mainService.getGroupFields(fieldElementName, formType, TriggerFromType.initialPageLoad, this.group, "fields");
44
44
  //let formFieldName = this.group.fieldName ? this.group.fieldName : ctrlName;
45
45
  //this.group.fieldName = formFieldName;
46
46
  //if(UipageComponent.signalrEventSubscription){
@@ -85,7 +85,7 @@ export class UipageComponent {
85
85
  return this.group.getModel(this.group, this.group.referenceId);
86
86
  }
87
87
  else {
88
- return this.mainService.getModel$(this.group, this.group.referenceId);
88
+ return this.mainService.getModel$(this.group, this.group.referenceId, TriggerFromType.initialPageLoad);
89
89
  }
90
90
  }
91
91
  else {
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
157
157
  template: ``,
158
158
  }]
159
159
  }], ctorParameters: function () { return [{ type: i1.MainService }, { type: i2.ActivatedRoute }]; } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlwYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3VpcGFnZS91aXBhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFnQixFQUFFLEVBQW9CLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBZSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0QsT0FBTyxFQUFFLE1BQU0sRUFBaUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFbEgsK0VBQStFO0FBSy9FLE1BQU0sT0FBTyxlQUFlO0lBTzFCO0lBQ0UscUNBQXFDO0lBQzlCLFdBQXdCLEVBQ3hCLGNBQThCO1FBRDlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVR2QyxpQ0FBaUM7UUFDakMsVUFBSyxHQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBVS9CLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLHlEQUF5RDtJQUMzRCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxVQUFtQixFQUFFLFdBQW9CO1FBQ3RGLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUs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Q0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsbURBQW1EO0lBQ25ELDZEQUE2RDtJQUM3RCxLQUFLO0lBRUwsdUZBQXVGO0lBQ3ZGLDBGQUEwRjtJQUMxRiwyREFBMkQ7SUFDM0Qsa0JBQWtCO0lBQ2xCLEdBQUc7SUFFSCxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztRQUVELDRCQUE0QjtJQUM5QixDQUFDOzs0R0EvS1UsZUFBZTtnR0FBZixlQUFlLG9EQUZoQixFQUFFOzJGQUVELGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mLCBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL21haW4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaR3JvdXAsIElEZWFjdGl2YXRlQ29tcG9uZW50LCBTdG9yYWdlU2Vzc2lvblNlcnZpY2UsIFpDb21wb25lbnRIZWxwZXIsIEZvcm1UeXBlIH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBEaWFsb2dDbG9zZVJlc3VsdCwgRGlhbG9nUmVmIH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRpYWxvZ1wiO1xyXG4vLyBpbXBvcnQgeyBJRGVhY3RpdmF0ZUNvbXBvbmVudCB9IGZyb20gXCJzcmMvYXBwL3NlcnZpY2VzL2NhbmRlYWN0aXZhdGUuZ3VhcmRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpcGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIElEZWFjdGl2YXRlQ29tcG9uZW50IHtcclxuICAvLyBjdHJsTmFtZSA9IFwiZTFjcm1fYnBhY3Rpdml0eVwiO1xyXG4gIGdyb3VwOiBaR3JvdXAgPSBuZXcgWkdyb3VwKHRydWUpO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgc3RhdGljIHNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgc3RhdGljIGRpYWxvZzogRGlhbG9nUmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIHB1YmxpYyBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICAgIHB1YmxpYyBtYWluU2VydmljZTogTWFpblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7XHJcbiAgICBtYWluU2VydmljZS5zZXRHcm91cCh0aGlzLmdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiQXQgXCIgKyB0aGlzLmN0cmxOYW1lICsgXCIgKGNvbnN0cnVjdG9yKVwiKTtcclxuICB9XHJcblxyXG4gIGNhbkV4aXQoKTogYm9vbGVhbiB8IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFpblNlcnZpY2UuY2FuRXhpdCh0aGlzLmdyb3VwLmZvcm0pO1xyXG4gIH1cclxuXHJcbiAgcGFnZU9uSW5pdChjdHJsTmFtZTogc3RyaW5nLCBwYWdlTmFtZTogc3RyaW5nLCBpc0xpc3RGb3JtOiBib29sZWFuLCBwcm9qZWN0TmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmdyb3VwLl9wcm9qZWN0TmFtZSA9IHByb2plY3ROYW1lO1xyXG4gICAgdGhpcy5ncm91cC5pc0xpc3RGb3JtID0gaXNMaXN0Rm9ybTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5tYWluU2VydmljZS5nZXRSZXNvdXJjZVNlcnZlckRhdGEoKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlUGFyYW0gPSBpc0xpc3RGb3JtID8gbnVsbCA6IHRoaXMubWFpblNlcnZpY2UuZ2V0TmF2aWdhdGlvbkN1cnJlbnRQYXJhbSgpO1xyXG4gICAgICAgIHRoaXMubWFpblNlcnZpY2UuaW5pdGlhbGl6ZUdyb3VwKHRoaXMuZ3JvdXAsIGN0cmxOYW1lLCBwYWdlTmFtZSwgdGhpcyk7XHJcblxyXG4gICAgICAgIGlmIChyb3V0ZVBhcmFtKSB7XHJcbiAgICAgICAgICB0aGlzLnNldHVwUm91dGVQYXJhbXMocm91dGVQYXJhbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFwicm91dGVQYXJhbSBpcyB1bmRlZmluZWQuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybVR5cGUgPSBpc0xpc3RGb3JtID8gRm9ybVR5cGUubGlzdEZpZWxkIDogRm9ybVR5cGUuZm9ybUZpZWxkO1xyXG4gICAgICAgIGNvbnN0IGZpZWxkRWxlbWVudE5hbWUgPSB0aGlzLmdyb3VwLmZpZWxkTmFtZSA/IHRoaXMuZ3JvdXAuZmllbGROYW1lIDogY3RybE5hbWU7XHJcblxyXG4gICAgICAgIHRoaXMuZ3JvdXAuZmllbGROYW1lID0gZmllbGRFbGVtZW50TmFtZTsgLy8gdG8gYmUgZGVjcHJlY2F0ZWQgXHJcbiAgICAgICAgdGhpcy5ncm91cC5maWVsZEVsZW1lbnROYW1lID0gZmllbGRFbGVtZW50TmFtZTsgXHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmdldEdyb3VwRmllbGRzKFxyXG4gICAgICAgICAgZmllbGRFbGVtZW50TmFtZSxcclxuICAgICAgICAgIGZvcm1UeXBlLFxyXG4gICAgICAgICAgdGhpcy5ncm91cCxcclxuICAgICAgICAgIFwiZmllbGRzXCJcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vbGV0IGZvcm1GaWVsZE5hbWUgPSB0aGlzLmdyb3VwLmZpZWxkTmFtZSA/IHRoaXMuZ3JvdXAuZmllbGROYW1lIDogY3RybE5hbWU7XHJcbiAgICAgICAgLy90aGlzLmdyb3VwLmZpZWxkTmFtZSA9IGZvcm1GaWVsZE5hbWU7XHJcblxyXG4gICAgICAgIC8vaWYoVWlwYWdlQ29tcG9uZW50LnNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbil7XHJcbiAgICAgICAgLy8gIFVpcGFnZUNvbXBvbmVudC5zaWduYWxyRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAvL31cclxuXHJcbiAgICAgICAgLy9VaXBhZ2VDb21wb25lbnQuc2lnbmFsckV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5tYWluU2VydmljZS5zaWduYWxyR2V0RXZlbnQoKS5waXBlKFxyXG4gICAgICAgIC8vICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQubmFtZSA9PT0gJ0ZpZWxkRWxlbWVudCcgfHwgZXZlbnQubmFtZSA9PT0gJ0xpc3RGaWVsZE1hcHBpbmcnKSxcclxuICAgICAgICAvLyAgbWFwKGFzeW5jIGV2ZW50ID0+IHtcclxuICAgICAgICAvLyAgICBsZXQgZm9ybUZpZWxkTmFtZUNsb25lID0gWkNvbXBvbmVudEhlbHBlci5kZWVwQ2xvbmUoZm9ybUZpZWxkTmFtZSk7XHJcblxyXG4gICAgICAgIC8vICAgIGlmIChldmVudC5wYXlsb2FkLk5hbWUgIT09IGZvcm1GaWVsZE5hbWVDbG9uZSAmJiBmb3JtVHlwZSA9PT0gXCJMaXN0RmllbGRcIikge1xyXG4gICAgICAgIC8vICAgICAgdHJ5IHtcclxuICAgICAgICAvLyAgICAgICAgY29uc3QgbGlzdEZpZWxkTmFtZSA9IGF3YWl0IHRoaXMubWFpblNlcnZpY2UuZ2V0TGlzdEZpZWxkTmFtZShmb3JtRmllbGROYW1lQ2xvbmUpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIC8vICAgICAgICBmb3JtRmllbGROYW1lQ2xvbmUgPSBsaXN0RmllbGROYW1lO1xyXG4gICAgICAgIC8vICAgICAgfVxyXG4gICAgICAgIC8vICAgICAgY2F0Y2ggKGVyKSB7XHJcbiAgICAgICAgLy8gICAgICB9XHJcbiAgICAgICAgLy8gICAgfVxyXG5cclxuICAgICAgICAvLyAgICBpZiAoZXZlbnQucGF5bG9hZC5OYW1lID09PSBmb3JtRmllbGROYW1lQ2xvbmUpIHtcclxuICAgICAgICAvLyAgICAgIHRoaXMubWFpblNlcnZpY2UuY2xlYXJGb3JtTGlzdEZpZWxkcygpO1xyXG4gICAgICAgIC8vICAgICAgKHRoaXMgYXMgYW55KS5uZ09uSW5pdCgpO1xyXG4gICAgICAgIC8vICAgIH1cclxuXHJcbiAgICAgICAgLy8gICB0aGlzLm1haW5TZXJ2aWNlLmNsZWFyRm9ybUxpc3RGaWVsZHMoKVxyXG4gICAgICAgIC8vICB9KVxyXG4gICAgICAgIC8vKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKGZpZWxkcykgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmJlZm9yZVBhZ2VJbml0aWFsaXNlKHRoaXMuZ3JvdXApO1xyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKChmaWVsZHMpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ncm91cC5hY3ROYW1lID09PSBcIm5ld1wiKSB7XHJcbiAgICAgICAgICB0aGlzLm1haW5TZXJ2aWNlLmdldENsb25lTmV3Q2FjaGVaTW9kZWwodGhpcy5ncm91cCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYWluU2VydmljZS5hZnRlck5ld01vZGVsKHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmllbGRzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwLnJlZmVyZW5jZUlkICYmIHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQgIT09IFwiMFwiKSB7XHJcbiAgICAgICAgICB0aGlzLm1haW5TZXJ2aWNlLmpvaW5Qcm9qZWN0U2lnbmFsUigpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZ3JvdXAuc3Vic2NyaWJlVG9Nb2RpZmljYXRpb25BbGVydCkge1xyXG4gICAgICAgICAgICB0aGlzLm1haW5TZXJ2aWNlLmhhbmRsZVNpZ25hbFJNb2RpZmljYXRpb25BbGVydCh0aGlzLmdyb3VwLnJlZmVyZW5jZUlkKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ3JvdXAuZ2V0TW9kZWwgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5nZXRNb2RlbCh0aGlzLmdyb3VwLCB0aGlzLmdyb3VwLnJlZmVyZW5jZUlkKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmdldE1vZGVsJCh0aGlzLmdyb3VwLCB0aGlzLmdyb3VwLnJlZmVyZW5jZUlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKHptb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUZpZWxkKSB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUlkID0gdGhpcy5ncm91cC56TW9kZWxbdGhpcy5ncm91cC5wYXJlbnRSZWZlcmVuY2VGaWVsZF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmFmdGVyUGFnZUluaXRpYWxpc2UodGhpcy5ncm91cCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLnRyYW5zbGF0aW9uUGFnZUVsZW1lbnQodGhpcy5ncm91cClcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICAvLyAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJBdCBhY3Rpdml0eS1vbmUucGFnZSBuZ09uSW5pdCgpIGNvbXBsZXRlZFwiKTtcclxuICAgIC8vICAgdGhpcy5ncm91cC5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cFJvdXRlUGFyYW1zKHJvdXRlUGFyYW06IHN0cmluZykge1xyXG4gICAgLy9sZXQgYWN0TmFtZSA9IHJvdXRlUGF0aC5nZXQoXCJhY3RcIik7XHJcbiAgICBjb25zdCByb3V0ZVBhcmFtcyA9IHJvdXRlUGFyYW0uc3BsaXQoJy8nKTtcclxuICAgIGNvbnN0IGZvcm1JZCA9IHJvdXRlUGFyYW1zW3JvdXRlUGFyYW1zLmxlbmd0aCAtIDJdO1xyXG4gICAgbGV0IGFjdE5hbWUgPSByb3V0ZVBhcmFtc1tyb3V0ZVBhcmFtcy5sZW5ndGggLSAxXTtcclxuXHJcbiAgICBpZiAoYWN0TmFtZSAhPT0gJ25ldycgJiYgYWN0TmFtZSAhPT0gJ2VkaXQnKSB7XHJcbiAgICAgIGFjdE5hbWUgPSAnbmV3JztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyb3VwLmlzTmV3ID0gYWN0TmFtZSA9PT0gXCJuZXdcIiA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZ3JvdXAuaXNFZGl0ID0gYWN0TmFtZSA9PT0gXCJlZGl0XCIgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgaWYgKGFjdE5hbWUgPT09IFwiZWRpdFwiKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQgPSBmb3JtSWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhY3ROYW1lID09PSBcIm5ld1wiKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlSWQgPSBmb3JtSWQ7XHJcblxyXG4gICAgICBpZiAodGhpcy5ncm91cC5wYXJlbnRSZWZlcmVuY2VJZCkge1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUZpZWxkKSB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUZpZWxkXSA9IHRoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlSWQudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJncm91cC5wYXJlbnRSZWZlcmVuY2VJZCBpcyB1bmRlZmluZWQuXCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdE5hbWUpIHtcclxuICAgICAgdGhpcy5ncm91cC5hY3ROYW1lID0gYWN0TmFtZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vc2lnbmFsckZlT25EZXN0cm95KCk6IHZvaWQge1xyXG4gIC8vICBpZiAoVWlwYWdlQ29tcG9uZW50LnNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbikge1xyXG4gIC8vICAgIFVpcGFnZUNvbXBvbmVudC5zaWduYWxyRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAvLyAgfVxyXG5cclxuICAvLyAgVWlwYWdlQ29tcG9uZW50LnNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMubWFpblNlcnZpY2Uuc2lnbmFsckdldEV2ZW50KCkucGlwZShcclxuICAvLyAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQubmFtZSA9PT0gJ0ZpZWxkRWxlbWVudCcgfHwgZXZlbnQubmFtZSA9PT0gJ0xpc3RGaWVsZE1hcHBpbmcnKSxcclxuICAvLyAgICBtYXAoZXZlbnQgPT4gdGhpcy5tYWluU2VydmljZS5jbGVhckZvcm1MaXN0RmllbGRzKCkpKVxyXG4gIC8vICAgIC5zdWJzY3JpYmUoKVxyXG4gIC8vfVxyXG5cclxuICBwYWdlRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZ3JvdXAucGFnZU5hbWUgKyBcIiBuZ09uRGVzdHJveS5cIik7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL3RoaXMuc2lnbmFsckZlT25EZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlwYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3VpcGFnZS91aXBhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFnQixFQUFFLEVBQW9CLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBZSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJN0QsT0FBTyxFQUFFLE1BQU0sRUFBaUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBRW5JLCtFQUErRTtBQUsvRSxNQUFNLE9BQU8sZUFBZTtJQU8xQjtJQUNFLHFDQUFxQztJQUM5QixXQUF3QixFQUN4QixjQUE4QjtRQUQ5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFUdkMsaUNBQWlDO1FBQ2pDLFVBQUssR0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQVUvQixXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyx5REFBeUQ7SUFDM0QsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQixFQUFFLFFBQWdCLEVBQUUsVUFBbUIsRUFBRSxXQUFvQjtRQUN0RixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUss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Q0FBQyxDQUFDO2FBQ3REO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsbURBQW1EO0lBQ25ELDZEQUE2RDtJQUM3RCxLQUFLO0lBRUwsdUZBQXVGO0lBQ3ZGLDBGQUEwRjtJQUMxRiwyREFBMkQ7SUFDM0Qsa0JBQWtCO0lBQ2xCLEdBQUc7SUFFSCxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztRQUVELDRCQUE0QjtJQUM5QixDQUFDOzs0R0FoTFUsZUFBZTtnR0FBZixlQUFlLG9EQUZoQixFQUFFOzJGQUVELGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mLCBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL21haW4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaR3JvdXAsIElEZWFjdGl2YXRlQ29tcG9uZW50LCBTdG9yYWdlU2Vzc2lvblNlcnZpY2UsIFpDb21wb25lbnRIZWxwZXIsIEZvcm1UeXBlLCBUcmlnZ2VyRnJvbVR5cGUgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IERpYWxvZ0Nsb3NlUmVzdWx0LCBEaWFsb2dSZWYgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZGlhbG9nXCI7XHJcbi8vIGltcG9ydCB7IElEZWFjdGl2YXRlQ29tcG9uZW50IH0gZnJvbSBcInNyYy9hcHAvc2VydmljZXMvY2FuZGVhY3RpdmF0ZS5ndWFyZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlwYWdlQ29tcG9uZW50IGltcGxlbWVudHMgSURlYWN0aXZhdGVDb21wb25lbnQge1xyXG4gIC8vIGN0cmxOYW1lID0gXCJlMWNybV9icGFjdGl2aXR5XCI7XHJcbiAgZ3JvdXA6IFpHcm91cCA9IG5ldyBaR3JvdXAodHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdGF0aWMgc2lnbmFsckV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZGlhbG9nOiBEaWFsb2dSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHVibGljIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlLFxyXG4gICAgcHVibGljIG1haW5TZXJ2aWNlOiBNYWluU2VydmljZSxcclxuICAgIHB1YmxpYyBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICAgIG1haW5TZXJ2aWNlLnNldEdyb3VwKHRoaXMuZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJBdCBcIiArIHRoaXMuY3RybE5hbWUgKyBcIiAoY29uc3RydWN0b3IpXCIpO1xyXG4gIH1cclxuXHJcbiAgY2FuRXhpdCgpOiBib29sZWFuIHwgT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5tYWluU2VydmljZS5jYW5FeGl0KHRoaXMuZ3JvdXAuZm9ybSk7XHJcbiAgfVxyXG5cclxuICBwYWdlT25Jbml0KGN0cmxOYW1lOiBzdHJpbmcsIHBhZ2VOYW1lOiBzdHJpbmcsIGlzTGlzdEZvcm06IGJvb2xlYW4sIHByb2plY3ROYW1lPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuZ3JvdXAuX3Byb2plY3ROYW1lID0gcHJvamVjdE5hbWU7XHJcbiAgICB0aGlzLmdyb3VwLmlzTGlzdEZvcm0gPSBpc0xpc3RGb3JtO1xyXG5cclxuICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmdldFJlc291cmNlU2VydmVyRGF0YSgpLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgcm91dGVQYXJhbSA9IGlzTGlzdEZvcm0gPyBudWxsIDogdGhpcy5tYWluU2VydmljZS5nZXROYXZpZ2F0aW9uQ3VycmVudFBhcmFtKCk7XHJcbiAgICAgICAgdGhpcy5tYWluU2VydmljZS5pbml0aWFsaXplR3JvdXAodGhpcy5ncm91cCwgY3RybE5hbWUsIHBhZ2VOYW1lLCB0aGlzKTtcclxuXHJcbiAgICAgICAgaWYgKHJvdXRlUGFyYW0pIHtcclxuICAgICAgICAgIHRoaXMuc2V0dXBSb3V0ZVBhcmFtcyhyb3V0ZVBhcmFtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJyb3V0ZVBhcmFtIGlzIHVuZGVmaW5lZC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICBjb25zdCBmb3JtVHlwZSA9IGlzTGlzdEZvcm0gPyBGb3JtVHlwZS5saXN0RmllbGQgOiBGb3JtVHlwZS5mb3JtRmllbGQ7XHJcbiAgICAgICAgY29uc3QgZmllbGRFbGVtZW50TmFtZSA9IHRoaXMuZ3JvdXAuZmllbGROYW1lID8gdGhpcy5ncm91cC5maWVsZE5hbWUgOiBjdHJsTmFtZTtcclxuXHJcbiAgICAgICAgdGhpcy5ncm91cC5maWVsZE5hbWUgPSBmaWVsZEVsZW1lbnROYW1lOyAvLyB0byBiZSBkZWNwcmVjYXRlZCBcclxuICAgICAgICB0aGlzLmdyb3VwLmZpZWxkRWxlbWVudE5hbWUgPSBmaWVsZEVsZW1lbnROYW1lO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5tYWluU2VydmljZS5nZXRHcm91cEZpZWxkcyhcclxuICAgICAgICAgIGZpZWxkRWxlbWVudE5hbWUsXHJcbiAgICAgICAgICBmb3JtVHlwZSxcclxuICAgICAgICAgIFRyaWdnZXJGcm9tVHlwZS5pbml0aWFsUGFnZUxvYWQsXHJcbiAgICAgICAgICB0aGlzLmdyb3VwLFxyXG4gICAgICAgICAgXCJmaWVsZHNcIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgLy9sZXQgZm9ybUZpZWxkTmFtZSA9IHRoaXMuZ3JvdXAuZmllbGROYW1lID8gdGhpcy5ncm91cC5maWVsZE5hbWUgOiBjdHJsTmFtZTtcclxuICAgICAgICAvL3RoaXMuZ3JvdXAuZmllbGROYW1lID0gZm9ybUZpZWxkTmFtZTtcclxuXHJcbiAgICAgICAgLy9pZihVaXBhZ2VDb21wb25lbnQuc2lnbmFsckV2ZW50U3Vic2NyaXB0aW9uKXtcclxuICAgICAgICAvLyAgVWlwYWdlQ29tcG9uZW50LnNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIC8vfVxyXG5cclxuICAgICAgICAvL1VpcGFnZUNvbXBvbmVudC5zaWduYWxyRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLm1haW5TZXJ2aWNlLnNpZ25hbHJHZXRFdmVudCgpLnBpcGUoXHJcbiAgICAgICAgLy8gIGZpbHRlcihldmVudCA9PiBldmVudC5uYW1lID09PSAnRmllbGRFbGVtZW50JyB8fCBldmVudC5uYW1lID09PSAnTGlzdEZpZWxkTWFwcGluZycpLFxyXG4gICAgICAgIC8vICBtYXAoYXN5bmMgZXZlbnQgPT4ge1xyXG4gICAgICAgIC8vICAgIGxldCBmb3JtRmllbGROYW1lQ2xvbmUgPSBaQ29tcG9uZW50SGVscGVyLmRlZXBDbG9uZShmb3JtRmllbGROYW1lKTtcclxuXHJcbiAgICAgICAgLy8gICAgaWYgKGV2ZW50LnBheWxvYWQuTmFtZSAhPT0gZm9ybUZpZWxkTmFtZUNsb25lICYmIGZvcm1UeXBlID09PSBcIkxpc3RGaWVsZFwiKSB7XHJcbiAgICAgICAgLy8gICAgICB0cnkge1xyXG4gICAgICAgIC8vICAgICAgICBjb25zdCBsaXN0RmllbGROYW1lID0gYXdhaXQgdGhpcy5tYWluU2VydmljZS5nZXRMaXN0RmllbGROYW1lKGZvcm1GaWVsZE5hbWVDbG9uZSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgLy8gICAgICAgIGZvcm1GaWVsZE5hbWVDbG9uZSA9IGxpc3RGaWVsZE5hbWU7XHJcbiAgICAgICAgLy8gICAgICB9XHJcbiAgICAgICAgLy8gICAgICBjYXRjaCAoZXIpIHtcclxuICAgICAgICAvLyAgICAgIH1cclxuICAgICAgICAvLyAgICB9XHJcblxyXG4gICAgICAgIC8vICAgIGlmIChldmVudC5wYXlsb2FkLk5hbWUgPT09IGZvcm1GaWVsZE5hbWVDbG9uZSkge1xyXG4gICAgICAgIC8vICAgICAgdGhpcy5tYWluU2VydmljZS5jbGVhckZvcm1MaXN0RmllbGRzKCk7XHJcbiAgICAgICAgLy8gICAgICAodGhpcyBhcyBhbnkpLm5nT25Jbml0KCk7XHJcbiAgICAgICAgLy8gICAgfVxyXG5cclxuICAgICAgICAvLyAgIHRoaXMubWFpblNlcnZpY2UuY2xlYXJGb3JtTGlzdEZpZWxkcygpXHJcbiAgICAgICAgLy8gIH0pXHJcbiAgICAgICAgLy8pLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoZmllbGRzKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpblNlcnZpY2UuYmVmb3JlUGFnZUluaXRpYWxpc2UodGhpcy5ncm91cCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKGZpZWxkcykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdyb3VwLmFjdE5hbWUgPT09IFwibmV3XCIpIHtcclxuICAgICAgICAgIHRoaXMubWFpblNlcnZpY2UuZ2V0Q2xvbmVOZXdDYWNoZVpNb2RlbCh0aGlzLmdyb3VwKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLmFmdGVyTmV3TW9kZWwodGhpcy5ncm91cCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBvZihmaWVsZHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQgJiYgdGhpcy5ncm91cC5yZWZlcmVuY2VJZCAhPT0gXCIwXCIpIHtcclxuICAgICAgICAgIHRoaXMubWFpblNlcnZpY2Uuam9pblByb2plY3RTaWduYWxSKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5ncm91cC5zdWJzY3JpYmVUb01vZGlmaWNhdGlvbkFsZXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpblNlcnZpY2UuaGFuZGxlU2lnbmFsUk1vZGlmaWNhdGlvbkFsZXJ0KHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5ncm91cC5nZXRNb2RlbCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmdldE1vZGVsKHRoaXMuZ3JvdXAsIHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFpblNlcnZpY2UuZ2V0TW9kZWwkKHRoaXMuZ3JvdXAsIHRoaXMuZ3JvdXAucmVmZXJlbmNlSWQsIFRyaWdnZXJGcm9tVHlwZS5pbml0aWFsUGFnZUxvYWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoem1vZGVsKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlRmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlSWQgPSB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUZpZWxkXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpblNlcnZpY2UuYWZ0ZXJQYWdlSW5pdGlhbGlzZSh0aGlzLmdyb3VwKTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpblNlcnZpY2UudHJhbnNsYXRpb25QYWdlRWxlbWVudCh0aGlzLmdyb3VwKVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIC8vIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIkF0IGFjdGl2aXR5LW9uZS5wYWdlIG5nT25Jbml0KCkgY29tcGxldGVkXCIpO1xyXG4gICAgLy8gICB0aGlzLmdyb3VwLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwUm91dGVQYXJhbXMocm91dGVQYXJhbTogc3RyaW5nKSB7XHJcbiAgICAvL2xldCBhY3ROYW1lID0gcm91dGVQYXRoLmdldChcImFjdFwiKTtcclxuICAgIGNvbnN0IHJvdXRlUGFyYW1zID0gcm91dGVQYXJhbS5zcGxpdCgnLycpO1xyXG4gICAgY29uc3QgZm9ybUlkID0gcm91dGVQYXJhbXNbcm91dGVQYXJhbXMubGVuZ3RoIC0gMl07XHJcbiAgICBsZXQgYWN0TmFtZSA9IHJvdXRlUGFyYW1zW3JvdXRlUGFyYW1zLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgIGlmIChhY3ROYW1lICE9PSAnbmV3JyAmJiBhY3ROYW1lICE9PSAnZWRpdCcpIHtcclxuICAgICAgYWN0TmFtZSA9ICduZXcnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXAuaXNOZXcgPSBhY3ROYW1lID09PSBcIm5ld1wiID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5ncm91cC5pc0VkaXQgPSBhY3ROYW1lID09PSBcImVkaXRcIiA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICBpZiAoYWN0TmFtZSA9PT0gXCJlZGl0XCIpIHtcclxuICAgICAgdGhpcy5ncm91cC5yZWZlcmVuY2VJZCA9IGZvcm1JZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGFjdE5hbWUgPT09IFwibmV3XCIpIHtcclxuICAgICAgdGhpcy5ncm91cC5wYXJlbnRSZWZlcmVuY2VJZCA9IGZvcm1JZDtcclxuXHJcbiAgICAgIGlmICh0aGlzLmdyb3VwLnBhcmVudFJlZmVyZW5jZUlkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlRmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZ3JvdXAucGFyZW50UmVmZXJlbmNlRmllbGRdID0gdGhpcy5ncm91cC5wYXJlbnRSZWZlcmVuY2VJZC50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImdyb3VwLnBhcmVudFJlZmVyZW5jZUlkIGlzIHVuZGVmaW5lZC5cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWN0TmFtZSkge1xyXG4gICAgICB0aGlzLmdyb3VwLmFjdE5hbWUgPSBhY3ROYW1lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9zaWduYWxyRmVPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgLy8gIGlmIChVaXBhZ2VDb21wb25lbnQuc2lnbmFsckV2ZW50U3Vic2NyaXB0aW9uKSB7XHJcbiAgLy8gICAgVWlwYWdlQ29tcG9uZW50LnNpZ25hbHJFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIC8vICB9XHJcblxyXG4gIC8vICBVaXBhZ2VDb21wb25lbnQuc2lnbmFsckV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5tYWluU2VydmljZS5zaWduYWxyR2V0RXZlbnQoKS5waXBlKFxyXG4gIC8vICAgIGZpbHRlcihldmVudCA9PiBldmVudC5uYW1lID09PSAnRmllbGRFbGVtZW50JyB8fCBldmVudC5uYW1lID09PSAnTGlzdEZpZWxkTWFwcGluZycpLFxyXG4gIC8vICAgIG1hcChldmVudCA9PiB0aGlzLm1haW5TZXJ2aWNlLmNsZWFyRm9ybUxpc3RGaWVsZHMoKSkpXHJcbiAgLy8gICAgLnN1YnNjcmliZSgpXHJcbiAgLy99XHJcblxyXG4gIHBhZ2VEZXN0cm95KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5ncm91cC5wYWdlTmFtZSArIFwiIG5nT25EZXN0cm95LlwiKTtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vdGhpcy5zaWduYWxyRmVPbkRlc3Ryb3koKTtcclxuICB9XHJcbn1cclxuIl19
@@ -5,7 +5,7 @@ import { Component } from '@angular/core';
5
5
  import { switchMap, tap } from 'rxjs/operators';
6
6
  /********** Component & Service **********/
7
7
  import { ButtonFieldBase } from '../components/buttonfieldbase.component';
8
- import { ZComponentHelper, } from 'mmhglobal-zcore';
8
+ import { TriggerFromType, ZComponentHelper, } from 'mmhglobal-zcore';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../services/zcomponent.service";
11
11
  import * as i2 from "mmhglobal-zcore";
@@ -35,7 +35,7 @@ export class ZbuttonsComponent extends ButtonFieldBase {
35
35
  this.componentService.decrementComponentCounterForField(this.data);
36
36
  }
37
37
  loadButton() {
38
- const field$ = this.fieldService.getFormFieldCode(this.data.Value, "FormField", null, null);
38
+ const field$ = this.fieldService.getFormFieldCode(this.data.Value, "FormField");
39
39
  this.group.zButtonsCount++;
40
40
  if (this.group.zButtonsCount === 1) {
41
41
  this.FirstZbtn = true;
@@ -86,6 +86,7 @@ export class ZbuttonsComponent extends ButtonFieldBase {
86
86
  SubType: this.data.SubType,
87
87
  Type: button.Type,
88
88
  buttonData: button,
89
+ eventId: ZComponentHelper.generateTimeStampId()
89
90
  };
90
91
  }
91
92
  if (button['PositionX'] && button['PositionX'] === "right") {
@@ -110,7 +111,8 @@ export class ZbuttonsComponent extends ButtonFieldBase {
110
111
  this.group.subject.next({
111
112
  type: "buttonClick",
112
113
  target: item.clickEvent,
113
- data: item
114
+ data: item,
115
+ triggerFrom: TriggerFromType.button
114
116
  });
115
117
  }
116
118
  getButtonDisableTriggerValue(data, button) {
@@ -129,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
129
131
  type: Component,
130
132
  args: [{ selector: "app-zbuttons", template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n\r\n <div class=\"ion-margin-vertical e1tag-style1\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\"\r\n [style]=\"componentProperties.style.style1\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\"\r\n class=\"ion-activatable ripple-parent e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n Actions\r\n <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span (click)=\"buttonClick(dataItem)\">{{ dataItem.text }}</span>\r\n </ng-template>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" [ngClass]=\"data.DivClass\" class=\"btn-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n <div class=\"btn-left e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <ng-container *ngFor=\"let item of leftBtns; let i = index\">\r\n <ion-button [fill]=\"item.fill\" *ngIf=\"item.Type === 'a'\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n [ngClass]=\"item.class\" (click)=\"buttonClick(item)\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered || item.disabled\" [style]=\"componentProperties.style.style5 + ' ' + item.style\"\r\n class=\"e1tag-style5\">\r\n <div class=\"button-content-container e1tag-style8\" [style]=\"componentProperties.style.style8\">\r\n <fa-icon class=\"btn-icon e1tag-style9\" [style]=\"componentProperties.style.style9\" *ngIf=\"item.icon\"\r\n [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span class=\"ion-text-capitalize e1tag-style10\" [style]=\"componentProperties.style.style10\"\r\n *ngIf=\"item.text\" [class.btn-label]=\"item.icon\">{{item.text}}</span>\r\n </div>\r\n </ion-button>\r\n <app-zformcontrol *ngIf=\"item.Type !== 'a'\"\r\n [ngClass]=\"group[item['isVisibleField']] ? item.DivClass :((item.Visible === true) ? item.DivClass : 'flex-hide')\"\r\n [field]=\"item\" [group]=\"group\" [form]=\"form\" id=\"{{item.Type}}-{{item.Name}}\"></app-zformcontrol>\r\n </ng-container>\r\n </div>\r\n <div class=\"btn-right e1tag-style6\" [style]=\"componentProperties.style.style6\">\r\n <ng-container *ngFor=\"let item of rightBtns; let i = index\">\r\n <ion-button *ngIf=\"item.Type === 'a'\" [fill]=\"item.fill\" [size]=\"item.size\" [color]=\"item.color\" strong=\"true\"\r\n [ngClass]=\"item.class\" (click)=\"buttonClick(item)\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered || item.disabled\" [style]=\"componentProperties.style.style7 + ' ' + item.style\"\r\n class=\"e1tag-style7\">\r\n <div class=\"button-content-container e1tag-style8\" [style]=\"componentProperties.style.style8\">\r\n <fa-icon class=\"btn-icon e1tag-style9\" [style]=\"componentProperties.style.style9\" *ngIf=\"item.icon\"\r\n [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\"></fa-icon>\r\n <span class=\"ion-text-capitalize e1tag-style10\" [style]=\"componentProperties.style.style10\"\r\n *ngIf=\"item.text\" [class.btn-label]=\"item.icon\">{{item.text}}</span>\r\n </div>\r\n </ion-button>\r\n <app-zformcontrol *ngIf=\"item.Type !== 'a'\"\r\n [ngClass]=\"group[item['isVisibleField']] ? item.DivClass :((item.Visible === true) ? item.DivClass : 'flex-hide')\"\r\n [field]=\"item\" [group]=\"group\" [form]=\"form\" id=\"{{item.Type}}-{{item.Name}}\"></app-zformcontrol>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.btn-container{padding:5px 0;display:flex;flex-direction:row;justify-content:space-between}ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}ion-button.no-shadow{--box-shadow: none}.btn-label{padding-left:8px}\n"] }]
131
133
  }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }, { type: i2.FontAweSomeService }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUVPLGdCQUFnQixHQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBU3pCLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBTXBELFlBQ1MsZ0JBQW1DLEVBQ2xDLFlBQTBCLEVBQzNCLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUpqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFSL0MsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQVFsQixDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUks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Qzs7OEdBL0hVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJFQ3ZCOUIsbWhJQXlEQTsyRkRsQ2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBCdXR0b25GaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmllbGRTZXJ2aWNlLCBGb250QXdlU29tZVNlcnZpY2UsXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBaRmllbGQsXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemJ1dHRvbnNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pidXR0b25zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pidXR0b25zLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmJ1dHRvbnNDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25GaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgbGVmdEJ0bnM6IEFycmF5PGFueT4gPSBbXTtcclxuICByaWdodEJ0bnM6IEFycmF5PGFueT4gPSBbXTtcclxuICBGaXJzdFpidG4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZEJ1dHRvbigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRCdXR0b24oKSB7XHJcbiAgICBjb25zdCBmaWVsZCQgPSB0aGlzLmZpZWxkU2VydmljZS5nZXRGb3JtRmllbGRDb2RlKFxyXG4gICAgICB0aGlzLmRhdGEuVmFsdWUsXHJcbiAgICAgIFwiRm9ybUZpZWxkXCIsIG51bGwsIG51bGxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5ncm91cC56QnV0dG9uc0NvdW50Kys7XHJcbiAgICBpZiAodGhpcy5ncm91cC56QnV0dG9uc0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMuRmlyc3RaYnRuID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBmaWVsZCQucGlwZShcclxuICAgICAgICB0YXAoZGF0YSA9PiB7XHJcbiAgICAgICAgICAvLyB0aGlzLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoYnV0dG9uOiBaRmllbGQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXR1cEJ1dHRvbkF0dHJpYnV0ZXMoYnV0dG9uKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKC4uLnRoaXMubGVmdEJ0bnMsIC4uLnRoaXMucmlnaHRCdG5zKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHN1cGVyLnRyYW5zbGF0ZUJ1dHRvbnNMYWJlbCh0aGlzLml0ZW1zKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcImVycm9yOiBcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEJ1dHRvbkF0dHJpYnV0ZXMoYnV0dG9uOiBaRmllbGQpIHtcclxuICAgIGxldCBjb21wOiBhbnkgPSBidXR0b247XHJcbiAgICBpZiAoYnV0dG9uLlR5cGUgPT0gJ2EnKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuU3ViVHlwZSkge1xyXG4gICAgICAgIGJ1dHRvbi5OYW1lID0gdGhpcy5kYXRhLlN1YlR5cGUgKyAnXycgKyBidXR0b24uTmFtZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuXHJcbiAgICAgIGxldCBidXR0b25EaXNhYmxlZCA9IG51bGw7XHJcblxyXG4gICAgICBpZiAoYnV0dG9uWydEaXNhYmxlZCddICE9IFwiXCIgJiYgYnV0dG9uWydEaXNhYmxlZCddKSB7XHJcbiAgICAgICAgYnV0dG9uRGlzYWJsZWQgPSBidXR0b25bJ0Rpc2FibGVkJ10gPT09ICd0cnVlJyA/IHRydWUgOiBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgYnV0dG9uWydEaXNhYmxlZCddKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgaXNVc2VDdXN0b21DbGFzcyA9IGJ1dHRvbi5Db2xvciA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgY29tcCA9IHtcclxuICAgICAgICBuYW1lOiBidXR0b24uTmFtZSxcclxuICAgICAgICB0ZXh0OiBsYWJlbCxcclxuICAgICAgICBzdHlsZTogYnV0dG9uLlN0eWxlLFxyXG4gICAgICAgIGljb246IFpDb21wb25lbnRIZWxwZXIuZ2V0SWNvbihidXR0b24uSWNvbiBhcyBzdHJpbmcpLFxyXG4gICAgICAgIHZpc2libGU6IGJ1dHRvbi5WaXNpYmxlLFxyXG4gICAgICAgIGNvbG9yOiBpc1VzZUN1c3RvbUNsYXNzID8gJycgOiAoYnV0dG9uLkNvbG9yIHx8ICdwcmltYXJ5JyksXHJcbiAgICAgICAgZmlsbDogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvblsnRmlsbCddIHx8ICdzb2xpZCcpLFxyXG4gICAgICAgIHNpemU6IGJ1dHRvbi5TaXplIHx8ICdkZWZhdWx0JyxcclxuICAgICAgICBjbGFzczogaXNVc2VDdXN0b21DbGFzcyA/IGAke2J1dHRvbi5DbGFzc30gdXNlQ3VzdG9tQ2xhc3NgIDogYnV0dG9uLkNsYXNzLFxyXG4gICAgICAgIGRpc2FibGVkOiBidXR0b25EaXNhYmxlZCxcclxuICAgICAgICBjbGlja0V2ZW50OiBidXR0b24uQ2xpY2tFdmVudCxcclxuICAgICAgICBpY29uTmFtZTogYnV0dG9uLkljb24sXHJcbiAgICAgICAgZGlzbWlzc1R5cGU6IGJ1dHRvbi5EaXNtaXNzVHlwZSxcclxuICAgICAgICBkaXNhYmxlVHJpZ2dlclRpbWVyOiBidXR0b24uRGlzYWJsZVRyaWdnZXJUaW1lcixcclxuICAgICAgICBkaXNhYmxlVHJpZ2dlcjogdGhpcy5nZXRCdXR0b25EaXNhYmxlVHJpZ2dlclZhbHVlKHRoaXMuZGF0YSwgYnV0dG9uKSxcclxuICAgICAgICBTdWJUeXBlOiB0aGlzLmRhdGEuU3ViVHlwZSxcclxuICAgICAgICBUeXBlOiBidXR0b24uVHlwZSxcclxuICAgICAgICBidXR0b25EYXRhOiBidXR0b24sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJ1dHRvblsnUG9zaXRpb25YJ10gJiYgYnV0dG9uWydQb3NpdGlvblgnXSA9PT0gXCJyaWdodFwiKSB7XHJcbiAgICAgIHRoaXMucmlnaHRCdG5zLnB1c2goY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5sZWZ0QnRucy5wdXNoKGNvbXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uQ2xpY2soaXRlbTogYW55KSB7XHJcbiAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQgPSBpdGVtLmRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/ICFpdGVtLmRpc2FibGVUcmlnZ2VyIDogdHJ1ZTtcclxuICAgIGlmICh0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkKSB7XHJcbiAgICAgIGNvbnN0IG1lID0gdGhpcy5ncm91cDtcclxuICAgICAgaWYgKCFpdGVtWydkaXNhYmxlVHJpZ2dlclRpbWVyJ10pIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIG1lWydpc1RyaWdnZXJlZCddID0gZmFsc2U7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXBbJ0Rpc21pc3NUeXBlJ10gPSBpdGVtLmRpc21pc3NUeXBlO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcImJ1dHRvbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogaXRlbS5jbGlja0V2ZW50LFxyXG4gICAgICBkYXRhOiBpdGVtXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1dHRvbkRpc2FibGVUcmlnZ2VyVmFsdWUoZGF0YTogWkZpZWxkLCBidXR0b246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGJ1dHRvbi5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBidXR0b24uRGlzYWJsZVRyaWdnZXIgOiAoZGF0YS5EaXNhYmxlVHJpZ2dlciAhPSB1bmRlZmluZWQgPyBkYXRhLkRpc2FibGVUcmlnZ2VyIDogZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc2FibGVCdXR0b24oYnV0dG9uTmFtZTogc3RyaW5nLCBpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRCdXR0b24gPSB0aGlzLml0ZW1zLmZpbmQoeCA9PiB4Lm5hbWUgPT0gYnV0dG9uTmFtZSk7XHJcbiAgICBpZiAoc2VsZWN0ZWRCdXR0b24pIHtcclxuICAgICAgc2VsZWN0ZWRCdXR0b24uZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSkgJiYgaXRlbXMubGVuZ3RoID4gMFwiXHJcbiAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIiBjbGFzcz1cImUxdGFnLXN0eWxlXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXZlcnRpY2FsIGUxdGFnLXN0eWxlMVwiICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKSAmJiBpdGVtcy5sZW5ndGggPiAxICYmIEZpcnN0WmJ0biA9PT0gZmFsc2VcIlxyXG4gICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCI+XHJcbiAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gW2RhdGFdPVwiaXRlbXNcIiBzaXplPVwibGFyZ2VcIiBbbG9va109XCInb3V0bGluZSdcIlxyXG4gICAgICBjbGFzcz1cImlvbi1hY3RpdmF0YWJsZSByaXBwbGUtcGFyZW50IGUxdGFnLXN0eWxlMlwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMlwiPlxyXG4gICAgICBBY3Rpb25zXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0Ryb3BEb3duQnV0dG9uSXRlbVRlbXBsYXRlIGxldC1kYXRhSXRlbT5cclxuICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiay1pY29uIGstaS17eyBkYXRhSXRlbS5pY29uIH19XCI+PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soZGF0YUl0ZW0pXCI+e3sgZGF0YUl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbiAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgfHwgaXRlbXMubGVuZ3RoID09PSAxIFwiIFtuZ0NsYXNzXT1cImRhdGEuRGl2Q2xhc3NcIiBjbGFzcz1cImJ0bi1jb250YWluZXIgZTF0YWctc3R5bGUzXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1sZWZ0IGUxdGFnLXN0eWxlNFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxlZnRCdG5zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiaXRlbS5maWxsXCIgKm5nSWY9XCJpdGVtLlR5cGUgPT09ICdhJ1wiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0pXCIgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkIHx8IGl0ZW0uZGlzYWJsZWRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTUgKyAnICcgKyBpdGVtLnN0eWxlXCJcclxuICAgICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGU1XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnQtY29udGFpbmVyIGUxdGFnLXN0eWxlOFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOFwiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uIGUxdGFnLXN0eWxlOVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOVwiICpuZ0lmPVwiaXRlbS5pY29uXCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZSBlMXRhZy1zdHlsZTEwXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxMFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGFwcC16Zm9ybWNvbnRyb2wgKm5nSWY9XCJpdGVtLlR5cGUgIT09ICdhJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJncm91cFtpdGVtWydpc1Zpc2libGVGaWVsZCddXSA/IGl0ZW0uRGl2Q2xhc3MgOigoaXRlbS5WaXNpYmxlID09PSB0cnVlKSA/ICBpdGVtLkRpdkNsYXNzIDogJ2ZsZXgtaGlkZScpXCJcclxuICAgICAgICAgIFtmaWVsZF09XCJpdGVtXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIGlkPVwie3tpdGVtLlR5cGV9fS17e2l0ZW0uTmFtZX19XCI+PC9hcHAtemZvcm1jb250cm9sPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0bi1yaWdodCBlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByaWdodEJ0bnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cIml0ZW0uVHlwZSA9PT0gJ2EnXCIgW2ZpbGxdPVwiaXRlbS5maWxsXCIgW3NpemVdPVwiaXRlbS5zaXplXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBzdHJvbmc9XCJ0cnVlXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soaXRlbSlcIiBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWQgfHwgaXRlbS5kaXNhYmxlZFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNyArICcgJyArIGl0ZW0uc3R5bGVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGVudC1jb250YWluZXIgZTF0YWctc3R5bGU4XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU4XCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiYnRuLWljb24gZTF0YWctc3R5bGU5XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5XCIgKm5nSWY9XCJpdGVtLmljb25cIlxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGl0ZW0uaWNvbiwgZm9udEF3ZVNvbWVTZXJ2aWNlKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplIGUxdGFnLXN0eWxlMTBcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTEwXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udGV4dFwiIFtjbGFzcy5idG4tbGFiZWxdPVwiaXRlbS5pY29uXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8YXBwLXpmb3JtY29udHJvbCAqbmdJZj1cIml0ZW0uVHlwZSAhPT0gJ2EnXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImdyb3VwW2l0ZW1bJ2lzVmlzaWJsZUZpZWxkJ11dID8gaXRlbS5EaXZDbGFzcyA6KChpdGVtLlZpc2libGUgPT09IHRydWUpID8gIGl0ZW0uRGl2Q2xhc3MgOiAnZmxleC1oaWRlJylcIlxyXG4gICAgICAgICAgW2ZpZWxkXT1cIml0ZW1cIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgaWQ9XCJ7e2l0ZW0uVHlwZX19LXt7aXRlbS5OYW1lfX1cIj48L2FwcC16Zm9ybWNvbnRyb2w+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFMUUsT0FBTyxFQUM2QixlQUFlLEVBQ3JDLGdCQUFnQixHQUM3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBU3pCLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBTXBELFlBQ1MsZ0JBQW1DLEVBQ2xDLFlBQTBCLEVBQzNCLGtCQUFzQztRQUU3QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUpqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFSL0MsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQVFsQixDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFF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SSxjQUFjLEVBQUU7WUFDbEIsY0FBYyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs4R0E5SFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkVDdkI5QixtaElBeURBOzJGRGxDYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEJ1dHRvbkZpZWxkQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGaWVsZFNlcnZpY2UsIEZvbnRBd2VTb21lU2VydmljZSwgVHJpZ2dlckZyb21UeXBlLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCwgWkZpZWxkLFxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpidXR0b25zXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96YnV0dG9ucy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96YnV0dG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpidXR0b25zQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGxlZnRCdG5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcmlnaHRCdG5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgRmlyc3RaYnRuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRCdXR0b24oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQnV0dG9uKCkge1xyXG4gICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZSh0aGlzLmRhdGEuVmFsdWUsIFwiRm9ybUZpZWxkXCIpO1xyXG5cclxuICAgIHRoaXMuZ3JvdXAuekJ1dHRvbnNDb3VudCsrO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuekJ1dHRvbnNDb3VudCA9PT0gMSkge1xyXG4gICAgICB0aGlzLkZpcnN0WmJ0biA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgZmllbGQkLnBpcGUoXHJcbiAgICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5pdGVtcyA9IGRhdGE7XHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goKGJ1dHRvbjogWkZpZWxkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBCdXR0b25BdHRyaWJ1dGVzKGJ1dHRvbik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuaXRlbXMucHVzaCguLi50aGlzLmxlZnRCdG5zLCAuLi50aGlzLnJpZ2h0QnRucyk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdXBlci50cmFuc2xhdGVCdXR0b25zTGFiZWwodGhpcy5pdGVtcyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBCdXR0b25BdHRyaWJ1dGVzKGJ1dHRvbjogWkZpZWxkKSB7XHJcbiAgICBsZXQgY29tcDogYW55ID0gYnV0dG9uO1xyXG4gICAgaWYgKGJ1dHRvbi5UeXBlID09ICdhJykge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUpIHtcclxuICAgICAgICBidXR0b24uTmFtZSA9IHRoaXMuZGF0YS5TdWJUeXBlICsgJ18nICsgYnV0dG9uLk5hbWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcblxyXG4gICAgICBsZXQgYnV0dG9uRGlzYWJsZWQgPSBudWxsO1xyXG5cclxuICAgICAgaWYgKGJ1dHRvblsnRGlzYWJsZWQnXSAhPSBcIlwiICYmIGJ1dHRvblsnRGlzYWJsZWQnXSkge1xyXG4gICAgICAgIGJ1dHRvbkRpc2FibGVkID0gYnV0dG9uWydEaXNhYmxlZCddID09PSAndHJ1ZScgPyB0cnVlIDogWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGJ1dHRvblsnRGlzYWJsZWQnXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGlzVXNlQ3VzdG9tQ2xhc3MgPSBidXR0b24uQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgIGNvbXAgPSB7XHJcbiAgICAgICAgbmFtZTogYnV0dG9uLk5hbWUsXHJcbiAgICAgICAgdGV4dDogbGFiZWwsXHJcbiAgICAgICAgc3R5bGU6IGJ1dHRvbi5TdHlsZSxcclxuICAgICAgICBpY29uOiBaQ29tcG9uZW50SGVscGVyLmdldEljb24oYnV0dG9uLkljb24gYXMgc3RyaW5nKSxcclxuICAgICAgICB2aXNpYmxlOiBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICBjb2xvcjogaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5Db2xvciB8fCAncHJpbWFyeScpLFxyXG4gICAgICAgIGZpbGw6IGlzVXNlQ3VzdG9tQ2xhc3MgPyAnJyA6IChidXR0b25bJ0ZpbGwnXSB8fCAnc29saWQnKSxcclxuICAgICAgICBzaXplOiBidXR0b24uU2l6ZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgY2xhc3M6IGlzVXNlQ3VzdG9tQ2xhc3MgPyBgJHtidXR0b24uQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGJ1dHRvbi5DbGFzcyxcclxuICAgICAgICBkaXNhYmxlZDogYnV0dG9uRGlzYWJsZWQsXHJcbiAgICAgICAgY2xpY2tFdmVudDogYnV0dG9uLkNsaWNrRXZlbnQsXHJcbiAgICAgICAgaWNvbk5hbWU6IGJ1dHRvbi5JY29uLFxyXG4gICAgICAgIGRpc21pc3NUeXBlOiBidXR0b24uRGlzbWlzc1R5cGUsXHJcbiAgICAgICAgZGlzYWJsZVRyaWdnZXJUaW1lcjogYnV0dG9uLkRpc2FibGVUcmlnZ2VyVGltZXIsXHJcbiAgICAgICAgZGlzYWJsZVRyaWdnZXI6IHRoaXMuZ2V0QnV0dG9uRGlzYWJsZVRyaWdnZXJWYWx1ZSh0aGlzLmRhdGEsIGJ1dHRvbiksXHJcbiAgICAgICAgU3ViVHlwZTogdGhpcy5kYXRhLlN1YlR5cGUsXHJcbiAgICAgICAgVHlwZTogYnV0dG9uLlR5cGUsXHJcbiAgICAgICAgYnV0dG9uRGF0YTogYnV0dG9uLFxyXG4gICAgICAgIGV2ZW50SWQ6IFpDb21wb25lbnRIZWxwZXIuZ2VuZXJhdGVUaW1lU3RhbXBJZCgpXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJ1dHRvblsnUG9zaXRpb25YJ10gJiYgYnV0dG9uWydQb3NpdGlvblgnXSA9PT0gXCJyaWdodFwiKSB7XHJcbiAgICAgIHRoaXMucmlnaHRCdG5zLnB1c2goY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5sZWZ0QnRucy5wdXNoKGNvbXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uQ2xpY2soaXRlbTogYW55KSB7XHJcbiAgICAvLyBkZWJ1Z2dlcjtcclxuICAgIHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQgPSBpdGVtLmRpc2FibGVUcmlnZ2VyICE9IHVuZGVmaW5lZCA/ICFpdGVtLmRpc2FibGVUcmlnZ2VyIDogdHJ1ZTtcclxuICAgIGlmICh0aGlzLmdyb3VwLmlzVHJpZ2dlcmVkKSB7XHJcbiAgICAgIGNvbnN0IG1lID0gdGhpcy5ncm91cDtcclxuICAgICAgaWYgKCFpdGVtWydkaXNhYmxlVHJpZ2dlclRpbWVyJ10pIHtcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIG1lWydpc1RyaWdnZXJlZCddID0gZmFsc2U7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXBbJ0Rpc21pc3NUeXBlJ10gPSBpdGVtLmRpc21pc3NUeXBlO1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcImJ1dHRvbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogaXRlbS5jbGlja0V2ZW50LFxyXG4gICAgICBkYXRhOiBpdGVtLFxyXG4gICAgICB0cmlnZ2VyRnJvbTogVHJpZ2dlckZyb21UeXBlLmJ1dHRvblxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdXR0b25EaXNhYmxlVHJpZ2dlclZhbHVlKGRhdGE6IFpGaWVsZCwgYnV0dG9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBidXR0b24uRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gYnV0dG9uLkRpc2FibGVUcmlnZ2VyIDogKGRhdGEuRGlzYWJsZVRyaWdnZXIgIT0gdW5kZWZpbmVkID8gZGF0YS5EaXNhYmxlVHJpZ2dlciA6IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlQnV0dG9uKGJ1dHRvbk5hbWU6IHN0cmluZywgaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQnV0dG9uID0gdGhpcy5pdGVtcy5maW5kKHggPT4geC5uYW1lID09IGJ1dHRvbk5hbWUpO1xyXG4gICAgaWYgKHNlbGVjdGVkQnV0dG9uKSB7XHJcbiAgICAgIHNlbGVjdGVkQnV0dG9uLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpICYmIGl0ZW1zLmxlbmd0aCA+IDBcIlxyXG4gIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLW1hcmdpbi12ZXJ0aWNhbCBlMXRhZy1zdHlsZTFcIiAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKCkgJiYgaXRlbXMubGVuZ3RoID4gMSAmJiBGaXJzdFpidG4gPT09IGZhbHNlXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiPlxyXG4gICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtkYXRhXT1cIml0ZW1zXCIgc2l6ZT1cImxhcmdlXCIgW2xvb2tdPVwiJ291dGxpbmUnXCJcclxuICAgICAgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudCBlMXRhZy1zdHlsZTJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIj5cclxuICAgICAgQWN0aW9uc1xyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9Ecm9wRG93bkJ1dHRvbkl0ZW1UZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XHJcbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImstaWNvbiBrLWkte3sgZGF0YUl0ZW0uaWNvbiB9fVwiPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGRhdGFJdGVtKVwiPnt7IGRhdGFJdGVtLnRleHQgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG4gICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMSBcIiBbbmdDbGFzc109XCJkYXRhLkRpdkNsYXNzXCIgY2xhc3M9XCJidG4tY29udGFpbmVyIGUxdGFnLXN0eWxlM1wiXHJcbiAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tbGVmdCBlMXRhZy1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsZWZ0QnRuczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtmaWxsXT1cIml0ZW0uZmlsbFwiICpuZ0lmPVwiaXRlbS5UeXBlID09PSAnYSdcIiBbc2l6ZV09XCJpdGVtLnNpemVcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIHN0cm9uZz1cInRydWVcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJidXR0b25DbGljayhpdGVtKVwiIFtoaWRkZW5dPVwiIWlzQnRuVmlzaWJsZShpdGVtLnZpc2libGUpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZCB8fCBpdGVtLmRpc2FibGVkXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1ICsgJyAnICsgaXRlbS5zdHlsZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250ZW50LWNvbnRhaW5lciBlMXRhZy1zdHlsZThcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZThcIj5cclxuICAgICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJidG4taWNvbiBlMXRhZy1zdHlsZTlcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTlcIiAqbmdJZj1cIml0ZW0uaWNvblwiXHJcbiAgICAgICAgICAgICAgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoaXRlbS5pY29uLCBmb250QXdlU29tZVNlcnZpY2UpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemUgZTF0YWctc3R5bGUxMFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMTBcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50ZXh0XCIgW2NsYXNzLmJ0bi1sYWJlbF09XCJpdGVtLmljb25cIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxhcHAtemZvcm1jb250cm9sICpuZ0lmPVwiaXRlbS5UeXBlICE9PSAnYSdcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZ3JvdXBbaXRlbVsnaXNWaXNpYmxlRmllbGQnXV0gPyBpdGVtLkRpdkNsYXNzIDooKGl0ZW0uVmlzaWJsZSA9PT0gdHJ1ZSkgPyAgaXRlbS5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiXHJcbiAgICAgICAgICBbZmllbGRdPVwiaXRlbVwiIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBpZD1cInt7aXRlbS5UeXBlfX0te3tpdGVtLk5hbWV9fVwiPjwvYXBwLXpmb3JtY29udHJvbD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tcmlnaHQgZTF0YWctc3R5bGU2XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU2XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmlnaHRCdG5zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJpdGVtLlR5cGUgPT09ICdhJ1wiIFtmaWxsXT1cIml0ZW0uZmlsbFwiIFtzaXplXT1cIml0ZW0uc2l6ZVwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgc3Ryb25nPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzXCIgKGNsaWNrKT1cImJ1dHRvbkNsaWNrKGl0ZW0pXCIgW2hpZGRlbl09XCIhaXNCdG5WaXNpYmxlKGl0ZW0udmlzaWJsZSlcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkIHx8IGl0ZW0uZGlzYWJsZWRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTcgKyAnICcgKyBpdGVtLnN0eWxlXCJcclxuICAgICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGU3XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnQtY29udGFpbmVyIGUxdGFnLXN0eWxlOFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOFwiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImJ0bi1pY29uIGUxdGFnLXN0eWxlOVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlOVwiICpuZ0lmPVwiaXRlbS5pY29uXCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCJnZXRGb250QXdlc29tZShpdGVtLmljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZSBlMXRhZy1zdHlsZTEwXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxMFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnRleHRcIiBbY2xhc3MuYnRuLWxhYmVsXT1cIml0ZW0uaWNvblwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGFwcC16Zm9ybWNvbnRyb2wgKm5nSWY9XCJpdGVtLlR5cGUgIT09ICdhJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJncm91cFtpdGVtWydpc1Zpc2libGVGaWVsZCddXSA/IGl0ZW0uRGl2Q2xhc3MgOigoaXRlbS5WaXNpYmxlID09PSB0cnVlKSA/ICBpdGVtLkRpdkNsYXNzIDogJ2ZsZXgtaGlkZScpXCJcclxuICAgICAgICAgIFtmaWVsZF09XCJpdGVtXCIgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIGlkPVwie3tpdGVtLlR5cGV9fS17e2l0ZW0uTmFtZX19XCI+PC9hcHAtemZvcm1jb250cm9sPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19