@alauda-fe/common 1.4.10 → 1.4.11

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.
@@ -5,7 +5,6 @@ import { Chart, ChartEvent } from 'zz-chart';
5
5
  import * as i0 from "@angular/core";
6
6
  const _c0 = a0 => ({ context: a0 });
7
7
  const _c1 = a0 => [a0, "label-symbol"];
8
- const _c2 = () => ({});
9
8
  function LegendComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10
9
  i0.ɵɵelementStart(0, "div", 5);
11
10
  i0.ɵɵelementContainer(1, 6);
@@ -127,13 +126,13 @@ function LegendComponent_ng_template_3_li_2_Template(rf, ctx) { if (rf & 1) {
127
126
  i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 9, legend_r7.activate ? "click_hide" : "click_show"));
128
127
  i0.ɵɵadvance(2);
129
128
  i0.ɵɵstyleProp("background", legend_r7.color);
130
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c1, ctx_r0.symbolName));
129
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c1, ctx_r0.symbolName));
131
130
  i0.ɵɵadvance(2);
132
- i0.ɵɵtextInterpolate(ctx_r0.translation ? i0.ɵɵpipeBind3(5, 11, legend_r7.name, i0.ɵɵpureFunction0(17, _c2), true) : legend_r7.name);
131
+ i0.ɵɵtextInterpolate(ctx_r0.translation ? i0.ɵɵpipeBind1(5, 11, legend_r7.name) : legend_r7.name);
133
132
  } }
134
133
  function LegendComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
135
134
  i0.ɵɵelementStart(0, "ul", 15);
136
- i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 16)(2, LegendComponent_ng_template_3_li_2_Template, 6, 18, "li", 17);
135
+ i0.ɵɵtemplate(1, LegendComponent_ng_template_3_li_1_Template, 4, 4, "li", 16)(2, LegendComponent_ng_template_3_li_2_Template, 6, 15, "li", 17);
137
136
  i0.ɵɵelementEnd();
