@eo-sdk/client 10.6.1 → 10.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/app/eo-client/version-state/version-state.component.d.ts +1 -0
  2. package/app/eo-client/version-state/version-state.component.d.ts.map +1 -1
  3. package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts.map +1 -1
  4. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  5. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
  6. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  7. package/app/eo-framework/quick-search/quick-search/quick-search.component.d.ts.map +1 -1
  8. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  9. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  10. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  11. package/esm2020/app/eo-client/version-state/version-state.component.mjs +16 -13
  12. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +4 -4
  13. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  14. package/esm2020/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +2 -1
  15. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +1 -2
  16. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +4 -2
  17. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +5 -2
  18. package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +2 -2
  19. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +2 -2
  20. package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +4 -2
  21. package/esm2020/app/eo-framework-core/api/grid.service.mjs +7 -3
  22. package/esm2020/app/eo-framework-core/pending-changes/pending-changes.service.mjs +2 -2
  23. package/fesm2015/eo-sdk-client.mjs +44 -30
  24. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  25. package/fesm2020/eo-sdk-client.mjs +44 -30
  26. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  27. package/package.json +2 -2
@@ -69,7 +69,7 @@ export class AddResubmissionComponent {
69
69
  dueDateValidator(dueDate) {
70
70
  const now = new Date();
71
71
  return (group) => {
72
- if (group.controls[dueDate].value > now) {
72
+ if (group.controls[dueDate].invalid || group.controls[dueDate].value === null || group.controls[dueDate].value > now) {
73
73
  return null;
74
74
  }
75
75
  return { 'dueDate': true };
@@ -184,10 +184,10 @@ export class AddResubmissionComponent {
184
184
  }
185
185
  }
186
186
  AddResubmissionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AddResubmissionComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
187
- AddResubmissionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AddResubmissionComponent, selector: "eo-add-resubmission", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(even):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(even):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }] });
187
+ AddResubmissionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AddResubmissionComponent, selector: "eo-add-resubmission", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(even):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(even):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }] });
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AddResubmissionComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'eo-add-resubmission', template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"true\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(even):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(even):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
190
+ args: [{ selector: 'eo-add-resubmission', template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(even):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(even):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
191
191
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i2.UntypedFormBuilder }]; }, propDecorators: { selection: [{
192
192
  type: Input
193
193
  }], titleField: [{
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
198
198
  }], canceled: [{
199
199
  type: Output
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtcmVzdWJtaXNzaW9uLWFjdGlvbi9hZGQtcmVzdWJtaXNzaW9uL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQUUsU0FBUyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQW1CLFVBQVUsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ25HLENBQUM7SUFhRCxZQUFvQixTQUEyQixFQUNyQyxHQUFlLEVBQ2YsV0FBd0IsRUFDeEIsRUFBc0I7UUFIWixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxRQUFHLEdBQUgs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QUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFNN0IsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc09iamVjdCwgVXNlclNlcnZpY2UsIERtc1NlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXJlc3VibWlzc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFJlc3VibWlzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuICBAVmlld0NoaWxkKCd0aXRsZUZpZWxkJywge3N0YXRpYzogdHJ1ZX0pIHRpdGxlRmllbGQ6IEVsZW1lbnRSZWY8YW55PjtcblxuICBnZXQgaGFzRW1haWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbCAmJiB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkuZW1haWwubGVuZ3RoO1xuICB9XG5cbiAgQE91dHB1dCgpIGZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGFkZFJlc3VibWlzc2lvbkZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIGR1ZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgdGl0bGVGaWVsZExhYmVsOiBzdHJpbmc7XG4gIGluYm94Q2JMYWJlbDogc3RyaW5nO1xuICBlbWFpbENiTGFiZWw6IHN0cmluZztcbiAgcHJvY2Vzc2luZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRtczogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIpIHtcbiAgfVxuXG4gIGNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUoZC5zZXREYXRlKGQuZ2V0RGF0ZSgpICsgMTQpKTtcbiAgICB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHRpdGxlRmllbGRGQ046IFt0aGlzLmNyZWF0ZVRpdGxlKHRoaXMuc2VsZWN0aW9uWzBdKV0sXG4gICAgICBkdWVGaWVsZEZDTjogW2RlZmF1bHRWYWx1ZV0sXG4gICAgICBpbmJveENiRkNOOiBbdHJ1ZV0sXG4gICAgICBlbWFpbENiRkNOOiBbZmFsc2VdLFxuICAgIH0sIHtcbiAgICAgIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25NZXRob2RWYWxpZGF0b3IoJ2luYm94Q2JGQ04nLCAnZW1haWxDYkZDTicpLFxuICAgICAgICB0aGlzLmR1ZURhdGVWYWxpZGF0b3IoJ2R1ZUZpZWxkRkNOJylcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3RpdGxlRmllbGRGQ04nXS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWydkdWVGaWVsZEZDTiddLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRGb3JtVmFsdWVzKHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5jb250cm9scywgdGhpcy5zZWxlY3Rpb25bMF0pO1xuICB9XG5cbiAgc2V0Rm9ybVZhbHVlcyhjb250cm9scywgc2VsZWN0aW9uOiBEbXNPYmplY3QpIHtcbiAgICBpZiAoc2VsZWN0aW9uLnJlc3VibWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICAvLyBpZiByZXN1Ym1pc3Npb25zIGFycmF5IGlzbid0IGVtcHR5LCBpdCdzIGFuIHVwZGF0ZVxuICAgICAgY29uc3Qge2luZm8sIGR1ZSwgb25seWVtYWlsLCBlbWFpbH0gPSBzZWxlY3Rpb24ucmVzdWJtaXNzaW9uc1swXTtcbiAgICAgIHRoaXMuaGVhZGVyID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmlubGluZW1lbnUuZWRpdHJlc3VibWlzc2lvbicpO1xuICAgICAgdGhpcy5wYXRjaEZvcm0oaW5mbywgbmV3IERhdGUoYCR7ZHVlfWApLCAhb25seWVtYWlsLCBlbWFpbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVhZGVyID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmlubGluZW1lbnUuYWRkcmVzdWJtaXNzaW9uJyk7XG4gICAgfVxuICB9XG5cbiAgcGF0Y2hGb3JtKHRpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOID0gZmFsc2UpIHtcbiAgICB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uc2V0VmFsdWUoe3RpdGxlRmllbGRGQ04sIGR1ZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOfSk7XG4gIH1cblxuICBnZXQgdGl0bGVWYWxpZGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmdldCgndGl0bGVGaWVsZEZDTicpLmludmFsaWQ7XG4gIH1cblxuICBnZXQgZHVlRmllbGRWYWxpZGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmdldCgnZHVlRmllbGRGQ04nKS5pbnZhbGlkO1xuICB9XG5cbiAgcHJpdmF0ZSBkdWVEYXRlVmFsaWRhdG9yKGR1ZURhdGUpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIHJldHVybiAoZ3JvdXA6IFVudHlwZWRGb3JtR3JvdXApID0+IHtcbiAgICAgIGlmIChncm91cC5jb250cm9sc1tkdWVEYXRlXS52YWx1ZSA+IG5vdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J2R1ZURhdGUnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRlVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzLCBjb250cm9sc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IGRhdGVWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkYXRlVmFsaWRhdGlvbkVycm9yID0gKGNvbnRyb2xzLmR1ZUZpZWxkRkNOLnRvdWNoZWQgfHwgY29udHJvbHMuZHVlRmllbGRGQ04uZGlydHkpICYmIGVycm9ycy5kdWVEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZVZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04pIHtcbiAgICByZXR1cm4gKGdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XG4gICAgICBpZiAoZ3JvdXAuY29udHJvbHNbaW5ib3hDYkZDTl0udmFsdWUgfHwgZ3JvdXAuY29udHJvbHNbZW1haWxDYkZDTl0udmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4geydub3RpZmljYXRpb25NZXRob2QnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtlcnJvcnN9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtO1xuICAgIGxldCBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3IgPSBlcnJvcnMubm90aWZpY2F0aW9uTWV0aG9kO1xuICAgIH1cbiAgICByZXR1cm4gbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yO1xuICB9XG5cbiAgY3JlYXRlUmVzdWJtaXNzaW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTjogc2VuZEVtYWlsfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS52YWx1ZTtcbiAgICBjb25zdCBvbmx5RW1haWwgPSB0aGlzLmhhc0VtYWlsID8gc2VuZEVtYWlsICYmICFpbmJveENiRkNOIDogZmFsc2U7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGNyZWF0ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxID8gdGl0bGVGaWVsZEZDTiA6IHRoaXMuY3JlYXRlVGl0bGUoaXRlbSk7XG4gICAgICBjcmVhdGVUYXNrcy5wdXNoKHRoaXMuZG1zLmNyZWF0ZVJlc3VibWlzc2lvbihpdGVtLCB0aXRsZSwgZHVlRmllbGRGQ04sIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIGV2ZW4gaW4gY2FzZSBvaWYgYW4gZXJyb3IgcmV0dXJuIHNvbWV0aGluZyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgd2hvbGUgZm9ya0pvaW4gd2lsbCBmYWlsXG4gICAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbClcbiAgICAgICAgICApXG4gICAgICAgICkpO1xuICAgIH0pO1xuICAgIGlmIChjcmVhdGVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKGNyZWF0ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUmVzdWJtaXNzaW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTjogc2VuZEVtYWlsfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS52YWx1ZTtcbiAgICBjb25zdCBvbmx5RW1haWwgPSB0aGlzLmhhc0VtYWlsID8gc2VuZEVtYWlsICYmICFpbmJveENiRkNOIDogZmFsc2U7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHVwZGF0ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxID8gdGl0bGVGaWVsZEZDTiA6IHRoaXMuY3JlYXRlVGl0bGUoaXRlbSk7XG4gICAgICB1cGRhdGVUYXNrcy5wdXNoKHRoaXMuZG1zLnVwZGF0ZVJlc3VibWlzc2lvbihpdGVtLCB0aXRsZSwgZHVlRmllbGRGQ04sIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwpLnBpcGUoXG4gICAgICAgIC8vIGV2ZW4gaW4gY2FzZSBvaWYgYW4gZXJyb3IgcmV0dXJuIHNvbWV0aGluZyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgd2hvbGUgZm9ya0pvaW4gd2lsbCBmYWlsXG4gICAgICAgIC8vIHRvZG86IG1heWJlIGFkZCBzb21lIGVycm9yIG5vdGlmaWNhdGlvbiB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKSlcbiAgICAgICkpO1xuICAgIH0pO1xuICAgIGlmICh1cGRhdGVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHVwZGF0ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUmVzdWJtaXNzaW9uKCkge1xuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgcmVtb3ZlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcmVtb3ZlVGFza3MucHVzaCh0aGlzLmRtcy5yZW1vdmVSZXN1Ym1pc3Npb25zQnlJZChpdGVtLmlkLCBpdGVtKVxuICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICAucGlwZShjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpKSk7XG4gICAgfSk7XG4gICAgaWYgKHJlbW92ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4ocmVtb3ZlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpdGxlKGl0ZW06IERtc09iamVjdCkge1xuICAgIHJldHVybiBpdGVtLmlzQ29udGV4dEZvbGRlciAmJiBpdGVtLmNvbnRleHRGb2xkZXIgPyBgJHtpdGVtLmNvbnRleHRGb2xkZXIudGl0bGV9ID4gJHtpdGVtLnRpdGxlfWAgOiBpdGVtLnRpdGxlO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kdWVGaWVsZExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVzdWJtaXNzaW9uLmZpZWxkLmR1ZScpO1xuICAgIHRoaXMudGl0bGVGaWVsZExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVzdWJtaXNzaW9uLmZpZWxkLmluZm8nKTtcbiAgICB0aGlzLmluYm94Q2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5ub3RpZmljYXRpb24uaW5ib3gnKTtcbiAgICB0aGlzLmVtYWlsQ2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5ub3RpZmljYXRpb24uZW1haWwnKTtcblxuICAgIHRoaXMuY3JlYXRlUmVzdWJtaXNzaW9uRm9ybSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudGl0bGVGaWVsZC5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLnNlbGVjdCgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1yZXN1Ym1pc3Npb25cIiBlb1RyYXBGb2N1cz5cbiAgPGgyPnt7aGVhZGVyfX08L2gyPlxuICA8Zm9ybSAjdGl0bGVGaWVsZCBbZm9ybUdyb3VwXT1cImFkZFJlc3VibWlzc2lvbkZvcm1cIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImR1ZUZpZWxkTGFiZWxcIj5cbiAgICAgIDxlby1kYXRlIFt3aXRoVGltZV09XCJ0cnVlXCIgW29ubHlGdXR1cmVEYXRlc109XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZHVlRmllbGRGQ05cIj48L2VvLWRhdGU+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJkdWVGaWVsZFZhbGlkaXR5XCI+XG4gICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJ0aXRsZUZpZWxkTGFiZWxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtpbnZhbGlkXT1cInRpdGxlVmFsaWRpdHlcIlxuICAgICAgKm5nSWY9XCJzZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XG4gICAgICA8ZW8tc3RyaW5nIGZvcm1Db250cm9sTmFtZT1cInRpdGxlRmllbGRGQ05cIj48L2VvLXN0cmluZz5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInRpdGxlVmFsaWRpdHlcIj5cbiAgICAgIDxkaXYgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWQ8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImluYm94Q2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImluYm94Q2JGQ05cIiBbdHJpc3RhdGVdPVwiZmFsc2VcIj48L2VvLWNoZWNrYm94PlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImVtYWlsQ2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImVtYWlsQ2JGQ05cIiBbdHJpc3RhdGVdPVwiZmFsc2VcIiBbcmVhZG9ubHldPVwiIWhhc0VtYWlsXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gIDwvZm9ybT5cblxuICA8IS0tIGVycm9yL3ZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gIDxkaXYgY2xhc3M9XCJlcnJvcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwibm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvblwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uZXJyb3IubXNnPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cImRhdGVWYWxpZGF0aW9uXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5lcnJvci5tc2cuZGF0ZTwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCIgKm5nSWY9XCIhcHJvY2Vzc2luZzsgZWxzZSBpbmRpY2F0b3JcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKm5nSWY9XCJzZWxlY3Rpb25bMF0ucmVzdWJtaXNzaW9ucy5sZW5ndGhcIiAoY2xpY2spPVwicmVtb3ZlUmVzdWJtaXNzaW9uKClcIlxuICAgICAgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5kZWxldGU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJhZGRSZXN1Ym1pc3Npb25Gb3JtLmVycm9ycyB8fCB0aXRsZVZhbGlkaXR5XCJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uWzBdLnJlc3VibWlzc2lvbnMubGVuZ3RoXCIgKGNsaWNrKT1cInVwZGF0ZVJlc3VibWlzc2lvbigpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5hcHBseTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZFJlc3VibWlzc2lvbkZvcm0uZXJyb3JzIHx8IHRpdGxlVmFsaWRpdHlcIlxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uWzBdLnJlc3VibWlzc2lvbnMubGVuZ3RoXCIgKGNsaWNrKT1cImNyZWF0ZVJlc3VibWlzc2lvbigpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5hZGQ8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtaW5kaWNhdG9yXCI+PGVvLWljb24gW2ljb25TcmNdPVwiJ2ljX2tpdHQtbG9hZGVyLnN2ZydcIj48L2VvLWljb24+PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtcmVzdWJtaXNzaW9uLWFjdGlvbi9hZGQtcmVzdWJtaXNzaW9uL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQUUsU0FBUyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQW1CLFVBQVUsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ25HLENBQUM7SUFhRCxZQUFvQixTQUEyQixFQUNyQyxHQUFlLEVBQ2YsV0FBd0IsRUFDeEIsRUFBc0I7UUFIWixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFkdEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWNoRSxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsV0FBVyxFQUFFLENBQUMsWUFBWSxDQUFDO1lBQzNCLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNsQixVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDcEIsRUFBRTtZQUNELFNBQVMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUM1QixJQUFJLENBQUMsMkJBQTJCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQzthQUNyQyxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNyRjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFRLEVBQUUsU0FBb0I7UUFDMUMsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxxREFBcUQ7WUFDckQsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUNsRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM3RCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBTztRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxLQUF1QixFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO2dCQUNwSCxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE1BQU0sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BELElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksTUFBTSxFQUFFO1lBQ1YsbUJBQW1CLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDdEc7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxVQUFVLEVBQUUsVUFBVTtRQUN4RCxPQUFPLENBQUMsS0FBdUIsRUFBRSxFQUFFO1lBQ2pDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hFLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDckMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksNEJBQTRCO1FBQzlCLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDMUMsSUFBSSxpQ0FBaUMsR0FBRyxLQUFLLENBQUM7UUFDOUMsSUFBSSxNQUFNLEVBQUU7WUFDVixpQ0FBaUMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDL0Q7UUFDRCxPQUFPLGlDQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBQ3ZHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRW5FLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQ3BHLElBQUk7WUFDSCw0RkFBNEY7WUFDNUYsb0VBQW9FO1lBQ3BFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDdkIsQ0FDRixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN0QixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUNBLENBQUE7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBQ3ZHLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRW5FLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJO1lBQzFHLDRGQUE0RjtZQUM1RixvRUFBb0U7WUFDcEUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixDQUFDLENBQ0EsQ0FBQTtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO2dCQUM5RCw0RkFBNEY7Z0JBQzVGLG9FQUFvRTtpQkFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN0QixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUNBLENBQUE7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBZTtRQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUUsQ0FBQzs7cUhBM01VLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLGdSQ2JyQyw2M0VBNENBOzJGRC9CYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UscUJBQXFCOzJMQU10QixTQUFTO3NCQUFqQixLQUFLO2dCQUNtQyxVQUFVO3NCQUFsRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBTTdCLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQnVpbGRlcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBEbXNPYmplY3QsIFVzZXJTZXJ2aWNlLCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFkZC1yZXN1Ym1pc3Npb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRSZXN1Ym1pc3Npb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFjdGlvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgc2VsZWN0aW9uOiBEbXNPYmplY3RbXTtcbiAgQFZpZXdDaGlsZCgndGl0bGVGaWVsZCcsIHtzdGF0aWM6IHRydWV9KSB0aXRsZUZpZWxkOiBFbGVtZW50UmVmPGFueT47XG5cbiAgZ2V0IGhhc0VtYWlsKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkuZW1haWwgJiYgdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsLmxlbmd0aDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBmaW5pc2hlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGhlYWRlcjogc3RyaW5nO1xuICBhZGRSZXN1Ym1pc3Npb25Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBkdWVGaWVsZExhYmVsOiBzdHJpbmc7XG4gIHRpdGxlRmllbGRMYWJlbDogc3RyaW5nO1xuICBpbmJveENiTGFiZWw6IHN0cmluZztcbiAgZW1haWxDYkxhYmVsOiBzdHJpbmc7XG4gIHByb2Nlc3Npbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXM6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBjcmVhdGVSZXN1Ym1pc3Npb25Gb3JtKCkge1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IG5ldyBEYXRlKGQuc2V0RGF0ZShkLmdldERhdGUoKSArIDE0KSk7XG4gICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZUZpZWxkRkNOOiBbdGhpcy5jcmVhdGVUaXRsZSh0aGlzLnNlbGVjdGlvblswXSldLFxuICAgICAgZHVlRmllbGRGQ046IFtkZWZhdWx0VmFsdWVdLFxuICAgICAgaW5ib3hDYkZDTjogW3RydWVdLFxuICAgICAgZW1haWxDYkZDTjogW2ZhbHNlXSxcbiAgICB9LCB7XG4gICAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKCdpbmJveENiRkNOJywgJ2VtYWlsQ2JGQ04nKSxcbiAgICAgICAgdGhpcy5kdWVEYXRlVmFsaWRhdG9yKCdkdWVGaWVsZEZDTicpXG4gICAgICBdKVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWyd0aXRsZUZpZWxkRkNOJ10uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5jb250cm9sc1snZHVlRmllbGRGQ04nXS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Rm9ybVZhbHVlcyh0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uY29udHJvbHMsIHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgfVxuXG4gIHNldEZvcm1WYWx1ZXMoY29udHJvbHMsIHNlbGVjdGlvbjogRG1zT2JqZWN0KSB7XG4gICAgaWYgKHNlbGVjdGlvbi5yZXN1Ym1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgLy8gaWYgcmVzdWJtaXNzaW9ucyBhcnJheSBpc24ndCBlbXB0eSwgaXQncyBhbiB1cGRhdGVcbiAgICAgIGNvbnN0IHtpbmZvLCBkdWUsIG9ubHllbWFpbCwgZW1haWx9ID0gc2VsZWN0aW9uLnJlc3VibWlzc2lvbnNbMF07XG4gICAgICB0aGlzLmhlYWRlciA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5pbmxpbmVtZW51LmVkaXRyZXN1Ym1pc3Npb24nKTtcbiAgICAgIHRoaXMucGF0Y2hGb3JtKGluZm8sIG5ldyBEYXRlKGAke2R1ZX1gKSwgIW9ubHllbWFpbCwgZW1haWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlYWRlciA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5pbmxpbmVtZW51LmFkZHJlc3VibWlzc2lvbicpO1xuICAgIH1cbiAgfVxuXG4gIHBhdGNoRm9ybSh0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTiA9IGZhbHNlKSB7XG4gICAgdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLnNldFZhbHVlKHt0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTn0pO1xuICB9XG5cbiAgZ2V0IHRpdGxlVmFsaWRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5nZXQoJ3RpdGxlRmllbGRGQ04nKS5pbnZhbGlkO1xuICB9XG5cbiAgZ2V0IGR1ZUZpZWxkVmFsaWRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5nZXQoJ2R1ZUZpZWxkRkNOJykuaW52YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgZHVlRGF0ZVZhbGlkYXRvcihkdWVEYXRlKSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICByZXR1cm4gKGdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XG4gICAgICBpZiAoZ3JvdXAuY29udHJvbHNbZHVlRGF0ZV0uaW52YWxpZCB8fCBncm91cC5jb250cm9sc1tkdWVEYXRlXS52YWx1ZSA9PT0gbnVsbCB8fCBncm91cC5jb250cm9sc1tkdWVEYXRlXS52YWx1ZSA+IG5vdykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7J2R1ZURhdGUnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkYXRlVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzLCBjb250cm9sc30gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm07XG4gICAgbGV0IGRhdGVWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBkYXRlVmFsaWRhdGlvbkVycm9yID0gKGNvbnRyb2xzLmR1ZUZpZWxkRkNOLnRvdWNoZWQgfHwgY29udHJvbHMuZHVlRmllbGRGQ04uZGlydHkpICYmIGVycm9ycy5kdWVEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZVZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdG9yKGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04pIHtcbiAgICByZXR1cm4gKGdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XG4gICAgICBpZiAoZ3JvdXAuY29udHJvbHNbaW5ib3hDYkZDTl0udmFsdWUgfHwgZ3JvdXAuY29udHJvbHNbZW1haWxDYkZDTl0udmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4geydub3RpZmljYXRpb25NZXRob2QnOiB0cnVlfVxuICAgIH1cbiAgfVxuXG4gIGdldCBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtlcnJvcnN9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtO1xuICAgIGxldCBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBub3RpZmljYXRpb25NZXRob2RWYWxpZGF0aW9uRXJyb3IgPSBlcnJvcnMubm90aWZpY2F0aW9uTWV0aG9kO1xuICAgIH1cbiAgICByZXR1cm4gbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yO1xuICB9XG5cbiAgY3JlYXRlUmVzdWJtaXNzaW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTjogc2VuZEVtYWlsfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS52YWx1ZTtcbiAgICBjb25zdCBvbmx5RW1haWwgPSB0aGlzLmhhc0VtYWlsID8gc2VuZEVtYWlsICYmICFpbmJveENiRkNOIDogZmFsc2U7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGNyZWF0ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxID8gdGl0bGVGaWVsZEZDTiA6IHRoaXMuY3JlYXRlVGl0bGUoaXRlbSk7XG4gICAgICBjcmVhdGVUYXNrcy5wdXNoKHRoaXMuZG1zLmNyZWF0ZVJlc3VibWlzc2lvbihpdGVtLCB0aXRsZSwgZHVlRmllbGRGQ04sIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIGV2ZW4gaW4gY2FzZSBvaWYgYW4gZXJyb3IgcmV0dXJuIHNvbWV0aGluZyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgd2hvbGUgZm9ya0pvaW4gd2lsbCBmYWlsXG4gICAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbClcbiAgICAgICAgICApXG4gICAgICAgICkpO1xuICAgIH0pO1xuICAgIGlmIChjcmVhdGVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKGNyZWF0ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUmVzdWJtaXNzaW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBkdWVGaWVsZEZDTiwgaW5ib3hDYkZDTiwgZW1haWxDYkZDTjogc2VuZEVtYWlsfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS52YWx1ZTtcbiAgICBjb25zdCBvbmx5RW1haWwgPSB0aGlzLmhhc0VtYWlsID8gc2VuZEVtYWlsICYmICFpbmJveENiRkNOIDogZmFsc2U7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHVwZGF0ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSAxID8gdGl0bGVGaWVsZEZDTiA6IHRoaXMuY3JlYXRlVGl0bGUoaXRlbSk7XG4gICAgICB1cGRhdGVUYXNrcy5wdXNoKHRoaXMuZG1zLnVwZGF0ZVJlc3VibWlzc2lvbihpdGVtLCB0aXRsZSwgZHVlRmllbGRGQ04sIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwpLnBpcGUoXG4gICAgICAgIC8vIGV2ZW4gaW4gY2FzZSBvaWYgYW4gZXJyb3IgcmV0dXJuIHNvbWV0aGluZyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgd2hvbGUgZm9ya0pvaW4gd2lsbCBmYWlsXG4gICAgICAgIC8vIHRvZG86IG1heWJlIGFkZCBzb21lIGVycm9yIG5vdGlmaWNhdGlvbiB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgICAgIGNhdGNoRXJyb3IoZSA9PiBvZihudWxsKSlcbiAgICAgICkpO1xuICAgIH0pO1xuICAgIGlmICh1cGRhdGVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHVwZGF0ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUmVzdWJtaXNzaW9uKCkge1xuICAgIHRoaXMucHJvY2Vzc2luZyA9IHRydWU7XG4gICAgY29uc3QgcmVtb3ZlVGFza3MgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcmVtb3ZlVGFza3MucHVzaCh0aGlzLmRtcy5yZW1vdmVSZXN1Ym1pc3Npb25zQnlJZChpdGVtLmlkLCBpdGVtKVxuICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICAucGlwZShjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpKSk7XG4gICAgfSk7XG4gICAgaWYgKHJlbW92ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4ocmVtb3ZlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpdGxlKGl0ZW06IERtc09iamVjdCkge1xuICAgIHJldHVybiBpdGVtLmlzQ29udGV4dEZvbGRlciAmJiBpdGVtLmNvbnRleHRGb2xkZXIgPyBgJHtpdGVtLmNvbnRleHRGb2xkZXIudGl0bGV9ID4gJHtpdGVtLnRpdGxlfWAgOiBpdGVtLnRpdGxlO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsZWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kdWVGaWVsZExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVzdWJtaXNzaW9uLmZpZWxkLmR1ZScpO1xuICAgIHRoaXMudGl0bGVGaWVsZExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVzdWJtaXNzaW9uLmZpZWxkLmluZm8nKTtcbiAgICB0aGlzLmluYm94Q2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5ub3RpZmljYXRpb24uaW5ib3gnKTtcbiAgICB0aGlzLmVtYWlsQ2JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5ub3RpZmljYXRpb24uZW1haWwnKTtcblxuICAgIHRoaXMuY3JlYXRlUmVzdWJtaXNzaW9uRm9ybSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudGl0bGVGaWVsZC5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLnNlbGVjdCgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1yZXN1Ym1pc3Npb25cIiBlb1RyYXBGb2N1cz5cbiAgPGgyPnt7aGVhZGVyfX08L2gyPlxuICA8Zm9ybSAjdGl0bGVGaWVsZCBbZm9ybUdyb3VwXT1cImFkZFJlc3VibWlzc2lvbkZvcm1cIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImR1ZUZpZWxkTGFiZWxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPlxuICAgICAgPGVvLWRhdGUgW3dpdGhUaW1lXT1cInRydWVcIiBbb25seUZ1dHVyZURhdGVzXT1cImZhbHNlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZHVlRmllbGRGQ05cIj48L2VvLWRhdGU+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJkdWVGaWVsZFZhbGlkaXR5XCI+XG4gICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJ0aXRsZUZpZWxkTGFiZWxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtpbnZhbGlkXT1cInRpdGxlVmFsaWRpdHlcIlxuICAgICAgKm5nSWY9XCJzZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XG4gICAgICA8ZW8tc3RyaW5nIGZvcm1Db250cm9sTmFtZT1cInRpdGxlRmllbGRGQ05cIj48L2VvLXN0cmluZz5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInRpdGxlVmFsaWRpdHlcIj5cbiAgICAgIDxkaXYgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWQ8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImluYm94Q2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImluYm94Q2JGQ05cIiBbdHJpc3RhdGVdPVwiZmFsc2VcIj48L2VvLWNoZWNrYm94PlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImVtYWlsQ2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImVtYWlsQ2JGQ05cIiBbdHJpc3RhdGVdPVwiZmFsc2VcIiBbcmVhZG9ubHldPVwiIWhhc0VtYWlsXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gIDwvZm9ybT5cblxuICA8IS0tIGVycm9yL3ZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gIDxkaXYgY2xhc3M9XCJlcnJvcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwibm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvblwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uZXJyb3IubXNnPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cImRhdGVWYWxpZGF0aW9uXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5lcnJvci5tc2cuZGF0ZTwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCIgKm5nSWY9XCIhcHJvY2Vzc2luZzsgZWxzZSBpbmRpY2F0b3JcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5jYW5jZWw8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwic2Vjb25kYXJ5XCIgKm5nSWY9XCJzZWxlY3Rpb25bMF0ucmVzdWJtaXNzaW9ucy5sZW5ndGhcIiAoY2xpY2spPVwicmVtb3ZlUmVzdWJtaXNzaW9uKClcIlxuICAgICAgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5kZWxldGU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJhZGRSZXN1Ym1pc3Npb25Gb3JtLmVycm9ycyB8fCB0aXRsZVZhbGlkaXR5XCJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uWzBdLnJlc3VibWlzc2lvbnMubGVuZ3RoXCIgKGNsaWNrKT1cInVwZGF0ZVJlc3VibWlzc2lvbigpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5hcHBseTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZFJlc3VibWlzc2lvbkZvcm0uZXJyb3JzIHx8IHRpdGxlVmFsaWRpdHlcIlxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uWzBdLnJlc3VibWlzc2lvbnMubGVuZ3RoXCIgKGNsaWNrKT1cImNyZWF0ZVJlc3VibWlzc2lvbigpXCIgdHJhbnNsYXRlPmVvLnJlc3VibWlzc2lvbi5hZGQ8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtaW5kaWNhdG9yXCI+PGVvLWljb24gW2ljb25TcmNdPVwiJ2ljX2tpdHQtbG9hZGVyLnN2ZydcIj48L2VvLWljb24+PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -195,18 +195,18 @@ let AppBarComponent = class AppBarComponent {
195
195
  }
196
196
  };
197
197
  AppBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppBarComponent, deps: [{ token: i1.UserService }, { token: i1.CapabilitiesService }, { token: i1.TranslateService }, { token: i1.InboxService }, { token: i1.PrepareService }, { token: i2.Router }, { token: i1.BpmService }, { token: i1.EventService }, { token: i1.Config }, { token: i0.ElementRef }, { token: i3.PendingChangesService }], target: i0.ɵɵFactoryTarget.Component });
