ngx-material-entity 16.0.6 → 16.0.8
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/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +10 -5
- package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +4 -2
- package/components/input/input.component.d.ts +28 -8
- package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +12 -2
- package/components/input/relations/references-many-input/references-many-input.component.d.ts +10 -2
- package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +4 -2
- package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +12 -2
- package/components/input/string/string-password-input/string-password-input.component.d.ts +12 -0
- package/components/table/create-dialog/create-entity-dialog.component.d.ts +1 -1
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +1 -1
- package/components/table/table-data.builder.d.ts +2 -1
- package/components/table/table-data.d.ts +10 -0
- package/decorators/array/array-decorator-internal.data.d.ts +2 -1
- package/decorators/array/array-decorator.data.d.ts +3 -1
- package/decorators/string/string-decorator-internal.data.d.ts +3 -1
- package/decorators/string/string-decorator.data.d.ts +7 -1
- package/directives/dynamic-style-class.directive.d.ts +25 -0
- package/directives/included-in.directive.d.ts +1 -1
- package/esm2022/components/create-page/create-page.component.mjs +8 -5
- package/esm2022/components/edit-page/edit-page.component.mjs +8 -5
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +28 -15
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +14 -19
- package/esm2022/components/input/base-input.component.mjs +7 -2
- package/esm2022/components/input/input.component.mjs +73 -27
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +36 -8
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +29 -5
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +17 -10
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +36 -8
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +57 -3
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +4 -4
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +9 -5
- package/esm2022/components/table/table-data.builder.mjs +5 -1
- package/esm2022/components/table/table-data.mjs +1 -1
- package/esm2022/components/table/table.component.mjs +6 -4
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +11 -3
- package/esm2022/decorators/array/array-decorator.data.mjs +1 -1
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +14 -3
- package/esm2022/decorators/string/string-decorator.data.mjs +1 -1
- package/esm2022/directives/dynamic-style-class.directive.mjs +51 -0
- package/esm2022/directives/included-in.directive.mjs +2 -3
- package/esm2022/encapsulation/reflect.utilities.mjs +6 -2
- package/esm2022/functions/default-style-classes.function.mjs +7 -0
- package/esm2022/public-api.mjs +6 -1
- package/esm2022/services/entity.service.mjs +3 -1
- package/esm2022/utilities/entity.utilities.mjs +37 -33
- package/esm2022/utilities/validation.utilities.mjs +75 -10
- package/fesm2022/ngx-material-entity.mjs +514 -156
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/functions/default-style-classes.function.d.ts +6 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
- package/utilities/entity.utilities.d.ts +4 -3
- package/utilities/validation.utilities.d.ts +8 -3
package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs
CHANGED
|
@@ -11,11 +11,19 @@ import * as i3 from "@angular/material/button";
|
|
|
11
11
|
import * as i4 from "@angular/material/form-field";
|
|
12
12
|
import * as i5 from "@angular/material/input";
|
|
13
13
|
import * as i6 from "../../../../directives/password-match.directive";
|
|
14
|
+
export var PasswordStrength;
|
|
15
|
+
(function (PasswordStrength) {
|
|
16
|
+
PasswordStrength["WEAK"] = "weak";
|
|
17
|
+
PasswordStrength["MEDIUM"] = "medium";
|
|
18
|
+
PasswordStrength["STRONG"] = "strong";
|
|
19
|
+
})(PasswordStrength || (PasswordStrength = {}));
|
|
14
20
|
// eslint-disable-next-line angular/prefer-standalone-component
|
|
15
21
|
export class StringPasswordInputComponent extends NgxMatEntityBaseInputComponent {
|
|
16
22
|
hide = true;
|
|
17
23
|
hideConfirm = true;
|
|
18
24
|
confirmRequired = false;
|
|
25
|
+
passwordStrength;
|
|
26
|
+
PasswordStrength = PasswordStrength;
|
|
19
27
|
get confirmPassword() {
|
|
20
28
|
return ReflectUtilities.getMetadata(EntityUtilities.CONFIRM_PASSWORD_KEY, this.entity, this.key);
|
|
21
29
|
}
|
|
@@ -29,13 +37,59 @@ export class StringPasswordInputComponent extends NgxMatEntityBaseInputComponent
|
|
|
29
37
|
}
|
|
30
38
|
passwordInput() {
|
|
31
39
|
this.confirmRequired = Boolean(this.propertyValue);
|
|
40
|
+
this.setPasswordStrength();
|
|
32
41
|
this.emitChange();
|
|
33
42
|
}
|
|
43
|
+
setPasswordStrength() {
|
|
44
|
+
if (this.isPasswordStrong()) {
|
|
45
|
+
this.passwordStrength = PasswordStrength.STRONG;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (this.isPasswordMedium()) {
|
|
49
|
+
this.passwordStrength = PasswordStrength.MEDIUM;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (this.isPasswordWeak()) {
|
|
53
|
+
this.passwordStrength = PasswordStrength.WEAK;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.passwordStrength = undefined;
|
|
57
|
+
}
|
|
58
|
+
// long AND complex
|
|
59
|
+
isPasswordStrong() {
|
|
60
|
+
if (!this.propertyValue) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return this.propertyValue?.length >= 15 && this.isPasswordComplex();
|
|
64
|
+
}
|
|
65
|
+
// long OR complex
|
|
66
|
+
isPasswordMedium() {
|
|
67
|
+
if (!this.propertyValue) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return this.propertyValue?.length >= 15 || this.isPasswordComplex();
|
|
71
|
+
}
|
|
72
|
+
// exists
|
|
73
|
+
isPasswordWeak() {
|
|
74
|
+
if (!this.propertyValue) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
isPasswordComplex() {
|
|
80
|
+
if (!this.propertyValue) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return /[A-Z]/g.test(this.propertyValue)
|
|
84
|
+
&& /[a-z]/g.test(this.propertyValue)
|
|
85
|
+
&& /[0-9]/g.test(this.propertyValue)
|
|
86
|
+
&& /[!@#$%^&*(),.?":{}|<>]/.test(this.propertyValue);
|
|
87
|
+
}
|
|
34
88
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: StringPasswordInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: StringPasswordInputComponent, selector: "string-password-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"password-row\">\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [type]=\"hide ? 'password' : 'text'\"\n [name]=\"name\"\n [required]=\"metadata.required(entity)\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hide = !hide\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hide\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hide\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n </mat-form-field>\n <mat-form-field *ngIf=\"metadata.needsConfirmation\">\n <mat-label>{{metadata.confirmationDisplayName}}</mat-label>\n <input\n #confirmModel=\"ngModel\"\n matInput\n [type]=\"hideConfirm ? 'password' : 'text'\"\n [name]=\"name + 'confirmPassword'\"\n [required]=\"confirmRequired\"\n [disabled]=\"isReadOnly\"\n [passwordMatch]=\"propertyValue\"\n [(ngModel)]=\"confirmPassword\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hideConfirm = !hideConfirm\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hideConfirm\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hideConfirm\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(confirmModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: [".password-row{display:flex;justify-content:space-evenly;column-gap:24px}.password-row mat-form-field{flex:1 1 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.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"] }, { kind: "directive", type: i6.PasswordMatchValidatorDirective, selector: "[passwordMatch]", inputs: ["passwordMatch"] }] });
|
|
89
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: StringPasswordInputComponent, selector: "string-password-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"password-row\">\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [type]=\"hide ? 'password' : 'text'\"\n [name]=\"name\"\n [required]=\"metadata.required(entity)\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hide = !hide\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hide\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hide\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n <div *ngIf=\"passwordStrength\" class=\"password-strength-indicator\"\n [class.green]=\"passwordStrength === PasswordStrength.STRONG\"\n [class.yellow]=\"passwordStrength === PasswordStrength.MEDIUM\"\n [class.red]=\"passwordStrength === PasswordStrength.WEAK\"\n >\n </div>\n </mat-form-field>\n <mat-form-field *ngIf=\"metadata.needsConfirmation\">\n <mat-label>{{metadata.confirmationDisplayName}}</mat-label>\n <input\n #confirmModel=\"ngModel\"\n matInput\n [type]=\"hideConfirm ? 'password' : 'text'\"\n [name]=\"name + 'confirmPassword'\"\n [required]=\"confirmRequired\"\n [disabled]=\"isReadOnly\"\n [passwordMatch]=\"propertyValue\"\n [(ngModel)]=\"confirmPassword\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hideConfirm = !hideConfirm\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hideConfirm\" class=\"fas fa-eye-slash\"></i>\n <!-- eslint-disable-next-line angular/cyclomatic-complexity -->\n <i *ngIf=\"!hideConfirm\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(confirmModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: [".password-row{display:flex;justify-content:space-evenly;column-gap:24px}.password-row mat-form-field{flex:1 1 0}.password-strength-indicator{height:5px;width:100%}.green{background-color:green}.yellow{background-color:#b3b30f}.red{background-color:red}@media (max-width: 767px){.password-row{flex-wrap:wrap}.password-row mat-form-field{min-width:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i5.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"] }, { kind: "directive", type: i6.PasswordMatchValidatorDirective, selector: "[passwordMatch]", inputs: ["passwordMatch"] }] });
|
|
36
90
|
}
|
|
37
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: StringPasswordInputComponent, decorators: [{
|
|
38
92
|
type: Component,
|
|
39
|
-
args: [{ selector: 'string-password-input', template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"password-row\">\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [type]=\"hide ? 'password' : 'text'\"\n [name]=\"name\"\n [required]=\"metadata.required(entity)\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hide = !hide\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hide\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hide\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n </mat-form-field>\n <mat-form-field *ngIf=\"metadata.needsConfirmation\">\n <mat-label>{{metadata.confirmationDisplayName}}</mat-label>\n <input\n #confirmModel=\"ngModel\"\n matInput\n [type]=\"hideConfirm ? 'password' : 'text'\"\n [name]=\"name + 'confirmPassword'\"\n [required]=\"confirmRequired\"\n [disabled]=\"isReadOnly\"\n [passwordMatch]=\"propertyValue\"\n [(ngModel)]=\"confirmPassword\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hideConfirm = !hideConfirm\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hideConfirm\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hideConfirm\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(confirmModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: [".password-row{display:flex;justify-content:space-evenly;column-gap:24px}.password-row mat-form-field{flex:1 1 0}\n"] }]
|
|
93
|
+
args: [{ selector: 'string-password-input', template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"password-row\">\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [type]=\"hide ? 'password' : 'text'\"\n [name]=\"name\"\n [required]=\"metadata.required(entity)\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hide = !hide\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hide\" class=\"fas fa-eye-slash\"></i>\n <i *ngIf=\"!hide\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n <div *ngIf=\"passwordStrength\" class=\"password-strength-indicator\"\n [class.green]=\"passwordStrength === PasswordStrength.STRONG\"\n [class.yellow]=\"passwordStrength === PasswordStrength.MEDIUM\"\n [class.red]=\"passwordStrength === PasswordStrength.WEAK\"\n >\n </div>\n </mat-form-field>\n <mat-form-field *ngIf=\"metadata.needsConfirmation\">\n <mat-label>{{metadata.confirmationDisplayName}}</mat-label>\n <input\n #confirmModel=\"ngModel\"\n matInput\n [type]=\"hideConfirm ? 'password' : 'text'\"\n [name]=\"name + 'confirmPassword'\"\n [required]=\"confirmRequired\"\n [disabled]=\"isReadOnly\"\n [passwordMatch]=\"propertyValue\"\n [(ngModel)]=\"confirmPassword\"\n (ngModelChange)=\"passwordInput()\"\n >\n <button type=\"button\" mat-icon-button matSuffix (click)=\"hideConfirm = !hideConfirm\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <i *ngIf=\"hideConfirm\" class=\"fas fa-eye-slash\"></i>\n <!-- eslint-disable-next-line angular/cyclomatic-complexity -->\n <i *ngIf=\"!hideConfirm\" class=\"fas fa-eye\"></i>\n </div>\n </button>\n <mat-error>{{getValidationErrorMessage(confirmModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: [".password-row{display:flex;justify-content:space-evenly;column-gap:24px}.password-row mat-form-field{flex:1 1 0}.password-strength-indicator{height:5px;width:100%}.green{background-color:green}.yellow{background-color:#b3b30f}.red{background-color:red}@media (max-width: 767px){.password-row{flex-wrap:wrap}.password-row mat-form-field{min-width:100%}}\n"] }]
|
|
40
94
|
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXBhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvc3RyaW5nL3N0cmluZy1wYXNzd29yZC1pbnB1dC9zdHJpbmctcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy9pbnB1dC9zdHJpbmcvc3RyaW5nLXBhc3N3b3JkLWlucHV0L3N0cmluZy1wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUU1RSwrREFBK0Q7QUFNL0QsTUFBTSxPQUFPLDRCQUNULFNBQVEsOEJBQWtGO0lBRTFGLElBQUksR0FBWSxJQUFJLENBQUM7SUFDckIsV0FBVyxHQUFZLElBQUksQ0FBQztJQUU1QixlQUFlLEdBQVksS0FBSyxDQUFDO0lBRWpDLElBQUksZUFBZTtRQUNmLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQXVCLENBQUM7SUFDM0gsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLEtBQXlCO1FBQ3pDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO3VHQXpCUSw0QkFBNEI7MkZBQTVCLDRCQUE0QixvRkNmekMsb2tFQThDTTs7MkZEL0JPLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBMb2Rhc2hVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbmNhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgUmVmbGVjdFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2VuY2Fwc3VsYXRpb24vcmVmbGVjdC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2VudGl0eS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYW5ndWxhci9wcmVmZXItc3RhbmRhbG9uZS1jb21wb25lbnRcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc3RyaW5nLXBhc3N3b3JkLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RyaW5nLXBhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHJpbmctcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdQYXNzd29yZElucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5TVFJJTkdfUEFTU1dPUkQsIHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgaGlkZTogYm9vbGVhbiA9IHRydWU7XG4gICAgaGlkZUNvbmZpcm06IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgY29uZmlybVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgY29uZmlybVBhc3N3b3JkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0VXRpbGl0aWVzLmdldE1ldGFkYXRhKEVudGl0eVV0aWxpdGllcy5DT05GSVJNX1BBU1NXT1JEX0tFWSwgdGhpcy5lbnRpdHksIHRoaXMua2V5KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc2V0IGNvbmZpcm1QYXNzd29yZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIFJlZmxlY3RVdGlsaXRpZXMuZGVmaW5lTWV0YWRhdGEoRW50aXR5VXRpbGl0aWVzLkNPTkZJUk1fUEFTU1dPUkRfS0VZLCB2YWx1ZSwgdGhpcy5lbnRpdHksIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5jb25maXJtUmVxdWlyZWQgPSBCb29sZWFuKHRoaXMucHJvcGVydHlWYWx1ZSk7XG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gTG9kYXNoVXRpbGl0aWVzLmNsb25lRGVlcCh0aGlzLnByb3BlcnR5VmFsdWUpO1xuICAgIH1cblxuICAgIHBhc3N3b3JkSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybVJlcXVpcmVkID0gQm9vbGVhbih0aGlzLnByb3BlcnR5VmFsdWUpO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB9XG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL25vLWNhbGwtZXhwcmVzc2lvbiAtLT5cbjxkaXYgY2xhc3M9XCJwYXNzd29yZC1yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW3R5cGVdPVwiaGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWQoZW50aXR5KVwiXG4gICAgICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZWdleCA/PyAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICAgICAgW21pbmxlbmd0aF09XCJtZXRhZGF0YS5taW5MZW5ndGggPz8gbnVsbFwiXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIm1ldGFkYXRhLm1heExlbmd0aCA/PyBudWxsXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwYXNzd29yZElucHV0KClcIlxuICAgICAgICA+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXggKGNsaWNrKT1cImhpZGUgPSAhaGlkZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaGlkZVwiIGNsYXNzPVwiZmFzIGZhLWV5ZS1zbGFzaFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFoaWRlXCIgY2xhc3M9XCJmYXMgZmEtZXllXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwibWV0YWRhdGEubmVlZHNDb25maXJtYXRpb25cIj5cbiAgICAgICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmNvbmZpcm1hdGlvbkRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjY29uZmlybU1vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW3R5cGVdPVwiaGlkZUNvbmZpcm0gPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnY29uZmlybVBhc3N3b3JkJ1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiY29uZmlybVJlcXVpcmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgICAgIFtwYXNzd29yZE1hdGNoXT1cInByb3BlcnR5VmFsdWVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb25maXJtUGFzc3dvcmRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGFzc3dvcmRJbnB1dCgpXCJcbiAgICAgICAgPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJoaWRlQ29uZmlybSA9ICFoaWRlQ29uZmlybVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaGlkZUNvbmZpcm1cIiBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2hcIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhaGlkZUNvbmZpcm1cIiBjbGFzcz1cImZhcyBmYS1leWVcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKGNvbmZpcm1Nb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXBhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvc3RyaW5nL3N0cmluZy1wYXNzd29yZC1pbnB1dC9zdHJpbmctcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy9pbnB1dC9zdHJpbmcvc3RyaW5nLXBhc3N3b3JkLWlucHV0L3N0cmluZy1wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUU1RSxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFhLENBQUE7SUFDYixxQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQjtBQUVELCtEQUErRDtBQU0vRCxNQUFNLE9BQU8sNEJBQ1QsU0FBUSw4QkFBa0Y7SUFFMUYsSUFBSSxHQUFZLElBQUksQ0FBQztJQUNyQixXQUFXLEdBQVksSUFBSSxDQUFDO0lBRTVCLGVBQWUsR0FBWSxLQUFLLENBQUM7SUFFakMsZ0JBQWdCLENBQW9CO0lBRXBDLGdCQUFnQixHQUE0QixnQkFBZ0IsQ0FBQztJQUU3RCxJQUFJLGVBQWU7UUFDZixPQUFPLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUF1QixDQUFDO0lBQzNILENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxLQUF5QjtRQUN6QyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDaEQsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQ2hELE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDOUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsbUJBQW1CO0lBQ1gsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVELGtCQUFrQjtJQUNWLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxTQUFTO0lBQ0QsY0FBYztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztlQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7ZUFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2VBQ2pDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQzt1R0FoRlEsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsb0ZDckJ6QyxnK0VBcURNOzsyRkRoQ08sNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNJLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBSZWZsZWN0VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW5jYXBzdWxhdGlvbi9yZWZsZWN0LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvZW50aXR5LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBlbnVtIFBhc3N3b3JkU3RyZW5ndGgge1xuICAgIFdFQUsgPSAnd2VhaycsXG4gICAgTUVESVVNID0gJ21lZGl1bScsXG4gICAgU1RST05HID0gJ3N0cm9uZydcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvcHJlZmVyLXN0YW5kYWxvbmUtY29tcG9uZW50XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3N0cmluZy1wYXNzd29yZC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy1wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RyaW5nLXBhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RyaW5nUGFzc3dvcmRJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuU1RSSU5HX1BBU1NXT1JELCBzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIGhpZGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGhpZGVDb25maXJtOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGNvbmZpcm1SZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcGFzc3dvcmRTdHJlbmd0aD86IFBhc3N3b3JkU3RyZW5ndGg7XG5cbiAgICBQYXNzd29yZFN0cmVuZ3RoOiB0eXBlb2YgUGFzc3dvcmRTdHJlbmd0aCA9IFBhc3N3b3JkU3RyZW5ndGg7XG5cbiAgICBnZXQgY29uZmlybVBhc3N3b3JkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0VXRpbGl0aWVzLmdldE1ldGFkYXRhKEVudGl0eVV0aWxpdGllcy5DT05GSVJNX1BBU1NXT1JEX0tFWSwgdGhpcy5lbnRpdHksIHRoaXMua2V5KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc2V0IGNvbmZpcm1QYXNzd29yZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIFJlZmxlY3RVdGlsaXRpZXMuZGVmaW5lTWV0YWRhdGEoRW50aXR5VXRpbGl0aWVzLkNPTkZJUk1fUEFTU1dPUkRfS0VZLCB2YWx1ZSwgdGhpcy5lbnRpdHksIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5jb25maXJtUmVxdWlyZWQgPSBCb29sZWFuKHRoaXMucHJvcGVydHlWYWx1ZSk7XG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gTG9kYXNoVXRpbGl0aWVzLmNsb25lRGVlcCh0aGlzLnByb3BlcnR5VmFsdWUpO1xuICAgIH1cblxuICAgIHBhc3N3b3JkSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybVJlcXVpcmVkID0gQm9vbGVhbih0aGlzLnByb3BlcnR5VmFsdWUpO1xuICAgICAgICB0aGlzLnNldFBhc3N3b3JkU3RyZW5ndGgoKTtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQYXNzd29yZFN0cmVuZ3RoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1Bhc3N3b3JkU3Ryb25nKCkpIHtcbiAgICAgICAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aCA9IFBhc3N3b3JkU3RyZW5ndGguU1RST05HO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzUGFzc3dvcmRNZWRpdW0oKSkge1xuICAgICAgICAgICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoID0gUGFzc3dvcmRTdHJlbmd0aC5NRURJVU07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNQYXNzd29yZFdlYWsoKSkge1xuICAgICAgICAgICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoID0gUGFzc3dvcmRTdHJlbmd0aC5XRUFLO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBsb25nIEFORCBjb21wbGV4XG4gICAgcHJpdmF0ZSBpc1Bhc3N3b3JkU3Ryb25nKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcGVydHlWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5VmFsdWU/Lmxlbmd0aCA+PSAxNSAmJiB0aGlzLmlzUGFzc3dvcmRDb21wbGV4KCk7XG4gICAgfVxuXG4gICAgLy8gbG9uZyBPUiBjb21wbGV4XG4gICAgcHJpdmF0ZSBpc1Bhc3N3b3JkTWVkaXVtKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcGVydHlWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5VmFsdWU/Lmxlbmd0aCA+PSAxNSB8fCB0aGlzLmlzUGFzc3dvcmRDb21wbGV4KCk7XG4gICAgfVxuXG4gICAgLy8gZXhpc3RzXG4gICAgcHJpdmF0ZSBpc1Bhc3N3b3JkV2VhaygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BlcnR5VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGFzc3dvcmRDb21wbGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcGVydHlWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAvW0EtWl0vZy50ZXN0KHRoaXMucHJvcGVydHlWYWx1ZSlcbiAgICAgICAgICAgICYmIC9bYS16XS9nLnRlc3QodGhpcy5wcm9wZXJ0eVZhbHVlKVxuICAgICAgICAgICAgJiYgL1swLTldL2cudGVzdCh0aGlzLnByb3BlcnR5VmFsdWUpXG4gICAgICAgICAgICAmJiAvWyFAIyQlXiYqKCksLj9cIjp7fXw8Pl0vLnRlc3QodGhpcy5wcm9wZXJ0eVZhbHVlKTtcbiAgICB9XG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL25vLWNhbGwtZXhwcmVzc2lvbiAtLT5cbjxkaXYgY2xhc3M9XCJwYXNzd29yZC1yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW3R5cGVdPVwiaGlkZSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWQoZW50aXR5KVwiXG4gICAgICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZWdleCA/PyAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICAgICAgW21pbmxlbmd0aF09XCJtZXRhZGF0YS5taW5MZW5ndGggPz8gbnVsbFwiXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIm1ldGFkYXRhLm1heExlbmd0aCA/PyBudWxsXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwYXNzd29yZElucHV0KClcIlxuICAgICAgICA+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXggKGNsaWNrKT1cImhpZGUgPSAhaGlkZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaGlkZVwiIGNsYXNzPVwiZmFzIGZhLWV5ZS1zbGFzaFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFoaWRlXCIgY2xhc3M9XCJmYXMgZmEtZXllXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicGFzc3dvcmRTdHJlbmd0aFwiIGNsYXNzPVwicGFzc3dvcmQtc3RyZW5ndGgtaW5kaWNhdG9yXCJcbiAgICAgICAgICAgIFtjbGFzcy5ncmVlbl09XCJwYXNzd29yZFN0cmVuZ3RoID09PSBQYXNzd29yZFN0cmVuZ3RoLlNUUk9OR1wiXG4gICAgICAgICAgICBbY2xhc3MueWVsbG93XT1cInBhc3N3b3JkU3RyZW5ndGggPT09IFBhc3N3b3JkU3RyZW5ndGguTUVESVVNXCJcbiAgICAgICAgICAgIFtjbGFzcy5yZWRdPVwicGFzc3dvcmRTdHJlbmd0aCA9PT0gUGFzc3dvcmRTdHJlbmd0aC5XRUFLXCJcbiAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIm1ldGFkYXRhLm5lZWRzQ29uZmlybWF0aW9uXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5jb25maXJtYXRpb25EaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2NvbmZpcm1Nb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFt0eXBlXT1cImhpZGVDb25maXJtID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ2NvbmZpcm1QYXNzd29yZCdcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cImNvbmZpcm1SZXF1aXJlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkT25seVwiXG4gICAgICAgICAgICBbcGFzc3dvcmRNYXRjaF09XCJwcm9wZXJ0eVZhbHVlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29uZmlybVBhc3N3b3JkXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBhc3N3b3JkSW5wdXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiaGlkZUNvbmZpcm0gPSAhaGlkZUNvbmZpcm1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImhpZGVDb25maXJtXCIgY2xhc3M9XCJmYXMgZmEtZXllLXNsYXNoXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvY3ljbG9tYXRpYy1jb21wbGV4aXR5IC0tPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWhpZGVDb25maXJtXCIgY2xhc3M9XCJmYXMgZmEtZXllXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShjb25maXJtTW9kZWwpfX08L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+Il19
|
|
@@ -73,13 +73,13 @@ export class NgxMatEntityCreateDialogComponent {
|
|
|
73
73
|
this.dialogRef.disableClose = true;
|
|
74
74
|
this.entityTabs = EntityUtilities.getEntityTabs(this.data.entity, this.injector, true);
|
|
75
75
|
this.entityService = this.injector.get(this.data.EntityServiceClass);
|
|
76
|
-
setTimeout(() => this.checkIsEntityValid(), 1);
|
|
76
|
+
setTimeout(() => void this.checkIsEntityValid(), 1);
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
79
|
* Checks if the entity is valid.
|
|
80
80
|
*/
|
|
81
|
-
checkIsEntityValid() {
|
|
82
|
-
this.validationErrors = ValidationUtilities.getEntityValidationErrors(this.data.entity, 'create');
|
|
81
|
+
async checkIsEntityValid() {
|
|
82
|
+
this.validationErrors = await ValidationUtilities.getEntityValidationErrors(this.data.entity, this.injector, 'create');
|
|
83
83
|
this.tooltipContent = runInInjectionContext(this.injector, () => getValidationErrorsTooltipContent(this.validationErrors));
|
|
84
84
|
this.isEntityValid = this.validationErrors.length === 0;
|
|
85
85
|
}
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
|
143
143
|
type: Inject,
|
|
144
144
|
args: [NGX_INTERNAL_GLOBAL_DEFAULT_VALUES]
|
|
145
145
|
}] }]; } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS9jcmVhdGUtZGlhbG9nL2NyZWF0ZS1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvY3JlYXRlLWRpYWxvZy9jcmVhdGUtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFVLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFHekgsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMv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QjdDLFNBQVM7K0JBQ0ksOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDTCxLQUFLO3dCQUNMLElBQUk7d0JBQ0osdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNuQjs7MEJBcUNJLE1BQU07MkJBQUMsZUFBZTs7MEJBS3RCLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3QsIE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IE5HWF9JTlRFUk5BTF9HTE9CQUxfREVGQVVMVF9WQUxVRVMgfSBmcm9tICcuLi8uLi8uLi9kZWZhdWx0LWdsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvZ2V0LXZhbGlkYXRpb24tZXJyb3JzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlUYWIsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIsIENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi8uLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlJbnB1dE1vZHVsZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVFbnRpdHlEYXRhIH0gZnJvbSAnLi9jcmVhdGUtZW50aXR5LWRpYWxvZy1kYXRhJztcbmltcG9ydCB7IENyZWF0ZUVudGl0eURhdGFJbnRlcm5hbCwgQ3JlYXRlRW50aXR5RGlhbG9nRGF0YUJ1aWxkZXIgfSBmcm9tICcuL2NyZWF0ZS1lbnRpdHktZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGlhbG9nIHVzZWQgdG8gY3JlYXRlIG5ldyBlbnRpdGllcyBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvbiBwYXNzZWQgaW4gdGhlIE1BVF9ESUFMT0dfREFUQSBcImlucHV0RGF0YVwiLlxuICogVXNlZCBieSB0aGUgbmd4LW1hdC1lbnRpdHktdGFibGUuXG4gKlxuICogSXQgb2ZmZXJzIGEgbG90IG9mIGN1c3RvbWl6YXRpb24gb3B0aW9ucyB3aGljaCBjYW4gYmUgZm91bmQgaW4gXCJDcmVhdGVFbnRpdHlEaWFsb2dEYXRhXCIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1hdC1lbnRpdHktY3JlYXRlLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0ZvcixcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmd4TWF0RW50aXR5SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0VGFic01vZHVsZSxcbiAgICAgICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgIFRvb2x0aXBDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neE1hdEVudGl0eUNyZWF0ZURpYWxvZ0NvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBDb250YWlucyBIZWxwZXJNZXRob2RzIGFyb3VuZCBoYW5kbGluZyBFbnRpdGllcyBhbmQgdGhlaXIgcHJvcGVydHktbWV0YWRhdGEuXG4gICAgICovXG4gICAgRW50aXR5VXRpbGl0aWVzOiB0eXBlb2YgRW50aXR5VXRpbGl0aWVzID0gRW50aXR5VXRpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRhYnMgb2YgdGhlIGVudGl0eS5cbiAgICAgKi9cbiAgICBlbnRpdHlUYWJzITogRW50aXR5VGFiPEVudGl0eVR5cGU+W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmljZXMgdGhhdCBoYW5kbGVzIHRoZSBlbnRpdHkuXG4gICAgICovXG4gICAgZW50aXR5U2VydmljZSE6IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW50ZXJuYWwgY29uZmlndXJhdGlvbiBkYXRhLlxuICAgICAqL1xuICAgIGRhdGEhOiBDcmVhdGVFbnRpdHlEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50aXR5IGlzIHZhbGlkLlxuICAgICAqL1xuICAgIGlzRW50aXR5VmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsaWRhdGlvbiBlcnJvcnMgb2YgdGhlIGVudGl0eS5cbiAgICAgKi9cbiAgICB2YWxpZGF0aW9uRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIFdoYXQgdG8gZGlzcGxheSBpbnNpZGUgdGhlIHRvb2x0aXAuXG4gICAgICovXG4gICAgdG9vbHRpcENvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RGF0YTogQ3JlYXRlRW50aXR5RGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNyZWF0ZURpYWxvZ0NvbXBvbmVudDxFbnRpdHlUeXBlPj4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIEBJbmplY3QoTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUylcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgQ3JlYXRlRW50aXR5RGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5pbnB1dERhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbnRpdHlUYWJzID0gRW50aXR5VXRpbGl0aWVzLmdldEVudGl0eVRhYnModGhpcy5kYXRhLmVudGl0eSwgdGhpcy5pbmplY3RvciwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZW50aXR5U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuZGF0YS5FbnRpdHlTZXJ2aWNlQ2xhc3MpIGFzIEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0lzRW50aXR5VmFsaWQoKSwgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBlbnRpdHkgaXMgdmFsaWQuXG4gICAgICovXG4gICAgY2hlY2tJc0VudGl0eVZhbGlkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBWYWxpZGF0aW9uVXRpbGl0aWVzLmdldEVudGl0eVZhbGlkYXRpb25FcnJvcnModGhpcy5kYXRhLmVudGl0eSwgJ2NyZWF0ZScpO1xuICAgICAgICB0aGlzLnRvb2x0aXBDb250ZW50ID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IGdldFZhbGlkYXRpb25FcnJvcnNUb29sdGlwQ29udGVudCh0aGlzLnZhbGlkYXRpb25FcnJvcnMpKTtcbiAgICAgICAgdGhpcy5pc0VudGl0eVZhbGlkID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyBhZGQgdGhlIG5ldyBlbnRpdHkgYW5kIGNsb3NlIHRoZSBkaWFsb2cgYWZ0ZXJ3YXJkcy5cbiAgICAgKiBBbHNvIGhhbmRsZXMgdGhlIGNvbmZpcm1hdGlvbiBpZiByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBjcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0VudGl0eVZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuY3JlYXRlRGF0YS5jcmVhdGVSZXF1aXJlc0NvbmZpcm1EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybUNyZWF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKFxuICAgICAgICAgICAgdGhpcy5nbG9iYWxDb25maWcsXG4gICAgICAgICAgICB0aGlzLmRhdGEuY3JlYXRlRGF0YS5jb25maXJtQ3JlYXRlRGlhbG9nRGF0YVxuICAgICAgICApXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCB0aGlzLmdsb2JhbENvbmZpZy5jb25maXJtQ3JlYXRlVGV4dClcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgnY29uZmlybUJ1dHRvbkxhYmVsJywgdGhpcy5nbG9iYWxDb25maWcuY3JlYXRlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuY3JlYXRlTGFiZWwpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtQ3JlYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbmZpcm1DcmVhdGUoKTogdm9pZCB7XG4gICAgICAgIHZvaWQgdGhpcy5lbnRpdHlTZXJ2aWNlLmNyZWF0ZSh0aGlzLmRhdGEuZW50aXR5KS50aGVuKCgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL2N5Y2xvbWF0aWMtY29tcGxleGl0eSAtLT5cbjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG4gXG48ZGl2IGNsYXNzPVwibWF0LWRpYWxvZy10aXRsZVwiPlxuICAgIDxkaXY+e3tkYXRhLmNyZWF0ZURhdGEudGl0bGV9fTwvZGl2PlxuPC9kaXY+XG5cbjxmb3JtPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtdGFiLWdyb3VwICpuZ0lmPVwiZW50aXR5VGFicy5sZW5ndGggPiAxXCIgcHJlc2VydmVDb250ZW50PlxuICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBlbnRpdHlUYWJzXCIgW2xhYmVsXT1cInRhYi50YWJOYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIHRhYi5yb3dzXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5IG9mIHJvdy5rZXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZGF0YS5lbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU9taXRGb3JDcmVhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiRW50aXR5VXRpbGl0aWVzLmdldFdpZHRoQ2xhc3NlcyhkYXRhLmVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VFdmVudCk9XCJjaGVja0lzRW50aXR5VmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtbWF0LWVudGl0eS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIFxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZW50aXR5VGFicy5sZW5ndGggPD0gMVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZW50aXR5VGFicy5sZW5ndGhcIiBjbGFzcz1cIm5vLWVudGl0eS10YWJzXCI+XG4gICAgICAgICAgICAgICAgRVJST1I6IE5vIElucHV0cy4gRGlkIHlvdSBjb3JyZWN0bHkgYXNzaWduIGFsbCB2YWx1ZXMgaW4gdGhlIG1vZGVsIGNvbnN0cnVjdG9yP1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIGVudGl0eVRhYnNbMF0/LnJvd3NcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5IG9mIHJvdy5rZXlzXCJcbiAgICAgICAgICAgICAgICAgICAgW2VudGl0eV09XCJkYXRhLmVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU9taXRGb3JDcmVhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGhDbGFzc2VzKGRhdGEuZW50aXR5LCBrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiY2hlY2tJc0VudGl0eVZhbGlkKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25neC1tYXQtZW50aXR5LWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIFxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VudGl0eVZhbGlkXCJcbiAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhdmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tkYXRhLmNyZWF0ZURhdGEuY3JlYXRlQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktdG9vbHRpcCAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoXCIgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBDb250ZW50XCI+PC9uZ3gtbWF0LWVudGl0eS10b29sdGlwPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAgICAgIHt7ZGF0YS5jcmVhdGVEYXRhLmNhbmNlbEJ1dHRvbkxhYmVsfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2Zvcm0+XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS9jcmVhdGUtZGlhbG9nL2NyZWF0ZS1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvY3JlYXRlLWRpYWxvZy9jcmVhdGUtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFVLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFHekgsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMv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VEFDYixjQUFjLDRQQUNkLGdCQUFnQjs7MkZBR1gsaUNBQWlDO2tCQWpCN0MsU0FBUzsrQkFDSSw4QkFBOEIsY0FHNUIsSUFBSSxXQUNQO3dCQUNMLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ25COzswQkFxQ0ksTUFBTTsyQkFBQyxlQUFlOzswQkFLdEIsTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdCwgT25Jbml0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUyB9IGZyb20gJy4uLy4uLy4uL2RlZmF1bHQtZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRpb25FcnJvcnNUb29sdGlwQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvcnMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLnRzJztcbmltcG9ydCB7IE5neEdsb2JhbERlZmF1bHRWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWwtY29uZmlndXJhdGlvbi12YWx1ZXMnO1xuaW1wb3J0IHsgRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2VudGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0eVRhYiwgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2VudGl0eS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0aW9uVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3ZhbGlkYXRpb24udXRpbGl0aWVzJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlciwgQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE5neE1hdEVudGl0eUlucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXQvaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZUVudGl0eURhdGEgfSBmcm9tICcuL2NyZWF0ZS1lbnRpdHktZGlhbG9nLWRhdGEnO1xuaW1wb3J0IHsgQ3JlYXRlRW50aXR5RGF0YUludGVybmFsLCBDcmVhdGVFbnRpdHlEaWFsb2dEYXRhQnVpbGRlciB9IGZyb20gJy4vY3JlYXRlLWVudGl0eS1kaWFsb2ctZGF0YS5idWlsZGVyJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBkaWFsb2cgdXNlZCB0byBjcmVhdGUgbmV3IGVudGl0aWVzIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIHBhc3NlZCBpbiB0aGUgTUFUX0RJQUxPR19EQVRBIFwiaW5wdXREYXRhXCIuXG4gKiBVc2VkIGJ5IHRoZSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqXG4gKiBJdCBvZmZlcnMgYSBsb3Qgb2YgY3VzdG9taXphdGlvbiBvcHRpb25zIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiBcIkNyZWF0ZUVudGl0eURpYWxvZ0RhdGFcIi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1jcmVhdGUtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWVudGl0eS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NyZWF0ZS1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ3hNYXRFbnRpdHlJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgVG9vbHRpcENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4TWF0RW50aXR5Q3JlYXRlRGlhbG9nQ29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIEhlbHBlck1ldGhvZHMgYXJvdW5kIGhhbmRsaW5nIEVudGl0aWVzIGFuZCB0aGVpciBwcm9wZXJ0eS1tZXRhZGF0YS5cbiAgICAgKi9cbiAgICBFbnRpdHlVdGlsaXRpZXM6IHR5cGVvZiBFbnRpdHlVdGlsaXRpZXMgPSBFbnRpdHlVdGlsaXRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGFicyBvZiB0aGUgZW50aXR5LlxuICAgICAqL1xuICAgIGVudGl0eVRhYnMhOiBFbnRpdHlUYWI8RW50aXR5VHlwZT5bXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2aWNlcyB0aGF0IGhhbmRsZXMgdGhlIGVudGl0eS5cbiAgICAgKi9cbiAgICBlbnRpdHlTZXJ2aWNlITogRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnRlcm5hbCBjb25maWd1cmF0aW9uIGRhdGEuXG4gICAgICovXG4gICAgZGF0YSE6IENyZWF0ZUVudGl0eURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBlbnRpdHkgaXMgdmFsaWQuXG4gICAgICovXG4gICAgaXNFbnRpdHlWYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWxpZGF0aW9uIGVycm9ycyBvZiB0aGUgZW50aXR5LlxuICAgICAqL1xuICAgIHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICB0b29sdGlwQ29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREYXRhOiBDcmVhdGVFbnRpdHlEYXRhPEVudGl0eVR5cGU+LFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5Q3JlYXRlRGlhbG9nQ29tcG9uZW50PEVudGl0eVR5cGU+PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsQ29uZmlnOiBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YSA9IG5ldyBDcmVhdGVFbnRpdHlEaWFsb2dEYXRhQnVpbGRlcih0aGlzLmlucHV0RGF0YSwgdGhpcy5nbG9iYWxDb25maWcpLmdldFJlc3VsdCgpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmVudGl0eVRhYnMgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RW50aXR5VGFicyh0aGlzLmRhdGEuZW50aXR5LCB0aGlzLmluamVjdG9yLCB0cnVlKTtcbiAgICAgICAgdGhpcy5lbnRpdHlTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQodGhpcy5kYXRhLkVudGl0eVNlcnZpY2VDbGFzcykgYXMgRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPjtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuY2hlY2tJc0VudGl0eVZhbGlkKCksIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgZW50aXR5IGlzIHZhbGlkLlxuICAgICAqL1xuICAgIGFzeW5jIGNoZWNrSXNFbnRpdHlWYWxpZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gYXdhaXQgVmFsaWRhdGlvblV0aWxpdGllcy5nZXRFbnRpdHlWYWxpZGF0aW9uRXJyb3JzKHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuaW5qZWN0b3IsICdjcmVhdGUnKTtcbiAgICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQodGhpcy52YWxpZGF0aW9uRXJyb3JzKSk7XG4gICAgICAgIHRoaXMuaXNFbnRpdHlWYWxpZCA9IHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgYWRkIHRoZSBuZXcgZW50aXR5IGFuZCBjbG9zZSB0aGUgZGlhbG9nIGFmdGVyd2FyZHMuXG4gICAgICogQWxzbyBoYW5kbGVzIHRoZSBjb25maXJtYXRpb24gaWYgcmVxdWlyZWQuXG4gICAgICovXG4gICAgY3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNFbnRpdHlWYWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5kYXRhLmNyZWF0ZURhdGEuY3JlYXRlUmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1DcmVhdGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcihcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsQ29uZmlnLFxuICAgICAgICAgICAgdGhpcy5kYXRhLmNyZWF0ZURhdGEuY29uZmlybUNyZWF0ZURpYWxvZ0RhdGFcbiAgICAgICAgKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybUNyZWF0ZVRleHQpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ2NvbmZpcm1CdXR0b25MYWJlbCcsIHRoaXMuZ2xvYmFsQ29uZmlnLmNyZWF0ZUxhYmVsKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0aXRsZScsIHRoaXMuZ2xvYmFsQ29uZmlnLmNyZWF0ZUxhYmVsKVxuICAgICAgICAgICAgLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBib29sZWFuPiA9IHRoaXMuZGlhbG9nLm9wZW4oTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybUNyZWF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjb25maXJtQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICB2b2lkIHRoaXMuZW50aXR5U2VydmljZS5jcmVhdGUodGhpcy5kYXRhLmVudGl0eSkudGhlbigoKSA9PiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxufSIsIjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9jeWNsb21hdGljLWNvbXBsZXhpdHkgLS0+XG48IS0tIGVzbGludC1kaXNhYmxlIGFuZ3VsYXIvbm8tY2FsbC1leHByZXNzaW9uIC0tPlxuIFxuPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIj5cbiAgICA8ZGl2Pnt7ZGF0YS5jcmVhdGVEYXRhLnRpdGxlfX08L2Rpdj5cbjwvZGl2PlxuXG48Zm9ybT5cbiAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICA8bWF0LXRhYi1ncm91cCAqbmdJZj1cImVudGl0eVRhYnMubGVuZ3RoID4gMVwiIHByZXNlcnZlQ29udGVudD5cbiAgICAgICAgICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgZW50aXR5VGFic1wiIFtsYWJlbF09XCJ0YWIudGFiTmFtZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWIucm93c1wiIGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGtleSBvZiByb3cua2V5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZW50aXR5XT1cImRhdGEuZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVPbWl0Rm9yQ3JlYXRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkVudGl0eVV0aWxpdGllcy5nZXRXaWR0aENsYXNzZXMoZGF0YS5lbnRpdHksIGtleSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiY2hlY2tJc0VudGl0eVZhbGlkKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktaW5wdXQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICBcbiAgICAgICAgPGRpdiAqbmdJZj1cImVudGl0eVRhYnMubGVuZ3RoIDw9IDFcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWVudGl0eVRhYnMubGVuZ3RoXCIgY2xhc3M9XCJuby1lbnRpdHktdGFic1wiPlxuICAgICAgICAgICAgICAgIEVSUk9SOiBObyBJbnB1dHMuIERpZCB5b3UgY29ycmVjdGx5IGFzc2lnbiBhbGwgdmFsdWVzIGluIHRoZSBtb2RlbCBjb25zdHJ1Y3Rvcj9cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiBlbnRpdHlUYWJzWzBdPy5yb3dzXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGtleSBvZiByb3cua2V5c1wiXG4gICAgICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZGF0YS5lbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlLZXldPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVPbWl0Rm9yQ3JlYXRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiRW50aXR5VXRpbGl0aWVzLmdldFdpZHRoQ2xhc3NlcyhkYXRhLmVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUV2ZW50KT1cImNoZWNrSXNFbnRpdHlWYWxpZCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZ3gtbWF0LWVudGl0eS1pbnB1dD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICBcbiAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4O1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbWF0LXJhaXNlZC1idXR0b24gbWF0QmFkZ2VDb2xvcj1cIndhcm5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFbnRpdHlWYWxpZFwiXG4gICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIXZhbGlkYXRpb25FcnJvcnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ZGF0YS5jcmVhdGVEYXRhLmNyZWF0ZUJ1dHRvbkxhYmVsfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LXRvb2x0aXAgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aFwiIFt0b29sdGlwQ29udGVudF09XCJ0b29sdGlwQ29udGVudFwiPjwvbmd4LW1hdC1lbnRpdHktdG9vbHRpcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgICAgICB7e2RhdGEuY3JlYXRlRGF0YS5jYW5jZWxCdXR0b25MYWJlbH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mb3JtPlxuIl19
|
|
@@ -101,7 +101,7 @@ export class NgxMatEntityEditDialogComponent {
|
|
|
101
101
|
this.dialogRef.disableClose = true;
|
|
102
102
|
this.entityTabs = EntityUtilities.getEntityTabs(this.data.entity, this.injector, false, true);
|
|
103
103
|
this.entityService = this.injector.get(this.data.EntityServiceClass);
|
|
104
|
-
setTimeout(() => this.checkIsEntityValid(), 1);
|
|
104
|
+
setTimeout(() => void this.checkIsEntityValid(), 1);
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
107
107
|
* Checks if the input with the given key is readonly.
|
|
@@ -110,7 +110,11 @@ export class NgxMatEntityEditDialogComponent {
|
|
|
110
110
|
*/
|
|
111
111
|
isReadOnly(key) {
|
|
112
112
|
return runInInjectionContext(this.injector, () => {
|
|
113
|
+
// eslint-disable-next-line max-len
|
|
113
114
|
const metadata = EntityUtilities.getPropertyMetadata(this.data.entity, key);
|
|
115
|
+
if (!metadata) {
|
|
116
|
+
throw new Error(`No metadata was found for the key "${String(key)}"`);
|
|
117
|
+
}
|
|
114
118
|
return this.isEntityReadOnly || metadata.isReadOnly(this.data.entity);
|
|
115
119
|
});
|
|
116
120
|
}
|
|
@@ -118,11 +122,11 @@ export class NgxMatEntityEditDialogComponent {
|
|
|
118
122
|
* Checks if the entity has become invalid or dirty.
|
|
119
123
|
*/
|
|
120
124
|
async checkEntity() {
|
|
121
|
-
this.checkIsEntityValid();
|
|
125
|
+
await this.checkIsEntityValid();
|
|
122
126
|
this.isEntityDirty = await EntityUtilities.isDirty(this.data.entity, this.entityPriorChanges, this.http);
|
|
123
127
|
}
|
|
124
|
-
checkIsEntityValid() {
|
|
125
|
-
this.validationErrors = ValidationUtilities.getEntityValidationErrors(this.data.entity, 'update');
|
|
128
|
+
async checkIsEntityValid() {
|
|
129
|
+
this.validationErrors = await ValidationUtilities.getEntityValidationErrors(this.data.entity, this.injector, 'update');
|
|
126
130
|
this.tooltipContent = runInInjectionContext(this.injector, () => getValidationErrorsTooltipContent(this.validationErrors));
|
|
127
131
|
this.isEntityValid = this.validationErrors.length === 0;
|
|
128
132
|
}
|
|
@@ -257,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
|
257
261
|
type: Inject,
|
|
258
262
|
args: [NGX_INTERNAL_GLOBAL_DEFAULT_VALUES]
|
|
259
263
|
}] }]; } });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFVLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUNB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LE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDL0QsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLE1BQXNDO1FBQ3JELE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO3VHQXZOUSwrQkFBK0Isa0JBcUQ1QixlQUFlLCtIQU1mLGtDQUFrQzsyRkEzRHJDLCtCQUErQixzRkNuRDVDLGkvR0E4RUEsNmlCRHhDUSxJQUFJLDZGQUNKLEtBQUssa0hBQ0wsdUJBQXVCLCtSQUN2QixlQUFlLHlTQUNmLFdBQVcsdWRBQ1gsZUFBZSwyUUFDZixhQUFhLHdUQUViLGFBQWEsK1lBQ2IsY0FBYyw0UEFDZCxnQkFBZ0I7OzJGQUdYLCtCQUErQjtrQkFuQjNDLFNBQVM7K0JBQ0ksNEJBQTRCLGNBRzFCLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLEtBQUs7d0JBQ0wsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtDQUFrQzt3QkFDbEMsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDbkI7OzBCQXVESSxNQUFNOzJCQUFDLGVBQWU7OzBCQU10QixNQUFNOzJCQUFDLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdCwgT25Jbml0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgUHJvcGVydHlEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9wcm9wZXJ0eS1kZWNvcmF0b3ItaW50ZXJuYWwuZGF0YSc7XG5pbXBvcnQgeyBOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTIH0gZnJvbSAnLi4vLi4vLi4vZGVmYXVsdC1nbG9iYWwtY29uZmlndXJhdGlvbi12YWx1ZXMnO1xuaW1wb3J0IHsgTG9kYXNoVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vZW5jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRpb25FcnJvcnNUb29sdGlwQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvcnMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLnRzJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlUYWIsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIsIENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi8uLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlJbnB1dE1vZHVsZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0QWN0aW9uSW50ZXJuYWwgfSBmcm9tICcuL2VkaXQtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEYXRhIH0gZnJvbSAnLi9lZGl0LWVudGl0eS1kYXRhJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEYXRhQnVpbGRlciwgRWRpdEVudGl0eURhdGFJbnRlcm5hbCB9IGZyb20gJy4vZWRpdC1lbnRpdHkuYnVpbGRlcic7XG5pbXBvcnQgeyBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBkaWFsb2cgdXNlZCB0byBlZGl0IGFuIGV4aXN0aW5nIGVudGl0eSBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvbiBwYXNzZWQgaW4gdGhlIE1BVF9ESUFMT0dfREFUQSBcImlucHV0RGF0YVwiLlxuICogVXNlZCBieSB0aGUgbmd4LW1hdC1lbnRpdHktdGFibGUuXG4gKlxuICogSXQgb2ZmZXJzIGEgbG90IG9mIGN1c3RvbWl6YXRpb24gb3B0aW9ucyB3aGljaCBjYW4gYmUgZm91bmQgaW4gXCJFZGl0RW50aXR5RGlhbG9nRGF0YVwiLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtZW50aXR5LWVkaXQtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0LWVudGl0eS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5neE1hdEVudGl0eUlucHV0TW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgIE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgICAgICBUb29sdGlwQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXRFbnRpdHlFZGl0RGlhbG9nQ29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIEhlbHBlck1ldGhvZHMgYXJvdW5kIGhhbmRsaW5nIEVudGl0aWVzIGFuZCB0aGVpciBwcm9wZXJ0eS1tZXRhZGF0YS5cbiAgICAgKi9cbiAgICBFbnRpdHlVdGlsaXRpZXM6IHR5cGVvZiBFbnRpdHlVdGlsaXRpZXMgPSBFbnRpdHlVdGlsaXRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGFicyBvZiB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGVudGl0eVRhYnMhOiBFbnRpdHlUYWI8RW50aXR5VHlwZT5bXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2aWNlIG9mIHRoZSBwcm92aWRlZCBlbnRpdHkuXG4gICAgICovXG4gICAgZW50aXR5U2VydmljZSE6IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IGJlZm9yZSBhbnkgY2hhbmdlcyBoYXZlIGJlZW4gYXBwbGllZC5cbiAgICAgKi9cbiAgICBlbnRpdHlQcmlvckNoYW5nZXMhOiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGludGVybmFsIGNvbmZpZ3VyYXRpb24gZGF0YS5cbiAgICAgKi9cbiAgICBkYXRhITogRWRpdEVudGl0eURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBlbnRpdHkgaXMgdmFsaWQuXG4gICAgICovXG4gICAgaXNFbnRpdHlWYWxpZDogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyBkaXJ0eS5cbiAgICAgKi9cbiAgICBpc0VudGl0eURpcnR5OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIHZhbGlkYXRpb24gZXJyb3JzIG9mIHRoZSBlbnRpdHkuXG4gICAgICovXG4gICAgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yW10gPSBbXTtcbiAgICAvKipcbiAgICAgKiBXaGF0IHRvIGRpc3BsYXkgaW5zaWRlIHRoZSB0b29sdGlwLlxuICAgICAqL1xuICAgIHRvb2x0aXBDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBlbnRpdHkgaXMgcmVhZG9ubHkuXG4gICAgICovXG4gICAgaXNFbnRpdHlSZWFkT25seSE6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgZGVsZXRpbmcgdGhlIGVudGl0eSBpcyBhbGxvd2VkIGZvciB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqL1xuICAgIGFsbG93RGVsZXRlITogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dERhdGE6IEVkaXRFbnRpdHlEYXRhPEVudGl0eVR5cGU+LFxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5RWRpdERpYWxvZ0NvbXBvbmVudDxFbnRpdHlUeXBlPj4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgQEluamVjdChOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgRWRpdEVudGl0eURhdGFCdWlsZGVyKHRoaXMuaW5wdXREYXRhLCB0aGlzLmdsb2JhbENvbmZpZykuZ2V0UmVzdWx0KCk7XG4gICAgICAgIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzID0gTG9kYXNoVXRpbGl0aWVzLmNsb25lRGVlcCh0aGlzLmRhdGEuZW50aXR5KTtcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNFbnRpdHlSZWFkT25seSA9ICF0aGlzLmRhdGEuYWxsb3dVcGRhdGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICAgICAgdGhpcy5hbGxvd0RlbGV0ZSA9IHRoaXMuZGF0YS5hbGxvd0RlbGV0ZSh0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmVudGl0eVRhYnMgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RW50aXR5VGFicyh0aGlzLmRhdGEuZW50aXR5LCB0aGlzLmluamVjdG9yLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZW50aXR5U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuZGF0YS5FbnRpdHlTZXJ2aWNlQ2xhc3MpIGFzIEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0lzRW50aXR5VmFsaWQoKSwgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBrZXkgaXMgcmVhZG9ubHkuXG4gICAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgZm9yIHRoZSBpbnB1dCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgZm9yIHRoZSBrZXkgaXMgcmVhZCBvbmx5LlxuICAgICAqL1xuICAgIGlzUmVhZE9ubHkoa2V5OiBrZXlvZiBFbnRpdHlUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGE6IFByb3BlcnR5RGVjb3JhdG9yQ29uZmlnSW50ZXJuYWw8dW5rbm93bj4gPSBFbnRpdHlVdGlsaXRpZXMuZ2V0UHJvcGVydHlNZXRhZGF0YSh0aGlzLmRhdGEuZW50aXR5LCBrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNFbnRpdHlSZWFkT25seSB8fCBtZXRhZGF0YS5pc1JlYWRPbmx5KHRoaXMuZGF0YS5lbnRpdHkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGVudGl0eSBoYXMgYmVjb21lIGludmFsaWQgb3IgZGlydHkuXG4gICAgICovXG4gICAgYXN5bmMgY2hlY2tFbnRpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY2hlY2tJc0VudGl0eVZhbGlkKCk7XG4gICAgICAgIHRoaXMuaXNFbnRpdHlEaXJ0eSA9IGF3YWl0IEVudGl0eVV0aWxpdGllcy5pc0RpcnR5KHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzLCB0aGlzLmh0dHApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tJc0VudGl0eVZhbGlkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBWYWxpZGF0aW9uVXRpbGl0aWVzLmdldEVudGl0eVZhbGlkYXRpb25FcnJvcnModGhpcy5kYXRhLmVudGl0eSwgJ3VwZGF0ZScpO1xuICAgICAgICB0aGlzLnRvb2x0aXBDb250ZW50ID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IGdldFZhbGlkYXRpb25FcnJvcnNUb29sdGlwQ29udGVudCh0aGlzLnZhbGlkYXRpb25FcnJvcnMpKTtcbiAgICAgICAgdGhpcy5pc0VudGl0eVZhbGlkID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBzYXZlIHRoZSBjaGFuZ2VzIGFuZCBjbG9zZSB0aGUgZGlhbG9nIGFmdGVyd2FyZHMuXG4gICAgICogQWxzbyBoYW5kbGVzIHRoZSBjb25maXJtYXRpb24gaWYgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZWRpdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbnRpdHlSZWFkT25seSB8fCAhdGhpcy5pc0VudGl0eVZhbGlkIHx8ICF0aGlzLmlzRW50aXR5RGlydHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5lZGl0RGF0YS5lZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1FZGl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbCA9IG5ldyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5nbG9iYWxDb25maWcsIHRoaXMuZGF0YS5lZGl0RGF0YS5jb25maXJtRWRpdERpYWxvZ0RhdGEpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCB0aGlzLmdsb2JhbENvbmZpZy5jb25maXJtU2F2ZVRleHQpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ2NvbmZpcm1CdXR0b25MYWJlbCcsIHRoaXMuZ2xvYmFsQ29uZmlnLnNhdmVMYWJlbClcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGl0bGUnLCB0aGlzLmdsb2JhbENvbmZpZy5lZGl0TGFiZWwpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpcm1FZGl0KCk6IHZvaWQge1xuICAgICAgICB2b2lkIHRoaXMuZW50aXR5U2VydmljZS51cGRhdGUodGhpcy5kYXRhLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpLnRoZW4oKCkgPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIGRlbGV0ZSB0aGUgZW50aXR5IGFuZCBjbG9zZSB0aGUgZGlhbG9nIGFmdGVyd2FyZHMuXG4gICAgICogQWxzbyBoYW5kbGVzIHRoZSBjb25maXJtYXRpb24gaWYgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5lZGl0RGF0YS5kZWxldGVSZXF1aXJlc0NvbmZpcm1EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybURlbGV0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCB0aGlzLmRhdGEuZWRpdERhdGEuY29uZmlybURlbGV0ZURpYWxvZ0RhdGEpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCB0aGlzLmdsb2JhbENvbmZpZy5jb25maXJtRGVsZXRlVGV4dClcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndHlwZScsICdkZWxldGUnKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCdjb25maXJtQnV0dG9uTGFiZWwnLCB0aGlzLmdsb2JhbENvbmZpZy5kZWxldGVMYWJlbClcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGl0bGUnLCB0aGlzLmdsb2JhbENvbmZpZy5kZWxldGVMYWJlbClcbiAgICAgICAgICAgIC5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwgYm9vbGVhbj4gPSB0aGlzLmRpYWxvZy5vcGVuKE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICB2b2lkIHRoaXMuZW50aXR5U2VydmljZS5kZWxldGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpLnRoZW4oKCkgPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoMikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgYWxsIGNoYW5nZXMgbWFkZSBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICBFbnRpdHlVdGlsaXRpZXMucmVzZXRDaGFuZ2VzT25FbnRpdHkodGhpcy5kYXRhLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSdW5zIHRoZSBlZGl0IGFjdGlvbiBvbiB0aGUgZW50aXR5LlxuICAgICAqIEBwYXJhbSBhY3Rpb24gLSBUaGUgYWN0aW9uIHRvIHJ1bi5cbiAgICAgKi9cbiAgICBydW5FZGl0QWN0aW9uKGFjdGlvbjogRWRpdEFjdGlvbkludGVybmFsPEVudGl0eVR5cGU+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVpcmVDb25maXJtRGlhbG9nOiBib29sZWFuID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhY3Rpb24ucmVxdWlyZUNvbmZpcm1EaWFsb2codGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXJlcXVpcmVDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1SdW5FZGl0QWN0aW9uKGFjdGlvbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwgYm9vbGVhbj4gPSB0aGlzLmRpYWxvZy5vcGVuKE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGFjdGlvbi5jb25maXJtRGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtUnVuRWRpdEFjdGlvbihhY3Rpb246IEVkaXRBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPik6IHZvaWQge1xuICAgICAgICB2b2lkIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBhY3Rpb24uYWN0aW9uKHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hlY2tFbnRpdHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIEVkaXRBY3Rpb24gaXMgZGlzYWJsZWQgKGUuZy4gQmVjYXVzZSB0aGUgY3VycmVudCBlbnRyeSBkb2Vzbid0IGZ1bGxmaWwgdGhlIHJlcXVpcmVtZW50cykuXG4gICAgICogQHBhcmFtIGFjdGlvbiAtIFRoZSBFZGl0QWN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBBY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICovXG4gICAgZWRpdEFjdGlvbkRpc2FibGVkKGFjdGlvbjogRWRpdEFjdGlvbkludGVybmFsPEVudGl0eVR5cGU+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gIWFjdGlvbi5lbmFibGVkKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKSk7XG4gICAgfVxufSIsIjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG48IS0tIGVzbGludC1kaXNhYmxlIGFuZ3VsYXIvY3ljbG9tYXRpYy1jb21wbGV4aXR5IC0tPlxuPGRpdiBjbGFzcz1cIm1hdC1kaWFsb2ctdGl0bGVcIj5cbiAgICA8ZGl2Pnt7ZGF0YS5lZGl0RGF0YS50aXRsZShlbnRpdHlQcmlvckNoYW5nZXMpfX08L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGF0YS5lZGl0RGF0YS5hY3Rpb25zLmxlbmd0aFwiIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuICAgICAgICAgICAge3tkYXRhLmVkaXREYXRhLmFjdGlvbnNMYWJlbH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZGF0YS5lZGl0RGF0YS5hY3Rpb25zXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cImVkaXRBY3Rpb25EaXNhYmxlZChhY3Rpb24pXCIgKGNsaWNrKT1cInJ1bkVkaXRBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgICAgICAgICAgIHt7YWN0aW9uLmRpc3BsYXlOYW1lfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgIFxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWxsb3dEZWxldGVcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJ3YXJuXCIgY2xhc3M9XCJkZWxldGUtYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIChjbGljayk9XCJkZWxldGUoKVwiPlxuICAgICAgICAgICAge3tkYXRhLmVkaXREYXRhLmRlbGV0ZUJ1dHRvbkxhYmVsfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGZvcm0+XG4gICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgPG1hdC10YWItZ3JvdXAgKm5nSWY9XCJlbnRpdHlUYWJzLmxlbmd0aCA+IDFcIiBwcmVzZXJ2ZUNvbnRlbnQ+XG4gICAgICAgICAgICA8bWF0LXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIGVudGl0eVRhYnNcIiBbbGFiZWxdPVwidGFiLnRhYk5hbWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgdGFiLnJvd3NcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBrZXkgb2Ygcm93LmtleXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2VudGl0eV09XCJkYXRhLmVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlLZXldPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiRW50aXR5VXRpbGl0aWVzLmdldFdpZHRoQ2xhc3NlcyhkYXRhLmVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5KGtleSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiY2hlY2tFbnRpdHkoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtbWF0LWVudGl0eS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgIFxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZW50aXR5VGFicy5sZW5ndGggPD0gMVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZW50aXR5VGFicy5sZW5ndGhcIiBjbGFzcz1cIm5vLWVudGl0eS10YWJzXCI+XG4gICAgICAgICAgICAgICAgRVJST1I6IE5vIElucHV0cy4gRGlkIHlvdSBjb3JyZWN0bHkgYXNzaWduIGFsbCB2YWx1ZXMgaW4gdGhlIG1vZGVsIGNvbnN0cnVjdG9yP1xuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIGVudGl0eVRhYnNbMF0ucm93c1wiIGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBrZXkgb2Ygcm93LmtleXNcIlxuICAgICAgICAgICAgICAgICAgICBbZW50aXR5XT1cImRhdGEuZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGhDbGFzc2VzKGRhdGEuZW50aXR5LCBrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seShrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiY2hlY2tFbnRpdHkoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktaW5wdXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgXG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRW50aXR5UmVhZE9ubHkgfHwgIWlzRW50aXR5VmFsaWQgfHwgIWlzRW50aXR5RGlydHlcIlxuICAgICAgICAgICAgICAgIFttYXRCYWRnZV09XCJ2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiF2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3tkYXRhLmVkaXREYXRhLmNvbmZpcm1CdXR0b25MYWJlbH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS10b29sdGlwICpuZ0lmPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIiBbdG9vbHRpcENvbnRlbnRdPVwidG9vbHRpcENvbnRlbnRcIj48L25neC1tYXQtZW50aXR5LXRvb2x0aXA+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgICAgICB7e2RhdGEuZWRpdERhdGEuY2FuY2VsQnV0dG9uTGFiZWx9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZm9ybT5cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFVLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUNB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3QsIE9uSW5pdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFByb3BlcnR5RGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvcHJvcGVydHktZGVjb3JhdG9yLWludGVybmFsLmRhdGEnO1xuaW1wb3J0IHsgTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUyB9IGZyb20gJy4uLy4uLy4uL2RlZmF1bHQtZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvZ2V0LXZhbGlkYXRpb24tZXJyb3JzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlUYWIsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIsIENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi8uLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlJbnB1dE1vZHVsZSB9IGZyb20gJy4uLy4uL2lucHV0L2lucHV0Lm1vZHVsZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0QWN0aW9uSW50ZXJuYWwgfSBmcm9tICcuL2VkaXQtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEYXRhIH0gZnJvbSAnLi9lZGl0LWVudGl0eS1kYXRhJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEYXRhQnVpbGRlciwgRWRpdEVudGl0eURhdGFJbnRlcm5hbCB9IGZyb20gJy4vZWRpdC1lbnRpdHkuYnVpbGRlcic7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGlhbG9nIHVzZWQgdG8gZWRpdCBhbiBleGlzdGluZyBlbnRpdHkgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gcGFzc2VkIGluIHRoZSBNQVRfRElBTE9HX0RBVEEgXCJpbnB1dERhdGFcIi5cbiAqIFVzZWQgYnkgdGhlIG5neC1tYXQtZW50aXR5LXRhYmxlLlxuICpcbiAqIEl0IG9mZmVycyBhIGxvdCBvZiBjdXN0b21pemF0aW9uIG9wdGlvbnMgd2hpY2ggY2FuIGJlIGZvdW5kIGluIFwiRWRpdEVudGl0eURpYWxvZ0RhdGFcIi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1lZGl0LWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ3hNYXRFbnRpdHlJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgVG9vbHRpcENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4TWF0RW50aXR5RWRpdERpYWxvZ0NvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBDb250YWlucyBIZWxwZXJNZXRob2RzIGFyb3VuZCBoYW5kbGluZyBFbnRpdGllcyBhbmQgdGhlaXIgcHJvcGVydHktbWV0YWRhdGEuXG4gICAgICovXG4gICAgRW50aXR5VXRpbGl0aWVzOiB0eXBlb2YgRW50aXR5VXRpbGl0aWVzID0gRW50aXR5VXRpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHRhYnMgb2YgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBlbnRpdHlUYWJzITogRW50aXR5VGFiPEVudGl0eVR5cGU+W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmljZSBvZiB0aGUgcHJvdmlkZWQgZW50aXR5LlxuICAgICAqL1xuICAgIGVudGl0eVNlcnZpY2UhOiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVudGl0eSBiZWZvcmUgYW55IGNoYW5nZXMgaGF2ZSBiZWVuIGFwcGxpZWQuXG4gICAgICovXG4gICAgZW50aXR5UHJpb3JDaGFuZ2VzITogRW50aXR5VHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpbnRlcm5hbCBjb25maWd1cmF0aW9uIGRhdGEuXG4gICAgICovXG4gICAgZGF0YSE6IEVkaXRFbnRpdHlEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50aXR5IGlzIHZhbGlkLlxuICAgICAqL1xuICAgIGlzRW50aXR5VmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBlbnRpdHkgaXMgZGlydHkuXG4gICAgICovXG4gICAgaXNFbnRpdHlEaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWxpZGF0aW9uIGVycm9ycyBvZiB0aGUgZW50aXR5LlxuICAgICAqL1xuICAgIHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICB0b29sdGlwQ29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50aXR5IGlzIHJlYWRvbmx5LlxuICAgICAqL1xuICAgIGlzRW50aXR5UmVhZE9ubHkhOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IGRlbGV0aW5nIHRoZSBlbnRpdHkgaXMgYWxsb3dlZCBmb3IgdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKi9cbiAgICBhbGxvd0RlbGV0ZSE6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREYXRhOiBFZGl0RW50aXR5RGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUVkaXREaWFsb2dDb21wb25lbnQ8RW50aXR5VHlwZT4+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIEBJbmplY3QoTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUylcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxDb25maWc6IE5neEdsb2JhbERlZmF1bHRWYWx1ZXNcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhID0gbmV3IEVkaXRFbnRpdHlEYXRhQnVpbGRlcih0aGlzLmlucHV0RGF0YSwgdGhpcy5nbG9iYWxDb25maWcpLmdldFJlc3VsdCgpO1xuICAgICAgICB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyA9IExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5kYXRhLmVudGl0eSk7XG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzRW50aXR5UmVhZE9ubHkgPSAhdGhpcy5kYXRhLmFsbG93VXBkYXRlKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0aGlzLmRhdGEuYWxsb3dEZWxldGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbnRpdHlUYWJzID0gRW50aXR5VXRpbGl0aWVzLmdldEVudGl0eVRhYnModGhpcy5kYXRhLmVudGl0eSwgdGhpcy5pbmplY3RvciwgZmFsc2UsIHRydWUpO1xuICAgICAgICB0aGlzLmVudGl0eVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldCh0aGlzLmRhdGEuRW50aXR5U2VydmljZUNsYXNzKSBhcyBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5jaGVja0lzRW50aXR5VmFsaWQoKSwgMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBrZXkgaXMgcmVhZG9ubHkuXG4gICAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgZm9yIHRoZSBpbnB1dCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgZm9yIHRoZSBrZXkgaXMgcmVhZCBvbmx5LlxuICAgICAqL1xuICAgIGlzUmVhZE9ubHkoa2V5OiBrZXlvZiBFbnRpdHlUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhOiBQcm9wZXJ0eURlY29yYXRvckNvbmZpZ0ludGVybmFsPHVua25vd24+IHwgdW5kZWZpbmVkID0gRW50aXR5VXRpbGl0aWVzLmdldFByb3BlcnR5TWV0YWRhdGEodGhpcy5kYXRhLmVudGl0eSwga2V5KTtcbiAgICAgICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1ldGFkYXRhIHdhcyBmb3VuZCBmb3IgdGhlIGtleSBcIiR7U3RyaW5nKGtleSl9XCJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRW50aXR5UmVhZE9ubHkgfHwgbWV0YWRhdGEuaXNSZWFkT25seSh0aGlzLmRhdGEuZW50aXR5KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBlbnRpdHkgaGFzIGJlY29tZSBpbnZhbGlkIG9yIGRpcnR5LlxuICAgICAqL1xuICAgIGFzeW5jIGNoZWNrRW50aXR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmNoZWNrSXNFbnRpdHlWYWxpZCgpO1xuICAgICAgICB0aGlzLmlzRW50aXR5RGlydHkgPSBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuaXNEaXJ0eSh0aGlzLmRhdGEuZW50aXR5LCB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcywgdGhpcy5odHRwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNoZWNrSXNFbnRpdHlWYWxpZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gYXdhaXQgVmFsaWRhdGlvblV0aWxpdGllcy5nZXRFbnRpdHlWYWxpZGF0aW9uRXJyb3JzKHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuaW5qZWN0b3IsICd1cGRhdGUnKTtcbiAgICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQodGhpcy52YWxpZGF0aW9uRXJyb3JzKSk7XG4gICAgICAgIHRoaXMuaXNFbnRpdHlWYWxpZCA9IHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gc2F2ZSB0aGUgY2hhbmdlcyBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGVkaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW50aXR5UmVhZE9ubHkgfHwgIXRoaXMuaXNFbnRpdHlWYWxpZCB8fCAhdGhpcy5pc0VudGl0eURpcnR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZWRpdFJlcXVpcmVzQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCB0aGlzLmRhdGEuZWRpdERhdGEuY29uZmlybUVkaXREaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybVNhdmVUZXh0KVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCdjb25maXJtQnV0dG9uTGFiZWwnLCB0aGlzLmdsb2JhbENvbmZpZy5zYXZlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZWRpdExhYmVsKVxuICAgICAgICAgICAgLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBib29sZWFuPiA9IHRoaXMuZGlhbG9nLm9wZW4oTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybUVkaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtRWRpdCgpOiB2b2lkIHtcbiAgICAgICAgdm9pZCB0aGlzLmVudGl0eVNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKS50aGVuKCgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKDEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBkZWxldGUgdGhlIGVudGl0eSBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZGVsZXRlUmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZywgdGhpcy5kYXRhLmVkaXREYXRhLmNvbmZpcm1EZWxldGVEaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybURlbGV0ZVRleHQpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3R5cGUnLCAnZGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgnY29uZmlybUJ1dHRvbkxhYmVsJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtRGVsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlybURlbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgdm9pZCB0aGlzLmVudGl0eVNlcnZpY2UuZGVsZXRlKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKS50aGVuKCgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKDIpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnRzIGFsbCBjaGFuZ2VzIG1hZGUgYW5kIGNsb3NlcyB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgRW50aXR5VXRpbGl0aWVzLnJlc2V0Q2hhbmdlc09uRW50aXR5KHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVucyB0aGUgZWRpdCBhY3Rpb24gb24gdGhlIGVudGl0eS5cbiAgICAgKiBAcGFyYW0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBydW4uXG4gICAgICovXG4gICAgcnVuRWRpdEFjdGlvbihhY3Rpb246IEVkaXRBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPik6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1aXJlQ29uZmlybURpYWxvZzogYm9vbGVhbiA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uLnJlcXVpcmVDb25maXJtRGlhbG9nKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXF1aXJlQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtUnVuRWRpdEFjdGlvbihhY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBhY3Rpb24uY29uZmlybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1SdW5FZGl0QWN0aW9uKGFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uOiBFZGl0QWN0aW9uSW50ZXJuYWw8RW50aXR5VHlwZT4pOiB2b2lkIHtcbiAgICAgICAgdm9pZCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgYWN0aW9uLmFjdGlvbih0aGlzLmRhdGEuZW50aXR5LCB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNoZWNrRW50aXR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhbiBFZGl0QWN0aW9uIGlzIGRpc2FibGVkIChlLmcuIEJlY2F1c2UgdGhlIGN1cnJlbnQgZW50cnkgZG9lc24ndCBmdWxsZmlsIHRoZSByZXF1aXJlbWVudHMpLlxuICAgICAqIEBwYXJhbSBhY3Rpb24gLSBUaGUgRWRpdEFjdGlvbiB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgQWN0aW9uIGNhbiBiZSB1c2VkLlxuICAgICAqL1xuICAgIGVkaXRBY3Rpb25EaXNhYmxlZChhY3Rpb246IEVkaXRBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+ICFhY3Rpb24uZW5hYmxlZCh0aGlzLmVudGl0eVByaW9yQ2hhbmdlcykpO1xuICAgIH1cbn0iLCI8IS0tIGVzbGludC1kaXNhYmxlIGFuZ3VsYXIvbm8tY2FsbC1leHByZXNzaW9uIC0tPlxuPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL2N5Y2xvbWF0aWMtY29tcGxleGl0eSAtLT5cbjxkaXYgY2xhc3M9XCJtYXQtZGlhbG9nLXRpdGxlXCI+XG4gICAgPGRpdj57e2RhdGEuZWRpdERhdGEudGl0bGUoZW50aXR5UHJpb3JDaGFuZ2VzKX19PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImRhdGEuZWRpdERhdGEuYWN0aW9ucy5sZW5ndGhcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5hY3Rpb25zTGFiZWx9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGRhdGEuZWRpdERhdGEuYWN0aW9uc1wiIHR5cGU9XCJidXR0b25cIiBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJlZGl0QWN0aW9uRGlzYWJsZWQoYWN0aW9uKVwiIChjbGljayk9XCJydW5FZGl0QWN0aW9uKGFjdGlvbilcIj5cbiAgICAgICAgICAgICAgICB7e2FjdGlvbi5kaXNwbGF5TmFtZX19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICBcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFsbG93RGVsZXRlXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwiZGVsZXRlKClcIj5cbiAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5kZWxldGVCdXR0b25MYWJlbH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxmb3JtPlxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxtYXQtdGFiLWdyb3VwICpuZ0lmPVwiZW50aXR5VGFicy5sZW5ndGggPiAxXCIgcHJlc2VydmVDb250ZW50PlxuICAgICAgICAgICAgPG1hdC10YWIgKm5nRm9yPVwibGV0IHRhYiBvZiBlbnRpdHlUYWJzXCIgW2xhYmVsXT1cInRhYi50YWJOYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIHRhYi5yb3dzXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5IG9mIHJvdy5rZXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZGF0YS5lbnRpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU9taXRGb3JFZGl0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkVudGl0eVV0aWxpdGllcy5nZXRXaWR0aENsYXNzZXMoZGF0YS5lbnRpdHksIGtleSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seShrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUV2ZW50KT1cImNoZWNrRW50aXR5KClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktaW5wdXQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICBcbiAgICAgICAgPGRpdiAqbmdJZj1cImVudGl0eVRhYnMubGVuZ3RoIDw9IDFcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWVudGl0eVRhYnMubGVuZ3RoXCIgY2xhc3M9XCJuby1lbnRpdHktdGFic1wiPlxuICAgICAgICAgICAgICAgIEVSUk9SOiBObyBJbnB1dHMuIERpZCB5b3UgY29ycmVjdGx5IGFzc2lnbiBhbGwgdmFsdWVzIGluIHRoZSBtb2RlbCBjb25zdHJ1Y3Rvcj9cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJvdyBvZiBlbnRpdHlUYWJzWzBdLnJvd3NcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5IG9mIHJvdy5rZXlzXCJcbiAgICAgICAgICAgICAgICAgICAgW2VudGl0eV09XCJkYXRhLmVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU9taXRGb3JFZGl0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiRW50aXR5VXRpbGl0aWVzLmdldFdpZHRoQ2xhc3NlcyhkYXRhLmVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHkoa2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUV2ZW50KT1cImNoZWNrRW50aXR5KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25neC1tYXQtZW50aXR5LWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgIFxuICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4O1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbWF0LXJhaXNlZC1idXR0b24gbWF0QmFkZ2VDb2xvcj1cIndhcm5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0VudGl0eVJlYWRPbmx5IHx8ICFpc0VudGl0eVZhbGlkIHx8ICFpc0VudGl0eURpcnR5XCJcbiAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwidmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhdmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5jb25maXJtQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktdG9vbHRpcCAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoXCIgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBDb250ZW50XCI+PC9uZ3gtbWF0LWVudGl0eS10b29sdGlwPlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICAgICAge3tkYXRhLmVkaXREYXRhLmNhbmNlbEJ1dHRvbkxhYmVsfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2Zvcm0+XG4iXX0=
|