138
137
  } if (rf & 2) {
139
138
  const ctx_r0 = i0.ɵɵnextContext();
@@ -235,7 +234,7 @@ export class LegendComponent {
235
234
  }
236
235
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LegendComponent, [{
237
236
  type: Component,
238
- args: [{ selector: 'acl-base-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(leftOperation)\"\n>\n <ng-container\n [ngTemplateOutlet]=\"leftOperation\"\n [ngTemplateOutletContext]=\"leftOperationContext\"\n ></ng-container>\n</div>\n\n<div\n class=\"legend-wrap operation\"\n *ngIf=\"!hideLegend\"\n>\n <ng-container *ngIf=\"!template; else custom\">\n <acl-view-legend-dropdown\n class=\"legend-vertical\"\n *ngIf=\"legendEntries.length > 3\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-view-legend-dropdown>\n <ng-container *ngIf=\"legendEntries.length < 4\">\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #custom>\n <ng-container *ngIf=\"isTemplateRef(template); else builtinTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{ context: legendEntries }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinTemplate>\n <ng-container [ngSwitch]=\"template\">\n <acl-view-legend-dropdown\n class=\"legend-vertical\"\n *ngSwitchCase=\"'dropdown'\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-view-legend-dropdown>\n </ng-container>\n </ng-template>\n </ng-template>\n</div>\n\n<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(rightOperation)\"\n>\n <ng-container [ngTemplateOutlet]=\"rightOperation\"></ng-container>\n</div>\n\n<ng-template #legendTemplate>\n <ul class=\"legend-labels\">\n <li\n class=\"select-all\"\n *ngIf=\"!noData && selectAllOperation && template === 'dropdown'\"\n >\n <aui-checkbox\n [(ngModel)]=\"allSelected\"\n (ngModelChange)=\"allSelect($event)\"\n >\n {{ selectAllName || ('select_all' | translate) }}\n </aui-checkbox>\n </li>\n <li\n class=\"legend-label\"\n [class.disable]=\"!legend.activate || noData\"\n [class.forbid]=\"noData\"\n [title]=\"(legend.activate ? 'click_hide' : 'click_show') | translate\"\n *ngFor=\"let legend of legendEntries; let i = index\"\n (click)=\"selected(legend)\"\n >\n <span\n [ngClass]=\"[symbolName, 'label-symbol']\"\n [style.background]=\"legend.color\"\n >\n </span>\n <span class=\"label-name\">{{\n translation ? (legend.name | translate: {}:true) : legend.name\n }}</span>\n </li>\n </ul>\n</ng-template>\n", styles: [":host{flex:1;display:flex;justify-content:flex-end;align-items:center}.legend-wrap{display:inline-block}.legend-wrap ul,.legend-wrap li{padding:0;margin:0;list-style:none}.legend-wrap .legend-labels{display:flex}.legend-wrap .legend-label{display:flex;align-items:center;cursor:pointer;justify-content:center}.legend-wrap .legend-label:not(:last-child){margin-right:12px}.legend-wrap .forbid{cursor:no-drop}.legend-wrap .label-name{font-size:12px;color:rgb(var(--aui-color-secondary-text));max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-wrap .label-symbol{margin-right:4px}.disable .label-symbol{background:rgb(var(--aui-color-n-6))!important}.disable .label-name{color:rgb(var(--aui-color-n-6))}.symbol-square{width:12px;height:12px;display:inline-block}.symbol-line{width:12px;height:2px;display:inline-block}.symbol-circle{width:6px;height:6px;border-radius:50%;display:inline-block}.operation{display:flex;justify-content:center;align-items:center;margin-left:8px}.select-all ::ng-deep .aui-checkbox{font-size:12px;line-height:16px;margin-bottom:8px}\n"] }]
237
+ args: [{ selector: 'acl-base-legend', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(leftOperation)\"\n>\n <ng-container\n [ngTemplateOutlet]=\"leftOperation\"\n [ngTemplateOutletContext]=\"leftOperationContext\"\n ></ng-container>\n</div>\n\n<div\n class=\"legend-wrap operation\"\n *ngIf=\"!hideLegend\"\n>\n <ng-container *ngIf=\"!template; else custom\">\n <acl-view-legend-dropdown\n class=\"legend-vertical\"\n *ngIf=\"legendEntries.length > 3\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-view-legend-dropdown>\n <ng-container *ngIf=\"legendEntries.length < 4\">\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #custom>\n <ng-container *ngIf=\"isTemplateRef(template); else builtinTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{ context: legendEntries }\"\n ></ng-container>\n </ng-container>\n <ng-template #builtinTemplate>\n <ng-container [ngSwitch]=\"template\">\n <acl-view-legend-dropdown\n class=\"legend-vertical\"\n *ngSwitchCase=\"'dropdown'\"\n [data]=\"legendEntries\"\n [noData]=\"noData\"\n [legendTemplate]=\"legendTemplate\"\n [isCard]=\"mode === 'card'\"\n >\n </acl-view-legend-dropdown>\n </ng-container>\n </ng-template>\n </ng-template>\n</div>\n\n<div\n class=\"operation\"\n *ngIf=\"isTemplateRef(rightOperation)\"\n>\n <ng-container [ngTemplateOutlet]=\"rightOperation\"></ng-container>\n</div>\n\n<ng-template #legendTemplate>\n <ul class=\"legend-labels\">\n <li\n class=\"select-all\"\n *ngIf=\"!noData && selectAllOperation && template === 'dropdown'\"\n >\n <aui-checkbox\n [(ngModel)]=\"allSelected\"\n (ngModelChange)=\"allSelect($event)\"\n >\n {{ selectAllName || ('select_all' | translate) }}\n </aui-checkbox>\n </li>\n <li\n class=\"legend-label\"\n [class.disable]=\"!legend.activate || noData\"\n [class.forbid]=\"noData\"\n [title]=\"(legend.activate ? 'click_hide' : 'click_show') | translate\"\n *ngFor=\"let legend of legendEntries; let i = index\"\n (click)=\"selected(legend)\"\n >\n <span\n [ngClass]=\"[symbolName, 'label-symbol']\"\n [style.background]=\"legend.color\"\n >\n </span>\n <span class=\"label-name\">{{\n translation ? (legend.name | translate) : legend.name\n }}</span>\n </li>\n </ul>\n</ng-template>\n", styles: [":host{flex:1;display:flex;justify-content:flex-end;align-items:center}.legend-wrap{display:inline-block}.legend-wrap ul,.legend-wrap li{padding:0;margin:0;list-style:none}.legend-wrap .legend-labels{display:flex}.legend-wrap .legend-label{display:flex;align-items:center;cursor:pointer;justify-content:center}.legend-wrap .legend-label:not(:last-child){margin-right:12px}.legend-wrap .forbid{cursor:no-drop}.legend-wrap .label-name{font-size:12px;color:rgb(var(--aui-color-secondary-text));max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-wrap .label-symbol{margin-right:4px}.disable .label-symbol{background:rgb(var(--aui-color-n-6))!important}.disable .label-name{color:rgb(var(--aui-color-n-6))}.symbol-square{width:12px;height:12px;display:inline-block}.symbol-line{width:12px;height:2px;display:inline-block}.symbol-circle{width:6px;height:6px;border-radius:50%;display:inline-block}.operation{display:flex;justify-content:center;align-items:center;margin-left:8px}.select-all ::ng-deep .aui-checkbox{font-size:12px;line-height:16px;margin-bottom:8px}\n"] }]
239
238
  }], () => [{ type: i0.ChangeDetectorRef }], { symbol: [{
240
239
  type: Input
241
240
  }], template: [{
@@ -262,4 +261,4 @@ export class LegendComponent {
262
261
  type: Output
263
262
  }] }); })();
264
263
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LegendComponent, { className: "LegendComponent", filePath: "view-zchart/legend/legend.component.ts", lineNumber: 36 }); })();
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQXlCLFVBQVUsRUFBUSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0lDZDFFLDhCQUdDO0lBQ0MsMkJBR2dCO0lBQ2xCLGlCQUFNOzs7SUFIRixjQUFrQztJQUNsQyxBQURBLHVEQUFrQyx3REFDYzs7O0lBU2hELCtDQVEyQjs7OztJQUZ6QixBQURBLEFBREEsQUFEQSwyQ0FBc0IseUJBQ0wscUNBQ2dCLGtDQUNQOzs7SUFHNUIsNkJBQStDO0lBQzdDLDRCQUFpRTs7Ozs7SUFBbkQsY0FBbUM7SUFBbkMsb0RBQW1DOzs7SUFYckQsNkJBQTZDO0lBVTNDLEFBVEEsK0hBT0MsMkZBRThDOzs7O0lBUDVDLGNBQThCO0lBQTlCLHNEQUE4QjtJQU9sQixjQUE4QjtJQUE5QixzREFBOEI7OztJQUs3Qyw2QkFBb0U7SUFDbEUsMkJBR2dCOzs7O0lBRmQsY0FBbUM7SUFDbkMsQUFEQSxrREFBbUMsNkVBQ21COzs7SUFLdEQsK0NBUTJCOzs7O0lBRnpCLEFBREEsQUFEQSxBQURBLDJDQUFzQix5QkFDTCxxQ0FD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VUFBVTtrQkFBbEIsS0FBSztZQUVHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFSSxZQUFZO2tCQUFyQixNQUFNOztrRkF2QkksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVGVtcGxhdGVSZWYgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ2hhcnQsIExlZ2VuZCBhcyBDaGFydExlZ2VuZCwgQ2hhcnRFdmVudCwgRGF0YSB9IGZyb20gJ3p6LWNoYXJ0JztcblxuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRJdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBhY3RpdmF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMZWdlbmRQYXlsb2FkIHtcbiAgbGVnZW5kOiBMZWdlbmRJdGVtO1xuICBzb3VyY2U6IExlZ2VuZEl0ZW1bXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWJhc2UtbGVnZW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xlZ2VuZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGVnZW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzeW1ib2w6ICdjaXJjbGUnIHwgJ3NxdWFyZScgfCAnbGluZScgPSAnbGluZSc7XG5cbiAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nIHwgJ2Ryb3Bkb3duJztcblxuICBASW5wdXQoKSBtb2RlOiAnY2FyZCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgdHJhbnNsYXRpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGxlZnRPcGVyYXRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgcmlnaHRPcGVyYXRpb246IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGNoYXJ0OiBDaGFydDtcblxuICBAT3V0cHV0KCkgY2hhbmdlTGVnZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxMZWdlbmRJdGVtW10+KCk7XG5cbiAgZ2V0IG5vRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5sZWdlbmRFbnRyaWVzPy5sZW5ndGggPT09IDAgfHwgIXRoaXMubGVnZW5kRW50cmllcztcbiAgfVxuXG4gIGdldCBsZWdlbmRJbnN0YW5jZSgpOiBDaGFydExlZ2VuZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnQ/LmNvbXBvbmVudHMuZ2V0KCdsZWdlbmQnKSBhcyBDaGFydExlZ2VuZDtcbiAgfVxuXG4gIGdldCBsZWdlbmRJdGVtKCk6IExlZ2VuZEl0ZW1bXSB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLmxlZ2VuZEluc3RhbmNlPy5nZXRMZWdlbmQoKSBhcyBMZWdlbmRJdGVtW10pPy5tYXAobGVnZW5kID0+ICh7XG4gICAgICAgIC4uLmxlZ2VuZCxcbiAgICAgICAgYWN0aXZhdGU6IHRydWUsXG4gICAgICB9KSkgfHwgW11cbiAgICApO1xuICB9XG5cbiAgbGVnZW5kRW50cmllczogTGVnZW5kSXRlbVtdID0gW107XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgYWxsU2VsZWN0ZWQgPSB0cnVlO1xuXG4gIGdldCBzeW1ib2xOYW1lKCkge1xuICAgIHJldHVybiBgc3ltYm9sLSR7dGhpcy5zeW1ib2x9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKHsgY2hhcnQgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFydC5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMubGVnZW5kRW50cmllcyA9IHRoaXMubGVnZW5kSXRlbTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSB0aGlzLmxlZ2VuZEl0ZW07XG5cbiAgICB0aGlzLmNoYXJ0Py5vbihDaGFydEV2ZW50LkRBVEFfQ0hBTkdFLCAoZGF0YTogRGF0YSkgPT4ge1xuICAgICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gZGF0YS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGQpID0+IFtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgLi4uKGQubmFtZVxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgY29sb3I6IGQuY29sb3IsXG4gICAgICAgICAgICAgICAgICBhY3RpdmF0ZTogIXRoaXMubGVnZW5kSW5zdGFuY2UuaW5hY3RpdmF0ZWRTZXQuaGFzKGQubmFtZSksXG4gICAgICAgICAgICAgICAgICBob3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogZC52YWx1ZXNbZC52YWx1ZXM/Lmxlbmd0aCAtIDFdLnksXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IGQsXG4gICAgICAgICAgICAgICAgICB1bml0OiBnZXQoZCwgJ3VuaXQnKSxcbiAgICAgICAgICAgICAgICAgIC4uLmQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgIF0sXG4gICAgICAgIFtdLFxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLmxlZ2VuZEVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlTGVnZW5kLm5leHQodGhpcy5sZWdlbmRFbnRyaWVzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0ZWQobGVnZW5kOiBMZWdlbmRJdGVtKSB7XG4gICAgdGhpcy5sZWdlbmRJbnN0YW5jZS5sZWdlbmRJdGVtQ2xpY2soe1xuICAgICAgbmFtZTogbGVnZW5kLm5hbWUsXG4gICAgICBhY3RpdmF0ZWQ6ICFsZWdlbmQuYWN0aXZhdGUsXG4gICAgfSk7XG4gICAgY29uc3QgbGVnZW5kSXRlbSA9IHRoaXMubGVnZW5kRW50cmllcy5maW5kKFxuICAgICAgaXRlbSA9PiBpdGVtLm5hbWUgPT09IGxlZ2VuZC5uYW1lLFxuICAgICk7XG4gICAgbGVnZW5kSXRlbS5hY3RpdmF0ZSA9ICFsZWdlbmQuYWN0aXZhdGU7XG4gICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYWxsU2VsZWN0KHNlbGVjdDogYm9vbGVhbikge1xuICAgIHRoaXMubGVnZW5kRW50cmllcy5mb3JFYWNoKGxlZ2VuZCA9PiB7XG4gICAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmxlZ2VuZEl0ZW1DbGljayh7XG4gICAgICAgIG5hbWU6IGxlZ2VuZC5uYW1lLFxuICAgICAgICBhY3RpdmF0ZWQ6IHNlbGVjdCxcbiAgICAgIH0pO1xuICAgICAgbGVnZW5kLmFjdGl2YXRlID0gc2VsZWN0O1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlTGVnZW5kLm5leHQodGhpcy5sZWdlbmRFbnRyaWVzKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihsZWZ0T3BlcmF0aW9uKVwiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWZ0T3BlcmF0aW9uXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwibGVmdE9wZXJhdGlvbkNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImxlZ2VuZC13cmFwIG9wZXJhdGlvblwiXG4gICpuZ0lmPVwiIWhpZGVMZWdlbmRcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRlbXBsYXRlOyBlbHNlIGN1c3RvbVwiPlxuICAgIDxhY2wtdmlldy1sZWdlbmQtZHJvcGRvd25cbiAgICAgIGNsYXNzPVwibGVnZW5kLXZlcnRpY2FsXCJcbiAgICAgICpuZ0lmPVwibGVnZW5kRW50cmllcy5sZW5ndGggPiAzXCJcbiAgICAgIFtkYXRhXT1cImxlZ2VuZEVudHJpZXNcIlxuICAgICAgW25vRGF0YV09XCJub0RhdGFcIlxuICAgICAgW2xlZ2VuZFRlbXBsYXRlXT1cImxlZ2VuZFRlbXBsYXRlXCJcbiAgICAgIFtpc0NhcmRdPVwibW9kZSA9PT0gJ2NhcmQnXCJcbiAgICA+XG4gICAgPC9hY2wtdmlldy1sZWdlbmQtZHJvcGRvd24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZ2VuZEVudHJpZXMubGVuZ3RoIDwgNFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsZWdlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b20+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYodGVtcGxhdGUpOyBlbHNlIGJ1aWx0aW5UZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KHRlbXBsYXRlKVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRleHQ6IGxlZ2VuZEVudHJpZXMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNidWlsdGluVGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0ZW1wbGF0ZVwiPlxuICAgICAgICA8YWNsLXZpZXctbGVnZW5kLWRyb3Bkb3duXG4gICAgICAgICAgY2xhc3M9XCJsZWdlbmQtdmVydGljYWxcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCJcbiAgICAgICAgICBbZGF0YV09XCJsZWdlbmRFbnRyaWVzXCJcbiAgICAgICAgICBbbm9EYXRhXT1cIm5vRGF0YVwiXG4gICAgICAgICAgW2xlZ2VuZFRlbXBsYXRlXT1cImxlZ2VuZFRlbXBsYXRlXCJcbiAgICAgICAgICBbaXNDYXJkXT1cIm1vZGUgPT09ICdjYXJkJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9hY2wtdmlldy1sZWdlbmQtZHJvcGRvd24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXZcbiAgY2xhc3M9XCJvcGVyYXRpb25cIlxuICAqbmdJZj1cImlzVGVtcGxhdGVSZWYocmlnaHRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyaWdodE9wZXJhdGlvblwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gIDx1bCBjbGFzcz1cImxlZ2VuZC1sYWJlbHNcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwic2VsZWN0LWFsbFwiXG4gICAgICAqbmdJZj1cIiFub0RhdGEgJiYgc2VsZWN0QWxsT3BlcmF0aW9uICYmIHRlbXBsYXRlID09PSAnZHJvcGRvd24nXCJcbiAgICA+XG4gICAgICA8YXVpLWNoZWNrYm94XG4gICAgICAgIFsobmdNb2RlbCldPVwiYWxsU2VsZWN0ZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhbGxTZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIHt7IHNlbGVjdEFsbE5hbWUgfHwgKCdzZWxlY3RfYWxsJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvYXVpLWNoZWNrYm94PlxuICAgIDwvbGk+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cImxlZ2VuZC1sYWJlbFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZV09XCIhbGVnZW5kLmFjdGl2YXRlIHx8IG5vRGF0YVwiXG4gICAgICBbY2xhc3MuZm9yYmlkXT1cIm5vRGF0YVwiXG4gICAgICBbdGl0bGVdPVwiKGxlZ2VuZC5hY3RpdmF0ZSA/ICdjbGlja19oaWRlJyA6ICdjbGlja19zaG93JykgfCB0cmFuc2xhdGVcIlxuICAgICAgKm5nRm9yPVwibGV0IGxlZ2VuZCBvZiBsZWdlbmRFbnRyaWVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RlZChsZWdlbmQpXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbbmdDbGFzc109XCJbc3ltYm9sTmFtZSwgJ2xhYmVsLXN5bWJvbCddXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwibGVnZW5kLmNvbG9yXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtbmFtZVwiPnt7XG4gICAgICAgIHRyYW5zbGF0aW9uID8gKGxlZ2VuZC5uYW1lIHwgdHJhbnNsYXRlOiB7fTp0cnVlKSA6IGxlZ2VuZC5uYW1lXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQXlCLFVBQVUsRUFBUSxNQUFNLFVBQVUsQ0FBQzs7Ozs7SUNkMUUsOEJBR0M7SUFDQywyQkFHZ0I7SUFDbEIsaUJBQU07OztJQUhGLGNBQWtDO0lBQ2xDLEFBREEsdURBQWtDLHdEQUNjOzs7SUFTaEQsK0NBUTJCOzs7O0lBRnpCLEFBREEsQUFEQSxBQURBLDJDQUFzQix5QkFDTCxxQ0FDZ0Isa0NBQ1A7OztJQUc1Qiw2QkFBK0M7SUFDN0MsNEJBQWlFOzs7OztJQUFuRCxjQUFtQztJQUFuQyxvREFBbUM7OztJQVhyRCw2QkFBNkM7SUFVM0MsQUFUQSwrSEFPQywyRkFFOEM7Ozs7SUFQNUMsY0FBOEI7SUFBOUIsc0RBQThCO0lBT2xCLGNBQThCO0lBQTlCLHNEQUE4Qjs7O0lBSzdDLDZCQUFvRTtJQUNsRSwyQkFHZ0I7Ozs7SUFGZCxjQUFtQztJQUNuQyxBQURBLGtEQUFtQyw2RUFDbUI7OztJQUt0RCwrQ0FRMkI7Ozs7SUFGekIsQUFEQSxBQURBLEFBREEsMkNBQXNCLHlCQUNMLHFDQUNn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QUFVO2tCQUFsQixLQUFLO1lBRUcsa0JBQWtCO2tCQUExQixLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUVJLFlBQVk7a0JBQXJCLE1BQU07O2tGQXZCSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDaGFydCwgTGVnZW5kIGFzIENoYXJ0TGVnZW5kLCBDaGFydEV2ZW50LCBEYXRhIH0gZnJvbSAnenotY2hhcnQnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2VuZEl0ZW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGFjdGl2YXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIExlZ2VuZFBheWxvYWQge1xuICBsZWdlbmQ6IExlZ2VuZEl0ZW07XG4gIHNvdXJjZTogTGVnZW5kSXRlbVtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYmFzZS1sZWdlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGVnZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBMZWdlbmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHN5bWJvbDogJ2NpcmNsZScgfCAnc3F1YXJlJyB8ICdsaW5lJyA9ICdsaW5lJztcblxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmcgfCAnZHJvcGRvd24nO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSB0cmFuc2xhdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBASW5wdXQoKSByaWdodE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZUxlZ2VuZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxPcGVyYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZWxlY3RBbGxOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY2hhcnQ6IENoYXJ0O1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2VMZWdlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPExlZ2VuZEl0ZW1bXT4oKTtcblxuICBnZXQgbm9EYXRhKCkge1xuICAgIHJldHVybiB0aGlzLmxlZ2VuZEVudHJpZXM/Lmxlbmd0aCA9PT0gMCB8fCAhdGhpcy5sZWdlbmRFbnRyaWVzO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZEluc3RhbmNlKCk6IENoYXJ0TGVnZW5kIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydD8uY29tcG9uZW50cy5nZXQoJ2xlZ2VuZCcpIGFzIENoYXJ0TGVnZW5kO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZEl0ZW0oKTogTGVnZW5kSXRlbVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMubGVnZW5kSW5zdGFuY2U/LmdldExlZ2VuZCgpIGFzIExlZ2VuZEl0ZW1bXSk/Lm1hcChsZWdlbmQgPT4gKHtcbiAgICAgICAgLi4ubGVnZW5kLFxuICAgICAgICBhY3RpdmF0ZTogdHJ1ZSxcbiAgICAgIH0pKSB8fCBbXVxuICAgICk7XG4gIH1cblxuICBsZWdlbmRFbnRyaWVzOiBMZWdlbmRJdGVtW10gPSBbXTtcblxuICBpc1RlbXBsYXRlUmVmID0gaXNUZW1wbGF0ZVJlZjtcblxuICBhbGxTZWxlY3RlZCA9IHRydWU7XG5cbiAgZ2V0IHN5bWJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIGBzeW1ib2wtJHt0aGlzLnN5bWJvbH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoeyBjaGFydCB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYXJ0LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5sZWdlbmRFbnRyaWVzID0gdGhpcy5sZWdlbmRJdGVtO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGVnZW5kRW50cmllcyA9IHRoaXMubGVnZW5kSXRlbTtcblxuICAgIHRoaXMuY2hhcnQ/Lm9uKENoYXJ0RXZlbnQuREFUQV9DSEFOR0UsIChkYXRhOiBEYXRhKSA9PiB7XG4gICAgICB0aGlzLmxlZ2VuZEVudHJpZXMgPSBkYXRhLnJlZHVjZShcbiAgICAgICAgKGFjYywgZCkgPT4gW1xuICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAuLi4oZC5uYW1lXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBkLm5hbWUsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogZC5jb2xvcixcbiAgICAgICAgICAgICAgICAgIGFjdGl2YXRlOiAhdGhpcy5sZWdlbmRJbnN0YW5jZS5pbmFjdGl2YXRlZFNldC5oYXMoZC5uYW1lKSxcbiAgICAgICAgICAgICAgICAgIGhvdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBkLnZhbHVlc1tkLnZhbHVlcz8ubGVuZ3RoIC0gMV0ueSxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogZCxcbiAgICAgICAgICAgICAgICAgIHVuaXQ6IGdldChkLCAndW5pdCcpLFxuICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMubGVnZW5kRW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RlZChsZWdlbmQ6IExlZ2VuZEl0ZW0pIHtcbiAgICB0aGlzLmxlZ2VuZEluc3RhbmNlLmxlZ2VuZEl0ZW1DbGljayh7XG4gICAgICBuYW1lOiBsZWdlbmQubmFtZSxcbiAgICAgIGFjdGl2YXRlZDogIWxlZ2VuZC5hY3RpdmF0ZSxcbiAgICB9KTtcbiAgICBjb25zdCBsZWdlbmRJdGVtID0gdGhpcy5sZWdlbmRFbnRyaWVzLmZpbmQoXG4gICAgICBpdGVtID0+IGl0ZW0ubmFtZSA9PT0gbGVnZW5kLm5hbWUsXG4gICAgKTtcbiAgICBsZWdlbmRJdGVtLmFjdGl2YXRlID0gIWxlZ2VuZC5hY3RpdmF0ZTtcbiAgICB0aGlzLmNoYW5nZUxlZ2VuZC5uZXh0KHRoaXMubGVnZW5kRW50cmllcyk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBhbGxTZWxlY3Qoc2VsZWN0OiBib29sZWFuKSB7XG4gICAgdGhpcy5sZWdlbmRFbnRyaWVzLmZvckVhY2gobGVnZW5kID0+IHtcbiAgICAgIHRoaXMubGVnZW5kSW5zdGFuY2UubGVnZW5kSXRlbUNsaWNrKHtcbiAgICAgICAgbmFtZTogbGVnZW5kLm5hbWUsXG4gICAgICAgIGFjdGl2YXRlZDogc2VsZWN0LFxuICAgICAgfSk7XG4gICAgICBsZWdlbmQuYWN0aXZhdGUgPSBzZWxlY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VMZWdlbmQubmV4dCh0aGlzLmxlZ2VuZEVudHJpZXMpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwib3BlcmF0aW9uXCJcbiAgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKGxlZnRPcGVyYXRpb24pXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZnRPcGVyYXRpb25cIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJsZWZ0T3BlcmF0aW9uQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwibGVnZW5kLXdyYXAgb3BlcmF0aW9uXCJcbiAgKm5nSWY9XCIhaGlkZUxlZ2VuZFwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGVtcGxhdGU7IGVsc2UgY3VzdG9tXCI+XG4gICAgPGFjbC12aWV3LWxlZ2VuZC1kcm9wZG93blxuICAgICAgY2xhc3M9XCJsZWdlbmQtdmVydGljYWxcIlxuICAgICAgKm5nSWY9XCJsZWdlbmRFbnRyaWVzLmxlbmd0aCA+IDNcIlxuICAgICAgW2RhdGFdPVwibGVnZW5kRW50cmllc1wiXG4gICAgICBbbm9EYXRhXT1cIm5vRGF0YVwiXG4gICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgW2lzQ2FyZF09XCJtb2RlID09PSAnY2FyZCdcIlxuICAgID5cbiAgICA8L2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGVnZW5kRW50cmllcy5sZW5ndGggPCA0XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZ2VuZFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0ZW1wbGF0ZSk7IGVsc2UgYnVpbHRpblRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGV4dDogbGVnZW5kRW50cmllcyB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2J1aWx0aW5UZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRlbXBsYXRlXCI+XG4gICAgICAgIDxhY2wtdmlldy1sZWdlbmQtZHJvcGRvd25cbiAgICAgICAgICBjbGFzcz1cImxlZ2VuZC12ZXJ0aWNhbFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIlxuICAgICAgICAgIFtkYXRhXT1cImxlZ2VuZEVudHJpZXNcIlxuICAgICAgICAgIFtub0RhdGFdPVwibm9EYXRhXCJcbiAgICAgICAgICBbbGVnZW5kVGVtcGxhdGVdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgIFtpc0NhcmRdPVwibW9kZSA9PT0gJ2NhcmQnXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FjbC12aWV3LWxlZ2VuZC1kcm9wZG93bj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cIm9wZXJhdGlvblwiXG4gICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZihyaWdodE9wZXJhdGlvbilcIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJpZ2h0T3BlcmF0aW9uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwibGVnZW5kLWxhYmVsc1wiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJzZWxlY3QtYWxsXCJcbiAgICAgICpuZ0lmPVwiIW5vRGF0YSAmJiBzZWxlY3RBbGxPcGVyYXRpb24gJiYgdGVtcGxhdGUgPT09ICdkcm9wZG93bidcIlxuICAgID5cbiAgICAgIDxhdWktY2hlY2tib3hcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAge3sgc2VsZWN0QWxsTmFtZSB8fCAoJ3NlbGVjdF9hbGwnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9hdWktY2hlY2tib3g+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwibGVnZW5kLWxhYmVsXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlXT1cIiFsZWdlbmQuYWN0aXZhdGUgfHwgbm9EYXRhXCJcbiAgICAgIFtjbGFzcy5mb3JiaWRdPVwibm9EYXRhXCJcbiAgICAgIFt0aXRsZV09XCIobGVnZW5kLmFjdGl2YXRlID8gJ2NsaWNrX2hpZGUnIDogJ2NsaWNrX3Nob3cnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kIG9mIGxlZ2VuZEVudHJpZXM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdGVkKGxlZ2VuZClcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIFtuZ0NsYXNzXT1cIltzeW1ib2xOYW1lLCAnbGFiZWwtc3ltYm9sJ11cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJsZWdlbmQuY29sb3JcIlxuICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1uYW1lXCI+e3tcbiAgICAgICAgdHJhbnNsYXRpb24gPyAobGVnZW5kLm5hbWUgfCB0cmFuc2xhdGUpIDogbGVnZW5kLm5hbWVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -20,7 +20,6 @@ const _c2 = ["tooltipItemVirtual"];
20
20
  const _c3 = ["tooltipTitleVirtual"];
21
21
  const _c4 = ["tooltipNameVirtual"];
22
22
  const _c5 = ["pieLabelContainer"];
23
- const _c6 = () => ({});
24
23
  function ViewZChartComponent_ng_container_2_div_3_Template(rf, ctx) { if (rf & 1) {
25
24
  i0.ɵɵelementStart(0, "div", 24);
26
25
  i0.ɵɵelementContainer(1, 18);
@@ -199,7 +198,7 @@ function ViewZChartComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
199
198
  i0.ɵɵpipe(1, "translate");
200
199
  } if (rf & 2) {
201
200
  const ctx_r3 = i0.ɵɵnextContext();
202
- i0.ɵɵtextInterpolate2(" ", ctx_r3.title, " ", ctx_r3.unit ? "(" + i0.ɵɵpipeBind3(1, 2, ctx_r3.unit, i0.ɵɵpureFunction0(6, _c6), true) + ")" : "", "\n");
201
+ i0.ɵɵtextInterpolate2(" ", ctx_r3.title, " ", ctx_r3.unit ? "(" + i0.ɵɵpipeBind1(1, 2, ctx_r3.unit) + ")" : "", "\n");
203
202
  } }
204
203
  function ViewZChartComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
205
204
  i0.ɵɵtext(0);
@@ -245,7 +244,6 @@ export class ViewZChartComponent {
245
244
  get chartEl() {
246
245
  return this.chartContainer.nativeElement;
247
246
  }
248
- // eslint-disable-next-line sonarjs/cognitive-complexity
249
247
  get options() {
250
248
  const defaultXAxisTickFormatter = this.isScaleTime
251
249
  ? (value) => dayjs(+value).format(this.dateAxisLabelFormats || DATE_TIME_FORMAT)
@@ -294,9 +292,7 @@ export class ViewZChartComponent {
294
292
  ? this.tooltipItemVirtual.nativeElement.innerHTML
295
293
  : this.tooltipItemContext.context;
296
294
  },
297
- nameFormatter: (name) => this.tooltipTranslation
298
- ? this.translate.get(name, null, true)
299
- : name,
295
+ nameFormatter: (name) => this.tooltipTranslation ? this.translate.get(name) : name,
300
296
  valueFormatter: this.valueFormatter,
301
297
  sort: this.tooltipSortMethod || this.tooltipAutoSort
302
298
  ? this.tooltipSortMethod
@@ -304,9 +300,7 @@ export class ViewZChartComponent {
304
300
  },
305
301
  };
306
302
  }
307
- constructor(
308
- // eslint-disable-next-line sonar/deprecation
309
- componentFactoryResolver, injector, appRef, translate, cdr, viewContainerRef, theme, el) {
303
+ constructor(componentFactoryResolver, injector, appRef, translate, cdr, viewContainerRef, theme, el) {
310
304
  this.componentFactoryResolver = componentFactoryResolver;
311
305
  this.injector = injector;
312
306
  this.appRef = appRef;
@@ -368,7 +362,7 @@ export class ViewZChartComponent {
368
362
  this.titleFormatter = (value, values) => {
369
363
  this.tooltipTitleContext = { context: { title: value, values } };
370
364
  const title = this.tooltipTranslation && !this.tooltipTitleTemplate
371
- ? this.translate.get(value, null, true) || value
365
+ ? this.translate.get(value) || value
372
366
  : value;
373
367
  this.cdr.markForCheck();
374
368
  return this.tooltipTitleTemplate
@@ -381,7 +375,7 @@ export class ViewZChartComponent {
381
375
  : this.defaultPointFormat(+data);
382
376
  return this.hideTooltipUnit && !this.unit
383
377
  ? res
384
- : `${res} ${this.translate.get(this.unit, null, true)}`;
378
+ : `${res} ${this.translate.get(this.unit)}`;
385
379
  };
386
380
  }
387
381
  ngAfterViewInit() {
@@ -403,7 +397,6 @@ export class ViewZChartComponent {
403
397
  this.ngOnDestroy();
404
398
  this.chartInit();
405
399
  }
406
- // eslint-disable-next-line sonarjs/cognitive-complexity
407
400
  chartInit() {
408
401
  if (this.chartType === 'stat') {
409
402
  setTimeout(() => {
@@ -698,7 +691,7 @@ export class ViewZChartComponent {
698
691
  i0.ɵɵtemplate(4, ViewZChartComponent_div_4_Template, 5, 4, "div", 15);
699
692
  i0.ɵɵpipe(5, "async");
700
693
  i0.ɵɵelementEnd();
701
- i0.ɵɵtemplate(6, ViewZChartComponent_ng_template_6_Template, 2, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(8, ViewZChartComponent_ng_template_8_Template, 2, 7, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(10, ViewZChartComponent_ng_template_10_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
694
+ i0.ɵɵtemplate(6, ViewZChartComponent_ng_template_6_Template, 2, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(8, ViewZChartComponent_ng_template_8_Template, 2, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(10, ViewZChartComponent_ng_template_10_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
702
695
  i0.ɵɵelementStart(12, "div", 16, 3);
703
696
  i0.ɵɵelementContainer(14, 17);
704
697
  i0.ɵɵelementEnd();
@@ -801,7 +794,7 @@ __decorate([
801
794
  ], ViewZChartComponent.prototype, "chartStatus$", void 0);
802
795
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewZChartComponent, [{
803
796
  type: Component,
804
- args: [{ selector: 'acl-view-zchart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ac-chart\"\n [class.ac-non-chart]=\"chartType === 'pie'\"\n [style.background]=\"background\"\n>\n <ng-container [ngSwitch]=\"chartType\">\n <ng-container *ngSwitchCase=\"'stat'\">\n <div class=\"stat\">\n <div class=\"tw-flex\">\n <div\n class=\"achart-title tw-flex-1 tw-break-all\"\n *ngIf=\"!hideHeader\"\n >\n <ng-container [ngTemplateOutlet]=\"titleContainer\"></ng-container>\n </div>\n <div class=\"achart-legend\"></div>\n </div>\n <div\n class=\"stat\"\n *ngIf=\"series$ | async as statSeries\"\n >\n <div class=\"body\">\n <div\n class=\"item\"\n *ngFor=\"let item of statSeries\"\n >\n <div class=\"value\">{{ $any(item).value }}</div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div\n #chartContainer\n class=\"ac-chart-container\"\n style=\"height: 100%\"\n ></div>\n </ng-container>\n </ng-container>\n\n <div\n class=\"ac-chart-status\"\n *ngIf=\"status$ | async as status\"\n >\n <div\n *ngIf=\"status.failed && !status.loading\"\n class=\"status failed\"\n >\n <ng-container *ngIf=\"customErrorContainer; else noCustomErrorContainer\">\n <ng-container [ngTemplateOutlet]=\"customErrorContainer\"></ng-container>\n </ng-container>\n <ng-template #noCustomErrorContainer>\n <aui-icon\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n ></aui-icon>\n {{ 'failed_load_please' | translate }}\n <button\n aui-button=\"text\"\n (click)=\"refresh()\"\n >\n {{ ('refresh' | translate).toLowerCase() }}\n </button>\n </ng-template>\n </div>\n <div\n *ngIf=\"status.loading\"\n class=\"status loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon> {{ 'loading' | translate }}\n </div>\n <div\n *ngIf=\"status.noLegend && !status.loading && !status.noData\"\n class=\"status no-legend\"\n >\n {{ 'no_indicator_selected' | translate }}\n </div>\n\n <div\n *ngIf=\"status.noData && !status.loading && !status.failed\"\n class=\"status no-data\"\n >\n <ng-container\n *ngIf=\"\n customNoDataTitle && isTemplateRef(customNoDataTitle);\n else noDataTitleTemplate\n \"\n >\n <ng-container [ngTemplateOutlet]=\"customNoDataTitle\"></ng-container>\n </ng-container>\n <ng-template #noDataTitleTemplate>\n {{ customNoDataTitle || ('no_data' | translate) }}\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- title Template -->\n<ng-template #titleContainer>\n <ng-container *ngIf=\"isTemplateRef(title); else TitleTemplate\">\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isTemplateRef(titleDescription); else TitleDesTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"titleDescription\"\n [ngTemplateOutletContext]=\"titleDescriptionContext\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #TitleTemplate>\n {{ title }}\n {{ unit ? '(' + (unit | translate: {}:true) + ')' : '' }}\n</ng-template>\n\n<ng-template #TitleDesTemplate>\n {{ titleDescription }}\n</ng-template>\n\n<!-- tooltip template -->\n<div\n #tooltipItemVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipPointTemplate\"\n [ngTemplateOutletContext]=\"tooltipItemContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipTitleVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipTitleTemplate\"\n [ngTemplateOutletContext]=\"tooltipTitleContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipNameVirtual\n class=\"hide\"\n>\n <ng-container [ngTemplateOutlet]=\"tooltipPointNameTemplate\"></ng-container>\n</div>\n\n<ng-template #pieLabelContainer>\n <ng-container\n *ngIf=\"pieLabelText && isTemplateRef(pieLabelText); else stringPieLabelText\"\n >\n <ng-container [ngTemplateOutlet]=\"pieLabelText\"></ng-container>\n </ng-container>\n <ng-template #stringPieLabelText>\n {{ pieLabelText }}\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .achart-title{font-size:16px;word-break:break-word!important}:host ::ng-deep .achart-header{align-items:center}div.ac-non-chart{min-height:unset;padding:0}.ac-chart{display:flex;padding:20px 16px;width:100%;position:relative;height:210px;min-height:100%;max-height:100%;box-sizing:border-box;flex-direction:column}.ac-chart-container{width:100%}.ac-chart-status{left:50%;position:absolute;top:50%;white-space:nowrap;transform:translate(-50%,-50%)}.status{padding:6px 16px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-4));border-radius:2px}.status aui-icon{font-size:14px;margin-right:4px}.loading aui-icon{color:rgb(var(--aui-color-primary))}.failed aui-icon{color:rgb(var(--aui-color-red))}.hide{display:none}.stat{display:flex;flex-direction:column;width:100%;height:100%}.stat .body{display:flex;height:100%}.stat .item{flex:1;padding:12px;display:flex;align-items:center;justify-content:center;flex-direction:column}.stat .title{font-size:20px}.stat .value{font-size:60px;line-height:initial}\n"] }]
797
+ args: [{ selector: 'acl-view-zchart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ac-chart\"\n [class.ac-non-chart]=\"chartType === 'pie'\"\n [style.background]=\"background\"\n>\n <ng-container [ngSwitch]=\"chartType\">\n <ng-container *ngSwitchCase=\"'stat'\">\n <div class=\"stat\">\n <div class=\"tw-flex\">\n <div\n class=\"achart-title tw-flex-1 tw-break-all\"\n *ngIf=\"!hideHeader\"\n >\n <ng-container [ngTemplateOutlet]=\"titleContainer\"></ng-container>\n </div>\n <div class=\"achart-legend\"></div>\n </div>\n <div\n class=\"stat\"\n *ngIf=\"series$ | async as statSeries\"\n >\n <div class=\"body\">\n <div\n class=\"item\"\n *ngFor=\"let item of statSeries\"\n >\n <div class=\"value\">{{ $any(item).value }}</div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div\n #chartContainer\n class=\"ac-chart-container\"\n style=\"height: 100%\"\n ></div>\n </ng-container>\n </ng-container>\n\n <div\n class=\"ac-chart-status\"\n *ngIf=\"status$ | async as status\"\n >\n <div\n *ngIf=\"status.failed && !status.loading\"\n class=\"status failed\"\n >\n <ng-container *ngIf=\"customErrorContainer; else noCustomErrorContainer\">\n <ng-container [ngTemplateOutlet]=\"customErrorContainer\"></ng-container>\n </ng-container>\n <ng-template #noCustomErrorContainer>\n <aui-icon\n icon=\"exclamation_triangle_s\"\n background=\"triangle\"\n ></aui-icon>\n {{ 'failed_load_please' | translate }}\n <button\n aui-button=\"text\"\n (click)=\"refresh()\"\n >\n {{ ('refresh' | translate).toLowerCase() }}\n </button>\n </ng-template>\n </div>\n <div\n *ngIf=\"status.loading\"\n class=\"status loading\"\n >\n <aui-icon icon=\"spinner\"></aui-icon> {{ 'loading' | translate }}\n </div>\n <div\n *ngIf=\"status.noLegend && !status.loading && !status.noData\"\n class=\"status no-legend\"\n >\n {{ 'no_indicator_selected' | translate }}\n </div>\n\n <div\n *ngIf=\"status.noData && !status.loading && !status.failed\"\n class=\"status no-data\"\n >\n <ng-container\n *ngIf=\"\n customNoDataTitle && isTemplateRef(customNoDataTitle);\n else noDataTitleTemplate\n \"\n >\n <ng-container [ngTemplateOutlet]=\"customNoDataTitle\"></ng-container>\n </ng-container>\n <ng-template #noDataTitleTemplate>\n {{ customNoDataTitle || ('no_data' | translate) }}\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- title Template -->\n<ng-template #titleContainer>\n <ng-container *ngIf=\"isTemplateRef(title); else TitleTemplate\">\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isTemplateRef(titleDescription); else TitleDesTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"titleDescription\"\n [ngTemplateOutletContext]=\"titleDescriptionContext\"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #TitleTemplate>\n {{ title }}\n {{ unit ? '(' + (unit | translate) + ')' : '' }}\n</ng-template>\n\n<ng-template #TitleDesTemplate>\n {{ titleDescription }}\n</ng-template>\n\n<!-- tooltip template -->\n<div\n #tooltipItemVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipPointTemplate\"\n [ngTemplateOutletContext]=\"tooltipItemContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipTitleVirtual\n class=\"hide\"\n>\n <ng-container\n [ngTemplateOutlet]=\"tooltipTitleTemplate\"\n [ngTemplateOutletContext]=\"tooltipTitleContext\"\n ></ng-container>\n</div>\n\n<div\n #tooltipNameVirtual\n class=\"hide\"\n>\n <ng-container [ngTemplateOutlet]=\"tooltipPointNameTemplate\"></ng-container>\n</div>\n\n<ng-template #pieLabelContainer>\n <ng-container\n *ngIf=\"pieLabelText && isTemplateRef(pieLabelText); else stringPieLabelText\"\n >\n <ng-container [ngTemplateOutlet]=\"pieLabelText\"></ng-container>\n </ng-container>\n <ng-template #stringPieLabelText>\n {{ pieLabelText }}\n </ng-template>\n</ng-template>\n", styles: [":host{width:100%;height:100%;display:block}:host ::ng-deep .achart-title{font-size:16px;word-break:break-word!important}:host ::ng-deep .achart-header{align-items:center}div.ac-non-chart{min-height:unset;padding:0}.ac-chart{display:flex;padding:20px 16px;width:100%;position:relative;height:210px;min-height:100%;max-height:100%;box-sizing:border-box;flex-direction:column}.ac-chart-container{width:100%}.ac-chart-status{left:50%;position:absolute;top:50%;white-space:nowrap;transform:translate(-50%,-50%)}.status{padding:6px 16px;display:flex;align-items:center;justify-content:center;background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-n-4));border-radius:2px}.status aui-icon{font-size:14px;margin-right:4px}.loading aui-icon{color:rgb(var(--aui-color-primary))}.failed aui-icon{color:rgb(var(--aui-color-red))}.hide{display:none}.stat{display:flex;flex-direction:column;width:100%;height:100%}.stat .body{display:flex;height:100%}.stat .item{flex:1;padding:12px;display:flex;align-items:center;justify-content:center;flex-direction:column}.stat .title{font-size:20px}.stat .value{font-size:60px;line-height:initial}\n"] }]
805
798
  }], () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }, { type: i1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i2.ThemeService }, { type: i0.ElementRef }], { backgroundColor: [{
806
799
  type: Input
807
800
  }], hideHeader: [{
@@ -992,4 +985,4 @@ __decorate([
992
985
  type: Output
993
986
  }] }); })();
994
987
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewZChartComponent, { className: "ViewZChartComponent", filePath: "view-zchart/view-zchart.component.ts", lineNumber: 89 }); })();
995
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy16Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L3ZpZXctemNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC92aWV3LXpjaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxHQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsVUFBVSxFQUVWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUNMLGVBQWUsRUFDZixHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxFQUNULElBQUksRUFDSixZQUFZLEdBQ2IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsS0FBSyxFQUdMLFVBQVUsRUFDVixVQUFVLEdBS1gsTUFBTSxVQUFVLENBQUM7QUFHbEIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBRWYsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFB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LFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQU1OLFdBQVcsTUFFRixVQUFVO2tCQUFsQixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUdOLFdBQVcsTUFHWCxZQUFZLE1BRUYsWUFBWTtrQkFBckIsTUFBTTtZQUVHLGNBQWM7a0JBQXZCLE1BQU07WUFFRyxZQUFZO2tCQUFyQixNQUFNOztrRkE3UEksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFyQ29sdW1uUGFyYW1zLFxuICBDaGFydERhdGEsXG4gIFBlcmNlbnRhZ2UsXG4gIFNjYWxlVHlwZSxcbiAgVG9vbHRpcENvbnRleHQsXG59IGZyb20gJ0BhbGF1ZGEvY2hhcnQnO1xuaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiwgcmdiQ29sb3IsIFRoZW1lU2VydmljZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBEb21Qb3J0YWxPdXRsZXQsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1cnZlRmFjdG9yeSwgQ3VydmVGYWN0b3J5TGluZU9ubHkgfSBmcm9tICdkMyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgY29tYmluZUxhdGVzdCxcbiAgc3RhcnRXaXRoLFxuICBza2lwLFxuICBkZWJvdW5jZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2hhcnQsXG4gIE9wdGlvbnMsXG4gIFRvb2x0aXBWYWx1ZSxcbiAgQ2hhcnRFdmVudCxcbiAgQWN0aW9uVHlwZSxcbiAgQ2hhcnRPcHRpb24sXG4gIFRvb2x0aXBPcHQsXG4gIERhdGEsXG4gIExlZ2VuZCxcbn0gZnJvbSAnenotY2hhcnQnO1xuXG5pbXBvcnQgeyBBcmVhUG9zaXRpb24gfSBmcm9tICcuLi9jaGFydC9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIERBVEVfVElNRV9GT1JNQVQsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgU3RyaW5nTWFwLFxuICBWYWx1ZUhvb2ssXG4gIHB1Ymxpc2hSZWYsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBoYXNOb0RhdGEgfSBmcm9tICcuLi9tZXRyaWMtY2hhcnQvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFhQbG90TGluZXMgfSBmcm9tICcuLi92aWV3LWNoYXJ0L3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuL2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IGhhbmRsZURhdGVGb3JtYXQsIHBvaW50Rm9ybWF0IH0gZnJvbSAnLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENoYXJ0RGF0YUl0ZW0sIENoYXJ0U3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJ1c2hDb250ZXh0IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZSA9ICdsaW5lJyB8ICdhcmVhJyB8ICdiYXInIHwgJ3BvaW50JyB8ICdwaWUnIHwgJ3N0YXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdmlldy16Y2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy16Y2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LXpjaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVmlld1pDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0aXRsZUNvbnRhaW5lcicpIHRpdGxlQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwSXRlbVZpcnR1YWwnKSB0b29sdGlwSXRlbVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFRpdGxlVmlydHVhbCcpIHRvb2x0aXBUaXRsZVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcE5hbWVWaXJ0dWFsJykgdG9vbHRpcE5hbWVWaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpZUxhYmVsQ29udGFpbmVyJykgcGllTGFiZWxDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBjdXN0b21Ob0RhdGFUaXRsZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tRXJyb3JDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBncmlkT2Zmc2V0VG9wID0gMDtcblxuICBASW5wdXQoKSByb3RhdGVkOiBib29sZWFuO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcm90YXRlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8vIGJhc2VcbiAgQElucHV0KCkgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAnYXJlYSc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNoYXJ0VHlwZSQhOiBPYnNlcnZhYmxlPENoYXJ0VHlwZT47XG5cbiAgQElucHV0KCkgc2VyaWVzOiBDaGFydERhdGFbXTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHNlcmllcyQhOiBPYnNlcnZhYmxlPENoYXJ0RGF0YVtdPjtcblxuICBASW5wdXQoKSB4QWNjZXNzb3IgPSAoZDogQ2hhcnREYXRhSXRlbSkgPT4gZC54O1xuXG4gIEBJbnB1dCgpIHlBY2Nlc3NvciA9IChkOiBDaGFydERhdGFJdGVtKSA9PiBkLnk7XG5cbiAgQElucHV0KCkgdW5pdDogc3RyaW5nO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgdW5pdCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgY2FsbGJhY2tGaXJzdCA9IGZhbHNlO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKFxuICAgIHRoaXM6IFZpZXdaQ2hhcnRDb21wb25lbnQsXG4gICAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBDaGFydCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uICYmICF0aGlzLmNhbGxiYWNrRmlyc3QgJiYgdGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jYWxsYmFja0ZpcnN0ID0gdHJ1ZTtcbiAgICAgIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2hhcnQpO1xuICAgIH1cbiAgfSlcbiAgQElucHV0KClcbiAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBDaGFydCkgPT4gdm9pZDtcblxuICAvLyB0aXRsZVxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgdGl0bGVPZmZzZXRYOiBudW1iZXI7XG5cbiAgLy8gbGVnZW5kXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQgPSBmYWxzZTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGhpZGVMZWdlbmQkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGxlZ2VuZFRlbXBsYXRlJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc+O1xuXG4gIC8vIGN1c3RvbSBsZWdlbmRcbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgbGVmdE9wZXJhdGlvbkNvbnRleHQkITogT2JzZXJ2YWJsZTxTdHJpbmdNYXA+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsZWZ0T3BlcmF0aW9uJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmlnaHRPcGVyYXRpb24kITogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjx1bmtub3duPj47XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIC8vIHNjYWxlXG5cbiAgQElucHV0KCkgc2NhbGVZTWluOiBudW1iZXI7XG5cbiAgQElucHV0KCkgc2NhbGVZTWF4OiBudW1iZXI7XG5cbiAgLy8gYXhpc1xuXG4gIEBJbnB1dCgpIHlBeGlzVGlja1N1ZmZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRhdGVBeGlzTGFiZWxGb3JtYXRzOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgeEF4aXNMYWJlbFRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHhTY2FsZVR5cGU6IFNjYWxlVHlwZTtcblxuICBASW5wdXQoKSB4QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB0aWNrczogdW5rbm93bjtcblxuICBASW5wdXQoKSB5QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IG51bWJlciB8IHN0cmluZykgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB5QXhpc01pblN0ZXA/OiBudW1iZXI7XG5cbiAgLy8gdG9vbHRpcFxuICBASW5wdXQoKSB0b29sdGlwSGlkZTogYm9vbGVhbjtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHRvb2x0aXBIaWRlJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQElucHV0KCkgdG9vbHRpcEF1dG9Tb3J0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdG9vbHRpcFNvcnRNZXRob2QgPSAoYTogVG9vbHRpcFZhbHVlLCBiOiBUb29sdGlwVmFsdWUpID0+XG4gICAgYi52YWx1ZSAtIGEudmFsdWU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHRvb2x0aXBTb3J0TWV0aG9kJCE6IE9ic2VydmFibGU8KGE6IFRvb2x0aXBWYWx1ZSwgYjogVG9vbHRpcFZhbHVlKSA9PiBudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBIaWRlVGl0bGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcEFwcGVuZFRvQm9keSA9IHRydWU7XG5cbiAgQElucHV0KCkgdG9vbHRpcENvbHVtbkxheW91dDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwVGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50TmFtZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaGlkZVRvb2x0aXBVbml0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludEZvcm1hdDogKGQ6IG51bWJlcikgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRUZW1wbGF0ZUNvbnRleHQ6IHVua25vd247XG5cbiAgLy8gc2VyaWVzXG4gIEBJbnB1dCgpIGJhbmRXaWR0aCA9IDEwO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHN0ZXBMaW5lOiBib29sZWFuO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3RlcExpbmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIEBJbnB1dCgpIGN1cnZlVHlwZTogQ3VydmVGYWN0b3J5IHwgQ3VydmVGYWN0b3J5TGluZU9ubHk7XG5cbiAgQElucHV0KCkgYmFyVHlwZTogJ3N0YW5kYXJkJyB8ICdzdGFja2VkJyA9ICdzdGFuZGFyZCc7XG5cbiAgQElucHV0KCkgc3RhcnRPcGFjaXR5OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZW5kT3BhY2l0eTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGxpbmVXaWR0aD86IG51bWJlcjtcblxuICAvLyBiYXIgc2VyaWVzXG4gIEBJbnB1dCgpIGlzR3JvdXA6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYmFyUmFkaXVzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2xvc2VSYWRpdXNMYWRkZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY29sdW1uQ2xpY2s6IChkYXRhOiBCYXJDb2x1bW5QYXJhbXMpID0+IHZvaWQ7XG5cbiAgLy8gem9vbVxuICBASW5wdXQoKSBlbmFibGVab29tOiBib29sZWFuO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBlbmFibGVab29tJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKSBjaGFydFN0YXR1czogQ2hhcnRTdGF0dXM7XG5cbiAgLy8gcGxvdCBsaW5lXG4gIEBJbnB1dCgpIHlQbG90TGluZXNIaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgeVBsb3RMaW5lczogVG9vbHRpcENvbnRleHQ7XG5cbiAgLy8gcGllXG4gIEBJbnB1dCgpIHBpZUlubmVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZU91dGVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZVN0YXJ0QW5nbGU6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVFbmRBbmdsZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHBpZVRvdGFsOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllSW5uZXJEaXNjOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHBpZUxhYmVsVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcGllTGFiZWxQb3NpdGlvbjogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9O1xuXG4gIEBJbnB1dCgpIHBpZUl0ZW1TdHlsZT86IHtcbiAgICBib3JkZXJSYWRpdXM/OiBudW1iZXI7XG4gIH07XG5cbiAgLy8gc2NhdHRlclxuICBASW5wdXQoKSBzY2F0dGVyVHlwZTogJ2J1YmJsZSc7XG4gIEBJbnB1dCgpIHNjYXR0ZXJPcGFjaXR5OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJUaHJlc2hvbGQ6IHtcbiAgICBtaW5TaXplOiBudW1iZXI7XG4gICAgbWF4U2l6ZTogbnVtYmVyO1xuICB9O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB5UGxvdExpbmVzJCE6IE9ic2VydmFibGU8VG9vbHRpcENvbnRleHQ+O1xuXG4gIEBJbnB1dCgpIHhQbG90TGluZXM6IFhQbG90TGluZXM7XG5cbiAgQElucHV0KCkgeFBsb3RFbXB0eTogYm9vbGVhbjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgeFBsb3RMaW5lcyQhOiBPYnNlcnZhYmxlPFhQbG90TGluZXM+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjaGFydFN0YXR1cyQhOiBPYnNlcnZhYmxlPENoYXJ0U3RhdHVzPjtcblxuICBAT3V0cHV0KCkgbW91c2VVcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcmVhUG9zaXRpb24+KCk7XG5cbiAgQE91dHB1dCgpIG1hcmtDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sdGlwQ29udGV4dD4oKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgX2NoYXJ0U3RhdHVzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoYXJ0U3RhdHVzPih7XG4gICAgbG9hZGluZzogdHJ1ZSxcbiAgICBub0RhdGE6IGZhbHNlLFxuICAgIGZhaWxlZDogZmFsc2UsXG4gICAgbm9MZWdlbmQ6IGZhbHNlLFxuICB9KTtcblxuICBfc3RhdHVzOiBDaGFydFN0YXR1cyA9IHt9O1xuXG4gIGNoYXJ0OiBDaGFydDtcblxuICBjaGFydFJlYWN0aXZlOiBDaGFydE9wdGlvbjtcblxuICBhcmVhUG9zaXRpb246IEFyZWFQb3NpdGlvbiA9IHtcbiAgICB4MTogMCxcbiAgICB4MjogMCxcbiAgICBzdGFydFg6IDAsXG4gICAgZW5kWDogMCxcbiAgfTtcblxuICBzdGF0dXMkID0gbWVyZ2UodGhpcy5jaGFydFN0YXR1cyQsIHRoaXMuX2NoYXJ0U3RhdHVzJCQpLnBpcGUoXG4gICAgbWFwKHN0YXR1cyA9PiAoe1xuICAgICAgLi4udGhpcy5fc3RhdHVzLFxuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pKSxcbiAgICB0YXAoc3RhdHVzID0+IHtcbiAgICAgIHRoaXMuX3N0YXR1cyA9IHN0YXR1cztcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGJhY2tncm91bmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yO1xuICB9XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgY3VzdG9tTGVnZW5kUmVmOiBDb21wb25lbnRSZWY8TGVnZW5kQ29tcG9uZW50PjtcblxuICBjdXN0b21UaXRsZVJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIGN1c3RvbVBpZUxhYmVsVGV4dFJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIHRvb2x0aXBJdGVtQ29udGV4dDogeyBjb250ZXh0OiBUb29sdGlwVmFsdWVbXSB9ID0geyBjb250ZXh0OiBbXSB9O1xuXG4gIHRvb2x0aXBUaXRsZUNvbnRleHQ6IHsgY29udGV4dDogeyB0aXRsZTogc3RyaW5nOyB2YWx1ZXM6IFRvb2x0aXBWYWx1ZVtdIH0gfSA9XG4gICAgeyBjb250ZXh0OiBudWxsIH07XG5cbiAgZ2V0IGlzQ2FyZE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2NhcmQnO1xuICB9XG5cbiAgZ2V0IHNjYWxlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy54U2NhbGVUeXBlIHx8IFNjYWxlVHlwZS5USU1FO1xuICB9XG5cbiAgZ2V0IGlzU2NhbGVUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlVHlwZSA9PT0gU2NhbGVUeXBlLlRJTUU7XG4gIH1cblxuICBnZXQgY2hhcnRFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgZ2V0IG9wdGlvbnMoKTogT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdFhBeGlzVGlja0Zvcm1hdHRlciA9IHRoaXMuaXNTY2FsZVRpbWVcbiAgICAgID8gKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICAgICAgZGF5anMoK3ZhbHVlKS5mb3JtYXQodGhpcy5kYXRlQXhpc0xhYmVsRm9ybWF0cyB8fCBEQVRFX1RJTUVfRk9STUFUKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IHhBeGlzVGlja0Zvcm1hdHRlciA9XG4gICAgICB0aGlzLnhBeGlzVGlja0Zvcm1hdHRlciB8fCBkZWZhdWx0WEF4aXNUaWNrRm9ybWF0dGVyO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTpcbiAgICAgICAgdGhpcy5oaWRlVGl0bGUgfHwgdGhpcy5oaWRlSGVhZGVyXG4gICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICB0ZXh0OiB0aGlzLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgY3VzdG9tOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgIGxlZ2VuZDogdGhpcy5oaWRlSGVhZGVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBjdXN0b206IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgIHNjYWxlOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICB0aW1lOiAhIXRoaXMuaXNTY2FsZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICAuLi4odGhpcy5zY2FsZVlNaW4gJiYgeyBtaW46IHRoaXMuc2NhbGVZTWluIH0pLFxuICAgICAgICAgIC4uLih0aGlzLnNjYWxlWU1heCAmJiB7IG1heDogdGhpcy5zY2FsZVlNYXggfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYXhpczoge1xuICAgICAgICB4OiB7XG4gICAgICAgICAgZm9ybWF0dGVyOiB4QXhpc1RpY2tGb3JtYXR0ZXIsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBmb3JtYXR0ZXI6XG4gICAgICAgICAgICB0aGlzLnlBeGlzVGlja0Zvcm1hdHRlciB8fFxuICAgICAgICAgICAgKCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgICBgJHt0aGlzLmNvbnZlcnNpb25NYXhpbXVtKHZhbHVlKX0ke3RoaXMueUF4aXNUaWNrU3VmZml4IHx8ICcnfWApLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcEhpZGVcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHBvcHVwQ29udGFpbmVyOiB0aGlzLnRvb2x0aXBBcHBlbmRUb0JvZHkgPyBudWxsIDogdGhpcy5jaGFydEVsLFxuICAgICAgICAgICAgc2hvd1RpdGxlOiAhdGhpcy50b29sdGlwSGlkZVRpdGxlLFxuICAgICAgICAgICAgdGl0bGVGb3JtYXR0ZXI6IHRoaXMudGl0bGVGb3JtYXR0ZXIsXG4gICAgICAgICAgICBpdGVtRm9ybWF0dGVyOiAoY29udGV4dDogVG9vbHRpcFZhbHVlW10pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b29sdGlwSXRlbUNvbnRleHQgPSB0aGlzLm1lcmdlUG9pbnRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRvb2x0aXBJdGVtVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgICAgICAgICAgIDogdGhpcy50b29sdGlwSXRlbUNvbnRleHQuY29udGV4dDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lRm9ybWF0dGVyOiAobmFtZTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBUcmFuc2xhdGlvblxuICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGUuZ2V0KG5hbWUsIG51bGwsIHRydWUpXG4gICAgICAgICAgICAgICAgOiBuYW1lLFxuICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMudmFsdWVGb3JtYXR0ZXIsXG4gICAgICAgICAgICBzb3J0OlxuICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBTb3J0TWV0aG9kIHx8IHRoaXMudG9vbHRpcEF1dG9Tb3J0XG4gICAgICAgICAgICAgICAgPyB0aGlzLnRvb2x0aXBTb3J0TWV0aG9kXG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNhY2hlRGF0YTogRGF0YSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hci9kZXByZWNhdGlvblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0aGVtZTogVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm90YXRlZCQsIHRoaXMuY2hhcnRUeXBlJCwgdGhpcy5zdGVwTGluZSRdKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICAgICAgdGhpcy5yZUluaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVJbml0KCk7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnRJbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVJbml0KCkge1xuICAgIHRoaXMubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmNoYXJ0SW5pdCgpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgY2hhcnRJbml0KCkge1xuICAgIGlmICh0aGlzLmNoYXJ0VHlwZSA9PT0gJ3N0YXQnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGRDdXN0b21MZWdlbmQoKTtcbiAgICAgIH0sIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHtcbiAgICAgIGNvbnRhaW5lcjpcbiAgICAgICAgdGhpcy5jaGFydENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCB8fFxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFjLWNoYXJ0LWNvbnRhaW5lcicpLFxuICAgICAgcGFkZGluZzogWzE2LCAxMiwgMiwgMF0sXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICBkYXRhOiBbXSxcbiAgICB9KTtcbiAgICB0aGlzLmNoYXJ0UmVhY3RpdmUgPSB0aGlzLmNoYXJ0LnJlYWN0aXZlKCkgYXMgQ2hhcnRPcHRpb247XG4gICAgdGhpcy5oYW5kbGVPcHRpb25zUmVhY3RpdmUoKTtcbiAgICB0aGlzLnRoZW1lLmN1cnJlbnRUaGVtZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh0eXBlID0+IHtcbiAgICAgICAgdGhpcy5jaGFydC50aGVtZSh0eXBlKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZW5hYmxlWm9vbSQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZVpvb20pIHtcbiAgICAgICAgdGhpcy5jaGFydC5pbnRlcmFjdGlvbignYnJ1c2gteCcsIHtcbiAgICAgICAgICBlbmQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHJpZ2dlcjogQ2hhcnRFdmVudC5QTE9UX01PVVNFVVAsXG4gICAgICAgICAgICAgIGFjdGlvbjogQWN0aW9uVHlwZS5CUlVTSF9YX0VORCxcbiAgICAgICAgICAgICAgY2FsbGJhY2s6IChlOiBCcnVzaENvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdXNlVXBFdmVudC5uZXh0KHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0WDogZS5zdGFydCxcbiAgICAgICAgICAgICAgICAgIGVuZFg6IGUuZW5kLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdsaW5lJyB8fCB0aGlzLnN0ZXBMaW5lKSB7XG4gICAgICB0aGlzLnN0ZXBMaW5lID8gdGhpcy5jaGFydC5saW5lKCkuc3RlcCgnc3RhcnQnKSA6IHRoaXMuY2hhcnQubGluZSgpO1xuICAgIH0gZWxzZVxuICAgICAgc3dpdGNoICh0aGlzLmNoYXJ0VHlwZSkge1xuICAgICAgICBjYXNlICdhcmVhJzoge1xuICAgICAgICAgIHRoaXMuY2hhcnQuYXJlYSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICAgIHRoaXMuY2hhcnQucG9pbnQoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdiYXInOiB7XG4gICAgICAgICAgaWYgKHRoaXMuYmFyVHlwZSA9PT0gJ3N0YWNrZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LmJhcigpLmFkanVzdCh7IHR5cGU6ICdzdGFjaycgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuYmFyKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgaWYgKHRoaXMucm90YXRlZCkge1xuICAgICAgdGhpcy5jaGFydC5jb29yZGluYXRlKCkudHJhbnNwb3NlKCk7XG4gICAgfVxuICAgIHRoaXMuY2hhcnQucmVuZGVyKCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zZXJpZXMkLCB0aGlzLnhQbG90TGluZXMkLnBpcGUoc3RhcnRXaXRoKG51bGwpKV0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKFtkYXRhLCByZXNdKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuaGFuZGVsRGF0YShkYXRhKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWVzLmZpbHRlcihkID0+IGQubmFtZSkubGVuZ3RoICYmXG4gICAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICAgICAgICAgIC5tYXAodiA9PiB2Lm5hbWUpXG4gICAgICAgICAgICAgICAgLnNvbWUoZCA9PiAhdGhpcy5jYWNoZURhdGEubWFwKGMgPT4gYy5uYW1lKS5pbmNsdWRlcyhkKSkgJiZcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZURhdGEubGVuZ3RoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5yZUluaXQoKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlcz8uWzBdPy5uYW1lKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGVEYXRhID0gdmFsdWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jaGFydD8uZGF0YSh2YWx1ZXMgYXMgYW55KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5hZGRDdXN0b21UaXRsZSgpO1xuICAgICAgICAgICAgY29uc3Qgbm9EYXRhID0gaGFzTm9EYXRhKHZhbHVlcyk7XG4gICAgICAgICAgICB0aGlzLmhhbmRlbENoYXJ0U3RhdHVzKHtcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgIG5vRGF0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlcyAmJiAhbm9EYXRhKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hhcnQ/LmFubm90YXRpb24oKS5saW5lWShcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiByZXM/LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiByZXM/LnRleHQgfHwgU3RyaW5nKHJlcz8udmFsdWUpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRoaXMueFBsb3RFbXB0eSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2hhcnQ/LnJlbmRlcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbGVnZW5kID0gdGhpcy5jaGFydD8uY29tcG9uZW50cz8uZ2V0KCdsZWdlbmQnKSBhcyBMZWdlbmQ7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCAmJiBsZWdlbmQ/LmluYWN0aXZhdGVkU2V0Py5zaXplID4gMCkge1xuICAgICAgICAgICAgICAgIGxlZ2VuZC5pbmFjdGl2YXRlZFNldC5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZyA9IGxlZ2VuZFxuICAgICAgICAgICAgICAgICAgICAuZ2V0TGVnZW5kKClcbiAgICAgICAgICAgICAgICAgICAgLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGlmIChsZWcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVnZW5kLmxlZ2VuZEl0ZW1DbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogbGVnLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHRDYWxsYmFja0Z1bmN0aW9uICYmICF0aGlzLmNhbGxiYWNrRmlyc3QpIHtcbiAgICAgICAgdGhpcy5jYWxsYmFja0ZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb250ZXh0Q2FsbGJhY2tGdW5jdGlvbih0aGlzLmNoYXJ0KTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgICB0aGlzLmNoYXJ0Lm9uKENoYXJ0RXZlbnQuUExPVF9DTElDSywgKHZhbHVlOiBUb29sdGlwQ29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5tYXJrQ2xpY2tFdmVudC5uZXh0KHZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnlQbG90TGluZXMkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhcnQuYW5ub3RhdGlvbigpLmxpbmVYKHtcbiAgICAgICAgICAgIGRhdGE6IHJlcy50aXRsZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGRheWpzKHJlcy50aXRsZSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyksXG4gICAgICAgICAgICAgIGJvcmRlcjoge1xuICAgICAgICAgICAgICAgIHN0eWxlOiBgMXB4IHNvbGlkICR7cmdiQ29sb3IoJ24tNycpfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFkZEN1c3RvbUxlZ2VuZCgpO1xuICB9XG5cbiAgaGFuZGVsRGF0YShkYXRhOiBDaGFydERhdGFbXSkge1xuICAgIHJldHVybiBkYXRhLm1hcChkID0+ICh7XG4gICAgICAuLi5kLFxuICAgICAgdmFsdWVzOiBkLnZhbHVlcz8ubWFwKHYgPT4gKHtcbiAgICAgICAgLi4udixcbiAgICAgICAgeDogdGhpcy54QWNjZXNzb3IodiksXG4gICAgICAgIHk6IHRoaXMueUFjY2Vzc29yKHYpLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbiAgfVxuXG4gIGFkZEN1c3RvbUxlZ2VuZCgpIHtcbiAgICBjb25zdCBjb250YWluZXIgPVxuICAgICAgdGhpcy5jaGFydFR5cGUgPT09ICdzdGF0JyA/IHRoaXMuZWwubmF0aXZlRWxlbWVudCA6IHRoaXMuY2hhcnRFbDtcbiAgICBjb25zdCBkb20gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihgLmFjaGFydC1sZWdlbmRgKTtcbiAgICBpZiAoZG9tICYmICF0aGlzLmhpZGVIZWFkZXIpIHtcbiAgICAgIGRvbS5pbm5lckhUTUwgPSAnJztcbiAgICAgIGNvbnN0IHAgPSBuZXcgQ29tcG9uZW50UG9ydGFsKExlZ2VuZENvbXBvbmVudCk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmNoYXJ0ID0gdGhpcy5jaGFydDtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnN5bWJvbCA9IFsnYmFyJywgJ3BpZScsICdzY2F0dGVyJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuY2hhcnRUeXBlLFxuICAgICAgKVxuICAgICAgICA/ICdjaXJjbGUnXG4gICAgICAgIDogJ2xpbmUnO1xuICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uID0gdGhpcy5sZWZ0T3BlcmF0aW9uO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubGVmdE9wZXJhdGlvbkNvbnRleHQkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5sZWZ0T3BlcmF0aW9uQ29udGV4dCA9XG4gICAgICAgICAgICB0aGlzLmxlZnRPcGVyYXRpb25Db250ZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5yaWdodE9wZXJhdGlvbiQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UucmlnaHRPcGVyYXRpb24gPSB0aGlzLnJpZ2h0T3BlcmF0aW9uO1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5oaWRlTGVnZW5kID0gdGhpcy5oaWRlTGVnZW5kO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc2VsZWN0QWxsTmFtZSA9IHRoaXMubGVnZW5kU2VsZWN0QWxsTmFtZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLnNlbGVjdEFsbE9wZXJhdGlvbiA9XG4gICAgICAgIHRoaXMubGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UudGVtcGxhdGUgPSB0aGlzLmxlZ2VuZFRlbXBsYXRlO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuY2hhbmdlTGVnZW5kXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kZWxDaGFydFN0YXR1cyh7XG4gICAgICAgICAgICBub0xlZ2VuZDogcmVzLmV2ZXJ5KGl0ZW0gPT4gIWl0ZW0uYWN0aXZhdGUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhZGRDdXN0b21UaXRsZSgpIHtcbiAgICBjb25zdCBkb20gPSAoXG4gICAgICB0aGlzLmNoYXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnRcbiAgICApLnF1ZXJ5U2VsZWN0b3IoYC5hY2hhcnQtdGl0bGVgKTtcbiAgICBpZiAoZG9tICYmICF0aGlzLmhpZGVIZWFkZXIpIHtcbiAgICAgIGRvbS5pbm5lckhUTUwgPSAnJztcbiAgICAgIGNvbnN0IHAgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50aXRsZUNvbnRhaW5lciwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgIGNvbnN0IG8gPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICBkb20sXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgICB0aGlzLmN1c3RvbVRpdGxlUmVmID0gcC5hdHRhY2gobyk7XG4gICAgfVxuICB9XG5cbiAgYWRkUGllTGFiZWxUZXh0KGNoYXJ0VUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkb20gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFydFVJZH0gLmFjLXBpZS1ndWlkZWApO1xuICAgIGlmICghdGhpcy5jdXN0b21QaWVMYWJlbFRleHRSZWYgJiYgZG9tICYmIHRoaXMucGllTGFiZWxUZXh0KSB7XG4gICAgICBjb25zdCBwID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICB0aGlzLnBpZUxhYmVsQ29udGFpbmVyLFxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgICApO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tUGllTGFiZWxUZXh0UmVmID0gcC5hdHRhY2gobyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPcHRpb25zUmVhY3RpdmUoKSB7XG4gICAgdGhpcy50b29sdGlwSGlkZSRcbiAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShoaWRlID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNoYXJ0UmVhY3RpdmUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFydFJlYWN0aXZlLm9wdGlvbnMudG9vbHRpcCA9IGhpZGUgPyAhaGlkZSA6IHt9O1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmhpZGVMZWdlbmQkLnBpcGUoc2tpcCgxKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFkZEN1c3RvbUxlZ2VuZCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50b29sdGlwU29ydE1ldGhvZCRcbiAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh0b29sdGlwU29ydE1ldGhvZCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jaGFydFJlYWN0aXZlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoYXJ0UmVhY3RpdmUub3B0aW9ucy50b29sdGlwKSB7XG4gICAgICAgICAgKHRoaXMuY2hhcnRSZWFjdGl2ZS5vcHRpb25zLnRvb2x0aXAgYXMgVG9vbHRpcE9wdCkuc29ydCA9XG4gICAgICAgICAgICB0b29sdGlwU29ydE1ldGhvZCB8fCB0aGlzLnRvb2x0aXBBdXRvU29ydFxuICAgICAgICAgICAgICA/IHRvb2x0aXBTb3J0TWV0aG9kXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaEV2ZW50Lm5leHQobnVsbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGxiYWNrRmlyc3QgPSBmYWxzZTtcbiAgICB0aGlzLmNhY2hlRGF0YSA9IFtdO1xuICAgIHRoaXMuY2hhcnQ/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNoYXJ0ID0gbnVsbDtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmPy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IG1lcmdlUG9pbnRDb250ZXh0ID0gKGNvbnRleHQ6IFRvb2x0aXBWYWx1ZVtdKSA9PiAoe1xuICAgIGNvbnRleHQ6IHRoaXMubGltaXRNYXhDb250ZXh0KGNvbnRleHQpLFxuICAgIC4uLih0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlQ29udGV4dCBhcyBTdHJpbmdNYXApLFxuICB9KTtcblxuICBwcml2YXRlIGhhbmRlbENoYXJ0U3RhdHVzKHN0YXR1czogQ2hhcnRTdGF0dXMpIHtcbiAgICB0aGlzLl9jaGFydFN0YXR1cyQkLm5leHQoe1xuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRNYXhDb250ZXh0KGNvbnRleHQ6IFRvb2x0aXBWYWx1ZVtdLCBsaW1pdCA9IDE1KSB7XG4gICAgcmV0dXJuIGNvbnRleHQuc2xpY2UoMCwgbGltaXQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0UG9pbnRGb3JtYXQgPSBwb2ludEZvcm1hdDtcblxuICBwcml2YXRlIGNvbnZlcnNpb25NYXhpbXVtKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBjb25zdCB1bml0ID0gJ2snO1xuICAgIGNvbnN0IGRhdGEgPSBOdW1iZXIodmFsdWUpIHx8IDA7XG4gICAgaWYgKGRhdGEgPj0gMTAwMCkge1xuICAgICAgY29uc3QgbnVtID0gKyhkYXRhIC8gMTAwMCkudG9GaXhlZCgyKTtcbiAgICAgIHJldHVybiBgJHtudW19JHt1bml0fWA7XG4gICAgfVxuICAgIHJldHVybiAnJyArIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZUZvcm1hdHRlciA9ICh2YWx1ZTogc3RyaW5nLCB2YWx1ZXM6IFRvb2x0aXBWYWx1ZVtdKSA9PiB7XG4gICAgdGhpcy50b29sdGlwVGl0bGVDb250ZXh0ID0geyBjb250ZXh0OiB7IHRpdGxlOiB2YWx1ZSwgdmFsdWVzIH0gfTtcbiAgICBjb25zdCB0aXRsZSA9XG4gICAgICB0aGlzLnRvb2x0aXBUcmFuc2xhdGlvbiAmJiAhdGhpcy50b29sdGlwVGl0bGVUZW1wbGF0ZVxuICAgICAgICA/IHRoaXMudHJhbnNsYXRlLmdldCh2YWx1ZSwgbnVsbCwgdHJ1ZSkgfHwgdmFsdWVcbiAgICAgICAgOiB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICByZXR1cm4gdGhpcy50b29sdGlwVGl0bGVUZW1wbGF0ZVxuICAgICAgPyB0aGlzLnRvb2x0aXBUaXRsZVZpcnR1YWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUxcbiAgICAgIDogaGFuZGxlRGF0ZUZvcm1hdCh0aXRsZSk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZUZvcm1hdHRlciA9IChkYXRhOiBhbnkpID0+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdFxuICAgICAgPyB0aGlzLnRvb2x0aXBQb2ludEZvcm1hdChkYXRhKVxuICAgICAgOiB0aGlzLmRlZmF1bHRQb2ludEZvcm1hdCgrZGF0YSk7XG4gICAgcmV0dXJuIHRoaXMuaGlkZVRvb2x0aXBVbml0ICYmICF0aGlzLnVuaXRcbiAgICAgID8gKHJlcyBhcyBzdHJpbmcpXG4gICAgICA6IGAke3Jlc30gJHt0aGlzLnRyYW5zbGF0ZS5nZXQodGhpcy51bml0LCBudWxsLCB0cnVlKX1gO1xuICB9O1xufVxuIiwiPGRpdlxuICBjbGFzcz1cImFjLWNoYXJ0XCJcbiAgW2NsYXNzLmFjLW5vbi1jaGFydF09XCJjaGFydFR5cGUgPT09ICdwaWUnXCJcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNoYXJ0VHlwZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdGF0J1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXhcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImFjaGFydC10aXRsZSB0dy1mbGV4LTEgdHctYnJlYWstYWxsXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWhpZGVIZWFkZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVDb250YWluZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNoYXJ0LWxlZ2VuZFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic3RhdFwiXG4gICAgICAgICAgKm5nSWY9XCJzZXJpZXMkIHwgYXN5bmMgYXMgc3RhdFNlcmllc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdGF0U2VyaWVzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3sgJGFueShpdGVtKS52YWx1ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGRpdlxuICAgICAgICAjY2hhcnRDb250YWluZXJcbiAgICAgICAgY2xhc3M9XCJhYy1jaGFydC1jb250YWluZXJcIlxuICAgICAgICBzdHlsZT1cImhlaWdodDogMTAwJVwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImFjLWNoYXJ0LXN0YXR1c1wiXG4gICAgKm5nSWY9XCJzdGF0dXMkIHwgYXN5bmMgYXMgc3RhdHVzXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLmZhaWxlZCAmJiAhc3RhdHVzLmxvYWRpbmdcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgZmFpbGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRXJyb3JDb250YWluZXI7IGVsc2Ugbm9DdXN0b21FcnJvckNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUVycm9yQ29udGFpbmVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DdXN0b21FcnJvckNvbnRhaW5lcj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgaWNvbj1cImV4Y2xhbWF0aW9uX3RyaWFuZ2xlX3NcIlxuICAgICAgICAgIGJhY2tncm91bmQ9XCJ0cmlhbmdsZVwiXG4gICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICB7eyAnZmFpbGVkX2xvYWRfcGxlYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgKCdyZWZyZXNoJyB8IHRyYW5zbGF0ZSkudG9Mb3dlckNhc2UoKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubG9hZGluZ1wiXG4gICAgICBjbGFzcz1cInN0YXR1cyBsb2FkaW5nXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cInNwaW5uZXJcIj48L2F1aS1pY29uPiB7eyAnbG9hZGluZycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5ub0xlZ2VuZCAmJiAhc3RhdHVzLmxvYWRpbmcgJiYgIXN0YXR1cy5ub0RhdGFcIlxuICAgICAgY2xhc3M9XCJzdGF0dXMgbm8tbGVnZW5kXCJcbiAgICA+XG4gICAgICB7eyAnbm9faW5kaWNhdG9yX3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMubm9EYXRhICYmICFzdGF0dXMubG9hZGluZyAmJiAhc3RhdHVzLmZhaWxlZFwiXG4gICAgICBjbGFzcz1cInN0YXR1cyBuby1kYXRhXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgY3VzdG9tTm9EYXRhVGl0bGUgJiYgaXNUZW1wbGF0ZVJlZihjdXN0b21Ob0RhdGFUaXRsZSk7XG4gICAgICAgICAgZWxzZSBub0RhdGFUaXRsZVRlbXBsYXRlXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tTm9EYXRhVGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0RhdGFUaXRsZVRlbXBsYXRlPlxuICAgICAgICB7eyBjdXN0b21Ob0RhdGFUaXRsZSB8fCAoJ25vX2RhdGEnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSB0aXRsZSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVDb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRpdGxlKTsgZWxzZSBUaXRsZVRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZW1wbGF0ZVJlZih0aXRsZURlc2NyaXB0aW9uKTsgZWxzZSBUaXRsZURlc1RlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVEZXNjcmlwdGlvblwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidGl0bGVEZXNjcmlwdGlvbkNvbnRleHRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI1RpdGxlVGVtcGxhdGU+XG4gIHt7IHRpdGxlIH19XG4gIHt7IHVuaXQgPyAnKCcgKyAodW5pdCB8IHRyYW5zbGF0ZToge306dHJ1ZSkgKyAnKScgOiAnJyB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNUaXRsZURlc1RlbXBsYXRlPlxuICB7eyB0aXRsZURlc2NyaXB0aW9uIH19XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIHRvb2x0aXAgdGVtcGxhdGUgLS0+XG48ZGl2XG4gICN0b29sdGlwSXRlbVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBQb2ludFRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcEl0ZW1Db250ZXh0XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgI3Rvb2x0aXBUaXRsZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBUaXRsZVRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwidG9vbHRpcFRpdGxlQ29udGV4dFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2XG4gICN0b29sdGlwTmFtZVZpcnR1YWxcbiAgY2xhc3M9XCJoaWRlXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sdGlwUG9pbnROYW1lVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BpZUxhYmVsQ29udGFpbmVyPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJwaWVMYWJlbFRleHQgJiYgaXNUZW1wbGF0ZVJlZihwaWVMYWJlbFRleHQpOyBlbHNlIHN0cmluZ1BpZUxhYmVsVGV4dFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBpZUxhYmVsVGV4dFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNzdHJpbmdQaWVMYWJlbFRleHQ+XG4gICAge3sgcGllTGFiZWxUZXh0IH19XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
988
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy16Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3ZpZXctemNoYXJ0L3ZpZXctemNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy92aWV3LXpjaGFydC92aWV3LXpjaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUlMLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxHQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFFeEIsVUFBVSxFQUVWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUNMLGVBQWUsRUFDZixHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxhQUFhLEVBQ2IsU0FBUyxFQUNULElBQUksRUFDSixZQUFZLEdBQ2IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsS0FBSyxFQUdMLFVBQVUsRUFDVixVQUFVLEdBS1gsTUFBTSxVQUFVLENBQUM7QUFHbEIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBRWYsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFB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QUFVO2tCQUFsQixLQUFLO1lBRUcsVUFBVTtrQkFBbEIsS0FBSztZQUdOLFdBQVcsTUFHWCxZQUFZLE1BRUYsWUFBWTtrQkFBckIsTUFBTTtZQUVHLGNBQWM7a0JBQXZCLE1BQU07WUFFRyxZQUFZO2tCQUFyQixNQUFNOztrRkE3UEksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFyQ29sdW1uUGFyYW1zLFxuICBDaGFydERhdGEsXG4gIFBlcmNlbnRhZ2UsXG4gIFNjYWxlVHlwZSxcbiAgVG9vbHRpcENvbnRleHQsXG59IGZyb20gJ0BhbGF1ZGEvY2hhcnQnO1xuaW1wb3J0IHsgaXNUZW1wbGF0ZVJlZiwgcmdiQ29sb3IsIFRoZW1lU2VydmljZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBEb21Qb3J0YWxPdXRsZXQsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1cnZlRmFjdG9yeSwgQ3VydmVGYWN0b3J5TGluZU9ubHkgfSBmcm9tICdkMyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgY29tYmluZUxhdGVzdCxcbiAgc3RhcnRXaXRoLFxuICBza2lwLFxuICBkZWJvdW5jZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2hhcnQsXG4gIE9wdGlvbnMsXG4gIFRvb2x0aXBWYWx1ZSxcbiAgQ2hhcnRFdmVudCxcbiAgQWN0aW9uVHlwZSxcbiAgQ2hhcnRPcHRpb24sXG4gIFRvb2x0aXBPcHQsXG4gIERhdGEsXG4gIExlZ2VuZCxcbn0gZnJvbSAnenotY2hhcnQnO1xuXG5pbXBvcnQgeyBBcmVhUG9zaXRpb24gfSBmcm9tICcuLi9jaGFydC9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIERBVEVfVElNRV9GT1JNQVQsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgU3RyaW5nTWFwLFxuICBWYWx1ZUhvb2ssXG4gIHB1Ymxpc2hSZWYsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBoYXNOb0RhdGEgfSBmcm9tICcuLi9tZXRyaWMtY2hhcnQvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFhQbG90TGluZXMgfSBmcm9tICcuLi92aWV3LWNoYXJ0L3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuL2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IGhhbmRsZURhdGVGb3JtYXQsIHBvaW50Rm9ybWF0IH0gZnJvbSAnLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENoYXJ0RGF0YUl0ZW0sIENoYXJ0U3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJ1c2hDb250ZXh0IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIENoYXJ0VHlwZSA9ICdsaW5lJyB8ICdhcmVhJyB8ICdiYXInIHwgJ3BvaW50JyB8ICdwaWUnIHwgJ3N0YXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdmlldy16Y2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy16Y2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LXpjaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVmlld1pDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0aXRsZUNvbnRhaW5lcicpIHRpdGxlQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCd0b29sdGlwSXRlbVZpcnR1YWwnKSB0b29sdGlwSXRlbVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcFRpdGxlVmlydHVhbCcpIHRvb2x0aXBUaXRsZVZpcnR1YWw6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcE5hbWVWaXJ0dWFsJykgdG9vbHRpcE5hbWVWaXJ0dWFsOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpZUxhYmVsQ29udGFpbmVyJykgcGllTGFiZWxDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1vZGU6ICdjYXJkJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBjdXN0b21Ob0RhdGFUaXRsZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tRXJyb3JDb250YWluZXI6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIG1hcmdpbkxlZnQ6IG51bWJlcjtcblxuICBASW5wdXQoKSBncmlkT2Zmc2V0VG9wID0gMDtcblxuICBASW5wdXQoKSByb3RhdGVkOiBib29sZWFuO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcm90YXRlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8vIGJhc2VcbiAgQElucHV0KCkgY2hhcnRUeXBlOiBDaGFydFR5cGUgPSAnYXJlYSc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNoYXJ0VHlwZSQhOiBPYnNlcnZhYmxlPENoYXJ0VHlwZT47XG5cbiAgQElucHV0KCkgc2VyaWVzOiBDaGFydERhdGFbXTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHNlcmllcyQhOiBPYnNlcnZhYmxlPENoYXJ0RGF0YVtdPjtcblxuICBASW5wdXQoKSB4QWNjZXNzb3IgPSAoZDogQ2hhcnREYXRhSXRlbSkgPT4gZC54O1xuXG4gIEBJbnB1dCgpIHlBY2Nlc3NvciA9IChkOiBDaGFydERhdGFJdGVtKSA9PiBkLnk7XG5cbiAgQElucHV0KCkgdW5pdDogc3RyaW5nO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgdW5pdCQhOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgY2FsbGJhY2tGaXJzdCA9IGZhbHNlO1xuXG4gIEBWYWx1ZUhvb2soZnVuY3Rpb24gKFxuICAgIHRoaXM6IFZpZXdaQ2hhcnRDb21wb25lbnQsXG4gICAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBDaGFydCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgaWYgKGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uICYmICF0aGlzLmNhbGxiYWNrRmlyc3QgJiYgdGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jYWxsYmFja0ZpcnN0ID0gdHJ1ZTtcbiAgICAgIGNvbnRleHRDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2hhcnQpO1xuICAgIH1cbiAgfSlcbiAgQElucHV0KClcbiAgY29udGV4dENhbGxiYWNrRnVuY3Rpb246IChjb250ZXh0OiBDaGFydCkgPT4gdm9pZDtcblxuICAvLyB0aXRsZVxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgaGlkZVRpdGxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIHRpdGxlRGVzY3JpcHRpb25Db250ZXh0OiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KCkgdGl0bGVPZmZzZXRYOiBudW1iZXI7XG5cbiAgLy8gbGVnZW5kXG4gIEBJbnB1dCgpIGhpZGVMZWdlbmQgPSBmYWxzZTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGhpZGVMZWdlbmQkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKSBsZWdlbmRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGxlZ2VuZFRlbXBsYXRlJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc+O1xuXG4gIC8vIGN1c3RvbSBsZWdlbmRcbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgbGVmdE9wZXJhdGlvbkNvbnRleHQ6IFN0cmluZ01hcDtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgbGVmdE9wZXJhdGlvbkNvbnRleHQkITogT2JzZXJ2YWJsZTxTdHJpbmdNYXA+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBsZWZ0T3BlcmF0aW9uJCE6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8dW5rbm93bj4+O1xuXG4gIEBJbnB1dCgpIHJpZ2h0T3BlcmF0aW9uOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgcmlnaHRPcGVyYXRpb24kITogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjx1bmtub3duPj47XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsT3BlcmF0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbGVnZW5kU2VsZWN0QWxsTmFtZTogc3RyaW5nO1xuXG4gIC8vIHNjYWxlXG5cbiAgQElucHV0KCkgc2NhbGVZTWluOiBudW1iZXI7XG5cbiAgQElucHV0KCkgc2NhbGVZTWF4OiBudW1iZXI7XG5cbiAgLy8gYXhpc1xuXG4gIEBJbnB1dCgpIHlBeGlzVGlja1N1ZmZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRhdGVBeGlzTGFiZWxGb3JtYXRzOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgeEF4aXNMYWJlbFRyYW5zbGF0aW9uOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHhTY2FsZVR5cGU6IFNjYWxlVHlwZTtcblxuICBASW5wdXQoKSB4QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB0aWNrczogdW5rbm93bjtcblxuICBASW5wdXQoKSB5QXhpc1RpY2tGb3JtYXR0ZXI6IHN0cmluZyB8ICgodmFsdWU6IG51bWJlciB8IHN0cmluZykgPT4gc3RyaW5nKTtcblxuICBASW5wdXQoKSB5QXhpc01pblN0ZXA/OiBudW1iZXI7XG5cbiAgLy8gdG9vbHRpcFxuICBASW5wdXQoKSB0b29sdGlwSGlkZTogYm9vbGVhbjtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHRvb2x0aXBIaWRlJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgQElucHV0KCkgdG9vbHRpcEF1dG9Tb3J0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdG9vbHRpcFNvcnRNZXRob2QgPSAoYTogVG9vbHRpcFZhbHVlLCBiOiBUb29sdGlwVmFsdWUpID0+XG4gICAgYi52YWx1ZSAtIGEudmFsdWU7XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIHRvb2x0aXBTb3J0TWV0aG9kJCE6IE9ic2VydmFibGU8KGE6IFRvb2x0aXBWYWx1ZSwgYjogVG9vbHRpcFZhbHVlKSA9PiBudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBIaWRlVGl0bGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcEFwcGVuZFRvQm9keSA9IHRydWU7XG5cbiAgQElucHV0KCkgdG9vbHRpcENvbHVtbkxheW91dDogYm9vbGVhbjtcblxuICBASW5wdXQoKSB0b29sdGlwVGl0bGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdG9vbHRpcFBvaW50TmFtZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdG9vbHRpcFRpdGxlVHJhbnNsYXRpb246IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaGlkZVRvb2x0aXBVbml0OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludEZvcm1hdDogKGQ6IG51bWJlcikgPT4gbnVtYmVyIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHRvb2x0aXBQb2ludFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSB0b29sdGlwUG9pbnRUZW1wbGF0ZUNvbnRleHQ6IHVua25vd247XG5cbiAgLy8gc2VyaWVzXG4gIEBJbnB1dCgpIGJhbmRXaWR0aCA9IDEwO1xuXG4gIEBJbnB1dCgpIG1pbkhlaWdodDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHN0ZXBMaW5lOiBib29sZWFuO1xuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgc3RlcExpbmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIEBJbnB1dCgpIGN1cnZlVHlwZTogQ3VydmVGYWN0b3J5IHwgQ3VydmVGYWN0b3J5TGluZU9ubHk7XG5cbiAgQElucHV0KCkgYmFyVHlwZTogJ3N0YW5kYXJkJyB8ICdzdGFja2VkJyA9ICdzdGFuZGFyZCc7XG5cbiAgQElucHV0KCkgc3RhcnRPcGFjaXR5OiBudW1iZXI7XG5cbiAgQElucHV0KCkgZW5kT3BhY2l0eTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIGxpbmVXaWR0aD86IG51bWJlcjtcblxuICAvLyBiYXIgc2VyaWVzXG4gIEBJbnB1dCgpIGlzR3JvdXA6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYmFyUmFkaXVzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgY2xvc2VSYWRpdXNMYWRkZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY29sdW1uQ2xpY2s6IChkYXRhOiBCYXJDb2x1bW5QYXJhbXMpID0+IHZvaWQ7XG5cbiAgLy8gem9vbVxuICBASW5wdXQoKSBlbmFibGVab29tOiBib29sZWFuO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBlbmFibGVab29tJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBASW5wdXQoKSBjaGFydFN0YXR1czogQ2hhcnRTdGF0dXM7XG5cbiAgLy8gcGxvdCBsaW5lXG4gIEBJbnB1dCgpIHlQbG90TGluZXNIaWRlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgeVBsb3RMaW5lczogVG9vbHRpcENvbnRleHQ7XG5cbiAgLy8gcGllXG4gIEBJbnB1dCgpIHBpZUlubmVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZU91dGVyUmFkaXVzOiBudW1iZXIgfCBQZXJjZW50YWdlO1xuXG4gIEBJbnB1dCgpIHBpZVN0YXJ0QW5nbGU6IG51bWJlcjtcblxuICBASW5wdXQoKSBwaWVFbmRBbmdsZTogbnVtYmVyO1xuXG4gIEBJbnB1dCgpIHBpZUJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHBpZVRvdGFsOiBudW1iZXI7XG5cbiAgQElucHV0KCkgcGllSW5uZXJEaXNjOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHBpZUxhYmVsVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgcGllTGFiZWxQb3NpdGlvbjogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9O1xuXG4gIEBJbnB1dCgpIHBpZUl0ZW1TdHlsZT86IHtcbiAgICBib3JkZXJSYWRpdXM/OiBudW1iZXI7XG4gIH07XG5cbiAgLy8gc2NhdHRlclxuICBASW5wdXQoKSBzY2F0dGVyVHlwZTogJ2J1YmJsZSc7XG4gIEBJbnB1dCgpIHNjYXR0ZXJPcGFjaXR5OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNjYXR0ZXJUaHJlc2hvbGQ6IHtcbiAgICBtaW5TaXplOiBudW1iZXI7XG4gICAgbWF4U2l6ZTogbnVtYmVyO1xuICB9O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICB5UGxvdExpbmVzJCE6IE9ic2VydmFibGU8VG9vbHRpcENvbnRleHQ+O1xuXG4gIEBJbnB1dCgpIHhQbG90TGluZXM6IFhQbG90TGluZXM7XG5cbiAgQElucHV0KCkgeFBsb3RFbXB0eTogYm9vbGVhbjtcblxuICBAT2JzZXJ2YWJsZUlucHV0KClcbiAgeFBsb3RMaW5lcyQhOiBPYnNlcnZhYmxlPFhQbG90TGluZXM+O1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjaGFydFN0YXR1cyQhOiBPYnNlcnZhYmxlPENoYXJ0U3RhdHVzPjtcblxuICBAT3V0cHV0KCkgbW91c2VVcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcmVhUG9zaXRpb24+KCk7XG5cbiAgQE91dHB1dCgpIG1hcmtDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxUb29sdGlwQ29udGV4dD4oKTtcblxuICBAT3V0cHV0KCkgcmVmcmVzaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgX2NoYXJ0U3RhdHVzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoYXJ0U3RhdHVzPih7XG4gICAgbG9hZGluZzogdHJ1ZSxcbiAgICBub0RhdGE6IGZhbHNlLFxuICAgIGZhaWxlZDogZmFsc2UsXG4gICAgbm9MZWdlbmQ6IGZhbHNlLFxuICB9KTtcblxuICBfc3RhdHVzOiBDaGFydFN0YXR1cyA9IHt9O1xuXG4gIGNoYXJ0OiBDaGFydDtcblxuICBjaGFydFJlYWN0aXZlOiBDaGFydE9wdGlvbjtcblxuICBhcmVhUG9zaXRpb246IEFyZWFQb3NpdGlvbiA9IHtcbiAgICB4MTogMCxcbiAgICB4MjogMCxcbiAgICBzdGFydFg6IDAsXG4gICAgZW5kWDogMCxcbiAgfTtcblxuICBzdGF0dXMkID0gbWVyZ2UodGhpcy5jaGFydFN0YXR1cyQsIHRoaXMuX2NoYXJ0U3RhdHVzJCQpLnBpcGUoXG4gICAgbWFwKHN0YXR1cyA9PiAoe1xuICAgICAgLi4udGhpcy5fc3RhdHVzLFxuICAgICAgLi4uc3RhdHVzLFxuICAgIH0pKSxcbiAgICB0YXAoc3RhdHVzID0+IHtcbiAgICAgIHRoaXMuX3N0YXR1cyA9IHN0YXR1cztcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGJhY2tncm91bmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yO1xuICB9XG5cbiAgaXNUZW1wbGF0ZVJlZiA9IGlzVGVtcGxhdGVSZWY7XG5cbiAgY3VzdG9tTGVnZW5kUmVmOiBDb21wb25lbnRSZWY8TGVnZW5kQ29tcG9uZW50PjtcblxuICBjdXN0b21UaXRsZVJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIGN1c3RvbVBpZUxhYmVsVGV4dFJlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+O1xuXG4gIHRvb2x0aXBJdGVtQ29udGV4dDogeyBjb250ZXh0OiBUb29sdGlwVmFsdWVbXSB9ID0geyBjb250ZXh0OiBbXSB9O1xuXG4gIHRvb2x0aXBUaXRsZUNvbnRleHQ6IHsgY29udGV4dDogeyB0aXRsZTogc3RyaW5nOyB2YWx1ZXM6IFRvb2x0aXBWYWx1ZVtdIH0gfSA9XG4gICAgeyBjb250ZXh0OiBudWxsIH07XG5cbiAgZ2V0IGlzQ2FyZE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2NhcmQnO1xuICB9XG5cbiAgZ2V0IHNjYWxlVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy54U2NhbGVUeXBlIHx8IFNjYWxlVHlwZS5USU1FO1xuICB9XG5cbiAgZ2V0IGlzU2NhbGVUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLnNjYWxlVHlwZSA9PT0gU2NhbGVUeXBlLlRJTUU7XG4gIH1cblxuICBnZXQgY2hhcnRFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdFhBeGlzVGlja0Zvcm1hdHRlciA9IHRoaXMuaXNTY2FsZVRpbWVcbiAgICAgID8gKHZhbHVlOiBzdHJpbmcpID0+XG4gICAgICAgICAgZGF5anMoK3ZhbHVlKS5mb3JtYXQodGhpcy5kYXRlQXhpc0xhYmVsRm9ybWF0cyB8fCBEQVRFX1RJTUVfRk9STUFUKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IHhBeGlzVGlja0Zvcm1hdHRlciA9XG4gICAgICB0aGlzLnhBeGlzVGlja0Zvcm1hdHRlciB8fCBkZWZhdWx0WEF4aXNUaWNrRm9ybWF0dGVyO1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTpcbiAgICAgICAgdGhpcy5oaWRlVGl0bGUgfHwgdGhpcy5oaWRlSGVhZGVyXG4gICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICB0ZXh0OiB0aGlzLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgY3VzdG9tOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgIGxlZ2VuZDogdGhpcy5oaWRlSGVhZGVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBjdXN0b206IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgIHNjYWxlOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICB0aW1lOiAhIXRoaXMuaXNTY2FsZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICAuLi4odGhpcy5zY2FsZVlNaW4gJiYgeyBtaW46IHRoaXMuc2NhbGVZTWluIH0pLFxuICAgICAgICAgIC4uLih0aGlzLnNjYWxlWU1heCAmJiB7IG1heDogdGhpcy5zY2FsZVlNYXggfSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYXhpczoge1xuICAgICAgICB4OiB7XG4gICAgICAgICAgZm9ybWF0dGVyOiB4QXhpc1RpY2tGb3JtYXR0ZXIsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBmb3JtYXR0ZXI6XG4gICAgICAgICAgICB0aGlzLnlBeGlzVGlja0Zvcm1hdHRlciB8fFxuICAgICAgICAgICAgKCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgICBgJHt0aGlzLmNvbnZlcnNpb25NYXhpbXVtKHZhbHVlKX0ke3RoaXMueUF4aXNUaWNrU3VmZml4IHx8ICcnfWApLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcEhpZGVcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHBvcHVwQ29udGFpbmVyOiB0aGlzLnRvb2x0aXBBcHBlbmRUb0JvZHkgPyBudWxsIDogdGhpcy5jaGFydEVsLFxuICAgICAgICAgICAgc2hvd1RpdGxlOiAhdGhpcy50b29sdGlwSGlkZVRpdGxlLFxuICAgICAgICAgICAgdGl0bGVGb3JtYXR0ZXI6IHRoaXMudGl0bGVGb3JtYXR0ZXIsXG4gICAgICAgICAgICBpdGVtRm9ybWF0dGVyOiAoY29udGV4dDogVG9vbHRpcFZhbHVlW10pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b29sdGlwSXRlbUNvbnRleHQgPSB0aGlzLm1lcmdlUG9pbnRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBQb2ludFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRvb2x0aXBJdGVtVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgICAgICAgICAgIDogdGhpcy50b29sdGlwSXRlbUNvbnRleHQuY29udGV4dDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lRm9ybWF0dGVyOiAobmFtZTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBUcmFuc2xhdGlvbiA/IHRoaXMudHJhbnNsYXRlLmdldChuYW1lKSA6IG5hbWUsXG4gICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy52YWx1ZUZvcm1hdHRlcixcbiAgICAgICAgICAgIHNvcnQ6XG4gICAgICAgICAgICAgIHRoaXMudG9vbHRpcFNvcnRNZXRob2QgfHwgdGhpcy50b29sdGlwQXV0b1NvcnRcbiAgICAgICAgICAgICAgICA/IHRoaXMudG9vbHRpcFNvcnRNZXRob2RcbiAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgY2FjaGVEYXRhOiBEYXRhID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lOiBUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yb3RhdGVkJCwgdGhpcy5jaGFydFR5cGUkLCB0aGlzLnN0ZXBMaW5lJF0pLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgICAgICB0aGlzLnJlSW5pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZUluaXQoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIGlmICghdGhpcy5jaGFydCkge1xuICAgICAgdGhpcy5jaGFydEluaXQoKTtcbiAgICB9XG4gIH1cblxuICByZUluaXQoKSB7XG4gICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuY2hhcnRJbml0KCk7XG4gIH1cblxuICBjaGFydEluaXQoKSB7XG4gICAgaWYgKHRoaXMuY2hhcnRUeXBlID09PSAnc3RhdCcpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFkZEN1c3RvbUxlZ2VuZCgpO1xuICAgICAgfSwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoe1xuICAgICAgY29udGFpbmVyOlxuICAgICAgICB0aGlzLmNoYXJ0Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50IHx8XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWMtY2hhcnQtY29udGFpbmVyJyksXG4gICAgICBwYWRkaW5nOiBbMTYsIDEyLCAyLCAwXSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIGRhdGE6IFtdLFxuICAgIH0pO1xuICAgIHRoaXMuY2hhcnRSZWFjdGl2ZSA9IHRoaXMuY2hhcnQucmVhY3RpdmUoKSBhcyBDaGFydE9wdGlvbjtcbiAgICB0aGlzLmhhbmRsZU9wdGlvbnNSZWFjdGl2ZSgpO1xuICAgIHRoaXMudGhlbWUuY3VycmVudFRoZW1lJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHR5cGUgPT4ge1xuICAgICAgICB0aGlzLmNoYXJ0LnRoZW1lKHR5cGUpO1xuICAgICAgfSk7XG4gICAgdGhpcy5lbmFibGVab29tJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZW5hYmxlWm9vbSkge1xuICAgICAgICB0aGlzLmNoYXJ0LmludGVyYWN0aW9uKCdicnVzaC14Jywge1xuICAgICAgICAgIGVuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0cmlnZ2VyOiBDaGFydEV2ZW50LlBMT1RfTU9VU0VVUCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBBY3Rpb25UeXBlLkJSVVNIX1hfRU5ELFxuICAgICAgICAgICAgICBjYWxsYmFjazogKGU6IEJydXNoQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VVcEV2ZW50Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgc3RhcnRYOiBlLnN0YXJ0LFxuICAgICAgICAgICAgICAgICAgZW5kWDogZS5lbmQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLmNoYXJ0VHlwZSA9PT0gJ2xpbmUnIHx8IHRoaXMuc3RlcExpbmUpIHtcbiAgICAgIHRoaXMuc3RlcExpbmUgPyB0aGlzLmNoYXJ0LmxpbmUoKS5zdGVwKCdzdGFydCcpIDogdGhpcy5jaGFydC5saW5lKCk7XG4gICAgfSBlbHNlXG4gICAgICBzd2l0Y2ggKHRoaXMuY2hhcnRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ2FyZWEnOiB7XG4gICAgICAgICAgdGhpcy5jaGFydC5hcmVhKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgICAgdGhpcy5jaGFydC5wb2ludCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2Jhcic6IHtcbiAgICAgICAgICBpZiAodGhpcy5iYXJUeXBlID09PSAnc3RhY2tlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuYmFyKCkuYWRqdXN0KHsgdHlwZTogJ3N0YWNrJyB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFydC5iYXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBpZiAodGhpcy5yb3RhdGVkKSB7XG4gICAgICB0aGlzLmNoYXJ0LmNvb3JkaW5hdGUoKS50cmFuc3Bvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5jaGFydC5yZW5kZXIoKTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlcmllcyQsIHRoaXMueFBsb3RMaW5lcyQucGlwZShzdGFydFdpdGgobnVsbCkpXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMjAwKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoW2RhdGEsIHJlc10pID0+IHtcbiAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5oYW5kZWxEYXRhKGRhdGEpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZXMuZmlsdGVyKGQgPT4gZC5uYW1lKS5sZW5ndGggJiZcbiAgICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgICAgICAgICAgLm1hcCh2ID0+IHYubmFtZSlcbiAgICAgICAgICAgICAgICAuc29tZShkID0+ICF0aGlzLmNhY2hlRGF0YS5tYXAoYyA9PiBjLm5hbWUpLmluY2x1ZGVzKGQpKSAmJlxuICAgICAgICAgICAgICB0aGlzLmNhY2hlRGF0YS5sZW5ndGhcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnJlSW5pdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWVzPy5bMF0/Lm5hbWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZURhdGEgPSB2YWx1ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Py5kYXRhKHZhbHVlcyBhcyBhbnkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmFkZEN1c3RvbVRpdGxlKCk7XG4gICAgICAgICAgICBjb25zdCBub0RhdGEgPSBoYXNOb0RhdGEodmFsdWVzKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGVsQ2hhcnRTdGF0dXMoe1xuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgbm9EYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocmVzICYmICFub0RhdGEpIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGFydD8uYW5ub3RhdGlvbigpLmxpbmVZKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IHJlcz8udmFsdWUsXG4gICAgICAgICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlcz8udGV4dCB8fCBTdHJpbmcocmVzPy52YWx1ZSksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGhpcy54UGxvdEVtcHR5LFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jaGFydD8ucmVuZGVyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBsZWdlbmQgPSB0aGlzLmNoYXJ0Py5jb21wb25lbnRzPy5nZXQoJ2xlZ2VuZCcpIGFzIExlZ2VuZDtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwICYmIGxlZ2VuZD8uaW5hY3RpdmF0ZWRTZXQ/LnNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgbGVnZW5kLmluYWN0aXZhdGVkU2V0LmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGVnID0gbGVnZW5kXG4gICAgICAgICAgICAgICAgICAgIC5nZXRMZWdlbmQoKVxuICAgICAgICAgICAgICAgICAgICAuZmluZChpdGVtID0+IGl0ZW0ubmFtZSA9PT0gdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgaWYgKGxlZykge1xuICAgICAgICAgICAgICAgICAgICBsZWdlbmQubGVnZW5kSXRlbUNsaWNrKHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBsZWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29udGV4dENhbGxiYWNrRnVuY3Rpb24gJiYgIXRoaXMuY2FsbGJhY2tGaXJzdCkge1xuICAgICAgICB0aGlzLmNhbGxiYWNrRmlyc3QgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbnRleHRDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2hhcnQpO1xuICAgICAgfVxuICAgIH0sIDApO1xuICAgIHRoaXMuY2hhcnQub24oQ2hhcnRFdmVudC5QTE9UX0NMSUNLLCAodmFsdWU6IFRvb2x0aXBDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLm1hcmtDbGlja0V2ZW50Lm5leHQodmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMueVBsb3RMaW5lcyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFydC5hbm5vdGF0aW9uKCkubGluZVgoe1xuICAgICAgICAgICAgZGF0YTogcmVzLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgICAgY29udGVudDogZGF5anMocmVzLnRpdGxlKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSxcbiAgICAgICAgICAgICAgYm9yZGVyOiB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IGAxcHggc29saWQgJHtyZ2JDb2xvcignbi03Jyl9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuYWRkQ3VzdG9tTGVnZW5kKCk7XG4gIH1cblxuICBoYW5kZWxEYXRhKGRhdGE6IENoYXJ0RGF0YVtdKSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKGQgPT4gKHtcbiAgICAgIC4uLmQsXG4gICAgICB2YWx1ZXM6IGQudmFsdWVzPy5tYXAodiA9PiAoe1xuICAgICAgICAuLi52LFxuICAgICAgICB4OiB0aGlzLnhBY2Nlc3Nvcih2KSxcbiAgICAgICAgeTogdGhpcy55QWNjZXNzb3IodiksXG4gICAgICB9KSksXG4gICAgfSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tTGVnZW5kKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9XG4gICAgICB0aGlzLmNoYXJ0VHlwZSA9PT0gJ3N0YXQnID8gdGhpcy5lbC5uYXRpdmVFbGVtZW50IDogdGhpcy5jaGFydEVsO1xuICAgIGNvbnN0IGRvbSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAuYWNoYXJ0LWxlZ2VuZGApO1xuICAgIGlmIChkb20gJiYgIXRoaXMuaGlkZUhlYWRlcikge1xuICAgICAgZG9tLmlubmVySFRNTCA9ICcnO1xuICAgICAgY29uc3QgcCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTGVnZW5kQ29tcG9uZW50KTtcbiAgICAgIGNvbnN0IG8gPSBuZXcgRG9tUG9ydGFsT3V0bGV0KFxuICAgICAgICBkb20sXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZiA9IHAuYXR0YWNoKG8pO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UuY2hhcnQgPSB0aGlzLmNoYXJ0O1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc3ltYm9sID0gWydiYXInLCAncGllJywgJ3NjYXR0ZXInXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5jaGFydFR5cGUsXG4gICAgICApXG4gICAgICAgID8gJ2NpcmNsZSdcbiAgICAgICAgOiAnbGluZSc7XG4gICAgICB0aGlzLmxlZnRPcGVyYXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmxlZnRPcGVyYXRpb24gPSB0aGlzLmxlZnRPcGVyYXRpb247XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5sZWZ0T3BlcmF0aW9uQ29udGV4dCRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmxlZnRPcGVyYXRpb25Db250ZXh0ID1cbiAgICAgICAgICAgIHRoaXMubGVmdE9wZXJhdGlvbkNvbnRleHQ7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJpZ2h0T3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5yaWdodE9wZXJhdGlvbiA9IHRoaXMucmlnaHRPcGVyYXRpb247XG4gICAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcbiAgICAgIHRoaXMuY3VzdG9tTGVnZW5kUmVmLmluc3RhbmNlLmhpZGVMZWdlbmQgPSB0aGlzLmhpZGVMZWdlbmQ7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5zZWxlY3RBbGxOYW1lID0gdGhpcy5sZWdlbmRTZWxlY3RBbGxOYW1lO1xuICAgICAgdGhpcy5jdXN0b21MZWdlbmRSZWYuaW5zdGFuY2Uuc2VsZWN0QWxsT3BlcmF0aW9uID1cbiAgICAgICAgdGhpcy5sZWdlbmRTZWxlY3RBbGxPcGVyYXRpb247XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS50ZW1wbGF0ZSA9IHRoaXMubGVnZW5kVGVtcGxhdGU7XG4gICAgICB0aGlzLmN1c3RvbUxlZ2VuZFJlZi5pbnN0YW5jZS5jaGFuZ2VMZWdlbmRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRlbENoYXJ0U3RhdHVzKHtcbiAgICAgICAgICAgIG5vTGVnZW5kOiByZXMuZXZlcnkoaXRlbSA9PiAhaXRlbS5hY3RpdmF0ZSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFkZEN1c3RvbVRpdGxlKCkge1xuICAgIGNvbnN0IGRvbSA9IChcbiAgICAgIHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudFxuICAgICkucXVlcnlTZWxlY3RvcihgLmFjaGFydC10aXRsZWApO1xuICAgIGlmIChkb20gJiYgIXRoaXMuaGlkZUhlYWRlcikge1xuICAgICAgZG9tLmlubmVySFRNTCA9ICcnO1xuICAgICAgY29uc3QgcCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRpdGxlQ29udGFpbmVyLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgY29uc3QgbyA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoXG4gICAgICAgIGRvbSxcbiAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHRoaXMuYXBwUmVmLFxuICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY3VzdG9tVGl0bGVSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICBhZGRQaWVMYWJlbFRleHQoY2hhcnRVSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGRvbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NoYXJ0VUlkfSAuYWMtcGllLWd1aWRlYCk7XG4gICAgaWYgKCF0aGlzLmN1c3RvbVBpZUxhYmVsVGV4dFJlZiAmJiBkb20gJiYgdGhpcy5waWVMYWJlbFRleHQpIHtcbiAgICAgIGNvbnN0IHAgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMucGllTGFiZWxDb250YWluZXIsXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICk7XG4gICAgICBjb25zdCBvID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgZG9tLFxuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgdGhpcy5hcHBSZWYsXG4gICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICApO1xuICAgICAgdGhpcy5jdXN0b21QaWVMYWJlbFRleHRSZWYgPSBwLmF0dGFjaChvKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9wdGlvbnNSZWFjdGl2ZSgpIHtcbiAgICB0aGlzLnRvb2x0aXBIaWRlJFxuICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGhpZGUgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY2hhcnRSZWFjdGl2ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYXJ0UmVhY3RpdmUub3B0aW9ucy50b29sdGlwID0gaGlkZSA/ICFoaWRlIDoge307XG4gICAgICB9KTtcblxuICAgIHRoaXMuaGlkZUxlZ2VuZCQucGlwZShza2lwKDEpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYWRkQ3VzdG9tTGVnZW5kKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRvb2x0aXBTb3J0TWV0aG9kJFxuICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHRvb2x0aXBTb3J0TWV0aG9kID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNoYXJ0UmVhY3RpdmUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2hhcnRSZWFjdGl2ZS5vcHRpb25zLnRvb2x0aXApIHtcbiAgICAgICAgICAodGhpcy5jaGFydFJlYWN0aXZlLm9wdGlvbnMudG9vbHRpcCBhcyBUb29sdGlwT3B0KS5zb3J0ID1cbiAgICAgICAgICAgIHRvb2x0aXBTb3J0TWV0aG9kIHx8IHRoaXMudG9vbHRpcEF1dG9Tb3J0XG4gICAgICAgICAgICAgID8gdG9vbHRpcFNvcnRNZXRob2RcbiAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoRXZlbnQubmV4dChudWxsKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsbGJhY2tGaXJzdCA9IGZhbHNlO1xuICAgIHRoaXMuY2FjaGVEYXRhID0gW107XG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpO1xuICAgIHRoaXMuY2hhcnQgPSBudWxsO1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5jdXN0b21MZWdlbmRSZWY/LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWVyZ2VQb2ludENvbnRleHQgPSAoY29udGV4dDogVG9vbHRpcFZhbHVlW10pID0+ICh7XG4gICAgY29udGV4dDogdGhpcy5saW1pdE1heENvbnRleHQoY29udGV4dCksXG4gICAgLi4uKHRoaXMudG9vbHRpcFBvaW50VGVtcGxhdGVDb250ZXh0IGFzIFN0cmluZ01hcCksXG4gIH0pO1xuXG4gIHByaXZhdGUgaGFuZGVsQ2hhcnRTdGF0dXMoc3RhdHVzOiBDaGFydFN0YXR1cykge1xuICAgIHRoaXMuX2NoYXJ0U3RhdHVzJCQubmV4dCh7XG4gICAgICAuLi5zdGF0dXMsXG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW1pdE1heENvbnRleHQoY29udGV4dDogVG9vbHRpcFZhbHVlW10sIGxpbWl0ID0gMTUpIHtcbiAgICByZXR1cm4gY29udGV4dC5zbGljZSgwLCBsaW1pdCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRQb2ludEZvcm1hdCA9IHBvaW50Rm9ybWF0O1xuXG4gIHByaXZhdGUgY29udmVyc2lvbk1heGltdW0odmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgIGNvbnN0IHVuaXQgPSAnayc7XG4gICAgY29uc3QgZGF0YSA9IE51bWJlcih2YWx1ZSkgfHwgMDtcbiAgICBpZiAoZGF0YSA+PSAxMDAwKSB7XG4gICAgICBjb25zdCBudW0gPSArKGRhdGEgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGAke251bX0ke3VuaXR9YDtcbiAgICB9XG4gICAgcmV0dXJuICcnICsgdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlRm9ybWF0dGVyID0gKHZhbHVlOiBzdHJpbmcsIHZhbHVlczogVG9vbHRpcFZhbHVlW10pID0+IHtcbiAgICB0aGlzLnRvb2x0aXBUaXRsZUNvbnRleHQgPSB7IGNvbnRleHQ6IHsgdGl0bGU6IHZhbHVlLCB2YWx1ZXMgfSB9O1xuICAgIGNvbnN0IHRpdGxlID1cbiAgICAgIHRoaXMudG9vbHRpcFRyYW5zbGF0aW9uICYmICF0aGlzLnRvb2x0aXBUaXRsZVRlbXBsYXRlXG4gICAgICAgID8gdGhpcy50cmFuc2xhdGUuZ2V0KHZhbHVlKSB8fCB2YWx1ZVxuICAgICAgICA6IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXBUaXRsZVRlbXBsYXRlXG4gICAgICA/IHRoaXMudG9vbHRpcFRpdGxlVmlydHVhbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTFxuICAgICAgOiBoYW5kbGVEYXRlRm9ybWF0KHRpdGxlKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlRm9ybWF0dGVyID0gKGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMudG9vbHRpcFBvaW50Rm9ybWF0XG4gICAgICA/IHRoaXMudG9vbHRpcFBvaW50Rm9ybWF0KGRhdGEpXG4gICAgICA6IHRoaXMuZGVmYXVsdFBvaW50Rm9ybWF0KCtkYXRhKTtcbiAgICByZXR1cm4gdGhpcy5oaWRlVG9vbHRpcFVuaXQgJiYgIXRoaXMudW5pdFxuICAgICAgPyAocmVzIGFzIHN0cmluZylcbiAgICAgIDogYCR7cmVzfSAke3RoaXMudHJhbnNsYXRlLmdldCh0aGlzLnVuaXQpfWA7XG4gIH07XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiYWMtY2hhcnRcIlxuICBbY2xhc3MuYWMtbm9uLWNoYXJ0XT1cImNoYXJ0VHlwZSA9PT0gJ3BpZSdcIlxuICBbc3R5bGUuYmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY2hhcnRUeXBlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N0YXQnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYWNoYXJ0LXRpdGxlIHR3LWZsZXgtMSB0dy1icmVhay1hbGxcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZUhlYWRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZUNvbnRhaW5lclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2hhcnQtbGVnZW5kXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzdGF0XCJcbiAgICAgICAgICAqbmdJZj1cInNlcmllcyQgfCBhc3luYyBhcyBzdGF0U2VyaWVzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN0YXRTZXJpZXNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57eyAkYW55KGl0ZW0pLnZhbHVlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICA8ZGl2XG4gICAgICAgICNjaGFydENvbnRhaW5lclxuICAgICAgICBjbGFzcz1cImFjLWNoYXJ0LWNvbnRhaW5lclwiXG4gICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWMtY2hhcnQtc3RhdHVzXCJcbiAgICAqbmdJZj1cInN0YXR1cyQgfCBhc3luYyBhcyBzdGF0dXNcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJzdGF0dXMuZmFpbGVkICYmICFzdGF0dXMubG9hZGluZ1wiXG4gICAgICBjbGFzcz1cInN0YXR1cyBmYWlsZWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21FcnJvckNvbnRhaW5lcjsgZWxzZSBub0N1c3RvbUVycm9yQ29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tRXJyb3JDb250YWluZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0N1c3RvbUVycm9yQ29udGFpbmVyPlxuICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICBpY29uPVwiZXhjbGFtYXRpb25fdHJpYW5nbGVfc1wiXG4gICAgICAgICAgYmFja2dyb3VuZD1cInRyaWFuZ2xlXCJcbiAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgIHt7ICdmYWlsZWRfbG9hZF9wbGVhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAoJ3JlZnJlc2gnIHwgdHJhbnNsYXRlKS50b0xvd2VyQ2FzZSgpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5sb2FkaW5nXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIGxvYWRpbmdcIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBpY29uPVwic3Bpbm5lclwiPjwvYXVpLWljb24+IHt7ICdsb2FkaW5nJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwic3RhdHVzLm5vTGVnZW5kICYmICFzdGF0dXMubG9hZGluZyAmJiAhc3RhdHVzLm5vRGF0YVwiXG4gICAgICBjbGFzcz1cInN0YXR1cyBuby1sZWdlbmRcIlxuICAgID5cbiAgICAgIHt7ICdub19pbmRpY2F0b3Jfc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInN0YXR1cy5ub0RhdGEgJiYgIXN0YXR1cy5sb2FkaW5nICYmICFzdGF0dXMuZmFpbGVkXCJcbiAgICAgIGNsYXNzPVwic3RhdHVzIG5vLWRhdGFcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBjdXN0b21Ob0RhdGFUaXRsZSAmJiBpc1RlbXBsYXRlUmVmKGN1c3RvbU5vRGF0YVRpdGxlKTtcbiAgICAgICAgICBlbHNlIG5vRGF0YVRpdGxlVGVtcGxhdGVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21Ob0RhdGFUaXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vRGF0YVRpdGxlVGVtcGxhdGU+XG4gICAgICAgIHt7IGN1c3RvbU5vRGF0YVRpdGxlIHx8ICgnbm9fZGF0YScgfCB0cmFuc2xhdGUpIH19XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIHRpdGxlIFRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICN0aXRsZUNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVGVtcGxhdGVSZWYodGl0bGUpOyBlbHNlIFRpdGxlVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RlbXBsYXRlUmVmKHRpdGxlRGVzY3JpcHRpb24pOyBlbHNlIFRpdGxlRGVzVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZURlc2NyaXB0aW9uXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ0aXRsZURlc2NyaXB0aW9uQ29udGV4dFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjVGl0bGVUZW1wbGF0ZT5cbiAge3sgdGl0bGUgfX1cbiAge3sgdW5pdCA/ICcoJyArICh1bml0IHwgdHJhbnNsYXRlKSArICcpJyA6ICcnIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI1RpdGxlRGVzVGVtcGxhdGU+XG4gIHt7IHRpdGxlRGVzY3JpcHRpb24gfX1cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gdG9vbHRpcCB0ZW1wbGF0ZSAtLT5cbjxkaXZcbiAgI3Rvb2x0aXBJdGVtVmlydHVhbFxuICBjbGFzcz1cImhpZGVcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFBvaW50VGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ0b29sdGlwSXRlbUNvbnRleHRcIlxuICA+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdlxuICAjdG9vbHRpcFRpdGxlVmlydHVhbFxuICBjbGFzcz1cImhpZGVcIlxuPlxuICA8bmctY29udGFpbmVyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbHRpcFRpdGxlVGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ0b29sdGlwVGl0bGVDb250ZXh0XCJcbiAgPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXZcbiAgI3Rvb2x0aXBOYW1lVmlydHVhbFxuICBjbGFzcz1cImhpZGVcIlxuPlxuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2x0aXBQb2ludE5hbWVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcGllTGFiZWxDb250YWluZXI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cInBpZUxhYmVsVGV4dCAmJiBpc1RlbXBsYXRlUmVmKHBpZUxhYmVsVGV4dCk7IGVsc2Ugc3RyaW5nUGllTGFiZWxUZXh0XCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicGllTGFiZWxUZXh0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI3N0cmluZ1BpZUxhYmVsVGV4dD5cbiAgICB7eyBwaWVMYWJlbFRleHQgfX1cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -16,6 +16,7 @@ export declare class MultiSearchActionInputComponent extends BaseResourceFormCom
16
16
  hidden$: Observable<boolean>;
17
17
  autoScroll: boolean;
18
18
  conditionConfig: SearchConditionConfig[];
19
+ showFootAction: boolean;
19
20
  conditionConfig$: Observable<SearchConditionConfig[]>;
20
21
  existingConditions: SearchConditionModel[];
21
22
  existingConditions$: Observable<SearchConditionModel[]>;
@@ -91,6 +92,7 @@ export declare class MultiSearchActionInputComponent extends BaseResourceFormCom
91
92
  private changeToEditing;
92
93
  inputFocus(): void;
93
94
  inputKeydown(e: KeyboardEvent): void;
95
+ confirmSelection(): void;
94
96
  private changeToEditingIfNeed;
95
97
  private resolveTabEvent;
96
98
  private resolveArrowEvent;
@@ -116,5 +118,5 @@ export declare class MultiSearchActionInputComponent extends BaseResourceFormCom
116
118
  isConditionSelected(current: string, conditionsModel: string): boolean;
117
119
  isValueSelected: (current: string, conditionsModel: string, condition: SearchConditionModel) => boolean;
118
120
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSearchActionInputComponent, never>;
119
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchActionInputComponent, "acl-multi-search-action-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "isEditing": { "alias": "isEditing"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "existingConditions": { "alias": "existingConditions"; "required": false; }; }, { "completed": "completed"; "editing": "editing"; "delete": "delete"; "search": "search"; }, never, never, true, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchActionInputComponent, "acl-multi-search-action-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "isEditing": { "alias": "isEditing"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "showFootAction": { "alias": "showFootAction"; "required": false; }; "existingConditions": { "alias": "existingConditions"; "required": false; }; }, { "completed": "completed"; "editing": "editing"; "delete": "delete"; "search": "search"; }, never, never, true, never>;
120
122
  }
@@ -16,6 +16,7 @@ export declare class MultiSearchComponent implements OnDestroy {
16
16
  autoScroll: boolean;
17
17
  searchSuffix: boolean;
18
18
  search: EventEmitter<SearchCondition[]>;
19
+ showFootAction: boolean;
19
20
  conditionsChange: EventEmitter<SearchCondition[]>;
20
21
  normalInputComponent: MultiSearchActionInputComponent;
21
22
  tagsComponent: MultiSearchTagsComponent;
@@ -61,5 +62,5 @@ export declare class MultiSearchComponent implements OnDestroy {
61
62
  conditionInAction(condition: SearchConditionModel): boolean;
62
63
  ngOnDestroy(): void;
63
64
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSearchComponent, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchComponent, "acl-multi-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "conditions": { "alias": "conditions"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "searchSuffix": { "alias": "searchSuffix"; "required": false; }; }, { "search": "search"; "conditionsChange": "conditionsChange"; }, never, never, true, never>;
65
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSearchComponent, "acl-multi-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "conditionCreatable": { "alias": "conditionCreatable"; "required": false; }; "conditions": { "alias": "conditions"; "required": false; }; "conditionConfig": { "alias": "conditionConfig"; "required": false; }; "autoScroll": { "alias": "autoScroll"; "required": false; }; "searchSuffix": { "alias": "searchSuffix"; "required": false; }; "showFootAction": { "alias": "showFootAction"; "required": false; }; }, { "search": "search"; "conditionsChange": "conditionsChange"; }, never, never, true, never>;
65
66
  }