198
- AppBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AppBarComponent, selector: "eo-app-bar", inputs: { transparent: "transparent" }, viewQueries: [{ propertyName: "avatarComponents", predicate: UserAvatarComponent, descendants: true }], ngImport: i0, template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"toggleSidebar()\" (keyup.enter)=\"toggleSidebar()\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\"\n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a (click)=\"openSearchOverlay()\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a (click)=\"openCreateObjectOverlay()\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a>\n <a (click)=\"openProcessOverlay()\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a (click)=\"openState('/favorites')\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a (click)=\"openState('/prepare')\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a (click)=\"openState('/inbox')\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a (click)=\"openState('/settings')\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i7.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i8.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i9.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i10.ClipboardComponent, selector: "eo-clipboard" }, { kind: "component", type: i11.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i12.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "directive", type: i13.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "component", type: i14.SideBarComponent, selector: "eo-side-bar", outputs: ["eoOutsideClick"] }] });
198
+ AppBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AppBarComponent, selector: "eo-app-bar", inputs: { transparent: "transparent" }, viewQueries: [{ propertyName: "avatarComponents", predicate: UserAvatarComponent, descendants: true }], ngImport: i0, template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"toggleSidebar()\" (keyup.enter)=\"toggleSidebar()\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\"\n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a tabindex=\"0\" (keydown.enter)=\"openSearchOverlay()\" (click)=\"openSearchOverlay()\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a tabindex=\"0\" (keydown.enter)=\"openCreateObjectOverlay()\" (click)=\"openCreateObjectOverlay()\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openProcessOverlay()\" (click)=\"openProcessOverlay()\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/favorites')\" (click)=\"openState('/favorites')\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/prepare')\" (click)=\"openState('/prepare')\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/inbox')\" (click)=\"openState('/inbox')\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (keydown.enter)=\"userpanel?.close()\" (click)=\"userpanel?.close()\" >\n <a (keydown.enter)=\"openState('/settings')\" (click)=\"openState('/settings')\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i7.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i8.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "directive", type: i9.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i10.ClipboardComponent, selector: "eo-clipboard" }, { kind: "component", type: i11.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i12.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "styleClass", "active", "iconTitle"] }, { kind: "directive", type: i13.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "component", type: i14.SideBarComponent, selector: "eo-side-bar", outputs: ["eoOutsideClick"] }] });
199
199
  AppBarComponent = __decorate([
200
200
  UntilDestroy()
201
201
  ], AppBarComponent);
