simpo-component-library 1.6.125 → 1.6.127

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,7 +46,7 @@ export class CustomerReviewComponent {
46
46
  return (value / this.customerReviews?.length) * 100;
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CustomerReviewComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: CustomerReviewComponent, isStandalone: true, selector: "simpo-customer-review", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, ngImport: i0, template: "<section class=\"mainContainer\" style=\"gap: 20px;\" *ngIf=\"customerReviews.length\">\r\n <div class=\"left-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Customer Reviews</h3>\r\n <p-rating [(ngModel)]=\"totalRating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div class=\"stars\">\r\n <ng-container *ngFor=\"let rating of overallRatingCount | keyvalue; let idx = index\">\r\n <div class=\"d-flex\" style=\"gap: 5px; margin: 10px 0px\">\r\n <div class=\"count\">{{rating.key}}</div>\r\n <div class=\"rating-bar\">\r\n <p-progressBar [value]=\"getPercentage(rating?.value)\" [ngStyle]=\"{'background-color': data?.styles?.background?.accentColor}\" [showValue]=\"false\" />\r\n </div>\r\n <div class=\"count\">{{getPercentage(rating?.value)}}%</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"right-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Top Reviews</h3>\r\n <div class=\"customer-reviews\">\r\n <ng-container *ngFor=\"let review of customerReviews\">\r\n <div class=\"d-flex align-item-center\">\r\n <img loading=\"lazy\" alt=\"\" style=\"height: 30px; width: fit-content;border-radius: 50%;margin-right: 10px;\">\r\n <span>{{review.userName | titlecase}}</span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"width: fit-content; height: 20px; gap: 10px;\"> \r\n <p-rating [(ngModel)]=\"review.rating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div>{{review.title | titlecase}}</div>\r\n </div>\r\n <div class=\"date\">{{ review.createdTimeStamp | date }}</div>\r\n <div class=\"description\">{{review.review | titlecase}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>", styles: [".mainContainer{display:flex;justify-content:space-around}.rating-bar{width:300px}h3{margin-bottom:20px}.count{width:20px}.left-panel{width:20%}.right-panel{width:70%}.description{width:80%}.customer-reviews{border-bottom:1px solid lightgray;padding-bottom:10px;padding-left:10px}@media screen and (max-width: 475px){.mainContainer{flex-direction:column!important}.left-panel{width:95%;margin:auto}.right-panel{width:95%;margin:auto}.right-panel .description{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: RatingModule }, { kind: "component", type: i3.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: ProgressBarModule }, { kind: "component", type: i6.ProgressBar, selector: "p-progressBar", inputs: ["value", "showValue", "styleClass", "style", "unit", "mode", "color"] }] }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: CustomerReviewComponent, isStandalone: true, selector: "simpo-customer-review", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, ngImport: i0, template: "<section class=\"mainContainer\" style=\"gap: 20px;\" *ngIf=\"customerReviews.length\">\r\n <div class=\"left-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Customer Reviews</h3>\r\n <p-rating [(ngModel)]=\"totalRating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div class=\"stars\">\r\n <ng-container *ngFor=\"let rating of overallRatingCount | keyvalue; let idx = index\">\r\n <div class=\"d-flex\" style=\"gap: 5px; margin: 10px 0px\">\r\n <div class=\"count\">{{rating.key}}</div>\r\n <div class=\"rating-bar\">\r\n <p-progressBar [value]=\"getPercentage(rating?.value)\" [ngStyle]=\"{'background-color': data?.styles?.background?.accentColor}\" [showValue]=\"false\" />\r\n </div>\r\n <div class=\"count\">{{getPercentage(rating?.value)}}%</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"right-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Top Reviews</h3>\r\n <div class=\"customer-reviews\">\r\n <ng-container *ngFor=\"let review of customerReviews\">\r\n <div class=\"d-flex align-item-center\" style=\"gap: 5px;\">\r\n <div class=\"name-tag\">{{review.userName | slice: 0:1}}</div>\r\n <span style=\"position: relative; top: 5px;\">{{review.userName | titlecase}}</span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"width: fit-content; height: 20px; gap: 10px;\"> \r\n <p-rating [(ngModel)]=\"review.rating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div>{{review.title | titlecase}}</div>\r\n </div>\r\n <div class=\"date\">{{ review.createdTimeStamp | date }}</div>\r\n <div class=\"description\">{{review.review | titlecase}}</div>\r\n <hr>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>", styles: [".mainContainer{display:flex;justify-content:space-around}.rating-bar{width:300px}h3{margin-bottom:20px}.count{width:20px}.left-panel{width:20%}.right-panel{width:70%}.description{width:80%}.name-tag{display:flex;justify-content:center;align-items:center;padding:5px;border-radius:50%;background-color:#3b82f6;color:#fff;height:30px;width:30px}.customer-reviews{padding-bottom:10px;padding-left:10px}@media screen and (max-width: 475px){.mainContainer{flex-direction:column!important}.left-panel{width:95%;margin:auto}.right-panel{width:95%;margin:auto}.right-panel .description{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: RatingModule }, { kind: "component", type: i3.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i5.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: ProgressBarModule }, { kind: "component", type: i6.ProgressBar, selector: "p-progressBar", inputs: ["value", "showValue", "styleClass", "style", "unit", "mode", "color"] }] }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CustomerReviewComponent, decorators: [{
52
52
  type: Component,
@@ -55,7 +55,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
55
55
  FormsModule,
56
56
  CommonModule,
57
57
  ProgressBarModule
58
- ], template: "<section class=\"mainContainer\" style=\"gap: 20px;\" *ngIf=\"customerReviews.length\">\r\n <div class=\"left-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Customer Reviews</h3>\r\n <p-rating [(ngModel)]=\"totalRating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div class=\"stars\">\r\n <ng-container *ngFor=\"let rating of overallRatingCount | keyvalue; let idx = index\">\r\n <div class=\"d-flex\" style=\"gap: 5px; margin: 10px 0px\">\r\n <div class=\"count\">{{rating.key}}</div>\r\n <div class=\"rating-bar\">\r\n <p-progressBar [value]=\"getPercentage(rating?.value)\" [ngStyle]=\"{'background-color': data?.styles?.background?.accentColor}\" [showValue]=\"false\" />\r\n </div>\r\n <div class=\"count\">{{getPercentage(rating?.value)}}%</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"right-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Top Reviews</h3>\r\n <div class=\"customer-reviews\">\r\n <ng-container *ngFor=\"let review of customerReviews\">\r\n <div class=\"d-flex align-item-center\">\r\n <img loading=\"lazy\" alt=\"\" style=\"height: 30px; width: fit-content;border-radius: 50%;margin-right: 10px;\">\r\n <span>{{review.userName | titlecase}}</span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"width: fit-content; height: 20px; gap: 10px;\"> \r\n <p-rating [(ngModel)]=\"review.rating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div>{{review.title | titlecase}}</div>\r\n </div>\r\n <div class=\"date\">{{ review.createdTimeStamp | date }}</div>\r\n <div class=\"description\">{{review.review | titlecase}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>", styles: [".mainContainer{display:flex;justify-content:space-around}.rating-bar{width:300px}h3{margin-bottom:20px}.count{width:20px}.left-panel{width:20%}.right-panel{width:70%}.description{width:80%}.customer-reviews{border-bottom:1px solid lightgray;padding-bottom:10px;padding-left:10px}@media screen and (max-width: 475px){.mainContainer{flex-direction:column!important}.left-panel{width:95%;margin:auto}.right-panel{width:95%;margin:auto}.right-panel .description{width:100%}}\n"] }]
58
+ ], template: "<section class=\"mainContainer\" style=\"gap: 20px;\" *ngIf=\"customerReviews.length\">\r\n <div class=\"left-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Customer Reviews</h3>\r\n <p-rating [(ngModel)]=\"totalRating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div class=\"stars\">\r\n <ng-container *ngFor=\"let rating of overallRatingCount | keyvalue; let idx = index\">\r\n <div class=\"d-flex\" style=\"gap: 5px; margin: 10px 0px\">\r\n <div class=\"count\">{{rating.key}}</div>\r\n <div class=\"rating-bar\">\r\n <p-progressBar [value]=\"getPercentage(rating?.value)\" [ngStyle]=\"{'background-color': data?.styles?.background?.accentColor}\" [showValue]=\"false\" />\r\n </div>\r\n <div class=\"count\">{{getPercentage(rating?.value)}}%</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"right-panel\">\r\n <h3 [style.color]=\"data?.styles?.background?.accentColor\">Top Reviews</h3>\r\n <div class=\"customer-reviews\">\r\n <ng-container *ngFor=\"let review of customerReviews\">\r\n <div class=\"d-flex align-item-center\" style=\"gap: 5px;\">\r\n <div class=\"name-tag\">{{review.userName | slice: 0:1}}</div>\r\n <span style=\"position: relative; top: 5px;\">{{review.userName | titlecase}}</span>\r\n </div>\r\n <div class=\"d-flex my-2\" style=\"width: fit-content; height: 20px; gap: 10px;\"> \r\n <p-rating [(ngModel)]=\"review.rating\" [cancel]=\"false\" [readonly]=\"true\" />\r\n <div>{{review.title | titlecase}}</div>\r\n </div>\r\n <div class=\"date\">{{ review.createdTimeStamp | date }}</div>\r\n <div class=\"description\">{{review.review | titlecase}}</div>\r\n <hr>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</section>", styles: [".mainContainer{display:flex;justify-content:space-around}.rating-bar{width:300px}h3{margin-bottom:20px}.count{width:20px}.left-panel{width:20%}.right-panel{width:70%}.description{width:80%}.name-tag{display:flex;justify-content:center;align-items:center;padding:5px;border-radius:50%;background-color:#3b82f6;color:#fff;height:30px;width:30px}.customer-reviews{padding-bottom:10px;padding-left:10px}@media screen and (max-width: 475px){.mainContainer{flex-direction:column!important}.left-panel{width:95%;margin:auto}.right-panel{width:95%;margin:auto}.right-panel .description{width:100%}}\n"] }]
59
59
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.RestService }], propDecorators: { data: [{
60
60
  type: Input
61
61
  }], index: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
65
65
  }], delete: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL2N1c3RvbWVyLXJldmlldy9jdXN0b21lci1yZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY3VzdG9tZXItcmV2aWV3L2N1c3RvbWVyLXJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFtQnhELE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFDbUIsY0FBOEIsRUFDOUIsV0FBd0I7UUFEeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUHBDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQWNwQyx1QkFBa0IsR0FBK0IsSUFBSSxDQUFDO0lBVG5ELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUdELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDakIsT0FBTztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7WUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQztRQUN4QyxJQUFJLENBQUMsTUFBTTtZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ1osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBa0M7UUFDOUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN0RCxDQUFDOzhHQTVDVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwySkN2QnBDLHFqRUFpQ1UsaWhCRGxCTixZQUFZLHdUQUNaLFdBQVcsOFZBQ1gsWUFBWSwrZkFDWixpQkFBaUI7OzJGQUtSLHVCQUF1QjtrQkFabkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGlCQUFpQjtxQkFDbEI7NkdBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSYXRpbmdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhdGluZyc7XHJcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wcm9ncmVzc2Jhcic7XHJcbmltcG9ydCB7IEN1c3RvbWVyUmV2aWV3TW9kZWwgfSBmcm9tICcuL2N1c3RvbWVyLXJldmlldy5tb2RlbCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXZpZXcgfSBmcm9tICcuLi8uLi9zdHlsZXMvcmV2aWV3Lm1vZGFsJztcclxuaW1wb3J0IHsgUHJvZHVjdERlc2NNb2RhbCB9IGZyb20gJy4uL3Byb2R1Y3QtZGVzYy9wcm9kdWN0LWRlc2MubW9kYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1jdXN0b21lci1yZXZpZXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUmF0aW5nTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcm9ncmVzc0Jhck1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbWVyLXJldmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2N1c3RvbWVyLXJldmlldy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJSZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogUHJvZHVjdERlc2NNb2RhbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgcHJvZHVjdElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgY3VzdG9tZXJSZXZpZXdzOiBSZXZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyB0b3RhbFJhdGluZzogbnVtYmVyID0gNDtcclxuICBwdWJsaWMgdG90YWxSYXRpbnNDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxUGFyYW0pPT4ge1xyXG4gICAgICB0aGlzLnByb2R1Y3RJZCA9IHFQYXJhbVtcImlkXCJdO1xyXG4gICAgICB0aGlzLmdldEFsbFJldmlld3MoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvdmVyYWxsUmF0aW5nQ291bnQ6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcclxuICBnZXRBbGxSZXZpZXdzKCkge1xyXG4gICAgaWYgKCF0aGlzLnByb2R1Y3RJZClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxSZXZpZXdzKHRoaXMucHJvZHVjdElkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyUmV2aWV3cyA9IHJlc3BvbnNlLmRhdGE/LnVzZXJSZXZpZXdzO1xyXG4gICAgICB0aGlzLnRvdGFsUmF0aW5nID0gcmVzcG9uc2UuZGF0YT8uYXZlcmFnZVJhdGluZztcclxuICAgICAgdGhpcy5vdmVyYWxsUmF0aW5nQ291bnQgPSByZXNwb25zZS5kYXRhPy5vdmVyYWxsUmF0aW5nQ291bnQ7XHJcbiAgICAgIHRoaXMudG90YWxSYXRpbnNDb3VudCA9IHRoaXMuY3VzdG9tZXJSZXZpZXdzPy5sZW5ndGg7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0S2V5cyhvYmplY3Q6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsKTogc3RyaW5nW10ge1xyXG4gICAgaWYgKCFvYmplY3QpXHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gIH1cclxuICBnZXRQZXJjZW50YWdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHZhbHVlID0gTnVtYmVyKHZhbHVlID8/ICcxJyk7XHJcbiAgICByZXR1cm4gKHZhbHVlIC8gdGhpcy5jdXN0b21lclJldmlld3M/Lmxlbmd0aCkgKiAxMDA7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW5Db250YWluZXJcIiBzdHlsZT1cImdhcDogMjBweDtcIiAqbmdJZj1cImN1c3RvbWVyUmV2aWV3cy5sZW5ndGhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCI+XHJcbiAgICAgICAgPGgzIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Q3VzdG9tZXIgUmV2aWV3czwvaDM+XHJcbiAgICAgICAgPHAtcmF0aW5nIFsobmdNb2RlbCldPVwidG90YWxSYXRpbmdcIiBbY2FuY2VsXT1cImZhbHNlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGFyc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByYXRpbmcgb2Ygb3ZlcmFsbFJhdGluZ0NvdW50IHwga2V5dmFsdWU7IGxldCBpZHggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwiZ2FwOiA1cHg7IG1hcmdpbjogMTBweCAwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRcIj57e3JhdGluZy5rZXl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYXRpbmctYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXByb2dyZXNzQmFyIFt2YWx1ZV09XCJnZXRQZXJjZW50YWdlKHJhdGluZz8udmFsdWUpXCIgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IGRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3J9XCIgW3Nob3dWYWx1ZV09XCJmYWxzZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50XCI+e3tnZXRQZXJjZW50YWdlKHJhdGluZz8udmFsdWUpfX0lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodC1wYW5lbFwiPlxyXG4gICAgICAgIDxoMyBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlRvcCBSZXZpZXdzPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItcmV2aWV3c1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXZpZXcgb2YgY3VzdG9tZXJSZXZpZXdzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW0tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiICBhbHQ9XCJcIiBzdHlsZT1cImhlaWdodDogMzBweDsgd2lkdGg6IGZpdC1jb250ZW50O2JvcmRlci1yYWRpdXM6IDUwJTttYXJnaW4tcmlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tyZXZpZXcudXNlck5hbWUgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS0yXCIgc3R5bGU9XCJ3aWR0aDogZml0LWNvbnRlbnQ7IGhlaWdodDogMjBweDsgZ2FwOiAxMHB4O1wiPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXJhdGluZyBbKG5nTW9kZWwpXT1cInJldmlldy5yYXRpbmdcIiBbY2FuY2VsXT1cImZhbHNlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3tyZXZpZXcudGl0bGUgfCB0aXRsZWNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPnt7IHJldmlldy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3tyZXZpZXcucmV2aWV3IHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL2N1c3RvbWVyLXJldmlldy9jdXN0b21lci1yZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY3VzdG9tZXItcmV2aWV3L2N1c3RvbWVyLXJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFtQnhELE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFDbUIsY0FBOEIsRUFDOUIsV0FBd0I7UUFEeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUHBDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQWNwQyx1QkFBa0IsR0FBK0IsSUFBSSxDQUFDO0lBVG5ELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUdELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDakIsT0FBTztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7WUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQztRQUN4QyxJQUFJLENBQUMsTUFBTTtZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ1osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBa0M7UUFDOUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN0RCxDQUFDOzhHQTVDVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwySkN2QnBDLHFsRUFrQ1UseW9CRG5CTixZQUFZLHdUQUNaLFdBQVcsOFZBQ1gsWUFBWSxvakJBQ1osaUJBQWlCOzsyRkFLUix1QkFBdUI7a0JBWm5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7cUJBQ2xCOzZHQU1RLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmF0aW5nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYXRpbmcnO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcHJvZ3Jlc3NiYXInO1xyXG5pbXBvcnQgeyBDdXN0b21lclJldmlld01vZGVsIH0gZnJvbSAnLi9jdXN0b21lci1yZXZpZXcubW9kZWwnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmV2aWV3IH0gZnJvbSAnLi4vLi4vc3R5bGVzL3Jldmlldy5tb2RhbCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXNjTW9kYWwgfSBmcm9tICcuLi9wcm9kdWN0LWRlc2MvcHJvZHVjdC1kZXNjLm1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tY3VzdG9tZXItcmV2aWV3JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIFJhdGluZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b21lci1yZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jdXN0b21lci1yZXZpZXcuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbWVyUmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgZGF0YT86IFByb2R1Y3REZXNjTW9kYWw7XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIHByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGN1c3RvbWVyUmV2aWV3czogUmV2aWV3W10gPSBbXTtcclxuICBwdWJsaWMgdG90YWxSYXRpbmc6IG51bWJlciA9IDQ7XHJcbiAgcHVibGljIHRvdGFsUmF0aW5zQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocVBhcmFtKT0+IHtcclxuICAgICAgdGhpcy5wcm9kdWN0SWQgPSBxUGFyYW1bXCJpZFwiXTtcclxuICAgICAgdGhpcy5nZXRBbGxSZXZpZXdzKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb3ZlcmFsbFJhdGluZ0NvdW50OiBNYXA8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XHJcbiAgZ2V0QWxsUmV2aWV3cygpIHtcclxuICAgIGlmICghdGhpcy5wcm9kdWN0SWQpXHJcbiAgICAgIHJldHVybjtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QWxsUmV2aWV3cyh0aGlzLnByb2R1Y3RJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgdGhpcy5jdXN0b21lclJldmlld3MgPSByZXNwb25zZS5kYXRhPy51c2VyUmV2aWV3cztcclxuICAgICAgdGhpcy50b3RhbFJhdGluZyA9IHJlc3BvbnNlLmRhdGE/LmF2ZXJhZ2VSYXRpbmc7XHJcbiAgICAgIHRoaXMub3ZlcmFsbFJhdGluZ0NvdW50ID0gcmVzcG9uc2UuZGF0YT8ub3ZlcmFsbFJhdGluZ0NvdW50O1xyXG4gICAgICB0aGlzLnRvdGFsUmF0aW5zQ291bnQgPSB0aGlzLmN1c3RvbWVyUmV2aWV3cz8ubGVuZ3RoO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEtleXMob2JqZWN0OiBNYXA8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCk6IHN0cmluZ1tdIHtcclxuICAgIGlmICghb2JqZWN0KVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcclxuICB9XHJcbiAgZ2V0UGVyY2VudGFnZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSA/PyAnMScpO1xyXG4gICAgcmV0dXJuICh2YWx1ZSAvIHRoaXMuY3VzdG9tZXJSZXZpZXdzPy5sZW5ndGgpICogMTAwO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluQ29udGFpbmVyXCIgc3R5bGU9XCJnYXA6IDIwcHg7XCIgKm5nSWY9XCJjdXN0b21lclJldmlld3MubGVuZ3RoXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdC1wYW5lbFwiPlxyXG4gICAgICAgIDxoMyBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkN1c3RvbWVyIFJldmlld3M8L2gzPlxyXG4gICAgICAgIDxwLXJhdGluZyBbKG5nTW9kZWwpXT1cInRvdGFsUmF0aW5nXCIgW2NhbmNlbF09XCJmYWxzZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmF0aW5nIG9mIG92ZXJhbGxSYXRpbmdDb3VudCB8IGtleXZhbHVlOyBsZXQgaWR4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBzdHlsZT1cImdhcDogNXB4OyBtYXJnaW46IDEwcHggMHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50XCI+e3tyYXRpbmcua2V5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1wcm9ncmVzc0JhciBbdmFsdWVdPVwiZ2V0UGVyY2VudGFnZShyYXRpbmc/LnZhbHVlKVwiICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yfVwiIFtzaG93VmFsdWVdPVwiZmFsc2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudFwiPnt7Z2V0UGVyY2VudGFnZShyYXRpbmc/LnZhbHVlKX19JTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHQtcGFuZWxcIj5cclxuICAgICAgICA8aDMgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Ub3AgUmV2aWV3czwvaDM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbWVyLXJldmlld3NcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmV2aWV3IG9mIGN1c3RvbWVyUmV2aWV3c1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUtdGFnXCI+e3tyZXZpZXcudXNlck5hbWUgfCBzbGljZTogMDoxfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiA1cHg7XCI+e3tyZXZpZXcudXNlck5hbWUgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteS0yXCIgc3R5bGU9XCJ3aWR0aDogZml0LWNvbnRlbnQ7IGhlaWdodDogMjBweDsgZ2FwOiAxMHB4O1wiPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXJhdGluZyBbKG5nTW9kZWwpXT1cInJldmlldy5yYXRpbmdcIiBbY2FuY2VsXT1cImZhbHNlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3tyZXZpZXcudGl0bGUgfCB0aXRsZWNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPnt7IHJldmlldy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3tyZXZpZXcucmV2aWV3IHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPiJdfQ==