@messaia/cdk 18.2.0 → 18.2.2

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.
@@ -0,0 +1,87 @@
1
+ import { Directive, ElementRef, HostListener, Input } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ /**
6
+ * This directive parses pasted currency strings into decimal values and updates the reactive form control.
7
+ */
8
+ export class ParseDecimalDirective {
9
+ el;
10
+ control;
11
+ /**
12
+ * Whether the directive is enabled.
13
+ */
14
+ parseDecimalEnabled = true;
15
+ /**
16
+ * Constructor to inject dependencies.
17
+ * @param el - The ElementRef instance representing the DOM element.
18
+ * @param control - The NgControl instance for accessing the form control.
19
+ */
20
+ constructor(el, control) {
21
+ this.el = el;
22
+ this.control = control;
23
+ }
24
+ /**
25
+ * Handles the paste event to parse and normalize pasted currency strings into decimals.
26
+ * @param event - The ClipboardEvent triggered on pasting.
27
+ */
28
+ onPaste(event) {
29
+ /* Skip the directive's functionality if disabled */
30
+ if (!this.parseDecimalEnabled) {
31
+ return;
32
+ }
33
+ /* Retrieve the pasted text from the clipboard. */
34
+ const pastedValue = event.clipboardData?.getData('text');
35
+ /* Parse the pasted text into a valid decimal. */
36
+ const parsedValue = this.parseCurrency(pastedValue ?? '');
37
+ /* If the parsed value is a valid number, update the input value and form control. */
38
+ if (!isNaN(parsedValue)) {
39
+ this.el.nativeElement.value = parsedValue;
40
+ this.updateFormControl(parsedValue);
41
+ }
42
+ /* Prevent the default paste behavior to avoid invalid input. */
43
+ event.preventDefault();
44
+ }
45
+ /**
46
+ * Parses a currency string into a decimal.
47
+ * @param value - The formatted currency string.
48
+ * @returns The parsed decimal or NaN if invalid.
49
+ */
50
+ parseCurrency(value) {
51
+ /* Return NaN if the input value is empty. */
52
+ if (!value) {
53
+ return NaN;
54
+ }
55
+ /* Remove all non-numeric characters except for `,` and `.` to normalize the value. */
56
+ let normalizedValue = value.replace(/[^\d.,-]/g, '');
57
+ /* Replace thousands separators (.) with nothing and decimal separators (,) with a dot. */
58
+ normalizedValue = normalizedValue.replace(/\./g, '').replace(',', '.');
59
+ /* Convert the cleaned string into a floating-point number. */
60
+ return parseFloat(normalizedValue);
61
+ }
62
+ /**
63
+ * Updates the reactive form control's value.
64
+ * @param value - The normalized decimal value.
65
+ */
66
+ updateFormControl(value) {
67
+ if (this.control && this.control.control) {
68
+ this.control.control.setValue(value);
69
+ /* Mark the control as dirty to indicate user interaction. */
70
+ this.control.control.markAsDirty();
71
+ }
72
+ }
73
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ParseDecimalDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
74
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: ParseDecimalDirective, selector: "[parseDecimal]", inputs: { parseDecimalEnabled: "parseDecimalEnabled" }, host: { listeners: { "paste": "onPaste($event)" } }, ngImport: i0 });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ParseDecimalDirective, decorators: [{
77
+ type: Directive,
78
+ args: [{
79
+ selector: '[parseDecimal]',
80
+ }]
81
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl }], propDecorators: { parseDecimalEnabled: [{
82
+ type: Input
83
+ }], onPaste: [{
84
+ type: HostListener,
85
+ args: ['paste', ['$event']]
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtZGVjaW1hbC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3Jtcy9kaXJlY3RpdmVzL3BhcnNlLWRlY2ltYWwtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBWVY7SUFBd0I7SUFYNUM7O09BRUc7SUFFSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFFbEM7Ozs7T0FJRztJQUNILFlBQW9CLEVBQWMsRUFBVSxPQUFrQjtRQUExQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBVztJQUFJLENBQUM7SUFFbkU7OztPQUdHO0lBRUksT0FBTyxDQUFDLEtBQXFCO1FBQ2hDLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNYLENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsaURBQWlEO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFELHFGQUFxRjtRQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztZQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxhQUFhLENBQUMsS0FBYTtRQUMvQiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDO1FBRUQsc0ZBQXNGO1FBQ3RGLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJELDBGQUEwRjtRQUMxRixlQUFlLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV2RSw4REFBOEQ7UUFDOUQsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGlCQUFpQixDQUFDLEtBQWE7UUFDbkMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLDZEQUE2RDtZQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQzswSEF6RVEscUJBQXFCOzhHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7dUdBTVUsbUJBQW1CO3NCQUR6QixLQUFLO2dCQWVDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgZGlyZWN0aXZlIHBhcnNlcyBwYXN0ZWQgY3VycmVuY3kgc3RyaW5ncyBpbnRvIGRlY2ltYWwgdmFsdWVzIGFuZCB1cGRhdGVzIHRoZSByZWFjdGl2ZSBmb3JtIGNvbnRyb2wuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3BhcnNlRGVjaW1hbF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFyc2VEZWNpbWFsRGlyZWN0aXZlIHtcclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgZGlyZWN0aXZlIGlzIGVuYWJsZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcGFyc2VEZWNpbWFsRW5hYmxlZCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciB0byBpbmplY3QgZGVwZW5kZW5jaWVzLlxyXG4gICAgICogQHBhcmFtIGVsIC0gVGhlIEVsZW1lbnRSZWYgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoZSBET00gZWxlbWVudC5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIC0gVGhlIE5nQ29udHJvbCBpbnN0YW5jZSBmb3IgYWNjZXNzaW5nIHRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIHBhc3RlIGV2ZW50IHRvIHBhcnNlIGFuZCBub3JtYWxpemUgcGFzdGVkIGN1cnJlbmN5IHN0cmluZ3MgaW50byBkZWNpbWFscy5cclxuICAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBDbGlwYm9hcmRFdmVudCB0cmlnZ2VyZWQgb24gcGFzdGluZy5cclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgLyogU2tpcCB0aGUgZGlyZWN0aXZlJ3MgZnVuY3Rpb25hbGl0eSBpZiBkaXNhYmxlZCAqL1xyXG4gICAgICAgIGlmICghdGhpcy5wYXJzZURlY2ltYWxFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHJpZXZlIHRoZSBwYXN0ZWQgdGV4dCBmcm9tIHRoZSBjbGlwYm9hcmQuICovXHJcbiAgICAgICAgY29uc3QgcGFzdGVkVmFsdWUgPSBldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0Jyk7XHJcblxyXG4gICAgICAgIC8qIFBhcnNlIHRoZSBwYXN0ZWQgdGV4dCBpbnRvIGEgdmFsaWQgZGVjaW1hbC4gKi9cclxuICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHRoaXMucGFyc2VDdXJyZW5jeShwYXN0ZWRWYWx1ZSA/PyAnJyk7XHJcblxyXG4gICAgICAgIC8qIElmIHRoZSBwYXJzZWQgdmFsdWUgaXMgYSB2YWxpZCBudW1iZXIsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGZvcm0gY29udHJvbC4gKi9cclxuICAgICAgICBpZiAoIWlzTmFOKHBhcnNlZFZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBwYXJzZWRWYWx1ZTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtQ29udHJvbChwYXJzZWRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBQcmV2ZW50IHRoZSBkZWZhdWx0IHBhc3RlIGJlaGF2aW9yIHRvIGF2b2lkIGludmFsaWQgaW5wdXQuICovXHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnNlcyBhIGN1cnJlbmN5IHN0cmluZyBpbnRvIGEgZGVjaW1hbC5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBmb3JtYXR0ZWQgY3VycmVuY3kgc3RyaW5nLlxyXG4gICAgICogQHJldHVybnMgVGhlIHBhcnNlZCBkZWNpbWFsIG9yIE5hTiBpZiBpbnZhbGlkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHBhcnNlQ3VycmVuY3kodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgLyogUmV0dXJuIE5hTiBpZiB0aGUgaW5wdXQgdmFsdWUgaXMgZW1wdHkuICovXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTmFOO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVtb3ZlIGFsbCBub24tbnVtZXJpYyBjaGFyYWN0ZXJzIGV4Y2VwdCBmb3IgYCxgIGFuZCBgLmAgdG8gbm9ybWFsaXplIHRoZSB2YWx1ZS4gKi9cclxuICAgICAgICBsZXQgbm9ybWFsaXplZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cXGQuLC1dL2csICcnKTtcclxuXHJcbiAgICAgICAgLyogUmVwbGFjZSB0aG91c2FuZHMgc2VwYXJhdG9ycyAoLikgd2l0aCBub3RoaW5nIGFuZCBkZWNpbWFsIHNlcGFyYXRvcnMgKCwpIHdpdGggYSBkb3QuICovXHJcbiAgICAgICAgbm9ybWFsaXplZFZhbHVlID0gbm9ybWFsaXplZFZhbHVlLnJlcGxhY2UoL1xcLi9nLCAnJykucmVwbGFjZSgnLCcsICcuJyk7XHJcblxyXG4gICAgICAgIC8qIENvbnZlcnQgdGhlIGNsZWFuZWQgc3RyaW5nIGludG8gYSBmbG9hdGluZy1wb2ludCBudW1iZXIuICovXHJcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobm9ybWFsaXplZFZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHJlYWN0aXZlIGZvcm0gY29udHJvbCdzIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIG5vcm1hbGl6ZWQgZGVjaW1hbCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGb3JtQ29udHJvbCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wuY29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAvKiBNYXJrIHRoZSBjb250cm9sIGFzIGRpcnR5IHRvIGluZGljYXRlIHVzZXIgaW50ZXJhY3Rpb24uICovXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -22,6 +22,7 @@ import { DatePickerHeaderComponent } from './components/datepicker/datepicker-he
22
22
  import { VdCodeDirective, VdCustomDirective, VdEditorDirective, VdFileDirective, VdGenericFormComponent } from './components/generic-form/generic-form.component';
23
23
  import { MatFormFieldEditorDirective } from './directives/mat-form-field-editor.directive';
24
24
  import { MatFormFieldReadonlyDirective } from './directives/mat-form-field-readonly.directive';
25
+ import { ParseDecimalDirective } from './directives/parse-decimal-directive';
25
26
  import { VdGenericFormCustomFieldDirective } from './directives/vd-generic-form-custom-field.directive';
26
27
  import { FieldFuncPipe } from './pipes/field-func.pipe';
27
28
  import { GroupFilterPipe } from './pipes/group-filter.pipe';
@@ -40,41 +41,43 @@ export { FormDefinition } from './models/form-definition';
40
41
  export { FormFieldDefinition } from './models/form-field-definition';
41
42
  export { FormFieldGroupDefinition } from './models/form-field-group-definition';
42
43
  export { EqualValidator } from './validators/equal-validator.directive';
43
- export { DatePickerHeaderComponent, EmptyStringResetDirective, FieldFuncPipe, GroupFilterPipe, MatFormFieldEditorDirective, NativeElementInjectorDirective, UniqueValidatorDirective };
44
+ export { DatePickerHeaderComponent, EmptyStringResetDirective, FieldFuncPipe, GroupFilterPipe, MatFormFieldEditorDirective, NativeElementInjectorDirective, ParseDecimalDirective, UniqueValidatorDirective };
44
45
  const DECLARATIONS = [
46
+ DatePickerHeaderComponent,
47
+ EmptyStringResetDirective,
45
48
  EqualValidator,
46
- UniqueValidatorDirective,
47
- NativeElementInjectorDirective,
48
- MatFormFieldReadonlyDirective,
49
+ FieldFuncPipe,
50
+ GroupFilterPipe,
49
51
  MatFormFieldEditorDirective,
50
- VdEditorDirective,
52
+ MatFormFieldReadonlyDirective,
53
+ NativeElementInjectorDirective,
54
+ ParseDecimalDirective,
55
+ UniqueValidatorDirective,
51
56
  VdCodeDirective,
52
- VdFileDirective,
53
57
  VdCustomDirective,
54
- EmptyStringResetDirective,
58
+ VdEditorDirective,
59
+ VdFileDirective,
55
60
  VdGenericFormComponent,
56
- DatePickerHeaderComponent,
57
61
  VdGenericFormCustomFieldDirective,
58
- GroupFilterPipe,
59
- FieldFuncPipe
60
62
  ];
61
63
  export class VdFormsModule {
62
64
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
63
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: VdFormsModule, declarations: [EqualValidator,
64
- UniqueValidatorDirective,
65
- NativeElementInjectorDirective,
66
- MatFormFieldReadonlyDirective,
65
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: VdFormsModule, declarations: [DatePickerHeaderComponent,
66
+ EmptyStringResetDirective,
67
+ EqualValidator,
68
+ FieldFuncPipe,
69
+ GroupFilterPipe,
67
70
  MatFormFieldEditorDirective,
68
- VdEditorDirective,
71
+ MatFormFieldReadonlyDirective,
72
+ NativeElementInjectorDirective,
73
+ ParseDecimalDirective,
74
+ UniqueValidatorDirective,
69
75
  VdCodeDirective,
70
- VdFileDirective,
71
76
  VdCustomDirective,
72
- EmptyStringResetDirective,
77
+ VdEditorDirective,
78
+ VdFileDirective,
73
79
  VdGenericFormComponent,
74
- DatePickerHeaderComponent,
75
- VdGenericFormCustomFieldDirective,
76
- GroupFilterPipe,
77
- FieldFuncPipe], imports: [CommonModule,
80
+ VdGenericFormCustomFieldDirective], imports: [CommonModule,
78
81
  VdCommonModule,
79
82
  VdSelectModule,
80
83
  VdChipsModule,
@@ -94,21 +97,22 @@ export class VdFormsModule {
94
97
  MatNativeDateModule,
95
98
  MatAutocompleteModule,
96
99
  MatChipsModule,
97
- NgxColorsModule], exports: [EqualValidator,
98
- UniqueValidatorDirective,
99
- NativeElementInjectorDirective,
100
- MatFormFieldReadonlyDirective,
100
+ NgxColorsModule], exports: [DatePickerHeaderComponent,
101
+ EmptyStringResetDirective,
102
+ EqualValidator,
103
+ FieldFuncPipe,
104
+ GroupFilterPipe,
101
105
  MatFormFieldEditorDirective,
102
- VdEditorDirective,
106
+ MatFormFieldReadonlyDirective,
107
+ NativeElementInjectorDirective,
108
+ ParseDecimalDirective,
109
+ UniqueValidatorDirective,
103
110
  VdCodeDirective,
104
- VdFileDirective,
105
111
  VdCustomDirective,
106
- EmptyStringResetDirective,
112
+ VdEditorDirective,
113
+ VdFileDirective,
107
114
  VdGenericFormComponent,
108
- DatePickerHeaderComponent,
109
- VdGenericFormCustomFieldDirective,
110
- GroupFilterPipe,
111
- FieldFuncPipe] });
115
+ VdGenericFormCustomFieldDirective] });
112
116
  /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdFormsModule, imports: [CommonModule,
113
117
  VdCommonModule,
114
118
  VdSelectModule,
@@ -161,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
161
165
  exports: [DECLARATIONS]
162
166
  }]