202
202
  export { AppBarComponent };
203
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppBarComponent, decorators: [{
204
204
  type: Component,
205
- args: [{ selector: 'eo-app-bar', template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"toggleSidebar()\" (keyup.enter)=\"toggleSidebar()\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\"\n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a (click)=\"openSearchOverlay()\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a (click)=\"openCreateObjectOverlay()\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a>\n <a (click)=\"openProcessOverlay()\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a (click)=\"openState('/favorites')\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a (click)=\"openState('/prepare')\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a (click)=\"openState('/inbox')\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (click)=\"userpanel?.close()\" >\n <a (click)=\"openState('/settings')\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"] }]
205
+ args: [{ selector: 'eo-app-bar', template: "<eo-side-bar (eoOutsideClick)=\"sidebarShow = !sidebarShow\" *ngIf=\"sidebarShow\">\n <div class=\"navi\">\n <ng-content select=\"eo-sidebar-plugin.navi\"></ng-content>\n </div>\n <div class=\"help\">\n <ng-content select=\"eo-sidebar-plugin.help\"></ng-content>\n </div>\n</eo-side-bar>\n\n<div class=\"eo-app-bar\" [ngClass]=\"{transparent: transparent}\" eoRtlAware>\n\n <div class=\"left\">\n\n <eo-icon id=\"app-menu\" class=\"menu white\" tabindex=\"0\"\n (click)=\"toggleSidebar()\" (keyup.enter)=\"toggleSidebar()\"\n [iconSrc]=\"'assets/_default/svg/ic_hamburger.svg'\"></eo-icon>\n <eo-icon (click)=\"openDashboard($event.ctrlKey)\" (auxclick)=\"openDashboard(true)\"\n (keyup.enter)=\"openDashboard(false)\" tabindex=\"0\"\n class=\"logo white\" [iconSrc]=\"logo\"></eo-icon>\n\n <div class=\"actions\">\n <a tabindex=\"0\" (keydown.enter)=\"openSearchOverlay()\" (click)=\"openSearchOverlay()\">\n <eo-icon id=\"app-search\" class=\"search white\" queryParamsHandling=\"preserve\"\n [iconTitle]=\"iconTitles.search\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n </a>\n\n <a tabindex=\"0\" (keydown.enter)=\"openCreateObjectOverlay()\" (click)=\"openCreateObjectOverlay()\">\n <eo-icon id=\"app-add\" class=\"add white\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.file\"\n [iconSrc]=\"'assets/_default/svg/ic_add.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openProcessOverlay()\" (click)=\"openProcessOverlay()\">\n <eo-icon id=\"app-actions\" class=\"actions white\" *ngIf=\"exeActions\"\n [iconTitle]=\"iconTitles.exeactions\"\n [iconSrc]=\"'assets/_default/svg/ic_bpm_start.svg'\"></eo-icon>\n </a>\n </div>\n </div>\n <div class=\"right\">\n <div class=\"sub\">\n <eo-clipboard></eo-clipboard>\n </div>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/favorites')\" (click)=\"openState('/favorites')\">\n <eo-icon class=\"button white favorite\"\n [iconTitle]=\"iconTitles.favorites\" *ngIf=\"capabilities.favorites\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/prepare')\" (click)=\"openState('/prepare')\">\n <eo-icon class=\"button white prepare\" *ngIf=\"capabilities.intray\"\n [iconTitle]=\"iconTitles.prepare\"\n [badge]=\"preparedItemsCount\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" (keydown.enter)=\"openState('/inbox')\" (click)=\"openState('/inbox')\">\n <eo-icon class=\"button white inbox\" [ngClass]=\"{alert: inboxState?.overduemessages > 0}\" *ngIf=\"capabilities.inbox\"\n [iconTitle]=\"iconTitles.index\"\n [badge]=\"inboxState?.totalmessages\" [iconSrc]=\"'assets/_default/svg/ic_inbox.svg'\"></eo-icon>\n </a>\n <a tabindex=\"0\" href=\"{{docu.link}}\" target=\"_blank\">\n <eo-icon class=\"button white about\"\n [iconTitle]=\"iconTitles.about\" [iconSrc]=\"'assets/_default/svg/ic_about.svg'\"></eo-icon>\n </a>\n <eo-overlay #userpanel (onToggle)=\"onToggleProfileOverlay()\">\n <eo-user-avatar class=\"btn\" id=\"app-profile\" [showPresence]=\"true\" [title]=\"iconTitles.profile\" tabindex=\"0\"></eo-user-avatar>\n\n <div class=\"eo-profile\" tabindex=\"-1\">\n <div class=\"avatar\" tabindex=\"-1\">\n <eo-user-avatar tabindex=\"-1\" ></eo-user-avatar>\n <div class=\"overlay\" tabindex=\"-1\">\n <div class=\"name\">{{user.firstname}} {{user.lastname}}</div>\n <div class=\"mail\">{{user.email}}</div>\n <div class=\"presence\" *ngIf=\"!user.present\" translate>eo.state.settings.presence.absent</div>\n </div>\n </div>\n <div class=\"nav\" eoTrapFocus>\n <div class=\"nav-item settings\" (keydown.enter)=\"userpanel?.close()\" (click)=\"userpanel?.close()\" >\n <a (keydown.enter)=\"openState('/settings')\" (click)=\"openState('/settings')\" id=\"settings\" tabindex=\"0\" routerLinkActive=\"active-link\" focusable translate>eo.bar.button.settings.title</a>\n </div>\n <div class=\"nav-item logout\" *ngIf=\"!capabilities.sso\">\n <a [routerLink]=\"['/enter', { logout: true }]\" routerLinkActive=\"active-link\" translate>eo.bar.button.logout.title</a>\n </div>\n <ng-content select=\"eo-sidebar-plugin.profile\"></ng-content>\n </div>\n </div>\n </eo-overlay>\n\n\n </div>\n</div>\n", styles: [":host .eo-app-bar{--profile-dropdown-width: 180px;background:var(--color-primary);color:var(--color-white);height:var(--app-bar-height);position:absolute;left:0;right:0;top:0;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;z-index:5}:host .eo-app-bar eo-icon:focus,:host .eo-app-bar eo-icon:hover,:host .eo-app-bar a:focus eo-icon,:host .eo-app-bar a:hover eo-icon{background:rgba(var(--color-white-rgb),.25)}:host .eo-app-bar .left{display:flex;height:var(--app-bar-height);flex-flow:row nowrap;align-items:center}@media screen and (max-width: 480px){:host .eo-app-bar .left{padding-right:0}}:host .eo-app-bar .left eo-icon.menu{z-index:22;width:var(--app-bar-height);height:var(--app-bar-height);box-sizing:border-box;cursor:pointer;padding:20px;background-color:var(--color-accent)}:host .eo-app-bar .left eo-icon.menu:focus{outline:1px solid var(--color-white);outline-offset:-1px}:host .eo-app-bar .left eo-icon.logo{width:104px;height:auto;cursor:pointer;margin:0 4px;background-color:transparent;padding:var(--app-pane-padding) calc(var(--app-pane-padding) * 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2)}@media screen and (max-width: 480px){:host .eo-app-bar .left eo-icon.logo{width:80px}}:host .eo-app-bar .left eo-icon.logo:focus{outline:1px solid var(--color-accent)}:host .eo-app-bar .left .actions{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .left .actions a eo-icon{padding:8px;cursor:pointer;border-radius:50%;box-sizing:content-box;margin:4px;color:var(--color-white)}:host .eo-app-bar .left .actions a:focus eo-icon,:host .eo-app-bar .left .actions a:hover eo-icon{background:var(--color-accent)}:host .eo-app-bar .right{display:flex;flex-flow:row nowrap;align-items:center}:host .eo-app-bar .right .sub{display:flex;flex-flow:row nowrap;align-items:center;padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);margin:0 calc(var(--app-pane-padding) / 2)}:host .eo-app-bar .right .sub>*{margin:0 calc(var(--app-pane-padding) / 4)}:host .eo-app-bar .right eo-icon{margin:0 4px}:host .eo-app-bar .right eo-icon.alert{position:relative}:host .eo-app-bar .right eo-icon.alert:after{content:\"\";position:absolute;left:0;right:0;bottom:-4px;height:4px;background-color:var(--color-error)}@media screen and (max-width: 480px){:host .eo-app-bar .right eo-icon{display:none}}:host .eo-app-bar .right #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host .eo-app-bar .right #app-profile:focus,:host .eo-app-bar .right #app-profile:hover{border-color:var(--color-accent)}:host .eo-app-bar .right .eo-profile{background:var(--color-primary);width:var(--profile-dropdown-width);color:var(--color-white)}:host .eo-app-bar .right .eo-profile .avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width);position:relative}:host .eo-app-bar .right .eo-profile .avatar eo-user-avatar{width:var(--profile-dropdown-width);height:var(--profile-dropdown-width)}:host .eo-app-bar .right .eo-profile .avatar .overlay{position:absolute;padding:calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) calc(var(--app-pane-padding) / 2) var(--app-pane-padding);bottom:0;right:0;left:0;background:rgba(var(--color-primary-rgb),.6)}:host .eo-app-bar .right .eo-profile .avatar .overlay .name,:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{word-break:break-all}:host .eo-app-bar .right .eo-profile .avatar .overlay .mail{font-size:var(--font-caption)}:host .eo-app-bar .right .eo-profile .avatar .overlay .presence{font-size:var(--font-hint);color:var(--color-white);background:var(--color-error);border-radius:2px;display:inline-block;margin-top:calc(var(--app-pane-padding) / 2);padding:0 8px 1px}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item{border-bottom:1px solid rgba(var(--color-white-rgb),.1)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{color:var(--color-white);padding:calc(var(--app-pane-padding) / 2);display:block;cursor:pointer;text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}[dir=ltr] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-left:4px solid rgba(0,0,0,0)}[dir=rtl] :host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a{border-right:4px solid rgba(0,0,0,0)}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a.active-link{border-color:var(--color-accent);background:rgba(var(--color-white-rgb),.06);cursor:default}:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):focus,:host .eo-app-bar .right .eo-profile .nav ::ng-deep .nav-item a:not(.active-link):hover{background:rgba(var(--color-white-rgb),.1)}:host .eo-app-bar.transparent{background:transparent}:host .eo-app-bar.transparent .left eo-icon.menu{background-color:transparent}:host .eo-app-bar.transparent .left eo-icon.menu:focus{outline:1px solid var(--color-accent)}@media screen and (max-width: 480px){:host .eo-app-bar.rtl .left{padding-right:var(--app-pane-padding);padding-left:0}}@keyframes dropDownAppear{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}\n"] }]
206
206
  }], ctorParameters: function () { return [{ type: i1.UserService }, { type: i1.CapabilitiesService }, { type: i1.TranslateService }, { type: i1.InboxService }, { type: i1.PrepareService }, { type: i2.Router }, { type: i1.BpmService }, { type: i1.EventService }, { type: i1.Config }, { type: i0.ElementRef }, { type: i3.PendingChangesService }]; }, propDecorators: { transparent: [{
207
207
  type: Input
208
208
  }], avatarComponents: [{
209
209
  type: ViewChildren,
210
210
  args: [UserAvatarComponent]
211
211
  }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUtMLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU3hFLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFpQjFCLFlBQW9CLFdBQXdCLEVBQ3hCLGlCQUFzQyxFQUN0QyxTQUEyQixFQUMzQixZQUEwQixFQUMxQixjQUE4QixFQUM5QixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLE9BQW1CLEVBQ25CLGNBQXFDO1FBVnJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdB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ZixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7c1hBTWIsV0FBVztzQkFBbkIsS0FBSztnQkFhNkIsZ0JBQWdCO3NCQUFsRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQnBtU2VydmljZSxcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVuYWlvRXZlbnQsXG4gIEVvVXNlcixcbiAgRXZlbnRTZXJ2aWNlLFxuICBJbmJveFNlcnZpY2UsIEluYm94U3RhdGUsXG4gIFByZXBhcmVTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtVc2VyQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi8uLi91aS91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZVwiO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFwcC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgcHJlcGFyZWRJdGVtc0NvdW50OiBudW1iZXI7XG4gIGluYm94U3RhdGU6IEluYm94U3RhdGU7XG4gIHVzZXI6IEVvVXNlcjtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGV4ZUFjdGlvbnM6IGJvb2xlYW47XG4gIHNpZGViYXJTaG93ID0gZmFsc2U7XG4gIG9wdGlvbnM6IGFueTtcbiAgaWNvblRpdGxlczogYW55O1xuICBsb2dvOiBzdHJpbmc7XG4gIHBhZ2VWaXNpYmxlID0gdHJ1ZTtcbiAgZG9jdToge2xpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZ307XG4gIEBWaWV3Q2hpbGRyZW4oVXNlckF2YXRhckNvbXBvbmVudCkgYXZhdGFyQ29tcG9uZW50czogUXVlcnlMaXN0PFVzZXJBdmF0YXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2VcbiAgICAgICAgICAgICAgKSB7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIHRoaXMubG9nbyA9IHRoaXMuY29uZmlnLmdldE5hdmlnYXRpb25CYXJJbWFnZSgpO1xuICAgIC8vIGxpc3RlbiBmb3Igcm91dGluZyBldmVudHMgdG8gaGlkZSBhbnkgYWN0aXZlIG92ZXJsYXlzXG4gICAgLy8gb24gY2hhbmdpbmcgcm91dGVcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLmV2ZW50cy5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJC5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy51c2VyID0gdXNlcik7XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW5ib3gpIHtcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAgIC5pbmJveFN0YXRlJC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmluYm94U3RhdGUgJiYgdGhpcy5pbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzIDwgaW5ib3hTdGF0ZS51bnJlYWRtZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaW5ib3hTdGF0ZSA9IGluYm94U3RhdGU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lOQk9YX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgLnByZXBhcmVkSXRlbUNvdW50JC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShjb3VudCA9PiB7XG4gICAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1zQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGVcbiAgICAgIC5vbkxhbmdDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRJY29uVGl0bGVzKCkpO1xuICB9XG5cbiAgb3BlbkRhc2hib2FyZChvcGVuSW5OZXdXaW5kb3c6IGJvb2xlYW4pIHtcbiAgICBpZiAob3BlbkluTmV3V2luZG93KSB7XG4gICAgICB3aW5kb3cub3BlbignLycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9jdW1lbnRhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY3UgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmRvY3UnKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZS5zdWJzdHJpbmcoMCwgMikpO1xuICAgICAgICB0aGlzLmRvY3UgPSB7Li4uZG9jdSwgbGlua307XG4gICAgICB9KVxuICB9XG5cbiAgdXBkYXRlT25TY2hlbWFDaGFuZ2UoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYnBtU2VydmljZVxuICAgICAgICAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIG51bGwsIG51bGwsIG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZVByb2ZpbGVPdmVybGF5KCl7XG4gICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0aGlzLmVsZW1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjc2V0dGluZ3MnKS5mb2N1cygpO1xuICAgfSk7XG4gIH1cblxuICBzZXRJY29uVGl0bGVzKCkge1xuICAgIHRoaXMuaWNvblRpdGxlcyA9IHtcbiAgICAgIHNlYXJjaDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZWFyY2gudG9vbHRpcCcpLFxuICAgICAgZmlsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5maWxlLnRvb2x0aXAnKSxcbiAgICAgIGV4ZWFjdGlvbnM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZXhlY3V0ZS5hY3Rpb25zLnRvb2x0aXAnKSxcbiAgICAgIGZhdm9yaXRlczogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5mYXZvcml0ZXMudG9vbHRpcCcpLFxuICAgICAgcHJlcGFyZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5wcmVwYXJlLnRvb2x0aXAnKSxcbiAgICAgIGluZGV4OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmluYm94LnRvb2x0aXAnKSxcbiAgICAgIHByb2ZpbGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24udXNlci5wcm9maWxlLnRpdGxlJyksXG4gICAgICBhYm91dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2lkZWJhci5oZWxwLm1hbnVhbC50b29sdGlwJylcbiAgICB9O1xuICB9XG5cblxuICBwcml2YXRlIHNlbmROb3RpZmljYXRpb24oKSB7XG4gICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gIT09ICdkZW5pZWQnKSB7XG4gICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb24oKSB7XG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5ub3RpZmljYXRpb24udGl0bGUnKTtcbiAgICBjb25zdCBib2R5ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubm90aWZpY2F0aW9uLmJvZHknKTtcbiAgICBjb25zdCBpY29uID0gJ2Fzc2V0cy9fZGVmYXVsdC9pbWcveXV1dmlzLWFnZW50LnBuZyc7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCB7XG4gICAgICBib2R5OiBib2R5LFxuICAgICAgaWNvbjogaWNvblxuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uQ2xpY2tMaXN0ZW5lcihub3RpZmljYXRpb24pO1xuICB9XG5cbiAgLy8gVGhpcyBpcyBsaXN0ZW5pbmcgZm9yIHRoZSBuYXZpZ2F0aW9uIGNsaWNrIGV2ZW50LiBXaGVuIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSwgaXQganVzdCBuYXZpZ2F0ZXMgdG8gdGhlIGluYm94IHJvdXRlLlxuICAvLyBJZiBub3QsIGl0IG9wZW5zIGEgbmV3IHRhYiBhbmQgc2hvd3MgdGhlIGluYm94IHRoZXJlLlxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb25DbGlja0xpc3RlbmVyKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSB7XG4gICAgbm90aWZpY2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucGFnZVZpc2libGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2luYm94Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgIGNvbnN0IHBhdGhUb05hdmlnYXRlID0gZnVsbFBhdGgucmVwbGFjZShjdXJyZW50Um91dGUsICcnKSArICcvaW5ib3gnO1xuICAgICAgICB3aW5kb3cub3BlbihwYXRoVG9OYXZpZ2F0ZSwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhpcyBsaXN0ZW5lciBpcyBuZWVkZWQgdG8gY2hlY2ssIGlmIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSBvciBub3RcbiAgcHJpdmF0ZSBpbml0VmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCAoKSA9PiB0aGlzLnBhZ2VWaXNpYmxlID0gIXRoaXMucGFnZVZpc2libGUpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhcigpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9ICF0aGlzLnNpZGViYXJTaG93O1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZWFyY2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5DcmVhdGVPYmplY3RPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FkZCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Qcm9jZXNzT3ZlcmxheSgpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdhY3Rpb25zJ319XSk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN0YXRlKHN0YXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVPblNjaGVtYUNoYW5nZSgpO1xuICAgIHRoaXMuc2V0SWNvblRpdGxlcygpO1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRhdGlvbigpO1xuICAgIHRoaXMuZXhlQWN0aW9ucyA9IHRoaXMuYnBtU2VydmljZS5oYXNNYWluRXhlY3V0YWJsZVByb2Nlc3NlcztcbiAgICAvLyB0aGlzLmJwbVNlcnZpY2VcbiAgICAvLyAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIHRydWUpXG4gICAgLy8gICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgLy8gICAgIHRoaXMuZXhlQWN0aW9ucyA9ICEhcmVzLmxlbmd0aDtcbiAgICAvLyAgIH0pO1xuICAgIHRoaXMuaW5pdFZpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lcigpO1xuICB9XG59XG4iLCI8ZW8tc2lkZS1iYXIgKGVvT3V0c2lkZUNsaWNrKT1cInNpZGViYXJTaG93ID0gIXNpZGViYXJTaG93XCIgKm5nSWY9XCJzaWRlYmFyU2hvd1wiPlxuICA8ZGl2IGNsYXNzPVwibmF2aVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLm5hdmlcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVscFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLmhlbHBcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9lby1zaWRlLWJhcj5cblxuPGRpdiBjbGFzcz1cImVvLWFwcC1iYXJcIiBbbmdDbGFzc109XCJ7dHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50fVwiIGVvUnRsQXdhcmU+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnRcIj5cblxuICAgIDxlby1pY29uIGlkPVwiYXBwLW1lbnVcIiBjbGFzcz1cIm1lbnUgd2hpdGVcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKClcIiAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlU2lkZWJhcigpXCJcbiAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19oYW1idXJnZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwib3BlbkRhc2hib2FyZCgkZXZlbnQuY3RybEtleSlcIiAoYXV4Y2xpY2spPVwib3BlbkRhc2hib2FyZCh0cnVlKVwiXG4gICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvcGVuRGFzaGJvYXJkKGZhbHNlKVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibG9nbyB3aGl0ZVwiIFtpY29uU3JjXT1cImxvZ29cIj48L2VvLWljb24+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW5TZWFyY2hPdmVybGF5KClcIj5cbiAgICAgICAgPGVvLWljb24gaWQ9XCJhcHAtc2VhcmNoXCIgY2xhc3M9XCJzZWFyY2ggd2hpdGVcIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwicHJlc2VydmVcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5zZWFyY2hcIlxuICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NlYXJjaC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuXG4gICAgICA8YSAoY2xpY2spPVwib3BlbkNyZWF0ZU9iamVjdE92ZXJsYXkoKVwiPlxuICAgICAgICA8ZW8taWNvbiBpZD1cImFwcC1hZGRcIiBjbGFzcz1cImFkZCB3aGl0ZVwiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmludHJheVwiXG4gICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmZpbGVcIlxuICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2FkZC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW5Qcm9jZXNzT3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLWFjdGlvbnNcIiBjbGFzcz1cImFjdGlvbnMgd2hpdGVcIiAqbmdJZj1cImV4ZUFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5leGVhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG1fc3RhcnQuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJcIj5cbiAgICAgIDxlby1jbGlwYm9hcmQ+PC9lby1jbGlwYm9hcmQ+XG4gICAgPC9kaXY+XG4gICAgPGEgKGNsaWNrKT1cIm9wZW5TdGF0ZSgnL2Zhdm9yaXRlcycpXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBmYXZvcml0ZVwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5mYXZvcml0ZXNcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5mYXZvcml0ZXNcIlxuICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19mYXZvcml0ZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSAoY2xpY2spPVwib3BlblN0YXRlKCcvcHJlcGFyZScpXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBwcmVwYXJlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLnByZXBhcmVcIlxuICAgICAgICAgICAgICBbYmFkZ2VdPVwicHJlcGFyZWRJdGVtc0NvdW50XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcHJlcGFyZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSAoY2xpY2spPVwib3BlblN0YXRlKCcvaW5ib3gnKVwiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgaW5ib3hcIiBbbmdDbGFzc109XCJ7YWxlcnQ6IGluYm94U3RhdGU/Lm92ZXJkdWVtZXNzYWdlcyA+IDB9XCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW5ib3hcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuaW5kZXhcIlxuICAgICAgICAgICAgICBbYmFkZ2VdPVwiaW5ib3hTdGF0ZT8udG90YWxtZXNzYWdlc1wiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2luYm94LnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxhIGhyZWY9XCJ7e2RvY3UubGlua319XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBhYm91dFwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5hYm91dFwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fib3V0LnN2ZydcIj48L2VvLWljb24+XG4gICAgPC9hPlxuICAgIDxlby1vdmVybGF5ICN1c2VycGFuZWwgKG9uVG9nZ2xlKT1cIm9uVG9nZ2xlUHJvZmlsZU92ZXJsYXkoKVwiPlxuICAgICAgPGVvLXVzZXItYXZhdGFyIGNsYXNzPVwiYnRuXCIgaWQ9XCJhcHAtcHJvZmlsZVwiIFtzaG93UHJlc2VuY2VdPVwidHJ1ZVwiIFt0aXRsZV09XCJpY29uVGl0bGVzLnByb2ZpbGVcIiB0YWJpbmRleD1cIjBcIj48L2VvLXVzZXItYXZhdGFyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tcHJvZmlsZVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8ZW8tdXNlci1hdmF0YXIgdGFiaW5kZXg9XCItMVwiID48L2VvLXVzZXItYXZhdGFyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57e3VzZXIuZmlyc3RuYW1lfX0ge3t1c2VyLmxhc3RuYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWlsXCI+e3t1c2VyLmVtYWlsfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmVzZW5jZVwiICpuZ0lmPVwiIXVzZXIucHJlc2VudFwiIHRyYW5zbGF0ZT5lby5zdGF0ZS5zZXR0aW5ncy5wcmVzZW5jZS5hYnNlbnQ8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZcIiBlb1RyYXBGb2N1cz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0gc2V0dGluZ3NcIiAoY2xpY2spPVwidXNlcnBhbmVsPy5jbG9zZSgpXCIgPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW5TdGF0ZSgnL3NldHRpbmdzJylcIiBpZD1cInNldHRpbmdzXCIgdGFiaW5kZXg9XCIwXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCIgZm9jdXNhYmxlIHRyYW5zbGF0ZT5lby5iYXIuYnV0dG9uLnNldHRpbmdzLnRpdGxlPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtaXRlbSBsb2dvdXRcIiAqbmdJZj1cIiFjYXBhYmlsaXRpZXMuc3NvXCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9lbnRlcicsIHsgbG9nb3V0OiB0cnVlIH1dXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZS1saW5rXCIgdHJhbnNsYXRlPmVvLmJhci5idXR0b24ubG9nb3V0LnRpdGxlPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLnByb2ZpbGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1vdmVybGF5PlxuXG5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hcHAtc2hlbGwvYXBwLWJhci9hcHAtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FwcC1zaGVsbC9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUtMLFVBQVUsRUFNWCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU3hFLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFpQjFCLFlBQW9CLFdBQXdCLEVBQ3hCLGlCQUFzQyxFQUN0QyxTQUEyQixFQUMzQixZQUEwQixFQUMxQixjQUE4QixFQUM5QixNQUFjLEVBQ2QsVUFBc0IsRUFDdEIsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLE9BQW1CLEVBQ25CLGNBQXFDO1FBVnJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdB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ZixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7c1hBTWIsV0FBVztzQkFBbkIsS0FBSztnQkFhNkIsZ0JBQWdCO3NCQUFsRCxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQnBtU2VydmljZSxcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBDb25maWcsXG4gIEVuYWlvRXZlbnQsXG4gIEVvVXNlcixcbiAgRXZlbnRTZXJ2aWNlLFxuICBJbmJveFNlcnZpY2UsIEluYm94U3RhdGUsXG4gIFByZXBhcmVTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZVxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtVc2VyQXZhdGFyQ29tcG9uZW50fSBmcm9tICcuLi8uLi91aS91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZVwiO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWFwcC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgcHJlcGFyZWRJdGVtc0NvdW50OiBudW1iZXI7XG4gIGluYm94U3RhdGU6IEluYm94U3RhdGU7XG4gIHVzZXI6IEVvVXNlcjtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGV4ZUFjdGlvbnM6IGJvb2xlYW47XG4gIHNpZGViYXJTaG93ID0gZmFsc2U7XG4gIG9wdGlvbnM6IGFueTtcbiAgaWNvblRpdGxlczogYW55O1xuICBsb2dvOiBzdHJpbmc7XG4gIHBhZ2VWaXNpYmxlID0gdHJ1ZTtcbiAgZG9jdToge2xpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZ307XG4gIEBWaWV3Q2hpbGRyZW4oVXNlckF2YXRhckNvbXBvbmVudCkgYXZhdGFyQ29tcG9uZW50czogUXVlcnlMaXN0PFVzZXJBdmF0YXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtUmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2VcbiAgICAgICAgICAgICAgKSB7XG4gICAgdGhpcy5jYXBhYmlsaXRpZXMgPSB0aGlzLmNhcGFiaWxpdHlTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgIHRoaXMubG9nbyA9IHRoaXMuY29uZmlnLmdldE5hdmlnYXRpb25CYXJJbWFnZSgpO1xuICAgIC8vIGxpc3RlbiBmb3Igcm91dGluZyBldmVudHMgdG8gaGlkZSBhbnkgYWN0aXZlIG92ZXJsYXlzXG4gICAgLy8gb24gY2hhbmdpbmcgcm91dGVcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLmV2ZW50cy5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJC5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKHVzZXIgPT4gdGhpcy51c2VyID0gdXNlcik7XG5cbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuaW5ib3gpIHtcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlXG4gICAgICAgIC5pbmJveFN0YXRlJC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmluYm94U3RhdGUgJiYgdGhpcy5pbmJveFN0YXRlLnVucmVhZG1lc3NhZ2VzIDwgaW5ib3hTdGF0ZS51bnJlYWRtZXNzYWdlcykge1xuICAgICAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaW5ib3hTdGF0ZSA9IGluYm94U3RhdGU7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lOQk9YX0NIQU5HRUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkpIHtcbiAgICAgIHRoaXMucHJlcGFyZVNlcnZpY2VcbiAgICAgICAgLnByZXBhcmVkSXRlbUNvdW50JC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShjb3VudCA9PiB7XG4gICAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1zQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGVcbiAgICAgIC5vbkxhbmdDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRJY29uVGl0bGVzKCkpO1xuICB9XG5cbiAgb3BlbkRhc2hib2FyZChvcGVuSW5OZXdXaW5kb3c6IGJvb2xlYW4pIHtcbiAgICBpZiAob3BlbkluTmV3V2luZG93KSB7XG4gICAgICB3aW5kb3cub3BlbignLycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RG9jdW1lbnRhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY3UgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmRvY3UnKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIGRhdGEudXNlclNldHRpbmdzLmNsaWVudGxvY2FsZS5zdWJzdHJpbmcoMCwgMikpO1xuICAgICAgICB0aGlzLmRvY3UgPSB7Li4uZG9jdSwgbGlua307XG4gICAgICB9KVxuICB9XG5cbiAgdXBkYXRlT25TY2hlbWFDaGFuZ2UoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYnBtU2VydmljZVxuICAgICAgICAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIG51bGwsIG51bGwsIG51bGwsIHRydWUpXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgLy8gdGhpcy5leGVBY3Rpb25zID0gISFyZXMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5leGVBY3Rpb25zID0gdGhpcy5icG1TZXJ2aWNlLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZVByb2ZpbGVPdmVybGF5KCl7XG4gICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0aGlzLmVsZW1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjc2V0dGluZ3MnKS5mb2N1cygpO1xuICAgfSk7XG4gIH1cblxuICBzZXRJY29uVGl0bGVzKCkge1xuICAgIHRoaXMuaWNvblRpdGxlcyA9IHtcbiAgICAgIHNlYXJjaDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZWFyY2gudG9vbHRpcCcpLFxuICAgICAgZmlsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5maWxlLnRvb2x0aXAnKSxcbiAgICAgIGV4ZWFjdGlvbnM6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24uZXhlY3V0ZS5hY3Rpb25zLnRvb2x0aXAnKSxcbiAgICAgIGZhdm9yaXRlczogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5mYXZvcml0ZXMudG9vbHRpcCcpLFxuICAgICAgcHJlcGFyZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5wcmVwYXJlLnRvb2x0aXAnKSxcbiAgICAgIGluZGV4OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5iYXIuYnV0dG9uLmluYm94LnRvb2x0aXAnKSxcbiAgICAgIHByb2ZpbGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmJhci5idXR0b24udXNlci5wcm9maWxlLnRpdGxlJyksXG4gICAgICBhYm91dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2lkZWJhci5oZWxwLm1hbnVhbC50b29sdGlwJylcbiAgICB9O1xuICB9XG5cblxuICBwcml2YXRlIHNlbmROb3RpZmljYXRpb24oKSB7XG4gICAgaWYgKE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xuICAgIH0gZWxzZSBpZiAoTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gIT09ICdkZW5pZWQnKSB7XG4gICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb24oKSB7XG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5ub3RpZmljYXRpb24udGl0bGUnKTtcbiAgICBjb25zdCBib2R5ID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubm90aWZpY2F0aW9uLmJvZHknKTtcbiAgICBjb25zdCBpY29uID0gJ2Fzc2V0cy9fZGVmYXVsdC9pbWcveXV1dmlzLWFnZW50LnBuZyc7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHRpdGxlLCB7XG4gICAgICBib2R5OiBib2R5LFxuICAgICAgaWNvbjogaWNvblxuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uQ2xpY2tMaXN0ZW5lcihub3RpZmljYXRpb24pO1xuICB9XG5cbiAgLy8gVGhpcyBpcyBsaXN0ZW5pbmcgZm9yIHRoZSBuYXZpZ2F0aW9uIGNsaWNrIGV2ZW50LiBXaGVuIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSwgaXQganVzdCBuYXZpZ2F0ZXMgdG8gdGhlIGluYm94IHJvdXRlLlxuICAvLyBJZiBub3QsIGl0IG9wZW5zIGEgbmV3IHRhYiBhbmQgc2hvd3MgdGhlIGluYm94IHRoZXJlLlxuICBwcml2YXRlIGluaXROb3RpZmljYXRpb25DbGlja0xpc3RlbmVyKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSB7XG4gICAgbm90aWZpY2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucGFnZVZpc2libGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2luYm94Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmw7XG4gICAgICAgIGNvbnN0IHBhdGhUb05hdmlnYXRlID0gZnVsbFBhdGgucmVwbGFjZShjdXJyZW50Um91dGUsICcnKSArICcvaW5ib3gnO1xuICAgICAgICB3aW5kb3cub3BlbihwYXRoVG9OYXZpZ2F0ZSwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVGhpcyBsaXN0ZW5lciBpcyBuZWVkZWQgdG8gY2hlY2ssIGlmIHRoZSBjbGllbnQgdGFiIGlzIGFjdGl2ZSBvciBub3RcbiAgcHJpdmF0ZSBpbml0VmlzaWJpbGl0eUNoYW5nZUxpc3RlbmVyKCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCAoKSA9PiB0aGlzLnBhZ2VWaXNpYmxlID0gIXRoaXMucGFnZVZpc2libGUpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhcigpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5zaWRlYmFyU2hvdyA9ICF0aGlzLnNpZGViYXJTaG93O1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZWFyY2hPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5DcmVhdGVPYmplY3RPdmVybGF5KCkge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVjaygpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FkZCd9fV0pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Qcm9jZXNzT3ZlcmxheSgpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdhY3Rpb25zJ319XSk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN0YXRlKHN0YXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVPblNjaGVtYUNoYW5nZSgpO1xuICAgIHRoaXMuc2V0SWNvblRpdGxlcygpO1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRhdGlvbigpO1xuICAgIHRoaXMuZXhlQWN0aW9ucyA9IHRoaXMuYnBtU2VydmljZS5oYXNNYWluRXhlY3V0YWJsZVByb2Nlc3NlcztcbiAgICAvLyB0aGlzLmJwbVNlcnZpY2VcbiAgICAvLyAgIC5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIHRydWUpXG4gICAgLy8gICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgLy8gICAgIHRoaXMuZXhlQWN0aW9ucyA9ICEhcmVzLmxlbmd0aDtcbiAgICAvLyAgIH0pO1xuICAgIHRoaXMuaW5pdFZpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lcigpO1xuICB9XG59XG4iLCI8ZW8tc2lkZS1iYXIgKGVvT3V0c2lkZUNsaWNrKT1cInNpZGViYXJTaG93ID0gIXNpZGViYXJTaG93XCIgKm5nSWY9XCJzaWRlYmFyU2hvd1wiPlxuICA8ZGl2IGNsYXNzPVwibmF2aVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLm5hdmlcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVscFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVvLXNpZGViYXItcGx1Z2luLmhlbHBcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9lby1zaWRlLWJhcj5cblxuPGRpdiBjbGFzcz1cImVvLWFwcC1iYXJcIiBbbmdDbGFzc109XCJ7dHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50fVwiIGVvUnRsQXdhcmU+XG5cbiAgPGRpdiBjbGFzcz1cImxlZnRcIj5cblxuICAgIDxlby1pY29uIGlkPVwiYXBwLW1lbnVcIiBjbGFzcz1cIm1lbnUgd2hpdGVcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlYmFyKClcIiAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlU2lkZWJhcigpXCJcbiAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19oYW1idXJnZXIuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8ZW8taWNvbiAoY2xpY2spPVwib3BlbkRhc2hib2FyZCgkZXZlbnQuY3RybEtleSlcIiAoYXV4Y2xpY2spPVwib3BlbkRhc2hib2FyZCh0cnVlKVwiXG4gICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvcGVuRGFzaGJvYXJkKGZhbHNlKVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibG9nbyB3aGl0ZVwiIFtpY29uU3JjXT1cImxvZ29cIj48L2VvLWljb24+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlblNlYXJjaE92ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuU2VhcmNoT3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLXNlYXJjaFwiIGNsYXNzPVwic2VhcmNoIHdoaXRlXCIgcXVlcnlQYXJhbXNIYW5kbGluZz1cInByZXNlcnZlXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgIDwvYT5cblxuICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZW50ZXIpPVwib3BlbkNyZWF0ZU9iamVjdE92ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuQ3JlYXRlT2JqZWN0T3ZlcmxheSgpXCI+XG4gICAgICAgIDxlby1pY29uIGlkPVwiYXBwLWFkZFwiIGNsYXNzPVwiYWRkIHdoaXRlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZmlsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYWRkLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuUHJvY2Vzc092ZXJsYXkoKVwiIChjbGljayk9XCJvcGVuUHJvY2Vzc092ZXJsYXkoKVwiPlxuICAgICAgICA8ZW8taWNvbiBpZD1cImFwcC1hY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb25zIHdoaXRlXCIgKm5nSWY9XCJleGVBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuZXhlYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYnBtX3N0YXJ0LnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ViXCI+XG4gICAgICA8ZW8tY2xpcGJvYXJkPjwvZW8tY2xpcGJvYXJkPlxuICAgIDwvZGl2PlxuICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5TdGF0ZSgnL2Zhdm9yaXRlcycpXCIgKGNsaWNrKT1cIm9wZW5TdGF0ZSgnL2Zhdm9yaXRlcycpXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBmYXZvcml0ZVwiXG4gICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiaWNvblRpdGxlcy5mYXZvcml0ZXNcIiAqbmdJZj1cImNhcGFiaWxpdGllcy5mYXZvcml0ZXNcIlxuICAgICAgICAgICAgICBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19mYXZvcml0ZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuU3RhdGUoJy9wcmVwYXJlJylcIiAoY2xpY2spPVwib3BlblN0YXRlKCcvcHJlcGFyZScpXCI+XG4gICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiB3aGl0ZSBwcmVwYXJlXCIgKm5nSWY9XCJjYXBhYmlsaXRpZXMuaW50cmF5XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLnByZXBhcmVcIlxuICAgICAgICAgICAgICBbYmFkZ2VdPVwicHJlcGFyZWRJdGVtc0NvdW50XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcHJlcGFyZS5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lbnRlcik9XCJvcGVuU3RhdGUoJy9pbmJveCcpXCIgKGNsaWNrKT1cIm9wZW5TdGF0ZSgnL2luYm94JylcIj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHdoaXRlIGluYm94XCIgW25nQ2xhc3NdPVwie2FsZXJ0OiBpbmJveFN0YXRlPy5vdmVyZHVlbWVzc2FnZXMgPiAwfVwiICpuZ0lmPVwiY2FwYWJpbGl0aWVzLmluYm94XCJcbiAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCJpY29uVGl0bGVzLmluZGV4XCJcbiAgICAgICAgICAgICAgW2JhZGdlXT1cImluYm94U3RhdGU/LnRvdGFsbWVzc2FnZXNcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8YSB0YWJpbmRleD1cIjBcIiBocmVmPVwie3tkb2N1Lmxpbmt9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gd2hpdGUgYWJvdXRcIlxuICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cImljb25UaXRsZXMuYWJvdXRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hYm91dC5zdmcnXCI+PC9lby1pY29uPlxuICAgIDwvYT5cbiAgICA8ZW8tb3ZlcmxheSAjdXNlcnBhbmVsIChvblRvZ2dsZSk9XCJvblRvZ2dsZVByb2ZpbGVPdmVybGF5KClcIj5cbiAgICAgIDxlby11c2VyLWF2YXRhciBjbGFzcz1cImJ0blwiIGlkPVwiYXBwLXByb2ZpbGVcIiBbc2hvd1ByZXNlbmNlXT1cInRydWVcIiBbdGl0bGVdPVwiaWNvblRpdGxlcy5wcm9maWxlXCIgdGFiaW5kZXg9XCIwXCI+PC9lby11c2VyLWF2YXRhcj5cblxuICAgICAgPGRpdiBjbGFzcz1cImVvLXByb2ZpbGVcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPGVvLXVzZXItYXZhdGFyIHRhYmluZGV4PVwiLTFcIiA+PC9lby11c2VyLWF2YXRhcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3t1c2VyLmZpcnN0bmFtZX19IHt7dXNlci5sYXN0bmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbFwiPnt7dXNlci5lbWFpbH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJlc2VuY2VcIiAqbmdJZj1cIiF1c2VyLnByZXNlbnRcIiB0cmFuc2xhdGU+ZW8uc3RhdGUuc2V0dGluZ3MucHJlc2VuY2UuYWJzZW50PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2XCIgZW9UcmFwRm9jdXM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIHNldHRpbmdzXCIgKGtleWRvd24uZW50ZXIpPVwidXNlcnBhbmVsPy5jbG9zZSgpXCIgKGNsaWNrKT1cInVzZXJwYW5lbD8uY2xvc2UoKVwiID5cbiAgICAgICAgICAgIDxhIChrZXlkb3duLmVudGVyKT1cIm9wZW5TdGF0ZSgnL3NldHRpbmdzJylcIiAoY2xpY2spPVwib3BlblN0YXRlKCcvc2V0dGluZ3MnKVwiIGlkPVwic2V0dGluZ3NcIiB0YWJpbmRleD1cIjBcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlLWxpbmtcIiBmb2N1c2FibGUgdHJhbnNsYXRlPmVvLmJhci5idXR0b24uc2V0dGluZ3MudGl0bGU8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGxvZ291dFwiICpuZ0lmPVwiIWNhcGFiaWxpdGllcy5zc29cIj5cbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL2VudGVyJywgeyBsb2dvdXQ6IHRydWUgfV1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlLWxpbmtcIiB0cmFuc2xhdGU+ZW8uYmFyLmJ1dHRvbi5sb2dvdXQudGl0bGU8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZW8tc2lkZWJhci1wbHVnaW4ucHJvZmlsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLW92ZXJsYXk+XG5cblxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -55,6 +55,7 @@ export class AppProcessComponent {
55
55
  * @param formData Data to be passed to the process to be created
56
56
  */
57
57
  startProcessWithFormData(formData) {
58
+ this.finishPending();
58
59
  this.executeProcess(this.selectedProcess, formData, this.translate.instant('eo.process.started', { processName: this.selectedProcess.title }));
59
60
  }
60
61
  executeProcess(executableProcess, data, successMessage = '') {
@@ -108,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
108
109
  type: Component,
109
110
  args: [{ selector: 'eo-app-process', template: "<eo-dialog [title]=\"'eo.bar.button.execute.actions.tooltip' | translate\"\n [visible]=\"true\"\n [minWidth]=\"400\"\n [styleClass]=\"'more-actions'\"\n (hide)=\"close($event)\">\n\n <section *ngIf=\"processes?.length; else loading\">\n\n <div class=\"process-item\" *ngFor=\"let process of processes\" (click)=\"selectProcess(process)\">\n <eo-icon [iconId]=\"process.iconid\" *ngIf=\"process.iconid; else defaulticon\"></eo-icon>\n <ng-template #defaulticon><eo-icon [iconSrc]=\"'assets/_default/svg/ic_bpm.svg'\"></eo-icon></ng-template>\n <div class=\"pi-content\">\n <div class=\"title\">{{process.title}}</div>\n <div class=\"description\">{{process.description}}</div>\n </div>\n </div>\n\n </section>\n\n <ng-container *ngIf=\"!processForm; else tplProcessForm\" class=\"select-process\"></ng-container>\n\n <ng-template #loading>\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </ng-template>\n\n\n <ng-template #tplProcessForm>\n\n <eo-dialog [title]=\"selectedProcess?.title\"\n [subtitle]=\"selectedProcess?.description\"\n [visible]=\"true\"\n [dirtyCheck]=\"pendingTaskIds\"\n [minWidth]=\"1000\"\n [styleClass]=\"'process-form-dialog'\"\n (hide)=\"cancelDialog()\" #dialog>\n\n <eo-process-form [formOptions]=\"processForm\"\n (onResetForm)=\"formReset($event)\"\n (onCancel)=\"onCancel(dialog)\"\n (onSaveForm)=\"startProcessWithFormData($event)\"\n (statusChanged)=\"onIndexDataChanged($event)\">\n </eo-process-form>\n </eo-dialog>\n </ng-template>\n\n</eo-dialog>\n", styles: [".process-item{padding:var(--app-pane-padding);display:flex;align-items:center;border-bottom:1px solid var(--list-item-border-color);cursor:pointer}.process-item:hover{background-color:var(--list-item-hover-background)}.process-item eo-icon{opacity:.7}.process-item .pi-content{padding:0 var(--app-pane-padding)}.process-item .pi-content .description{color:var(--text-color-caption)}eo-loading-spinner{display:flex;justify-content:center;padding:var(--app-pane-padding)}\n"] }]
110
111
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.NotificationsService }, { type: i2.TranslateService }, { type: i2.BpmService }, { type: i3.PendingChangesService }]; } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXByb2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLXByb2Nlc3MvYXBwLXByb2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLXByb2Nlc3MvYXBwLXByb2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQXdFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7QUFLMUc7O0dBRUc7QUFPSCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLFlBQW9CLE1BQWMsRUFDZCxPQUE2QixFQUM3QixTQUEyQixFQUMzQixVQUFzQixFQUN0QixjQUFxQztRQUpyQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFOekQsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFPOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFJO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsaUJBQW9DO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNC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QUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUN0RSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDakUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O2dIQXRIVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzRENmaEMsa3ZEQThDQTsyRkQvQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCcG1TZXJ2aWNlLCBFeGVjdXRhYmxlUHJvY2VzcywgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09iamVjdEZvcm1PcHRpb25zfSBmcm9tICcuLi8uLi8uLi9vYmplY3QtZm9ybSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgcmVuZGVyaW5nIHRoZSBhcHAtYmFyIGFjdGlvbiBvZiBzdGFydGluZyBleGVjdXRhYmxlIHByb2Nlc3Nlcy5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hcHAtcHJvY2VzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtcHJvY2Vzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1wcm9jZXNzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXBwUHJvY2Vzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJvY2Vzc2VzOiBFeGVjdXRhYmxlUHJvY2Vzc1tdO1xuICBzZWxlY3RlZFByb2Nlc3M6IEV4ZWN1dGFibGVQcm9jZXNzO1xuXG4gIHByb2Nlc3NGb3JtOiBPYmplY3RGb3JtT3B0aW9ucztcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VidGl0bGU6IHN0cmluZztcbiAgcGVuZGluZ1Rhc2tJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2FzdGVyOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKSB7XG4gIH1cblxuICBjbG9zZShldnQ/KTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6IG51bGx9fV0sIHtyZXBsYWNlVXJsOiB0cnVlfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFuIGV4ZWN1dGFibGUgcHJvY2VzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3Qgb2YgcHJvY2Vzc2VzLlxuICAgKiBJZiB0aGUgcHJvY2VzcyByZXF1aXJlcyBzb21lIHVzZXIgaW5wdXQsIHRoaXMgd2lsbCByZW5kZXIgdGhlIGlucHV0IGZvcm0gb3JcbiAgICogb3RoZXJ3aXNlIHN0YXJ0IHRoZSBwcm9jZXNzIHJpZ2h0IGF3YXkuXG4gICAqIEBwYXJhbSBleGVjdXRhYmxlUHJvY2VzcyBQcm9jZXNzIHRvIGJlIHNlbGVjdGVkL3N0YXJ0ZWRcbiAgICovXG4gIHNlbGVjdFByb2Nlc3MoZXhlY3V0YWJsZVByb2Nlc3M6IEV4ZWN1dGFibGVQcm9jZXNzKTogdm9pZCB7XG4gICAgdGhpcy5icG1TZXJ2aWNlLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMobnVsbCwgZmFsc2UsIHRydWUsIGV4ZWN1dGFibGVQcm9jZXNzLmlkLCB0cnVlKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICBleGVjdXRhYmxlUHJvY2VzcyA9IHJlc1swXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGV4ZWN1dGFibGVQcm9jZXNzKSk7IC8vIE9ubHkgY29waWVzIG9mIHRoZSBvcmlnaW5hbCBwcm9jZXNzZXMgYXJlIHVzZWQuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUHJvY2Vzcy5mb3JtKSB7XG4gICAgICAgICAgLy8gY3JlYXRlIGZvcm0gb3B0aW9ucyBmcm9tIHRoZSBleGVjaXRhYmxlIHByb2Nlc3MgdG8gYmUgcGFzc2VkIHRvIHRoZSByZW5kZXJpbmcgZm9ybSBjb21wb25lbnRcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvY2Vzcy5mb3JtLnNpdHVhdGlvbiA9ICdDUkVBVEUnO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0Zvcm0gPSB7XG4gICAgICAgICAgICBmb3JtTW9kZWw6IHRoaXMuc2VsZWN0ZWRQcm9jZXNzLmZvcm0sXG4gICAgICAgICAgICBkYXRhOiB0aGlzLnNlbGVjdGVkUHJvY2Vzcy5kYXRhIHx8IHt9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdGFydCBwcm9jZXNzIHJpZ2h0IGF3YXlcbiAgICAgICAgICB0aGlzLmV4ZWN1dGVQcm9jZXNzKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3MsXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3Muc3RhcnRlZCcsIHtwcm9jZXNzTmFtZTogdGhpcy5zZWxlY3RlZFByb2Nlc3MudGl0bGV9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGV4ZWN1dGFibGUgcHJvY2VzcyB3aXRoIGRhdGEgcHJvdmlkZWQgYnlcbiAgICogdGhlIGlucHV0IGZvcm0uXG4gICAqIEBwYXJhbSBmb3JtRGF0YSBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgcHJvY2VzcyB0byBiZSBjcmVhdGVkXG4gICAqL1xuICBzdGFydFByb2Nlc3NXaXRoRm9ybURhdGEoZm9ybURhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZXhlY3V0ZVByb2Nlc3MoXG4gICAgICB0aGlzLnNlbGVjdGVkUHJvY2VzcyxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJvY2Vzcy5zdGFydGVkJywge3Byb2Nlc3NOYW1lOiB0aGlzLnNlbGVjdGVkUHJvY2Vzcy50aXRsZX0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVByb2Nlc3MoZXhlY3V0YWJsZVByb2Nlc3M6IEV4ZWN1dGFibGVQcm9jZXNzLCBkYXRhOiBhbnksIHN1Y2Nlc3NNZXNzYWdlID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbERpYWxvZygpO1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIHRoaXMuYnBtU2VydmljZS5zdGFydFByb2Nlc3MoZXhlY3V0YWJsZVByb2Nlc3MuaWQsIGRhdGEsIFtdKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHN1Y2Nlc3NNZXNzYWdlKTtcbiAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby5wcm9jZXNzLnN0YXJ0ZWQuZmFpbCcsXG4gICAgICAgICAgICB7cHJvY2Vzc05hbWU6IGV4ZWN1dGFibGVQcm9jZXNzLnRpdGxlfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICApKTtcbiAgfVxuXG4gIGZvcm1SZXNldChldmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0Zvcm0gPSBudWxsO1xuICB9XG5cbiAgY2FuY2VsRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0Zvcm0gPSBudWxsO1xuICB9XG5cbiAgb25DYW5jZWwoZGlhbG9nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrRm9yUGVuZGluZ1Rhc2tzKHRoaXMucGVuZGluZ1Rhc2tJZHMpKSB7XG4gICAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgIGRpYWxvZy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgLy8gYmVjYXVzZSB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBmb3JtIHN0YXR1cyBjaGFuZ2VzLFxuICAgIC8vIHBlbmRpbmcgdGFzayB3aWxsIG9ubHkgYmUgc3RhcnRlZCBvbmNlIHVudGlsIGl0IHdhcyBmaW5pc2hlZFxuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzayh0aGlzLnBlbmRpbmdUYXNrSWRzWzBdIHx8ICcgJykpIHtcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJZHMgPSBbdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKV07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hQZW5kaW5nKCkge1xuICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSWRzWzBdKTtcbiAgfVxuXG4gIG9uSW5kZXhEYXRhQ2hhbmdlZChldmVudCkge1xuICAgIGlmIChldmVudC5kaXJ0eSkge1xuICAgICAgdGhpcy5zdGFydFBlbmRpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5icG1TZXJ2aWNlLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMobnVsbCwgdHJ1ZSwgbnVsbCwgbnVsbCwgdHJ1ZSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMucHJvY2Vzc2VzID0gcmVzLnNvcnQoVXRpbHMuc29ydFZhbHVlcygndGl0bGUnKSkpO1xuICB9XG59XG4iLCI8ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8uYmFyLmJ1dHRvbi5leGVjdXRlLmFjdGlvbnMudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgW21pbldpZHRoXT1cIjQwMFwiXG4gICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIidtb3JlLWFjdGlvbnMnXCJcbiAgICAgICAgICAgKGhpZGUpPVwiY2xvc2UoJGV2ZW50KVwiPlxuXG4gIDxzZWN0aW9uICpuZ0lmPVwicHJvY2Vzc2VzPy5sZW5ndGg7IGVsc2UgbG9hZGluZ1wiPlxuXG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtaXRlbVwiICpuZ0Zvcj1cImxldCBwcm9jZXNzIG9mIHByb2Nlc3Nlc1wiIChjbGljayk9XCJzZWxlY3RQcm9jZXNzKHByb2Nlc3MpXCI+XG4gICAgICA8ZW8taWNvbiBbaWNvbklkXT1cInByb2Nlc3MuaWNvbmlkXCIgKm5nSWY9XCJwcm9jZXNzLmljb25pZDsgZWxzZSBkZWZhdWx0aWNvblwiPjwvZW8taWNvbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdGljb24+PGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYnBtLnN2ZydcIj48L2VvLWljb24+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwaS1jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7cHJvY2Vzcy50aXRsZX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPnt7cHJvY2Vzcy5kZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L3NlY3Rpb24+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9jZXNzRm9ybTsgZWxzZSB0cGxQcm9jZXNzRm9ybVwiIGNsYXNzPVwic2VsZWN0LXByb2Nlc3NcIj48L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbWVkaXVtJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgPG5nLXRlbXBsYXRlICN0cGxQcm9jZXNzRm9ybT5cblxuICAgIDxlby1kaWFsb2cgW3RpdGxlXT1cInNlbGVjdGVkUHJvY2Vzcz8udGl0bGVcIlxuICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cInNlbGVjdGVkUHJvY2Vzcz8uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbZGlydHlDaGVja109XCJwZW5kaW5nVGFza0lkc1wiXG4gICAgICAgICAgICAgICBbbWluV2lkdGhdPVwiMTAwMFwiXG4gICAgICAgICAgICAgICBbc3R5bGVDbGFzc109XCIncHJvY2Vzcy1mb3JtLWRpYWxvZydcIlxuICAgICAgICAgICAgICAgKGhpZGUpPVwiY2FuY2VsRGlhbG9nKClcIiAjZGlhbG9nPlxuXG4gICAgICA8ZW8tcHJvY2Vzcy1mb3JtIFtmb3JtT3B0aW9uc109XCJwcm9jZXNzRm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uUmVzZXRGb3JtKT1cImZvcm1SZXNldCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAob25DYW5jZWwpPVwib25DYW5jZWwoZGlhbG9nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uU2F2ZUZvcm0pPVwic3RhcnRQcm9jZXNzV2l0aEZvcm1EYXRhKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIChzdGF0dXNDaGFuZ2VkKT1cIm9uSW5kZXhEYXRhQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8L2VvLXByb2Nlc3MtZm9ybT5cbiAgICA8L2VvLWRpYWxvZz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9lby1kaWFsb2c+XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXByb2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLXByb2Nlc3MvYXBwLXByb2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYXBwLXNoZWxsL2FwcC1iYXIvYXBwLXByb2Nlc3MvYXBwLXByb2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQXdFLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7QUFLMUc7O0dBRUc7QUFPSCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLFlBQW9CLE1BQWMsRUFDZCxPQUE2QixFQUM3QixTQUEyQixFQUMzQixVQUFzQixFQUN0QixjQUFxQztRQUpyQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFOekQsbUJBQWMsR0FBYSxFQUFFLENBQUM7SUFPOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFJO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsaUJBQW9DO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNC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QUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUN0QixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQ2pFLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDOztnSEF2SFUsbUJBQW1CO29HQUFuQixtQkFBbUIsc0RDZmhDLGt2REE4Q0E7MkZEL0JhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnBtU2VydmljZSwgRXhlY3V0YWJsZVByb2Nlc3MsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LWZvcm0nO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHJlbmRlcmluZyB0aGUgYXBwLWJhciBhY3Rpb24gb2Ygc3RhcnRpbmcgZXhlY3V0YWJsZSBwcm9jZXNzZXMuXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYXBwLXByb2Nlc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLXByb2Nlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtcHJvY2Vzcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcFByb2Nlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByb2Nlc3NlczogRXhlY3V0YWJsZVByb2Nlc3NbXTtcbiAgc2VsZWN0ZWRQcm9jZXNzOiBFeGVjdXRhYmxlUHJvY2VzcztcblxuICBwcm9jZXNzRm9ybTogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN1YnRpdGxlOiBzdHJpbmc7XG4gIHBlbmRpbmdUYXNrSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgdG9hc3RlcjogTm90aWZpY2F0aW9uc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGJwbVNlcnZpY2U6IEJwbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSkge1xuICB9XG5cbiAgY2xvc2UoZXZ0Pyk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiBudWxsfX1dLCB7cmVwbGFjZVVybDogdHJ1ZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbiBleGVjdXRhYmxlIHByb2Nlc3MgZnJvbSB0aGUgY3VycmVudCBsaXN0IG9mIHByb2Nlc3Nlcy5cbiAgICogSWYgdGhlIHByb2Nlc3MgcmVxdWlyZXMgc29tZSB1c2VyIGlucHV0LCB0aGlzIHdpbGwgcmVuZGVyIHRoZSBpbnB1dCBmb3JtIG9yXG4gICAqIG90aGVyd2lzZSBzdGFydCB0aGUgcHJvY2VzcyByaWdodCBhd2F5LlxuICAgKiBAcGFyYW0gZXhlY3V0YWJsZVByb2Nlc3MgUHJvY2VzcyB0byBiZSBzZWxlY3RlZC9zdGFydGVkXG4gICAqL1xuICBzZWxlY3RQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzOiBFeGVjdXRhYmxlUHJvY2Vzcyk6IHZvaWQge1xuICAgIHRoaXMuYnBtU2VydmljZS5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIGZhbHNlLCB0cnVlLCBleGVjdXRhYmxlUHJvY2Vzcy5pZCwgdHJ1ZSkuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgZXhlY3V0YWJsZVByb2Nlc3MgPSByZXNbMF07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShleGVjdXRhYmxlUHJvY2VzcykpOyAvLyBPbmx5IGNvcGllcyBvZiB0aGUgb3JpZ2luYWwgcHJvY2Vzc2VzIGFyZSB1c2VkLlxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFByb2Nlc3MuZm9ybSkge1xuICAgICAgICAgIC8vIGNyZWF0ZSBmb3JtIG9wdGlvbnMgZnJvbSB0aGUgZXhlY2l0YWJsZSBwcm9jZXNzIHRvIGJlIHBhc3NlZCB0byB0aGUgcmVuZGVyaW5nIGZvcm0gY29tcG9uZW50XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3MuZm9ybS5zaXR1YXRpb24gPSAnQ1JFQVRFJztcbiAgICAgICAgICB0aGlzLnByb2Nlc3NGb3JtID0ge1xuICAgICAgICAgICAgZm9ybU1vZGVsOiB0aGlzLnNlbGVjdGVkUHJvY2Vzcy5mb3JtLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZFByb2Nlc3MuZGF0YSB8fCB7fVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gc3RhcnQgcHJvY2VzcyByaWdodCBhd2F5XG4gICAgICAgICAgdGhpcy5leGVjdXRlUHJvY2VzcyhcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9jZXNzLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcm9jZXNzLnN0YXJ0ZWQnLCB7cHJvY2Vzc05hbWU6IHRoaXMuc2VsZWN0ZWRQcm9jZXNzLnRpdGxlfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBleGVjdXRhYmxlIHByb2Nlc3Mgd2l0aCBkYXRhIHByb3ZpZGVkIGJ5XG4gICAqIHRoZSBpbnB1dCBmb3JtLlxuICAgKiBAcGFyYW0gZm9ybURhdGEgRGF0YSB0byBiZSBwYXNzZWQgdG8gdGhlIHByb2Nlc3MgdG8gYmUgY3JlYXRlZFxuICAgKi9cbiAgc3RhcnRQcm9jZXNzV2l0aEZvcm1EYXRhKGZvcm1EYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICB0aGlzLmV4ZWN1dGVQcm9jZXNzKFxuICAgICAgdGhpcy5zZWxlY3RlZFByb2Nlc3MsXG4gICAgICBmb3JtRGF0YSxcbiAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3Muc3RhcnRlZCcsIHtwcm9jZXNzTmFtZTogdGhpcy5zZWxlY3RlZFByb2Nlc3MudGl0bGV9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzOiBFeGVjdXRhYmxlUHJvY2VzcywgZGF0YTogYW55LCBzdWNjZXNzTWVzc2FnZSA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxEaWFsb2coKTtcbiAgICB0aGlzLmNsb3NlKCk7XG5cbiAgICB0aGlzLmJwbVNlcnZpY2Uuc3RhcnRQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzLmlkLCBkYXRhLCBbXSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2VzcyhzdWNjZXNzTWVzc2FnZSk7XG4gICAgICB9LCBVdGlscy50aHJvdygoKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ucHJvY2Vzcy5zdGFydGVkLmZhaWwnLFxuICAgICAgICAgICAge3Byb2Nlc3NOYW1lOiBleGVjdXRhYmxlUHJvY2Vzcy50aXRsZX0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKSk7XG4gIH1cblxuICBmb3JtUmVzZXQoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NGb3JtID0gbnVsbDtcbiAgfVxuXG4gIGNhbmNlbERpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NGb3JtID0gbnVsbDtcbiAgfVxuXG4gIG9uQ2FuY2VsKGRpYWxvZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wZW5kaW5nQ2hhbmdlcy5jaGVja0ZvclBlbmRpbmdUYXNrcyh0aGlzLnBlbmRpbmdUYXNrSWRzKSkge1xuICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICBkaWFsb2cudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQZW5kaW5nKCkge1xuICAgIC8vIGJlY2F1c2UgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZXZlcnkgdGltZSB0aGUgZm9ybSBzdGF0dXMgY2hhbmdlcyxcbiAgICAvLyBwZW5kaW5nIHRhc2sgd2lsbCBvbmx5IGJlIHN0YXJ0ZWQgb25jZSB1bnRpbCBpdCB3YXMgZmluaXNoZWRcbiAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWRzID0gW3RoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCldO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkc1swXSk7XG4gIH1cblxuICBvbkluZGV4RGF0YUNoYW5nZWQoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuZGlydHkpIHtcbiAgICAgIHRoaXMuc3RhcnRQZW5kaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluaXNoUGVuZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYnBtU2VydmljZS5nZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKG51bGwsIHRydWUsIG51bGwsIG51bGwsIHRydWUpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnByb2Nlc3NlcyA9IHJlcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ3RpdGxlJykpKTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLmJhci5idXR0b24uZXhlY3V0ZS5hY3Rpb25zLnRvb2x0aXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgIFttaW5XaWR0aF09XCI0MDBcIlxuICAgICAgICAgICBbc3R5bGVDbGFzc109XCInbW9yZS1hY3Rpb25zJ1wiXG4gICAgICAgICAgIChoaWRlKT1cImNsb3NlKCRldmVudClcIj5cblxuICA8c2VjdGlvbiAqbmdJZj1cInByb2Nlc3Nlcz8ubGVuZ3RoOyBlbHNlIGxvYWRpbmdcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWl0ZW1cIiAqbmdGb3I9XCJsZXQgcHJvY2VzcyBvZiBwcm9jZXNzZXNcIiAoY2xpY2spPVwic2VsZWN0UHJvY2Vzcyhwcm9jZXNzKVwiPlxuICAgICAgPGVvLWljb24gW2ljb25JZF09XCJwcm9jZXNzLmljb25pZFwiICpuZ0lmPVwicHJvY2Vzcy5pY29uaWQ7IGVsc2UgZGVmYXVsdGljb25cIj48L2VvLWljb24+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRpY29uPjxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbS5zdmcnXCI+PC9lby1pY29uPjwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwicGktY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57e3Byb2Nlc3MudGl0bGV9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj57e3Byb2Nlc3MuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9zZWN0aW9uPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJvY2Vzc0Zvcm07IGVsc2UgdHBsUHJvY2Vzc0Zvcm1cIiBjbGFzcz1cInNlbGVjdC1wcm9jZXNzXCI+PC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ21lZGl1bSdcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuXG4gIDxuZy10ZW1wbGF0ZSAjdHBsUHJvY2Vzc0Zvcm0+XG5cbiAgICA8ZW8tZGlhbG9nIFt0aXRsZV09XCJzZWxlY3RlZFByb2Nlc3M/LnRpdGxlXCJcbiAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCJzZWxlY3RlZFByb2Nlc3M/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2RpcnR5Q2hlY2tdPVwicGVuZGluZ1Rhc2tJZHNcIlxuICAgICAgICAgICAgICAgW21pbldpZHRoXT1cIjEwMDBcIlxuICAgICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiJ3Byb2Nlc3MtZm9ybS1kaWFsb2cnXCJcbiAgICAgICAgICAgICAgIChoaWRlKT1cImNhbmNlbERpYWxvZygpXCIgI2RpYWxvZz5cblxuICAgICAgPGVvLXByb2Nlc3MtZm9ybSBbZm9ybU9wdGlvbnNdPVwicHJvY2Vzc0Zvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgIChvblJlc2V0Rm9ybSk9XCJmb3JtUmVzZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cIm9uQ2FuY2VsKGRpYWxvZylcIlxuICAgICAgICAgICAgICAgICAgICAgIChvblNhdmVGb3JtKT1cInN0YXJ0UHJvY2Vzc1dpdGhGb3JtRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoc3RhdHVzQ2hhbmdlZCk9XCJvbkluZGV4RGF0YUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgPC9lby1wcm9jZXNzLWZvcm0+XG4gICAgPC9lby1kaWFsb2c+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvZW8tZGlhbG9nPlxuIl19