@bizdoc/core 1.13.34 → 1.13.38
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.
- package/assets/themes/brown.min.css +0 -2
- package/assets/themes/dark.min.css +3 -5
- package/assets/themes/deep-purple-light-blue.min.css +0 -2
- package/assets/themes/deep-purple-teal.min.css +0 -2
- package/assets/themes/default.min.css +0 -2
- package/assets/themes/green.min.css +0 -2
- package/assets/themes/indigo.min.css +0 -2
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +4 -4
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +52 -19
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +16 -13
- package/esm2020/lib/chat/chat-info.mjs +2 -3
- package/esm2020/lib/chat/conversation.component.mjs +2 -2
- package/esm2020/lib/chat/conversation.pane.component.mjs +11 -2
- package/esm2020/lib/compose/action/assign-action.component.mjs +19 -43
- package/esm2020/lib/compose/trace/flow.component.mjs +46 -32
- package/esm2020/lib/compose/trace/trace.component.mjs +8 -12
- package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -2
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/slots/slots.component.mjs +2 -2
- package/esm2020/lib/core/translations.mjs +11 -7
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -1
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +6 -5
- package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +206 -0
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +2 -2
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +5 -9
- package/esm2020/lib/home/home.desktop.component.mjs +4 -4
- package/esm2020/lib/modules/chart.module.mjs +10 -10
- package/esm2020/lib/modules/circular-gauge.module.mjs +1 -1
- package/esm2020/lib/modules/dayjs.module.mjs +41 -0
- package/esm2020/lib/modules/diagram.module.mjs +1 -1
- package/esm2020/lib/modules/gantt.module.mjs +4 -3
- package/esm2020/lib/modules/pivot.module.mjs +1 -1
- package/esm2020/lib/reports/cube/usage-base.mjs +2 -2
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +11 -7
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -3
- package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
- package/esm2020/lib/reports/report.pane.component.mjs +3 -3
- package/esm2020/lib/shared.module.mjs +14 -32
- package/esm2020/lib/system.module.mjs +2 -1
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/bizdoc-core.mjs +423 -343
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +423 -344
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/form/workflow/workflow.component.d.ts +9 -6
- package/lib/compose/action/assign-action.component.d.ts +3 -9
- package/lib/core/models.d.ts +1 -0
- package/lib/core/translations.d.ts +6 -2
- package/lib/dashboard/score/{compare-departments.widget.d.ts → compare-groups.widget.d.ts} +3 -3
- package/lib/dashboard/score/pending-results.widget.d.ts +0 -1
- package/lib/home/home.desktop.component.d.ts +1 -1
- package/lib/modules/chart.module.d.ts +1 -1
- package/lib/modules/dayjs.module.d.ts +6 -0
- package/lib/reports/cube/usage-base.d.ts +1 -1
- package/lib/reports/cube/usage-pivot.component.d.ts +5 -1
- package/lib/shared.module.d.ts +21 -19
- package/lib/system.module.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +0 -206
@@ -1,75 +1,51 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
2
|
import { Component, ElementRef, ViewChild } from '@angular/core';
|
3
3
|
import { Validators } from '@angular/forms';
|
4
|
-
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
5
4
|
import { debounceTime, Subject } from 'rxjs';
|
6
5
|
import { takeUntil, map, switchMap } from 'rxjs/operators';
|
7
6
|
import { BizDoc } from '../../core/decorators';
|
7
|
+
import { isString } from '../../core/functions';
|
8
8
|
import * as i0 from "@angular/core";
|
9
9
|
import * as i1 from "@angular/forms";
|
10
10
|
import * as i2 from "../../core/session.service";
|
11
11
|
import * as i3 from "../../core/account.service";
|
12
12
|
import * as i4 from "@angular/material/form-field";
|
13
|
-
import * as i5 from "@angular/material/
|
14
|
-
import * as i6 from "@angular/material/
|
15
|
-
import * as i7 from "@angular/material/
|
16
|
-
import * as i8 from "@angular/
|
17
|
-
import * as i9 from "@angular/material/
|
18
|
-
import * as i10 from "@angular/
|
19
|
-
import * as i11 from "@angular/
|
20
|
-
import * as i12 from "
|
21
|
-
import * as i13 from "@angular/cdk/text-field";
|
22
|
-
import * as i14 from "../../core/pipes/translate.pipe";
|
23
|
-
import * as i15 from "../../core/pipes/user-name.pipe";
|
13
|
+
import * as i5 from "@angular/material/autocomplete";
|
14
|
+
import * as i6 from "@angular/material/core";
|
15
|
+
import * as i7 from "@angular/material/checkbox";
|
16
|
+
import * as i8 from "@angular/flex-layout/flex";
|
17
|
+
import * as i9 from "@angular/material/input";
|
18
|
+
import * as i10 from "@angular/common";
|
19
|
+
import * as i11 from "@angular/cdk/text-field";
|
20
|
+
import * as i12 from "../../core/pipes/translate.pipe";
|
24
21
|
let AssignActionComponent = class AssignActionComponent {
|
25
22
|
constructor(_fb, _session, _accounts) {
|
26
23
|
this._fb = _fb;
|
27
24
|
this._session = _session;
|
28
25
|
this._accounts = _accounts;
|
29
|
-
this.separatorKeysCodes = [ENTER, COMMA];
|
30
26
|
this.form = this._fb.group({
|
31
27
|
userIds: this._fb.control(null, Validators.required),
|
32
28
|
fyi: this._fb.control(false),
|
33
29
|
roundtrip: this._fb.control(false),
|
34
30
|
note: this._fb.control(null, Validators.maxLength(200))
|
35
31
|
});
|
36
|
-
this.
|
32
|
+
this.userId = this._fb.control([]);
|
37
33
|
this._destroy = new Subject();
|
34
|
+
this.displayWith = (e) => isString(e) ? e : e.name;
|
38
35
|
}
|
39
36
|
ngOnInit() {
|
40
37
|
const me = this._session.userId;
|
41
|
-
this.users$ = this.
|
38
|
+
this.users$ = this.userId.valueChanges.
|
42
39
|
pipe(debounceTime(200), takeUntil(this._destroy), switchMap(v => this._accounts.findAll(v, { take: 20 }).
|
43
|
-
pipe(map(r =>
|
44
|
-
const userIds = this.form.controls['userIds'].value || [];
|
45
|
-
return r.filter(u => u.id !== me && userIds.indexOf(u.id) < 0);
|
46
|
-
}))));
|
40
|
+
pipe(map(r => r.filter(u => u.id !== me)))));
|
47
41
|
}
|
48
42
|
/**
|
49
43
|
*
|
50
|
-
* @param inp
|
51
44
|
* @param event
|
52
45
|
*/
|
53
|
-
userSelected(
|
54
|
-
const
|
55
|
-
userIds.
|
56
|
-
this.form.controls['userIds'].setValue(userIds);
|
57
|
-
inp.value = '';
|
58
|
-
}
|
59
|
-
/**
|
60
|
-
*
|
61
|
-
* @param id
|
62
|
-
*/
|
63
|
-
removed(id) {
|
64
|
-
const userIds = this.form.controls['userIds'].value;
|
65
|
-
const index = userIds.indexOf(id);
|
66
|
-
if (userIds.length > 1) {
|
67
|
-
index >= 0 &&
|
68
|
-
userIds.splice(index, 1);
|
69
|
-
this.form.updateValueAndValidity();
|
70
|
-
}
|
71
|
-
else
|
72
|
-
this.form.controls['userIds'].setValue(null);
|
46
|
+
userSelected(event) {
|
47
|
+
const { id } = event.option.value;
|
48
|
+
this.form.controls['userIds'].setValue([id]);
|
73
49
|
}
|
74
50
|
ngOnDestroy() {
|
75
51
|
this._destroy.next();
|
@@ -77,7 +53,7 @@ let AssignActionComponent = class AssignActionComponent {
|
|
77
53
|
}
|
78
54
|
};
|
79
55
|
AssignActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AssignActionComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }, { token: i3.AccountService }], target: i0.ɵɵFactoryTarget.Component });
|
80
|
-
AssignActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AssignActionComponent, selector: "ng-component", viewQueries: [{ propertyName: "nameInput", first: true, predicate: ["nameInput"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <
|
56
|
+
AssignActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AssignActionComponent, selector: "ng-component", viewQueries: [{ propertyName: "nameInput", first: true, predicate: ["nameInput"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userId\r\n cdkFocusInitial matInput\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected($event)\" [displayWith]=\"displayWith\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"form.controls.userIds.hasError('required')\">{{'Required'|translate:('AssignTo'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=fyi> {{ 'AssignFYI' | translate }}</mat-checkbox>\r\n <!--<mat-checkbox formControlName=roundtrip> {{ 'AssignRoundtrip' | translate }}</mat-checkbox>-->\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls['note'].value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "translate": i12.TranslatePipe, "async": i10.AsyncPipe } });
|
81
57
|
AssignActionComponent = __decorate([
|
82
58
|
BizDoc({
|
83
59
|
selector: 'bizdoc-action-assign'
|
@@ -86,9 +62,9 @@ AssignActionComponent = __decorate([
|
|
86
62
|
export { AssignActionComponent };
|
87
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AssignActionComponent, decorators: [{
|
88
64
|
type: Component,
|
89
|
-
args: [{ template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <
|
65
|
+
args: [{ template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input required [placeholder]=\"'AssignTo'|translate\"\r\n [formControl]=userId\r\n cdkFocusInitial matInput\r\n [matAutocomplete]=\"auto\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"userSelected($event)\" [displayWith]=\"displayWith\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"form.controls.userIds.hasError('required')\">{{'Required'|translate:('AssignTo'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=fyi> {{ 'AssignFYI' | translate }}</mat-checkbox>\r\n <!--<mat-checkbox formControlName=roundtrip> {{ 'AssignRoundtrip' | translate }}</mat-checkbox>-->\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls['note'].value?.length || 0}} / {{200}}</mat-hint>\r\n <mat-hint>{{'AssignNoteHint'| translate}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
|
90
66
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SessionService }, { type: i3.AccountService }]; }, propDecorators: { nameInput: [{
|
91
67
|
type: ViewChild,
|
92
68
|
args: ['nameInput', { static: true, read: ElementRef }]
|
93
69
|
}] } });
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvYWN0aW9uL2Fzc2lnbi1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2FjdGlvbi9hc3NpZ24tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFZbEMscUJBQXFCLFNBQXJCLHFCQUFxQjtJQVloQyxZQUFvQixHQUFnQixFQUFVLFFBQXdCLEVBQVUsU0FBeUI7UUFBckYsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFYaEcsdUJBQWtCLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFOUMsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFB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cUI7c0dBQXJCLHFCQUFxQix1SUFFYyxVQUFVLDJDQ3BCMUQscXlEQW1DQTtBRGpCYSxxQkFBcUI7SUFIakMsTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLHNCQUFzQjtLQUNqQyxDQUFDO0dBQ1cscUJBQXFCLENBNERqQztTQTVEWSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFOakMsU0FBUzs7NEpBUW9ELFNBQVM7c0JBQXBFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcmd1bWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLWFjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWN0aW9uLWFzc2lnbidcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2lnbkFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFyZ3VtZW50c0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcclxuICBAVmlld0NoaWxkKCduYW1lSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBuYW1lSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHVzZXJJZHM6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICBmeWk6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgcm91bmR0cmlwOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgIG5vdGU6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwKSlcclxuICB9KTtcclxuICByZWFkb25seSB1c2VySWRzID0gdGhpcy5fZmIuY29udHJvbChbXSk7XHJcbiAgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lID0gdGhpcy5fc2Vzc2lvbi51c2VySWQ7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMudXNlcklkcy52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAgIHN3aXRjaE1hcCh2ID0+XHJcbiAgICAgICAgICB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYsIHsgdGFrZTogMjAgfSkuXHJcbiAgICAgICAgICAgIHBpcGUobWFwKHIgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHVzZXJJZHMgPSB0aGlzLmZvcm0uY29udHJvbHNbJ3VzZXJJZHMnXS52YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXTtcclxuICAgICAgICAgICAgICByZXR1cm4gci5maWx0ZXIodSA9PiB1LmlkICE9PSBtZSAmJiB1c2VySWRzLmluZGV4T2YodS5pZCkgPCAwKVxyXG4gICAgICAgICAgICB9KSkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgdXNlclNlbGVjdGVkKGlucDogSFRNTElucHV0RWxlbWVudCwgZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJJZHMgPSB0aGlzLmZvcm0uY29udHJvbHNbJ3VzZXJJZHMnXS52YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXTtcclxuICAgIHVzZXJJZHMucHVzaChldmVudC5vcHRpb24udmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd1c2VySWRzJ10uc2V0VmFsdWUodXNlcklkcyk7XHJcbiAgICBpbnAudmFsdWUgPSAnJztcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICByZW1vdmVkKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJJZHMgPSB0aGlzLmZvcm0uY29udHJvbHNbJ3VzZXJJZHMnXS52YWx1ZSBhcyBzdHJpbmdbXTtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHVzZXJJZHMuaW5kZXhPZihpZCk7XHJcblxyXG4gICAgaWYgKHVzZXJJZHMubGVuZ3RoID4gMSkge1xyXG4gICAgICBpbmRleCA+PSAwICYmXHJcbiAgICAgICAgdXNlcklkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cclxuICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd1c2VySWRzJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Fzc2lnblRvJ3x0cmFuc2xhdGVcIj5cclxuICAgICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCB1IG9mIGZvcm0udmFsdWUudXNlcklkc1wiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVkKHUpXCI+XHJcbiAgICAgICAge3t1IHwgdXNlck5hbWUgfCBhc3luYyB9fVxyXG4gICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICAgIDxpbnB1dCByZXF1aXJlZCBbcGxhY2Vob2xkZXJdPVwiJ0Fzc2lnblRvJ3x0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sXT11c2VySWRzXHJcbiAgICAgICAgICAgICBjZGtGb2N1c0luaXRpYWwgXHJcbiAgICAgICAgICAgICAjbmFtZUlucHV0XHJcbiAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXHJcbiAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICA8L21hdC1jaGlwLWxpc3Q+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJ1c2VyU2VsZWN0ZWQobmFtZUlucHV0LCAkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHVzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ1LmVtYWlsXCI+Jm5ic3A7IC0ge3t1LmVtYWlsfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnVzZXJJZHMuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57eydSZXF1aXJlZCd8dHJhbnNsYXRlOignQXNzaWduVG8nfHRyYW5zbGF0ZSl9fTwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9ZnlpPiB7eyAnQXNzaWduRllJJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWNoZWNrYm94PlxyXG4gIDwhLS08bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1yb3VuZHRyaXA+IHt7ICdBc3NpZ25Sb3VuZHRyaXAnIHwgdHJhbnNsYXRlIH19PC9tYXQtY2hlY2tib3g+LS0+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCI+e3tmb3JtLmNvbnRyb2xzWydub3RlJ10udmFsdWU/Lmxlbmd0aCB8fCAwfX0gLyB7ezIwMH19PC9tYXQtaGludD5cclxuICAgIDxtYXQtaGludD57eydBc3NpZ25Ob3RlSGludCd8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvYWN0aW9uL2Fzc2lnbi1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2FjdGlvbi9hc3NpZ24tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQVFuQyxxQkFBcUIsU0FBckIscUJBQXFCO0lBV2hDLFlBQW9CLEdBQWdCLEVBQVUsUUFBd0IsRUFBVSxTQUF5QjtRQUFyRixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQVRoRyxTQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDeEQsQ0FBQyxDQUFDO1FBQ00sV0FBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3ZDLGdCQUFXLEdBQUcsQ0FBQyxDQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRHhELENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDcEMsSUFBSSxDQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWCxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNmLENBQUM7SUFDRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsS0FBbUM7UUFDOUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBaUIsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRixDQUFBO2tIQXRDWSxxQkFBcUI7c0dBQXJCLHFCQUFxQix1SUFDYyxVQUFVLDJDQ25CMUQsd3hDQXVCQTtBRExhLHFCQUFxQjtJQUhqQyxNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7R0FDVyxxQkFBcUIsQ0FzQ2pDO1NBdENZLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQU5qQyxTQUFTOzs0SkFPb0QsU0FBUztzQkFBcEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEFyZ3VtZW50c0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLWFjdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuQEJpekRvYyh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYWN0aW9uLWFzc2lnbidcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2lnbkFjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFyZ3VtZW50c0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ25hbWVJbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIG5hbWVJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgdXNlcklkczogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIGZ5aTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICByb3VuZHRyaXA6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgbm90ZTogdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyMDApKVxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IHVzZXJJZCA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBwcml2YXRlIF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UpIHtcclxuICB9XHJcbiAgZGlzcGxheVdpdGggPSAoZTogVXNlckluZm8pID0+IGlzU3RyaW5nKGUpID8gZSA6IGUubmFtZTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1lID0gdGhpcy5fc2Vzc2lvbi51c2VySWQ7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMudXNlcklkLnZhbHVlQ2hhbmdlcy5cclxuICAgICAgcGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICAgIHRoaXMuX2FjY291bnRzLmZpbmRBbGwodiwgeyB0YWtlOiAyMCB9KS5cclxuICAgICAgICAgICAgcGlwZShtYXAociA9PiBcclxuICAgICAgICAgICAgICByLmZpbHRlcih1ID0+IHUuaWQgIT09IG1lKVxyXG4gICAgICAgICAgICApKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIHVzZXJTZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvO1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd1c2VySWRzJ10uc2V0VmFsdWUoW2lkXSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGlucHV0IHJlcXVpcmVkIFtwbGFjZWhvbGRlcl09XCInQXNzaWduVG8nfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT11c2VySWRcclxuICAgICAgICAgICBjZGtGb2N1c0luaXRpYWwgbWF0SW5wdXRcclxuICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIj5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInVzZXJTZWxlY3RlZCgkZXZlbnQpXCIgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHVzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ1LmVtYWlsXCI+Jm5ic3A7IC0ge3t1LmVtYWlsfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnVzZXJJZHMuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57eydSZXF1aXJlZCd8dHJhbnNsYXRlOignQXNzaWduVG8nfHRyYW5zbGF0ZSl9fTwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9ZnlpPiB7eyAnQXNzaWduRllJJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWNoZWNrYm94PlxyXG4gIDwhLS08bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1yb3VuZHRyaXA+IHt7ICdBc3NpZ25Sb3VuZHRyaXAnIHwgdHJhbnNsYXRlIH19PC9tYXQtY2hlY2tib3g+LS0+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPHRleHRhcmVhIG1hdElucHV0IGNka1RleHRhcmVhQXV0b3NpemUgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIFtwbGFjZWhvbGRlcl09XCInTm90ZSd8dHJhbnNsYXRlXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XHJcbiAgICA8L3RleHRhcmVhPlxyXG4gICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCI+e3tmb3JtLmNvbnRyb2xzWydub3RlJ10udmFsdWU/Lmxlbmd0aCB8fCAwfX0gLyB7ezIwMH19PC9tYXQtaGludD5cclxuICAgIDxtYXQtaGludD57eydBc3NpZ25Ob3RlSGludCd8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|