163
167
  }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZm9ybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztB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b3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE5neENvbG9yc01vZHVsZSB9IGZyb20gJ25neC1jb2xvcnMnO1xyXG5pbXBvcnQgeyBWZENoaXBzTW9kdWxlIH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMubW9kdWxlJztcclxuaW1wb3J0IHsgVmRDb21tb25Nb2R1bGUgfSBmcm9tICcuLi9jb21tb24vcHVibGljX2FwaSc7XHJcbmltcG9ydCB7IFZkRmlsZU1vZHVsZSB9IGZyb20gJy4uL2ZpbGUvZmlsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBWZExpc3RNb2R1bGUgfSBmcm9tICcuLi9saXN0L2xpc3QubW9kdWxlJztcclxuaW1wb3J0IHsgVmRTZWxlY3RNb2R1bGUgfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWZENvZGVEaXJlY3RpdmUsIFZkQ3VzdG9tRGlyZWN0aXZlLCBWZEVkaXRvckRpcmVjdGl2ZSwgVmRGaWxlRGlyZWN0aXZlLCBWZEdlbmVyaWNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyaWMtZm9ybS9nZW5lcmljLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hdC1mb3JtLWZpZWxkLWVkaXRvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRSZWFkb25seURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tYXQtZm9ybS1maWVsZC1yZWFkb25seS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBWZEdlbmVyaWNGb3JtQ3VzdG9tRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmQtZ2VuZXJpYy1mb3JtLWN1c3RvbS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWVsZEZ1bmNQaXBlIH0gZnJvbSAnLi9waXBlcy9maWVsZC1mdW5jLnBpcGUnO1xyXG5pbXBvcnQgeyBHcm91cEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2dyb3VwLWZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgRW1wdHlTdHJpbmdSZXNldERpcmVjdGl2ZSB9IGZyb20gJy4vdmFsaWRhdG9ycy9lbXB0eS1zdHJpbmctcmVzZXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXF1YWxWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5hdGl2ZUVsZW1lbnRJbmplY3RvckRpcmVjdGl2ZSB9IGZyb20gJy4vdmFsaWRhdG9ycy9uYXRpdmUtZWxlbWVudC1pbmplY3Rvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBVbmlxdWVWYWxpZGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3ZhbGlkYXRvcnMvdW5pcXVlLXZhbGlkYXRvci1kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IHsgZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIGZvcm1GaWVsZHNNZXRhZGF0YUtleSB9IGZyb20gJy4vY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmV4cG9ydCB7IEZvcm1GaWVsZFR5cGUgfSBmcm9tICcuL2VudW1zL2Zvcm0tZmllbGQtdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb25zL2RlY29yYXRvcnMnO1xyXG5leHBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSAnLi9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuZXhwb3J0IHsgQWJzdHJhY3RNYXRGb3JtRmllbGQgfSBmcm9tICcuL2hlbHBlcnMvYWJzdHJhY3QtbWF0LWZvcm0tZmllbGQnO1xyXG5leHBvcnQgeyBWYWx1ZUFjY2Vzc29yQmFzZSB9IGZyb20gJy4vaGVscGVycy92YWx1ZS1hY2Nlc3Nvci1iYXNlJztcclxuZXhwb3J0IHsgRm9ybURlZmluaXRpb24gfSBmcm9tICcuL21vZGVscy9mb3JtLWRlZmluaXRpb24nO1xyXG5leHBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1maWVsZC1kZWZpbml0aW9uJztcclxuZXhwb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1maWVsZC1ncm91cC1kZWZpbml0aW9uJztcclxuZXhwb3J0IHsgRXF1YWxWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7XHJcblx0RGF0ZVBpY2tlckhlYWRlckNvbXBvbmVudCxcclxuXHRFbXB0eVN0cmluZ1Jlc2V0RGlyZWN0aXZlLCBGaWVsZEZ1bmNQaXBlLCBHcm91cEZpbHRlclBpcGUsIE1hdEZvcm1GaWVsZEVkaXRvckRpcmVjdGl2ZSwgTmF0aXZlRWxlbWVudEluamVjdG9yRGlyZWN0aXZlLFxyXG5cdFVuaXF1ZVZhbGlkYXRvckRpcmVjdGl2ZVxyXG59O1xyXG5cclxuY29uc3QgREVDTEFSQVRJT05TID0gW1xyXG5cdEVxdWFsVmFsaWRhdG9yLFxyXG5cdFVuaXF1ZVZhbGlkYXRvckRpcmVjdGl2ZSxcclxuXHROYXRpdmVFbGVtZW50SW5qZWN0b3JEaXJlY3RpdmUsXHJcblx0TWF0Rm9ybUZpZWxkUmVhZG9ubHlEaXJlY3RpdmUsXHJcblx0TWF0Rm9ybUZpZWxkRWRpdG9yRGlyZWN0aXZlLFxyXG5cdFZkRWRpdG9yRGlyZWN0aXZlLFxyXG5cdFZkQ29kZURpcmVjdGl2ZSxcclxuXHRWZEZpbGVEaXJlY3RpdmUsXHJcblx0VmRDdXN0b21EaXJlY3RpdmUsXHJcblx0RW1wdHlTdHJpbmdSZXNldERpcmVjdGl2ZSxcclxuXHRWZEdlbmVyaWNGb3JtQ29tcG9uZW50LFxyXG5cdERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnQsXHJcblx0VmRHZW5lcmljRm9ybUN1c3RvbUZpZWxkRGlyZWN0aXZlLFxyXG5cdEdyb3VwRmlsdGVyUGlwZSxcclxuXHRGaWVsZEZ1bmNQaXBlXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdFZkQ29tbW9uTW9kdWxlLFxyXG5cdFx0VmRTZWxlY3RNb2R1bGUsXHJcblx0XHRWZENoaXBzTW9kdWxlLFxyXG5cdFx0VmRGaWxlTW9kdWxlLFxyXG5cdFx0VmRMaXN0TW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0TWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG5cdFx0TWF0U2VsZWN0TW9kdWxlLFxyXG5cdFx0TWF0SWNvbk1vZHVsZSxcclxuXHRcdE1hdElucHV0TW9kdWxlLFxyXG5cdFx0TWF0QnV0dG9uTW9kdWxlLFxyXG5cdFx0TWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuXHRcdE1hdENoZWNrYm94TW9kdWxlLFxyXG5cdFx0TWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcblx0XHRNYXREYXRlcGlja2VyTW9kdWxlLFxyXG5cdFx0TWF0TmF0aXZlRGF0ZU1vZHVsZSxcclxuXHRcdE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuXHRcdE1hdENoaXBzTW9kdWxlLFxyXG5cdFx0Tmd4Q29sb3JzTW9kdWxlXHJcblx0XSxcclxuXHRkZWNsYXJhdGlvbnM6IFtERUNMQVJBVElPTlNdLFxyXG5cdGV4cG9ydHM6IFtERUNMQVJBVElPTlNdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZEZvcm1zTW9kdWxlIHsgfSJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZm9ybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztB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cUJBQ2Y7b0JBQ0QsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE5neENvbG9yc01vZHVsZSB9IGZyb20gJ25neC1jb2xvcnMnO1xyXG5pbXBvcnQgeyBWZENoaXBzTW9kdWxlIH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMubW9kdWxlJztcclxuaW1wb3J0IHsgVmRDb21tb25Nb2R1bGUgfSBmcm9tICcuLi9jb21tb24vcHVibGljX2FwaSc7XHJcbmltcG9ydCB7IFZkRmlsZU1vZHVsZSB9IGZyb20gJy4uL2ZpbGUvZmlsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBWZExpc3RNb2R1bGUgfSBmcm9tICcuLi9saXN0L2xpc3QubW9kdWxlJztcclxuaW1wb3J0IHsgVmRTZWxlY3RNb2R1bGUgfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWZENvZGVEaXJlY3RpdmUsIFZkQ3VzdG9tRGlyZWN0aXZlLCBWZEVkaXRvckRpcmVjdGl2ZSwgVmRGaWxlRGlyZWN0aXZlLCBWZEdlbmVyaWNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyaWMtZm9ybS9nZW5lcmljLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hdC1mb3JtLWZpZWxkLWVkaXRvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRSZWFkb25seURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tYXQtZm9ybS1maWVsZC1yZWFkb25seS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQYXJzZURlY2ltYWxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcGFyc2UtZGVjaW1hbC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBWZEdlbmVyaWNGb3JtQ3VzdG9tRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdmQtZ2VuZXJpYy1mb3JtLWN1c3RvbS1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWVsZEZ1bmNQaXBlIH0gZnJvbSAnLi9waXBlcy9maWVsZC1mdW5jLnBpcGUnO1xyXG5pbXBvcnQgeyBHcm91cEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2dyb3VwLWZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgRW1wdHlTdHJpbmdSZXNldERpcmVjdGl2ZSB9IGZyb20gJy4vdmFsaWRhdG9ycy9lbXB0eS1zdHJpbmctcmVzZXQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXF1YWxWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5hdGl2ZUVsZW1lbnRJbmplY3RvckRpcmVjdGl2ZSB9IGZyb20gJy4vdmFsaWRhdG9ycy9uYXRpdmUtZWxlbWVudC1pbmplY3Rvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBVbmlxdWVWYWxpZGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3ZhbGlkYXRvcnMvdW5pcXVlLXZhbGlkYXRvci1kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IHsgZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIGZvcm1GaWVsZHNNZXRhZGF0YUtleSB9IGZyb20gJy4vY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmV4cG9ydCB7IEZvcm1GaWVsZFR5cGUgfSBmcm9tICcuL2VudW1zL2Zvcm0tZmllbGQtdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb25zL2RlY29yYXRvcnMnO1xyXG5leHBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSAnLi9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuZXhwb3J0IHsgQWJzdHJhY3RNYXRGb3JtRmllbGQgfSBmcm9tICcuL2hlbHBlcnMvYWJzdHJhY3QtbWF0LWZvcm0tZmllbGQnO1xyXG5leHBvcnQgeyBWYWx1ZUFjY2Vzc29yQmFzZSB9IGZyb20gJy4vaGVscGVycy92YWx1ZS1hY2Nlc3Nvci1iYXNlJztcclxuZXhwb3J0IHsgRm9ybURlZmluaXRpb24gfSBmcm9tICcuL21vZGVscy9mb3JtLWRlZmluaXRpb24nO1xyXG5leHBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1maWVsZC1kZWZpbml0aW9uJztcclxuZXhwb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1maWVsZC1ncm91cC1kZWZpbml0aW9uJztcclxuZXhwb3J0IHsgRXF1YWxWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7XHJcblx0RGF0ZVBpY2tlckhlYWRlckNvbXBvbmVudCxcclxuXHRFbXB0eVN0cmluZ1Jlc2V0RGlyZWN0aXZlLFxyXG5cdEZpZWxkRnVuY1BpcGUsXHJcblx0R3JvdXBGaWx0ZXJQaXBlLFxyXG5cdE1hdEZvcm1GaWVsZEVkaXRvckRpcmVjdGl2ZSxcclxuXHROYXRpdmVFbGVtZW50SW5qZWN0b3JEaXJlY3RpdmUsXHJcblx0UGFyc2VEZWNpbWFsRGlyZWN0aXZlLFxyXG5cdFVuaXF1ZVZhbGlkYXRvckRpcmVjdGl2ZVxyXG59O1xyXG5cclxuY29uc3QgREVDTEFSQVRJT05TID0gW1xyXG5cdERhdGVQaWNrZXJIZWFkZXJDb21wb25lbnQsXHJcblx0RW1wdHlTdHJpbmdSZXNldERpcmVjdGl2ZSxcclxuXHRFcXVhbFZhbGlkYXRvcixcclxuXHRGaWVsZEZ1bmNQaXBlLFxyXG5cdEdyb3VwRmlsdGVyUGlwZSxcclxuXHRNYXRGb3JtRmllbGRFZGl0b3JEaXJlY3RpdmUsXHJcblx0TWF0Rm9ybUZpZWxkUmVhZG9ubHlEaXJlY3RpdmUsXHJcblx0TmF0aXZlRWxlbWVudEluamVjdG9yRGlyZWN0aXZlLFxyXG5cdFBhcnNlRGVjaW1hbERpcmVjdGl2ZSxcclxuXHRVbmlxdWVWYWxpZGF0b3JEaXJlY3RpdmUsXHJcblx0VmRDb2RlRGlyZWN0aXZlLFxyXG5cdFZkQ3VzdG9tRGlyZWN0aXZlLFxyXG5cdFZkRWRpdG9yRGlyZWN0aXZlLFxyXG5cdFZkRmlsZURpcmVjdGl2ZSxcclxuXHRWZEdlbmVyaWNGb3JtQ29tcG9uZW50LFxyXG5cdFZkR2VuZXJpY0Zvcm1DdXN0b21GaWVsZERpcmVjdGl2ZSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0VmRDb21tb25Nb2R1bGUsXHJcblx0XHRWZFNlbGVjdE1vZHVsZSxcclxuXHRcdFZkQ2hpcHNNb2R1bGUsXHJcblx0XHRWZEZpbGVNb2R1bGUsXHJcblx0XHRWZExpc3RNb2R1bGUsXHJcblx0XHRGb3Jtc01vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcblx0XHRNYXRGb3JtRmllbGRNb2R1bGUsXHJcblx0XHRNYXRTZWxlY3RNb2R1bGUsXHJcblx0XHRNYXRJY29uTW9kdWxlLFxyXG5cdFx0TWF0SW5wdXRNb2R1bGUsXHJcblx0XHRNYXRCdXR0b25Nb2R1bGUsXHJcblx0XHRNYXREYXRlcGlja2VyTW9kdWxlLFxyXG5cdFx0TWF0Q2hlY2tib3hNb2R1bGUsXHJcblx0XHRNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuXHRcdE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcblx0XHRNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG5cdFx0TWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG5cdFx0TWF0Q2hpcHNNb2R1bGUsXHJcblx0XHROZ3hDb2xvcnNNb2R1bGVcclxuXHRdLFxyXG5cdGRlY2xhcmF0aW9uczogW0RFQ0xBUkFUSU9OU10sXHJcblx0ZXhwb3J0czogW0RFQ0xBUkFUSU9OU11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZkRm9ybXNNb2R1bGUgeyB9Il19
@@ -283,6 +283,11 @@ export class FormFieldDefinition {
283
283
  * Flag indicating if only numeric input is permitted.
284
284
  */
285
285
  numbersOnly;
286
+ /**
287
+ * Flag to enable or disable decimal parsing on input.
288
+ * If set to true, pasted values will be normalized to a valid decimal format.
289
+ */
290
+ parseDecimal;
286
291
  /**
287
292
  * Indicates whether the first option in a selection should be automatically selected.
288
293
  * Defaults to false.
@@ -460,4 +465,4 @@ export class FormFieldDefinition {
460
465
  Object.assign(this, init);
461
466
  }
462
467
  }
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0ksb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBRXpDOzs7Ozs7O09BT0c7SUFDSSxvQkFBb0IsQ0FBK0Y7SUFFMUg7O09BRUc7SUFDSSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7SUFFekM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUErRjtJQUU1Rzs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFvRztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUErRjtJQUVsSDs7T0FFRztJQUNJLFFBQVEsR0FBVyxNQUFNLENBQUM7SUFFakM7O09BRUc7SUFDSSxTQUFTLEdBQWtDLFFBQVEsQ0FBQztJQUUzRDs7T0FFRztJQUNJLFNBQVMsQ0FBYTtJQUU3Qjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBZ0Y7SUFFNUY7Ozs7O09BS0c7SUFDSSxXQUFXLENBQTZDO0lBRS9EOztPQUVHO0lBQ0ksUUFBUSxDQUFVO0lBRXpCOztPQUVHO0lBQ0ksV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVwQzs7OztPQUlHO0lBQ0ksVUFBVSxHQUFzQixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBRTNEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQTBIO0lBRWhKOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUFpSDtJQUV4STs7T0FFRztJQUNJLFFBQVEsQ0FBMkY7SUFFMUc7Ozs7O09BS0c7SUFDSSxVQUFVLENBQWlGO0lBRWxHOztPQUVHO0lBQ0ksUUFBUSxDQUFPO0lBRXRCOztPQUVHO0lBQ0ksWUFBWSxDQUFrQztJQUVyRDs7Ozs7O09BTUc7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O0lBQ0ksSUFBSSxDQUE0RztJQUV2SDs7O09BR0c7SUFDSSxPQUFPLEdBQVksSUFBSSxDQUFDO0lBRS9COzs7Ozs7T0FNRztJQUNILFlBQW1CLElBQTRDO1FBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgRGF0ZUZpbHRlckZuLCBNYXREYXRlcGlja2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vYmFzZS9pbnRlcmZhY2VzL2lnZW5lcmljLWZvcm0tYmFzZVwiO1xyXG5pbXBvcnQgeyBFbnVtTWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9lbnVtLW1ldGFkYXRhXCI7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL2ZpbHRlclwiO1xyXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9tb2RlbHMvaWNvblwiO1xyXG5pbXBvcnQgeyBTdWZmaXhCdXR0b24gfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9zdWZmaXgtYnV0dG9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGUgfSBmcm9tIFwiLi4vZW51bXMvZm9ybS1maWVsZC10eXBlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5ID0gYW55LCBUUHJvcGVydHkgPSBhbnk+IHtcclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgdG8gYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHkgZm9yIHN0eWxpbmcgcHVycG9zZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVDc3NDbGFzczogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmdW5jdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgcHJvcGVydHkgdmFsdWUgZm9yIGF1dG9jb21wbGV0ZS5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBhdXRvY29tcGxldGUgdGVtcGxhdGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVUZW1wbGF0ZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZhdWx0IHRleHQgdG8gZGlzcGxheSBmb3IgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlVGV4dDogc3RyaW5nID0gJ25hbWUnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZXhlY3V0ZWQgd2hlbiB0aGUgZmllbGQgdmFsdWUgY2hhbmdlcy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSB1cGRhdGVkIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hhbmdlPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEtleWRvd24gZXZlbnQgaGFuZGxlciwgYWxsb3dpbmcgZm9yIGN1c3RvbSBiZWhhdmlvciB3aGVuIGEga2V5IGlzIHByZXNzZWQgd2l0aGluIHRoZSBmaWVsZC5cclxuICAgICAqIENhbiBiZSB1c2VkIGZvciBmb3JtIHZhbGlkYXRpb24sIGZvcm1hdHRpbmcsIG9yIG90aGVyIGN1c3RvbSBpbnRlcmFjdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0gZSBUaGUga2V5ZG93biBldmVudCB0cmlnZ2VyZWQgb24gdGhlIGZvcm0gZmllbGQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0gZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhlIGZvcm0gZmllbGQgZGVmaW5pdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50IGNvbnRleHQsIHByb3ZpZGluZyBhZGRpdGlvbmFsIGRhdGEgYW5kIG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBrZXlkb3duPzogKGU6IEtleWJvYXJkRXZlbnQsIHg/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgZnVuY3Rpb24gZm9yIGRpc3BsYXlpbmcgY2hpcCBlbGVtZW50cyByZWxhdGVkIHRvIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBjaGlwLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgVGhlIHJlbmRlcmVkIGNoaXAgdGVtcGxhdGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGlwVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5LCB5PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCB0ZXh0IGRpc3BsYXllZCBpbiBjaGlwIGVsZW1lbnRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hpcFRleHQ6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbG9yIHRoZW1lIGZvciB0aGUgY2hpcCwgZGV0ZXJtaW5lZCBmcm9tIHRoZSBwcmVkZWZpbmVkIHBhbGV0dGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGlwQ29sb3I6ICdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nID0gJ2FjY2VudCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2xhc3MgdHlwZSB0byBpbnN0YW50aWF0ZSBmb3IgdGhpcyBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsYXNzVHlwZT86IFR5cGU8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gdGhlIGZpZWxkIGlzIGNsZWFyZWQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhcj86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiBmb3IgY29tcGFyaW5nIHR3byBwcm9wZXJ0eSB2YWx1ZXMuXHJcbiAgICAgKiBAcGFyYW0gbzEgVGhlIGZpcnN0IHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIG8yIFRoZSBzZWNvbmQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgdmFsdWVzIGFyZSBlcXVhbC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbXBhcmVXaXRoPzogKG8xOiBUUHJvcGVydHksIG8yOiBUUHJvcGVydHkpID0+IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDU1MgY2xhc3MgYXBwbGllZCBmb3IgZ2VuZXJhbCBzdHlsaW5nIG9mIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNzc0NsYXNzPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIHZhbHVlIGNhbiBiZSBjdXN0b21pemVkIGJ5IHRoZSB1c2VyLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3VzdG9tVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRvIGZpbHRlciBzZWxlY3RhYmxlIGRhdGVzLlxyXG4gICAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZXZhbHVhdGUuXHJcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgZGF0ZSBpcyBzZWxlY3RhYmxlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPGFueT4gPSAoZGF0ZTogYW55KSA9PiB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGZpbHRlciBkYXRlcyBiYXNlZCBvbiBhZGRpdGlvbmFsIGNvbmRpdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0gZCBUaGUgZGF0ZSB0byBldmFsdWF0ZS5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGF0ZSBmaWx0ZXIgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXRlRmlsdGVyQXN5bmM/OiAoZDogRGF0ZSB8IGFueSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IE9ic2VydmFibGU8RGF0ZUZpbHRlckZuPGFueT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gaW52b2tlZCB3aGVuIHRoZSBkYXRlIHBpY2tlciBpcyBvcGVuZWQuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZVBpY2tlciBUaGUgTWF0RGF0ZXBpY2tlciBjb21wb25lbnQgaW5zdGFuY2UuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXRlUGlja2VyT3BlbmVkPzogKGRhdGVQaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PiwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuZHBvaW50IGZvciByZXRyaWV2aW5nIGRhdGEsIHdoaWNoIGNhbiBiZSBhIFVSTCBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBkYXRhLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW5kcG9pbnQ/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueSkgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBmaWx0ZXIgb3B0aW9ucyBiYXNlZCBvbiBlbnVtZXJhdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbnVtRmlsdGVyPzogKHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdHlwZSBvZiBlbnVtZXJhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGVudW1UeXBlPzogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGVudW1lcmF0aW9uIHR5cGVzIGZvciBhZGRpdGlvbmFsIGNvbnRleHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbnVtTWV0YWRhdGE/OiB7IFtrZXkgaW4gYW55XTogRW51bU1ldGFkYXRhIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBkYXRhIHNob3VsZCBiZSBmZXRjaGVkIGJhc2VkIG9uIHNwZWNpZmljIGNvbmRpdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZmV0Y2hpbmcgaXMgcmVxdWlyZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmZXRjaENvbmRpdGlvbjogKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgZmllbGQgc2V0cyB0aGF0IG9yZ2FuaXplIHJlbGF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmllbGRTZXRzPzogc3RyaW5nW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9ucyBmb3IgZmlsZSB1cGxvYWRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsZUV4dGVuc2lvbnM/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZmlsZSBwYXRoIGZvciBzdG9yaW5nIHVwbG9hZGVkIGZpbGVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsZVBhdGg/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGV4IGxheW91dCBwcm9wZXJ0eSBkZWZpbmluZyB0aGUgc3BhY2UgdGhlIGZpZWxkIG9jY3VwaWVzIGluIGEgZmxleCBjb250YWluZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmbGV4PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIHNlbGVjdGlvbiBvZiBhbiBvcHRpb24gaXMgbWFuZGF0b3J5IGZvciB0aGlzIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9yY2VTZWxlY3Q/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIHNob3VsZCBiZSBmb2N1c2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgZm9ybSBpbml0aWFsaXplcy5cclxuICAgICAqIFRoaXMgY2FuIGJlIGVpdGhlciBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGJhc2VkIG9uIHRoZSBlbnRpdHkgYW5kIGZvcm0gY29udGV4dC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLCBhbGxvd2luZyBmb3IgYWRkaXRpb25hbCBjb250ZXh0LlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudCwgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUgZm9ybSdzIG92ZXJhbGwgc3RhdGUuXHJcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGZvY3VzZWQgYXV0b21hdGljYWxseSAodHJ1ZSksIG9yIG5vdCAoZmFsc2UpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9jdXM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGJvb2xlYW4pIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCBzaG91bGQgYXV0b21hdGljYWxseSBzZWxlY3QgaXRzIHRleHQgd2hlbiB0aGUgZm9ybSBpbml0aWFsaXplcy5cclxuICAgICAqIFRoaXMgY2FuIGJlIGVpdGhlciBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGJhc2VkIG9uIHRoZSBlbnRpdHkgYW5kIGZvcm0gY29udGV4dC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLCBhbGxvd2luZyBmb3IgYWRkaXRpb25hbCBjb250ZXh0LlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudCwgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUgZm9ybSdzIG92ZXJhbGwgc3RhdGUuXHJcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgZmllbGQncyB0ZXh0IHNob3VsZCBiZSBzZWxlY3RlZCBhdXRvbWF0aWNhbGx5ICh0cnVlKSwgb3Igbm90IChmYWxzZSkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RUZXh0PzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuKSB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWFkZXIgdGV4dCBmb3IgZ3JvdXBpbmcgcmVsYXRlZCBmaWVsZHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBncm91cEhlYWRlcjogc3RyaW5nID0gJGxvY2FsaXplYDpAQGRldGFpbHM6RGV0YWlsc2A7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbmFtZSBhc3NpZ25lZCB0byB0aGUgZ3JvdXAgb2YgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ3JvdXBOYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIGhpZGRlbiBmcm9tIHZpZXcuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRkZW4/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gaW52b2tlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBoaWRkZW4gYmFzZWQgb24gc3BlY2lmaWMgY3JpdGVyaWEuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRlPzogKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhpbnQgdGV4dCBkaXNwbGF5ZWQgdG8gYXNzaXN0IHRoZSB1c2VyIGluIGZpbGxpbmcgb3V0IHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpbnQ/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRleCByZXByZXNlbnRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoaXMgZmllbGQgd2l0aGluIGl0cyBwYXJlbnQgc3RydWN0dXJlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgaW5wdXQgKGUuZy4sIHRleHQsIG51bWJlcikgZm9yIHRoaXMgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnB1dFR5cGU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXBsb2FkZWQgZmlsZSBpcyBhY2Nlc3NpYmxlIHRvIHRoZSBwdWJsaWMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1B1YmxpY0ZpbGU/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gZXhlY3V0ZWQgd2hlbiBhbiBpdGVtIGluIHRoZSBmaWVsZCBjaGFuZ2VzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHVwZGF0ZWQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpdGVtQ2hhbmdlPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gYW4gaXRlbSBpbiB0aGUgZmllbGQgaXMgc2VsZWN0ZWQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgc2VsZWN0ZWQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpdGVtU2VsZWN0PzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExhYmVsIHRleHQgZm9yIHRoZSBmaWVsZCwgY2FuIGJlIGEgc3RhdGljIHN0cmluZyBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGxhYmVsIGJhc2VkIG9uIGNvbnRleHQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbGFiZWwgdGV4dCBmb3IgdGhlIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGFiZWw/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHN0cmluZykgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiBmb3IgbWFwcGluZyBpbnB1dCB2YWx1ZXMgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIuXHJcbiAgICAgKiBAcGFyYW0geCBBbiBhcnJheSBvZiB2YWx1ZXMgdG8gbWFwLlxyXG4gICAgICogQHJldHVybnMgVGhlIG1hcHBlZCB2YWx1ZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYXBwZXI/OiAoeDogYW55W10pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gcGVybWlzc2libGUgdmFsdWUgZm9yIHRoZSBmaWVsZCwgY2FuIGJlIGEgbnVtYmVyIG9yIGEgZGF0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heD86IG51bWJlciB8IERhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbXVtIGhlaWdodCBmb3IgdGhlIGZpZWxkJ3MgZGlzcGxheSwgY2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgVGhlIG1heGltdW0gaGVpZ2h0IGZvciB0aGUgZmllbGQncyBkaXNwbGF5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4SGVpZ2h0PzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWF4aW11bSBsZW5ndGggb2YgdGhlIGlucHV0LlxyXG4gICAgICogQ2FuIGJlIGEgbnVtYmVyIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbnVtYmVyLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBudW1iZXIpIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWF4aW11bSB3aWR0aCBvZiB0aGUgaW5wdXQuXHJcbiAgICAgKiBDYW4gYmUgYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYXhXaWR0aD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gc3RyaW5nKSB8IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1pbmltdW0gcGVybWlzc2libGUgdmFsdWUgZm9yIHRoZSBpbnB1dC5cclxuICAgICAqIENhbiBiZSBhIG51bWJlciBvciBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtaW4/OiBudW1iZXIgfCBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWluaW11bSBsZW5ndGggb2YgaW5wdXQgY2hhcmFjdGVycyBhbGxvd2VkLlxyXG4gICAgICogQ2FuIGJlIGEgbnVtYmVyIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgbnVtYmVyLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluTGVuZ3RoPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBudW1iZXIpIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIHN1cHBvcnRzIG11bHRpbGluZSBpbnB1dC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG11bHRpbGluZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBtdWx0aXBsZSBzZWxlY3Rpb25zIGFyZSBhbGxvd2VkLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIGlmIG9ubHkgbnVtZXJpYyBpbnB1dCBpcyBwZXJtaXR0ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBudW1iZXJzT25seT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIGluIGEgc2VsZWN0aW9uIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZmllbGQgZm9yIGlkZW50aWZpY2F0aW9uIGFuZCBkaXNwbGF5IHB1cnBvc2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24uXHJcbiAgICAgKiBDYW4gYmUgYW4gYXJyYXkgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9ucy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbnM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHsgaWQ6IGFueSwgbmFtZTogc3RyaW5nIH1bXSkgfCB7IGlkOiBhbnksIG5hbWU6IHN0cmluZyB9W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhIGRlZmF1bHQgb3B0aW9uIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlZmF1bHRPcHRpb24/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZ1bmN0aW9uIGZvciByZW5kZXJpbmcgb3B0aW9ucyBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZW1wbGF0ZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBuYW1lIGluIHRoZSBvcHRpb24gb2JqZWN0IGZvciBkaXNwbGF5aW5nIHRleHQuXHJcbiAgICAgKiBVc2VkIHRvIHNwZWNpZnkgd2hpY2ggcHJvcGVydHkgc2hvd3MgYXMgdGhlIG9wdGlvbidzIHRleHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZXh0UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB1bmlxdWUgdmFsdWUgZm9yIGVhY2ggb3B0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb3B0aW9uVmFsdWVQcm9wZXJ0eTogc3RyaW5nID0gJ2lkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIHRoZSBNYXRlcmlhbCBpY29uLlxyXG4gICAgICogVXNlZCBmb3IgZGlzcGxheWluZyBpY29ucyBhbG9uZ3NpZGUgb3B0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbk1hdEljb25Qcm9wZXJ0eT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaWNvbiBiYXNlZCBvbiBwcm92aWRlZCBwYXJhbWV0ZXJzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IEljb248VEVudGl0eSwgYW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIGRpc3BsYXlpbmcgYW4gU1ZHIGljb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25TdmdJY29uUHJvcGVydHk/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZm9udCBzZXQgdXNlZCBmb3IgaWNvbnMgaW4gdGhlIG9wdGlvbnMuXHJcbiAgICAgKiBEZWZhdWx0cyB0byAnbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCcuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uRm9udFNldD86IHN0cmluZyA9ICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcmFtZXRlcnMgZm9yIGRhdGEgcmV0cmlldmFsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBhbiBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXJhbXM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueSkgfCB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGZvciBpbnB1dCB2YWxpZGF0aW9uLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nLCBSZWdFeHAsIG9yIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgc3RyaW5nIG9yIFJlZ0V4cC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhdHRlcm4/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IFJlZ0V4cCB8IHN0cmluZykgfCBSZWdFeHAgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9qZWN0aW9uIHNwZWNpZmljYXRpb24gZm9yIGRhdGEgcmV0cmlldmFsLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBpcyByZWFkb25seS5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5PzogKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLlxyXG4gICAgICogQ2FuIHJldHVybiBhIGJvb2xlYW4gdmFsdWUgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgYSBib29sZWFuLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVxdWlyZWQ/OiAoKHg/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuIHwgYm9vbGVhbik7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm93IG51bWJlciBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5IHBvc2l0aW9uIG9mIHRoZSBmaWVsZC5cclxuICAgICAqIERlZmF1bHRzIHRvIDEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByb3c6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgZm9yIG11bHRpLWxpbmUgaW5wdXQgZmllbGRzIChlLmcuLCB0ZXh0IGFyZWEpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcm93cz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgZmllbGQgdXNlZCBmb3Igc2VhcmNoaW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGQ6IHN0cmluZyA9ICdzZWFyY2gnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBmaWVsZHMgdXRpbGl6ZWQgZm9yIHNlYXJjaCBmdW5jdGlvbmFsaXR5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgZmlsdGVyIG9iamVjdHMsIGVhY2ggZGVmaW5lZCBieSBhIGdsdWUgb3BlcmF0b3IgYW5kIGFzc29jaWF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsdGVycz86IEZpbHRlcltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gaW52b2tlZCB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdD86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBzdWZmaXggYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VmZml4QnV0dG9uczogU3VmZml4QnV0dG9uPFRQcm9wZXJ0eSwgSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5Pj5bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgdG8gdHJpZ2dlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyaWdnZXJDc3NDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBtYXBwaW5nIHRyaWdnZXIgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyTWFwcGVyPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGUgb2YgdGhlIHRyaWdnZXIgKGUuZy4sIGNoaXApLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJpZ2dlck1vZGU/OiAnY2hpcCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmdW5jdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSB0cmlnZ2VyLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUocykuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5W10gfCBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgRm9ybUZpZWxkVHlwZSBvciBhIGRpcmVjdCBGb3JtRmllbGRUeXBlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHlwZT86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gRm9ybUZpZWxkVHlwZSkgfCBGb3JtRmllbGRUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIHdyYXBwZWQuXHJcbiAgICAgKiBEZWZhdWx0cyB0byB0cnVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JhcHBlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIEZvcm1GaWVsZERlZmluaXRpb24gY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5pdCBPcHRpb25hbCBpbml0aWFsIHZhbHVlcyBmb3IgcHJvcGVydGllcyBpbiBGb3JtRmllbGREZWZpbml0aW9uLlxyXG4gICAgICogQHBhcmFtIGluaXQueCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gaW5pdC5mIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGluaXQuY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdD86IFBhcnRpYWw8Rm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5Pj4pIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0ksb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBRXpDOzs7Ozs7O09BT0c7SUFDSSxvQkFBb0IsQ0FBK0Y7SUFFMUg7O09BRUc7SUFDSSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7SUFFekM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUErRjtJQUU1Rzs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFvRztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUErRjtJQUVsSDs7T0FFRztJQUNJLFFBQVEsR0FBVyxNQUFNLENBQUM7SUFFakM7O09BRUc7SUFDSSxTQUFTLEdBQWtDLFFBQVEsQ0FBQztJQUUzRDs7T0FFRztJQUNJLFNBQVMsQ0FBYTtJQUU3Qjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBZ0Y7SUFFNUY7Ozs7O09BS0c7SUFDSSxXQUFXLENBQTZDO0lBRS9EOztPQUVHO0lBQ0ksUUFBUSxDQUFVO0lBRXpCOztPQUVHO0lBQ0ksV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVwQzs7OztPQUlHO0lBQ0ksVUFBVSxHQUFzQixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBRTNEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQTBIO0lBRWhKOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUFpSDtJQUV4STs7T0FFRztJQUNJLFFBQVEsQ0FBMkY7SUFFMUc7Ozs7O09BS0c7SUFDSSxVQUFVLENBQWlGO0lBRWxHOztPQUVHO0lBQ0ksUUFBUSxDQUFPO0lBRXRCOztPQUVHO0lBQ0ksWUFBWSxDQUFrQztJQUVyRDs7Ozs7O09BTUc7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SSxlQUFlLENBQTZHO0lBRW5JOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FBNEc7SUFFdkg7OztPQUdHO0lBQ0ksT0FBTyxHQUFZLElBQUksQ0FBQztJQUUvQjs7Ozs7O09BTUc7SUFDSCxZQUFtQixJQUE0QztRQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJGbiwgTWF0RGF0ZXBpY2tlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2Jhc2UvaW50ZXJmYWNlcy9pZ2VuZXJpYy1mb3JtLWJhc2VcIjtcclxuaW1wb3J0IHsgRW51bU1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9tb2RlbHMvZW51bS1tZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9maWx0ZXJcIjtcclxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL2ljb25cIjtcclxuaW1wb3J0IHsgU3VmZml4QnV0dG9uIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9tb2RlbHMvc3VmZml4LWJ1dHRvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSA9IGFueSwgVFByb3BlcnR5ID0gYW55PiB7XHJcbiAgICAvKipcclxuICAgICAqIENTUyBjbGFzcyBhcHBsaWVkIHRvIGF1dG9jb21wbGV0ZSBmdW5jdGlvbmFsaXR5IGZvciBzdHlsaW5nIHB1cnBvc2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlQ3NzQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgZnVuY3Rpb24gZm9yIHJlbmRlcmluZyB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHByb3BlcnR5IHZhbHVlIGZvciBhdXRvY29tcGxldGUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgYXV0b2NvbXBsZXRlIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5LCB5PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCB0ZXh0IHRvIGRpc3BsYXkgZm9yIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZVRleHQ6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gdGhlIGZpZWxkIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgdXBkYXRlZCBwcm9wZXJ0eSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBLZXlkb3duIGV2ZW50IGhhbmRsZXIsIGFsbG93aW5nIGZvciBjdXN0b20gYmVoYXZpb3Igd2hlbiBhIGtleSBpcyBwcmVzc2VkIHdpdGhpbiB0aGUgZmllbGQuXHJcbiAgICAgKiBDYW4gYmUgdXNlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLCBmb3JtYXR0aW5nLCBvciBvdGhlciBjdXN0b20gaW50ZXJhY3Rpb25zLlxyXG4gICAgICogQHBhcmFtIGUgVGhlIGtleWRvd24gZXZlbnQgdHJpZ2dlcmVkIG9uIHRoZSBmb3JtIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoZSBmb3JtIGZpZWxkIGRlZmluaXRpb25zLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudCBjb250ZXh0LCBwcm92aWRpbmcgYWRkaXRpb25hbCBkYXRhIGFuZCBtZXRob2RzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMga2V5ZG93bj86IChlOiBLZXlib2FyZEV2ZW50LCB4PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZ1bmN0aW9uIGZvciBkaXNwbGF5aW5nIGNoaXAgZWxlbWVudHMgcmVsYXRlZCB0byB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY2hpcC5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBjaGlwIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hpcFRlbXBsYXRlPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgdGV4dCBkaXNwbGF5ZWQgaW4gY2hpcCBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoaXBUZXh0OiBzdHJpbmcgPSAnbmFtZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xvciB0aGVtZSBmb3IgdGhlIGNoaXAsIGRldGVybWluZWQgZnJvbSB0aGUgcHJlZGVmaW5lZCBwYWxldHRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hpcENvbG9yOiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJyA9ICdhY2NlbnQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgdG8gaW5zdGFudGlhdGUgZm9yIHRoaXMgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGFzc1R5cGU/OiBUeXBlPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBleGVjdXRlZCB3aGVuIHRoZSBmaWVsZCBpcyBjbGVhcmVkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXI/OiAoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gZm9yIGNvbXBhcmluZyB0d28gcHJvcGVydHkgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIG8xIFRoZSBmaXJzdCBwcm9wZXJ0eSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBvMiBUaGUgc2Vjb25kIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHZhbHVlcyBhcmUgZXF1YWwuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb21wYXJlV2l0aD86IChvMTogVFByb3BlcnR5LCBvMjogVFByb3BlcnR5KSA9PiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgZm9yIGdlbmVyYWwgc3R5bGluZyBvZiB0aGUgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjc3NDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCB2YWx1ZSBjYW4gYmUgY3VzdG9taXplZCBieSB0aGUgdXNlci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGN1c3RvbVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBmaWx0ZXIgc2VsZWN0YWJsZSBkYXRlcy5cclxuICAgICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGV2YWx1YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGRhdGUgaXMgc2VsZWN0YWJsZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGVGaWx0ZXI6IERhdGVGaWx0ZXJGbjxhbnk+ID0gKGRhdGU6IGFueSkgPT4gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBmaWx0ZXIgZGF0ZXMgYmFzZWQgb24gYWRkaXRpb25hbCBjb25kaXRpb25zLlxyXG4gICAgICogQHBhcmFtIGQgVGhlIGRhdGUgdG8gZXZhbHVhdGUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRhdGUgZmlsdGVyIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZUZpbHRlckFzeW5jPzogKGQ6IERhdGUgfCBhbnksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBPYnNlcnZhYmxlPERhdGVGaWx0ZXJGbjxhbnk+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGludm9rZWQgd2hlbiB0aGUgZGF0ZSBwaWNrZXIgaXMgb3BlbmVkLlxyXG4gICAgICogQHBhcmFtIGRhdGVQaWNrZXIgVGhlIE1hdERhdGVwaWNrZXIgY29tcG9uZW50IGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZVBpY2tlck9wZW5lZD86IChkYXRlUGlja2VyOiBNYXREYXRlcGlja2VyPGFueT4sIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmRwb2ludCBmb3IgcmV0cmlldmluZyBkYXRhLCB3aGljaCBjYW4gYmUgYSBVUkwgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgZGF0YS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZHBvaW50PzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnkpIHwgc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZmlsdGVyIG9wdGlvbnMgYmFzZWQgb24gZW51bWVyYXRpb25zLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW51bUZpbHRlcj86ICh5PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHR5cGUgb2YgZW51bWVyYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbnVtVHlwZT86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBlbnVtZXJhdGlvbiB0eXBlcyBmb3IgYWRkaXRpb25hbCBjb250ZXh0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW51bU1ldGFkYXRhPzogeyBba2V5IGluIGFueV06IEVudW1NZXRhZGF0YSB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgZGF0YSBzaG91bGQgYmUgZmV0Y2hlZCBiYXNlZCBvbiBzcGVjaWZpYyBjb25kaXRpb25zLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBkYXRhIGZldGNoaW5nIGlzIHJlcXVpcmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmV0Y2hDb25kaXRpb246ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGZpZWxkIHNldHMgdGhhdCBvcmdhbml6ZSByZWxhdGVkIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpZWxkU2V0cz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIGZpbGUgdXBsb2Fkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGVFeHRlbnNpb25zPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZpbGUgcGF0aCBmb3Igc3RvcmluZyB1cGxvYWRlZCBmaWxlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGVQYXRoPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxleCBsYXlvdXQgcHJvcGVydHkgZGVmaW5pbmcgdGhlIHNwYWNlIHRoZSBmaWVsZCBvY2N1cGllcyBpbiBhIGZsZXggY29udGFpbmVyLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmxleD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gb2YgYW4gb3B0aW9uIGlzIG1hbmRhdG9yeSBmb3IgdGhpcyBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcmNlU2VsZWN0PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCBzaG91bGQgYmUgZm9jdXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGZvcm0gaW5pdGlhbGl6ZXMuXHJcbiAgICAgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgYm9vbGVhbiBiYXNlZCBvbiB0aGUgZW50aXR5IGFuZCBmb3JtIGNvbnRleHQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZCwgYWxsb3dpbmcgZm9yIGFkZGl0aW9uYWwgY29udGV4dC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQsIHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGZvcm0ncyBvdmVyYWxsIHN0YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBmb2N1c2VkIGF1dG9tYXRpY2FsbHkgKHRydWUpLCBvciBub3QgKGZhbHNlKS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvY3VzPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuKSB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmllbGQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgc2VsZWN0IGl0cyB0ZXh0IHdoZW4gdGhlIGZvcm0gaW5pdGlhbGl6ZXMuXHJcbiAgICAgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgYm9vbGVhbiBiYXNlZCBvbiB0aGUgZW50aXR5IGFuZCBmb3JtIGNvbnRleHQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZCwgYWxsb3dpbmcgZm9yIGFkZGl0aW9uYWwgY29udGV4dC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQsIHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGZvcm0ncyBvdmVyYWxsIHN0YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGZpZWxkJ3MgdGV4dCBzaG91bGQgYmUgc2VsZWN0ZWQgYXV0b21hdGljYWxseSAodHJ1ZSksIG9yIG5vdCAoZmFsc2UpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VsZWN0VGV4dD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYm9vbGVhbikgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVhZGVyIHRleHQgZm9yIGdyb3VwaW5nIHJlbGF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ3JvdXBIZWFkZXI6IHN0cmluZyA9ICRsb2NhbGl6ZWA6QEBkZXRhaWxzOkRldGFpbHNgO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG5hbWUgYXNzaWduZWQgdG8gdGhlIGdyb3VwIG9mIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdyb3VwTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBmaWVsZCBpcyBoaWRkZW4gZnJvbSB2aWV3LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZGVuPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGludm9rZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgaGlkZGVuIGJhc2VkIG9uIHNwZWNpZmljIGNyaXRlcmlhLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZT86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaW50IHRleHQgZGlzcGxheWVkIHRvIGFzc2lzdCB0aGUgdXNlciBpbiBmaWxsaW5nIG91dCB0aGUgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaW50Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kZXggcmVwcmVzZW50aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGlzIGZpZWxkIHdpdGhpbiBpdHMgcGFyZW50IHN0cnVjdHVyZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGlucHV0IChlLmcuLCB0ZXh0LCBudW1iZXIpIGZvciB0aGlzIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5wdXRUeXBlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHVwbG9hZGVkIGZpbGUgaXMgYWNjZXNzaWJsZSB0byB0aGUgcHVibGljLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNQdWJsaWNGaWxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gYW4gaXRlbSBpbiB0aGUgZmllbGQgY2hhbmdlcy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSB1cGRhdGVkIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXRlbUNoYW5nZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBleGVjdXRlZCB3aGVuIGFuIGl0ZW0gaW4gdGhlIGZpZWxkIGlzIHNlbGVjdGVkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHNlbGVjdGVkIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXRlbVNlbGVjdD86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYWJlbCB0ZXh0IGZvciB0aGUgZmllbGQsIGNhbiBiZSBhIHN0YXRpYyBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBsYWJlbCBiYXNlZCBvbiBjb250ZXh0LlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgVGhlIGxhYmVsIHRleHQgZm9yIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGxhYmVsPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gZm9yIG1hcHBpbmcgaW5wdXQgdmFsdWVzIGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLlxyXG4gICAgICogQHBhcmFtIHggQW4gYXJyYXkgb2YgdmFsdWVzIHRvIG1hcC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBtYXBwZWQgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFwcGVyPzogKHg6IGFueVtdKSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbXVtIHBlcm1pc3NpYmxlIHZhbHVlIGZvciB0aGUgZmllbGQsIGNhbiBiZSBhIG51bWJlciBvciBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYXg/OiBudW1iZXIgfCBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWF4aW11bSBoZWlnaHQgZm9yIHRoZSBmaWVsZCdzIGRpc3BsYXksIGNhbiBiZSBhIHN0cmluZyBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHN0cmluZy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGZpZWxkJ3MgZGlzcGxheS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heEhlaWdodD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gc3RyaW5nKSB8IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBpbnB1dC5cclxuICAgICAqIENhbiBiZSBhIG51bWJlciBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG51bWJlci5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heExlbmd0aD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gbnVtYmVyKSB8IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gd2lkdGggb2YgdGhlIGlucHV0LlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4V2lkdGg/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHN0cmluZykgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNaW5pbXVtIHBlcm1pc3NpYmxlIHZhbHVlIGZvciB0aGUgaW5wdXQuXHJcbiAgICAgKiBDYW4gYmUgYSBudW1iZXIgb3IgYSBkYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluPzogbnVtYmVyIHwgRGF0ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1pbmltdW0gbGVuZ3RoIG9mIGlucHV0IGNoYXJhY3RlcnMgYWxsb3dlZC5cclxuICAgICAqIENhbiBiZSBhIG51bWJlciBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG51bWJlci5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1pbkxlbmd0aD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gbnVtYmVyKSB8IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCBzdXBwb3J0cyBtdWx0aWxpbmUgaW5wdXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtdWx0aWxpbmU/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgbXVsdGlwbGUgc2VsZWN0aW9ucyBhcmUgYWxsb3dlZC5cclxuICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgaW5kaWNhdGluZyBpZiBvbmx5IG51bWVyaWMgaW5wdXQgaXMgcGVybWl0dGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbnVtYmVyc09ubHk/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0byBlbmFibGUgb3IgZGlzYWJsZSBkZWNpbWFsIHBhcnNpbmcgb24gaW5wdXQuXHJcbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgcGFzdGVkIHZhbHVlcyB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gYSB2YWxpZCBkZWNpbWFsIGZvcm1hdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhcnNlRGVjaW1hbD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIGluIGEgc2VsZWN0aW9uIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZmllbGQgZm9yIGlkZW50aWZpY2F0aW9uIGFuZCBkaXNwbGF5IHB1cnBvc2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24uXHJcbiAgICAgKiBDYW4gYmUgYW4gYXJyYXkgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9ucy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbnM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHsgaWQ6IGFueSwgbmFtZTogc3RyaW5nIH1bXSkgfCB7IGlkOiBhbnksIG5hbWU6IHN0cmluZyB9W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhIGRlZmF1bHQgb3B0aW9uIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlZmF1bHRPcHRpb24/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZ1bmN0aW9uIGZvciByZW5kZXJpbmcgb3B0aW9ucyBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZW1wbGF0ZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBuYW1lIGluIHRoZSBvcHRpb24gb2JqZWN0IGZvciBkaXNwbGF5aW5nIHRleHQuXHJcbiAgICAgKiBVc2VkIHRvIHNwZWNpZnkgd2hpY2ggcHJvcGVydHkgc2hvd3MgYXMgdGhlIG9wdGlvbidzIHRleHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZXh0UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB1bmlxdWUgdmFsdWUgZm9yIGVhY2ggb3B0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb3B0aW9uVmFsdWVQcm9wZXJ0eTogc3RyaW5nID0gJ2lkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIHRoZSBNYXRlcmlhbCBpY29uLlxyXG4gICAgICogVXNlZCBmb3IgZGlzcGxheWluZyBpY29ucyBhbG9uZ3NpZGUgb3B0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbk1hdEljb25Qcm9wZXJ0eT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaWNvbiBiYXNlZCBvbiBwcm92aWRlZCBwYXJhbWV0ZXJzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IEljb248VEVudGl0eSwgYW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIGRpc3BsYXlpbmcgYW4gU1ZHIGljb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25TdmdJY29uUHJvcGVydHk/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZm9udCBzZXQgdXNlZCBmb3IgaWNvbnMgaW4gdGhlIG9wdGlvbnMuXHJcbiAgICAgKiBEZWZhdWx0cyB0byAnbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCcuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uRm9udFNldD86IHN0cmluZyA9ICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcmFtZXRlcnMgZm9yIGRhdGEgcmV0cmlldmFsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBhbiBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXJhbXM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueSkgfCB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGZvciBpbnB1dCB2YWxpZGF0aW9uLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nLCBSZWdFeHAsIG9yIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgc3RyaW5nIG9yIFJlZ0V4cC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhdHRlcm4/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IFJlZ0V4cCB8IHN0cmluZykgfCBSZWdFeHAgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9qZWN0aW9uIHNwZWNpZmljYXRpb24gZm9yIGRhdGEgcmV0cmlldmFsLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBpcyByZWFkb25seS5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5PzogKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLlxyXG4gICAgICogQ2FuIHJldHVybiBhIGJvb2xlYW4gdmFsdWUgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgYSBib29sZWFuLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVxdWlyZWQ/OiAoKHg/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuIHwgYm9vbGVhbik7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm93IG51bWJlciBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5IHBvc2l0aW9uIG9mIHRoZSBmaWVsZC5cclxuICAgICAqIERlZmF1bHRzIHRvIDEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByb3c6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgZm9yIG11bHRpLWxpbmUgaW5wdXQgZmllbGRzIChlLmcuLCB0ZXh0IGFyZWEpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcm93cz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgZmllbGQgdXNlZCBmb3Igc2VhcmNoaW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGQ6IHN0cmluZyA9ICdzZWFyY2gnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBmaWVsZHMgdXRpbGl6ZWQgZm9yIHNlYXJjaCBmdW5jdGlvbmFsaXR5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgZmlsdGVyIG9iamVjdHMsIGVhY2ggZGVmaW5lZCBieSBhIGdsdWUgb3BlcmF0b3IgYW5kIGFzc29jaWF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsdGVycz86IEZpbHRlcltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gaW52b2tlZCB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdD86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBzdWZmaXggYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VmZml4QnV0dG9uczogU3VmZml4QnV0dG9uPFRQcm9wZXJ0eSwgSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5Pj5bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgdG8gdHJpZ2dlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyaWdnZXJDc3NDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBtYXBwaW5nIHRyaWdnZXIgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyTWFwcGVyPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGUgb2YgdGhlIHRyaWdnZXIgKGUuZy4sIGNoaXApLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJpZ2dlck1vZGU/OiAnY2hpcCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmdW5jdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSB0cmlnZ2VyLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUocykuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5W10gfCBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgRm9ybUZpZWxkVHlwZSBvciBhIGRpcmVjdCBGb3JtRmllbGRUeXBlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHlwZT86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gRm9ybUZpZWxkVHlwZSkgfCBGb3JtRmllbGRUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIHdyYXBwZWQuXHJcbiAgICAgKiBEZWZhdWx0cyB0byB0cnVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JhcHBlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIEZvcm1GaWVsZERlZmluaXRpb24gY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5pdCBPcHRpb25hbCBpbml0aWFsIHZhbHVlcyBmb3IgcHJvcGVydGllcyBpbiBGb3JtRmllbGREZWZpbml0aW9uLlxyXG4gICAgICogQHBhcmFtIGluaXQueCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gaW5pdC5mIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGluaXQuY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdD86IFBhcnRpYWw8Rm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5Pj4pIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xyXG4gICAgfVxyXG5cclxufSJdfQ==