@ng-formworks/core 18.6.2 → 18.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/shared/form-group.functions.mjs +34 -44
- package/esm2022/lib/shared/format-regex.constants.mjs +5 -1
- package/esm2022/lib/shared/json-schema.functions.mjs +45 -9
- package/esm2022/lib/shared/json.validators.mjs +2 -2
- package/esm2022/lib/shared/layout.functions.mjs +7 -5
- package/esm2022/lib/widget-library/index.mjs +4 -2
- package/esm2022/lib/widget-library/one-of.component.mjs +2 -2
- package/esm2022/lib/widget-library/root.component.mjs +2 -1
- package/esm2022/lib/widget-library/select.component.mjs +13 -13
- package/esm2022/lib/widget-library/selectcheckbox.component.mjs +183 -0
- package/esm2022/lib/widget-library/widget-library.module.mjs +4 -3
- package/esm2022/lib/widget-library/widget-library.service.mjs +10 -5
- package/fesm2022/ng-formworks-core.mjs +386 -173
- package/fesm2022/ng-formworks-core.mjs.map +1 -1
- package/lib/shared/format-regex.constants.d.ts +1 -0
- package/lib/shared/json-schema.functions.d.ts +0 -1
- package/lib/shared/validator.functions.d.ts +1 -1
- package/lib/widget-library/index.d.ts +1 -0
- package/lib/widget-library/selectcheckbox.component.d.ts +55 -0
- package/lib/widget-library/widget-library.module.d.ts +7 -6
- package/package.json +1 -1
|
@@ -28,10 +28,11 @@ import * as i19 from "./tab.component";
|
|
|
28
28
|
import * as i20 from "./tabs.component";
|
|
29
29
|
import * as i21 from "./template.component";
|
|
30
30
|
import * as i22 from "./textarea.component";
|
|
31
|
-
import * as i23 from "
|
|
31
|
+
import * as i23 from "./selectcheckbox.component";
|
|
32
|
+
import * as i24 from "nxt-sortablejs";
|
|
32
33
|
export class WidgetLibraryModule {
|
|
33
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
34
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: WidgetLibraryModule, declarations: [i1.AddReferenceComponent, i2.OneOfComponent, i3.ButtonComponent, i4.CheckboxComponent, i5.CheckboxesComponent, i6.FileComponent, i7.HiddenComponent, i8.InputComponent, i9.MessageComponent, i10.NoneComponent, i11.NumberComponent, i12.RadiosComponent, i13.RootComponent, i14.SectionComponent, i15.SelectComponent, i16.SelectFrameworkComponent, i17.SelectWidgetComponent, i18.SubmitComponent, i19.TabComponent, i20.TabsComponent, i21.TemplateComponent, i22.TextareaComponent, OrderableDirective, ElementAttributeDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
35
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: WidgetLibraryModule, declarations: [i1.AddReferenceComponent, i2.OneOfComponent, i3.ButtonComponent, i4.CheckboxComponent, i5.CheckboxesComponent, i6.FileComponent, i7.HiddenComponent, i8.InputComponent, i9.MessageComponent, i10.NoneComponent, i11.NumberComponent, i12.RadiosComponent, i13.RootComponent, i14.SectionComponent, i15.SelectComponent, i16.SelectFrameworkComponent, i17.SelectWidgetComponent, i18.SubmitComponent, i19.TabComponent, i20.TabsComponent, i21.TemplateComponent, i22.TextareaComponent, i23.SelectCheckboxComponent, OrderableDirective, ElementAttributeDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, i24.SortablejsModule], exports: [i1.AddReferenceComponent, i2.OneOfComponent, i3.ButtonComponent, i4.CheckboxComponent, i5.CheckboxesComponent, i6.FileComponent, i7.HiddenComponent, i8.InputComponent, i9.MessageComponent, i10.NoneComponent, i11.NumberComponent, i12.RadiosComponent, i13.RootComponent, i14.SectionComponent, i15.SelectComponent, i16.SelectFrameworkComponent, i17.SelectWidgetComponent, i18.SubmitComponent, i19.TabComponent, i20.TabsComponent, i21.TemplateComponent, i22.TextareaComponent, i23.SelectCheckboxComponent, OrderableDirective, ElementAttributeDirective] }); }
|
|
35
36
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetLibraryModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
36
37
|
SortablejsModule.forRoot({
|
|
37
38
|
//disabled:false,
|
|
@@ -66,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
66
67
|
exports: [...BASIC_WIDGETS, OrderableDirective, ElementAttributeDirective]
|
|
67
68
|
}]
|
|
68
69
|
}] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLWNvcmUvc3JjL2xpYi93aWRnZXQtbGlicmFyeS93aWRnZXQtbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUIzRCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQix1Z0JBSEssa0JBQWtCLEVBQUMseUJBQXlCLGFBYm5FLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLHloQkFjNUIsa0JBQWtCLEVBQUMseUJBQXlCO2dIQUUvRCxtQkFBbUIsWUFoQmxCLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO1lBQ3BELGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDekIsaUJBQWlCO2dCQUNqQiw0SUFBNEk7Z0JBQzVJLE1BQU0sRUFBQyxrQkFBa0IsRUFBQywwR0FBMEc7Z0JBQ3BJLGVBQWUsRUFBRSxLQUFLLEVBQUMsc0RBQXNEO2dCQUM3RSxNQUFNLEVBQUUsVUFBVSxVQUFVLENBQUEsR0FBRyxFQUFFLFVBQVUsQ0FBQSxhQUFhO29CQUNqRCxJQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUM7d0JBQ3BELDJCQUEyQjt3QkFDM0IsT0FBTyxLQUFLLENBQUM7b0JBQ2YsQ0FBQztnQkFDSCxDQUFDO2FBQ04sQ0FBQzs7NEZBSUssbUJBQW1CO2tCQWpCL0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQjt3QkFDcEQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDOzRCQUN6QixpQkFBaUI7NEJBQ2pCLDRJQUE0STs0QkFDNUksTUFBTSxFQUFDLGtCQUFrQixFQUFDLDBHQUEwRzs0QkFDcEksZUFBZSxFQUFFLEtBQUssRUFBQyxzREFBc0Q7NEJBQzdFLE1BQU0sRUFBRSxVQUFVLFVBQVUsQ0FBQSxHQUFHLEVBQUUsVUFBVSxDQUFBLGFBQWE7Z0NBQ2pELElBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsQ0FBQztvQ0FDcEQsMkJBQTJCO29DQUMzQixPQUFPLEtBQUssQ0FBQztnQ0FDZixDQUFDOzRCQUNILENBQUM7eUJBQ04sQ0FBQyxDQUFDO29CQUNMLFlBQVksRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLGtCQUFrQixFQUFDLHlCQUF5QixDQUFDO29CQUM5RSxPQUFPLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyx5QkFBeUIsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU29ydGFibGVqc01vZHVsZSB9IGZyb20gJ254dC1zb3J0YWJsZWpzJztcclxuaW1wb3J0IHsgRWxlbWVudEF0dHJpYnV0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZWxlbWVudC1hdHRyaWJ1dGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQkFTSUNfV0lER0VUUyB9IGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgeyBPcmRlcmFibGVEaXJlY3RpdmUgfSBmcm9tICcuL29yZGVyYWJsZS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFNvcnRhYmxlanNNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgLy9kaXNhYmxlZDpmYWxzZSxcclxuICAgICAgICAvL2RyYWdnYWJsZTpcIi5kcmFnZ2FibGVpdGVtXCIsLy9cIj46bm90KC5ub25zb3J0KVwiLC8vXCI+LmRyYWdnYWJsZS1pdGVtXCIsLy9cIjpub3QoLm5vbnNvcnQpXCIsLy9cIj4qXCIsLy9cIjpub3QoLm5vbnNvcnQpXCIsLy9cIjpub3QoLm5vbi1kcmFnZ2FibGUpXCIsXHJcbiAgICAgICAgZmlsdGVyOlwiLnNvcnRhYmxlLWZpbHRlclwiLC8vbmVlZGVkIHRvIGRpc2FibGUgZHJhZ2dpbmcgb24gaW5wdXQgcmFuZ2UgZWxlbWVudHMsIGNsYXNzIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBlbGVtZW50IG9yIGl0cyBwYXJlbnRcclxuICAgICAgICBwcmV2ZW50T25GaWx0ZXI6IGZhbHNlLC8vbmVlZGVkIGZvciBpbnB1dCByYW5nZSBlbGVtZW50cyBzbGlkZXIgZG8gc3RpbGwgd29ya1xyXG4gICAgICAgIG9uTW92ZTogZnVuY3Rpb24gKC8qKkV2ZW50Ki9ldnQsIC8qKkV2ZW50Ki9vcmlnaW5hbEV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgIGlmKGV2dC5yZWxhdGVkLmNsYXNzTGlzdC5jb250YWlucyhcInNvcnRhYmxlLWZpeGVkXCIpKXtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coZXZ0LnJlbGF0ZWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICB9KV0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5CQVNJQ19XSURHRVRTLCBPcmRlcmFibGVEaXJlY3RpdmUsRWxlbWVudEF0dHJpYnV0ZURpcmVjdGl2ZV0sXHJcbiAgICBleHBvcnRzOiBbLi4uQkFTSUNfV0lER0VUUywgT3JkZXJhYmxlRGlyZWN0aXZlLEVsZW1lbnRBdHRyaWJ1dGVEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRMaWJyYXJ5TW9kdWxlIHtcclxufVxyXG4iXX0=
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { hasOwn } from '../shared/utility.functions';
|
|
1
3
|
import { AddReferenceComponent } from './add-reference.component';
|
|
2
4
|
import { ButtonComponent } from './button.component';
|
|
3
5
|
import { CheckboxComponent } from './checkbox.component';
|
|
4
6
|
import { CheckboxesComponent } from './checkboxes.component';
|
|
5
7
|
import { FileComponent } from './file.component';
|
|
6
|
-
import { hasOwn } from '../shared/utility.functions';
|
|
7
|
-
import { Injectable } from '@angular/core';
|
|
8
8
|
import { InputComponent } from './input.component';
|
|
9
9
|
import { MessageComponent } from './message.component';
|
|
10
10
|
import { NoneComponent } from './none.component';
|
|
@@ -13,9 +13,10 @@ import { OneOfComponent } from './one-of.component';
|
|
|
13
13
|
import { RadiosComponent } from './radios.component';
|
|
14
14
|
import { RootComponent } from './root.component';
|
|
15
15
|
import { SectionComponent } from './section.component';
|
|
16
|
-
import { SelectComponent } from './select.component';
|
|
17
16
|
import { SelectFrameworkComponent } from './select-framework.component';
|
|
18
17
|
import { SelectWidgetComponent } from './select-widget.component';
|
|
18
|
+
import { SelectComponent } from './select.component';
|
|
19
|
+
import { SelectCheckboxComponent } from './selectcheckbox.component';
|
|
19
20
|
import { SubmitComponent } from './submit.component';
|
|
20
21
|
import { TabsComponent } from './tabs.component';
|
|
21
22
|
import { TemplateComponent } from './template.component';
|
|
@@ -101,13 +102,17 @@ export class WidgetLibraryService {
|
|
|
101
102
|
// See: http://ulion.github.io/jsonform/playground/?example=fields-checkboxbuttons
|
|
102
103
|
// Widgets included for compatibility with React JSON Schema Form API
|
|
103
104
|
'updown': 'number',
|
|
104
|
-
'date-time': 'datetime-local',
|
|
105
|
+
//'date-time': 'datetime-local',
|
|
106
|
+
//as per ajv date-time requires a timezone but input
|
|
107
|
+
//datetime-local doesn't
|
|
108
|
+
'iso-date-time': 'datetime-local',
|
|
105
109
|
'alt-datetime': 'datetime-local',
|
|
106
110
|
'alt-date': 'date',
|
|
107
111
|
// Widgets included for compatibility with Angular Schema Form API
|
|
108
112
|
'wizard': 'section', // TODO: Sequential panels with "Next" and "Previous" buttons
|
|
109
113
|
// Widgets included for compatibility with other libraries
|
|
110
114
|
'textline': 'text',
|
|
115
|
+
'selectcheckbox': SelectCheckboxComponent,
|
|
111
116
|
// Recommended 3rd-party add-on widgets (TODO: create wrappers for these...)
|
|
112
117
|
// 'ng2-select': Select control replacement - http://valor-software.com/ng2-select/
|
|
113
118
|
// 'flatpickr': Flatpickr date picker - https://github.com/chmln/flatpickr
|
|
@@ -223,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
223
228
|
providedIn: 'root',
|
|
224
229
|
}]
|
|
225
230
|
}], ctorParameters: () => [] });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWxpYnJhcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvd2lkZ2V0LWxpYnJhcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFP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QUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDOytHQTlNVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtcmVmZXJlbmNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja2JveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaGFzT3duIH0gZnJvbSAnLi4vc2hhcmVkL3V0aWxpdHkuZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb25lQ29tcG9uZW50IH0gZnJvbSAnLi9ub25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9uZU9mQ29tcG9uZW50IH0gZnJvbSAnLi9vbmUtb2YuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9zQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm9vdENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC13aWRnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VibWl0Q29tcG9uZW50IH0gZnJvbSAnLi9zdWJtaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFic0NvbXBvbmVudCB9IGZyb20gJy4vdGFicy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHRhcmVhLmNvbXBvbmVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0TGlicmFyeVNlcnZpY2Uge1xyXG5cclxuICBkZWZhdWx0V2lkZ2V0ID0gJ3RleHQnO1xyXG4gIHdpZGdldExpYnJhcnk6IGFueSA9IHtcclxuXHJcbiAgLy8gQW5ndWxhciBKU09OIFNjaGVtYSBGb3JtIGFkbWluaXN0cmF0aXZlIHdpZGdldHNcclxuICAgICdub25lJzogTm9uZUNvbXBvbmVudCwgLy8gUGxhY2Vob2xkZXIsIGZvciBkZXZlbG9wbWVudCAtIGRpc3BsYXlzIG5vdGhpbmdcclxuICAgICdyb290JzogUm9vdENvbXBvbmVudCwgLy8gRm9ybSByb290LCByZW5kZXJzIGEgY29tcGxldGUgbGF5b3V0XHJcbiAgICAnc2VsZWN0LWZyYW1ld29yayc6IFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCwgLy8gQXBwbGllcyB0aGUgc2VsZWN0ZWQgZnJhbWV3b3JrIHRvIGEgc3BlY2lmaWVkIHdpZGdldFxyXG4gICAgJ3NlbGVjdC13aWRnZXQnOiBTZWxlY3RXaWRnZXRDb21wb25lbnQsIC8vIERpc3BsYXlzIGEgc3BlY2lmaWVkIHdpZGdldFxyXG4gICAgJyRyZWYnOiBBZGRSZWZlcmVuY2VDb21wb25lbnQsIC8vIEJ1dHRvbiB0byBhZGQgYSBuZXcgYXJyYXkgaXRlbSBvciAkcmVmIGVsZW1lbnRcclxuXHJcbiAgLy8gRnJlZS1mb3JtIHRleHQgSFRNTCAnaW5wdXQnIGZvcm0gY29udHJvbCB3aWRnZXRzIDxpbnB1dCB0eXBlPVwiLi4uXCI+XHJcbiAgICAnZW1haWwnOiAndGV4dCcsXHJcbiAgICAnaW50ZWdlcic6ICdudW1iZXInLCAvLyBOb3RlOiAnaW50ZWdlcicgaXMgbm90IGEgcmVjb2duaXplZCBIVE1MIGlucHV0IHR5cGVcclxuICAgICdudW1iZXInOiBOdW1iZXJDb21wb25lbnQsXHJcbiAgICAncGFzc3dvcmQnOiAndGV4dCcsXHJcbiAgICAnc2VhcmNoJzogJ3RleHQnLFxyXG4gICAgJ3RlbCc6ICd0ZXh0JyxcclxuICAgICd0ZXh0JzogSW5wdXRDb21wb25lbnQsXHJcbiAgICAndXJsJzogJ3RleHQnLFxyXG5cclxuICAvLyBDb250cm9sbGVkIHRleHQgSFRNTCAnaW5wdXQnIGZvcm0gY29udHJvbCB3aWRnZXRzIDxpbnB1dCB0eXBlPVwiLi4uXCI+XHJcbiAgICAnY29sb3InOiAndGV4dCcsXHJcbiAgICAnZGF0ZSc6ICd0ZXh0JyxcclxuICAgICdkYXRldGltZSc6ICd0ZXh0JyxcclxuICAgICdkYXRldGltZS1sb2NhbCc6ICd0ZXh0JyxcclxuICAgICdtb250aCc6ICd0ZXh0JyxcclxuICAgICdyYW5nZSc6ICdudW1iZXInLFxyXG4gICAgJ3RpbWUnOiAndGV4dCcsXHJcbiAgICAnd2Vlayc6ICd0ZXh0JyxcclxuXHJcbiAgLy8gTm9uLXRleHQgSFRNTCAnaW5wdXQnIGZvcm0gY29udHJvbCB3aWRnZXRzIDxpbnB1dCB0eXBlPVwiLi4uXCI+XHJcbiAgICAvLyAnYnV0dG9uJzogPGlucHV0IHR5cGU9XCJidXR0b25cIj4gbm90IHVzZWQsIHVzZSA8YnV0dG9uPiBpbnN0ZWFkXHJcbiAgICAnY2hlY2tib3gnOiBDaGVja2JveENvbXBvbmVudCwgLy8gVE9ETzogU2V0IHRlcm5hcnkgPSB0cnVlIGZvciAzLXN0YXRlID8/XHJcbiAgICAnZmlsZSc6IEZpbGVDb21wb25lbnQsIC8vIFRPRE86IEZpbmlzaCAnZmlsZScgd2lkZ2V0XHJcbiAgICAnaGlkZGVuJzogJ3RleHQnLFxyXG4gICAgJ2ltYWdlJzogJ3RleHQnLCAvLyBUT0RPOiBGaWd1cmUgb3V0IGhvdyB0byBoYW5kbGUgdGhlc2VcclxuICAgICdyYWRpbyc6ICdyYWRpb3MnLFxyXG4gICAgJ3Jlc2V0JzogJ3N1Ym1pdCcsIC8vIFRPRE86IEZpZ3VyZSBvdXQgaG93IHRvIGhhbmRsZSB0aGVzZVxyXG4gICAgJ3N1Ym1pdCc6IFN1Ym1pdENvbXBvbmVudCxcclxuXHJcbiAgLy8gT3RoZXIgKG5vbi0naW5wdXQnKSBIVE1MIGZvcm0gY29udHJvbCB3aWRnZXRzXHJcbiAgICAnYnV0dG9uJzogQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgJ3NlbGVjdCc6IFNlbGVjdENvbXBvbmVudCxcclxuICAgIC8vICdvcHRpb24nOiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBzZWxlY3Qgd2lkZ2V0c1xyXG4gICAgLy8gJ29wdGdyb3VwJzogYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgc2VsZWN0IHdpZGdldHNcclxuICAgICd0ZXh0YXJlYSc6IFRleHRhcmVhQ29tcG9uZW50LFxyXG5cclxuICAvLyBIVE1MIGZvcm0gY29udHJvbCB3aWRnZXQgc2V0c1xyXG4gICAgJ2NoZWNrYm94ZXMnOiBDaGVja2JveGVzQ29tcG9uZW50LCAvLyBHcm91cGVkIGxpc3Qgb2YgY2hlY2tib3hlc1xyXG4gICAgJ2NoZWNrYm94ZXMtaW5saW5lJzogJ2NoZWNrYm94ZXMnLCAvLyBDaGVja2JveGVzIGluIG9uZSBsaW5lXHJcbiAgICAnY2hlY2tib3hidXR0b25zJzogJ2NoZWNrYm94ZXMnLCAvLyBDaGVja2JveGVzIGFzIGh0bWwgYnV0dG9uc1xyXG4gICAgJ3JhZGlvcyc6IFJhZGlvc0NvbXBvbmVudCwgLy8gR3JvdXBlZCBsaXN0IG9mIHJhZGlvIGJ1dHRvbnNcclxuICAgICdyYWRpb3MtaW5saW5lJzogJ3JhZGlvcycsIC8vIFJhZGlvIGNvbnRyb2xzIGluIG9uZSBsaW5lXHJcbiAgICAncmFkaW9idXR0b25zJzogJ3JhZGlvcycsIC8vIFJhZGlvIGNvbnRyb2xzIGFzIGh0bWwgYnV0dG9uc1xyXG5cclxuICAvLyBIVE1MIExheW91dCB3aWRnZXRzXHJcbiAgICAvLyAnbGFiZWwnOiBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIGRhdGEgd2lkZ2V0c1xyXG4gICAgLy8gJ2xlZ2VuZCc6IGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gZmllbGRzZXRzXHJcbiAgICAnc2VjdGlvbic6IFNlY3Rpb25Db21wb25lbnQsIC8vIEp1c3QgYSBkaXYgPGRpdj5cclxuICAgICdkaXYnOiAnc2VjdGlvbicsIC8vIFN0aWxsIGp1c3QgYSBkaXYgPGRpdj5cclxuICAgICdmaWVsZHNldCc6ICdzZWN0aW9uJywgLy8gQSBmaWVsZHNldCwgd2l0aCBhbiBvcHRpb25hbCBsZWdlbmQgPGZpZWxkc2V0PlxyXG4gICAgJ2ZsZXgnOiAnc2VjdGlvbicsIC8vIEEgZmxleGJveCBjb250YWluZXIgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cclxuXHJcbiAgLy8gTm9uLUhUTUwgbGF5b3V0IHdpZGdldHNcclxuICAgICdvbmUtb2YnOiBPbmVPZkNvbXBvbmVudCwgLy8gQSBzZWxlY3QgYm94IHRoYXQgY2hhbmdlcyBhbm90aGVyIGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IEZpbmlzaCAnb25lLW9mJyB3aWRnZXRcclxuICAgICdhcnJheSc6ICdzZWN0aW9uJywgLy8gQSBsaXN0IHlvdSBjYW4gYWRkLCByZW1vdmUgYW5kIHJlb3JkZXIgPGZpZWxkc2V0PlxyXG4gICAgJ3RhYmFycmF5JzogJ3RhYnMnLCAvLyBBIHRhYmJlZCB2ZXJzaW9uIG9mIGFycmF5XHJcbiAgICAndGFiJzogJ3NlY3Rpb24nLCAvLyBBIHRhYiBncm91cCwgc2ltaWxhciB0byBhIGZpZWxkc2V0IG9yIHNlY3Rpb24gPGZpZWxkc2V0PlxyXG4gICAgJ3RhYnMnOiBUYWJzQ29tcG9uZW50LCAvLyBBIHRhYmJlZCBzZXQgb2YgcGFuZWxzIHdpdGggZGlmZmVyZW50IGNvbnRyb2xzXHJcbiAgICAnbWVzc2FnZSc6IE1lc3NhZ2VDb21wb25lbnQsIC8vIEluc2VydCBhcmJpdHJhcnkgaHRtbFxyXG4gICAgJ2hlbHAnOiAnbWVzc2FnZScsIC8vIEluc2VydCBhcmJpdHJhcnkgaHRtbFxyXG4gICAgJ21zZyc6ICdtZXNzYWdlJywgLy8gSW5zZXJ0IGFyYml0cmFyeSBodG1sXHJcbiAgICAnaHRtbCc6ICdtZXNzYWdlJywgLy8gSW5zZXJ0IGFyYml0cmFyeSBodG1sXHJcbiAgICAndGVtcGxhdGUnOiBUZW1wbGF0ZUNvbXBvbmVudCwgLy8gSW5zZXJ0IGEgY3VzdG9tIEFuZ3VsYXIgY29tcG9uZW50XHJcblxyXG4gIC8vIFdpZGdldHMgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKU09OIEZvcm0gQVBJXHJcbiAgICAnYWR2YW5jZWRmaWVsZHNldCc6ICdzZWN0aW9uJywgLy8gQWRkcyAnQWR2YW5jZWQgc2V0dGluZ3MnIHRpdGxlIDxmaWVsZHNldD5cclxuICAgICdhdXRoZmllbGRzZXQnOiAnc2VjdGlvbicsIC8vIEFkZHMgJ0F1dGhlbnRpY2F0aW9uIHNldHRpbmdzJyB0aXRsZSA8ZmllbGRzZXQ+XHJcbiAgICAnb3B0aW9uZmllbGRzZXQnOiAnb25lLW9mJywgLy8gT3B0aW9uIGNvbnRyb2wsIGRpc3BsYXlzIHNlbGVjdGVkIHN1Yi1pdGVtIDxmaWVsZHNldD5cclxuICAgICdzZWxlY3RmaWVsZHNldCc6ICdvbmUtb2YnLCAvLyBTZWxlY3QgY29udHJvbCwgZGlzcGxheXMgc2VsZWN0ZWQgc3ViLWl0ZW0gPGZpZWxkc2V0PlxyXG4gICAgJ2NvbmRpdGlvbmFsJzogJ3NlY3Rpb24nLCAvLyBJZGVudGljYWwgdG8gJ3NlY3Rpb24nIChkZXBlY2lhdGVkKSA8ZGl2PlxyXG4gICAgJ2FjdGlvbnMnOiAnc2VjdGlvbicsIC8vIEhvcml6b250YWwgYnV0dG9uIGxpc3QsIGNhbiBvbmx5IHN1Ym1pdCwgdXNlcyBidXR0b25zIGFzIGl0ZW1zIDxkaXY+XHJcbiAgICAndGFnc2lucHV0JzogJ3NlY3Rpb24nLCAvLyBGb3IgZW50ZXJpbmcgc2hvcnQgdGV4dCB0YWdzIDxkaXY+XHJcbiAgICAvLyBTZWU6IGh0dHA6Ly91bGlvbi5naXRodWIuaW8vanNvbmZvcm0vcGxheWdyb3VuZC8/ZXhhbXBsZT1maWVsZHMtY2hlY2tib3hidXR0b25zXHJcblxyXG4gIC8vIFdpZGdldHMgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBSZWFjdCBKU09OIFNjaGVtYSBGb3JtIEFQSVxyXG4gICAgJ3VwZG93bic6ICdudW1iZXInLFxyXG4gICAgJ2RhdGUtdGltZSc6ICdkYXRldGltZS1sb2NhbCcsXHJcbiAgICAnYWx0LWRhdGV0aW1lJzogJ2RhdGV0aW1lLWxvY2FsJyxcclxuICAgICdhbHQtZGF0ZSc6ICdkYXRlJyxcclxuXHJcbiAgLy8gV2lkZ2V0cyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEFuZ3VsYXIgU2NoZW1hIEZvcm0gQVBJXHJcbiAgICAnd2l6YXJkJzogJ3NlY3Rpb24nLCAvLyBUT0RPOiBTZXF1ZW50aWFsIHBhbmVscyB3aXRoIFwiTmV4dFwiIGFuZCBcIlByZXZpb3VzXCIgYnV0dG9uc1xyXG5cclxuICAvLyBXaWRnZXRzIGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgbGlicmFyaWVzXHJcbiAgICAndGV4dGxpbmUnOiAndGV4dCcsXHJcblxyXG4gIC8vIFJlY29tbWVuZGVkIDNyZC1wYXJ0eSBhZGQtb24gd2lkZ2V0cyAoVE9ETzogY3JlYXRlIHdyYXBwZXJzIGZvciB0aGVzZS4uLilcclxuICAgIC8vICduZzItc2VsZWN0JzogU2VsZWN0IGNvbnRyb2wgcmVwbGFjZW1lbnQgLSBodHRwOi8vdmFsb3Itc29mdHdhcmUuY29tL25nMi1zZWxlY3QvXHJcbiAgICAvLyAnZmxhdHBpY2tyJzogRmxhdHBpY2tyIGRhdGUgcGlja2VyIC0gaHR0cHM6Ly9naXRodWIuY29tL2NobWxuL2ZsYXRwaWNrclxyXG4gICAgLy8gJ3Bpa2FkYXknOiBQaWthZGF5IGRhdGUgcGlja2VyIC0gaHR0cHM6Ly9naXRodWIuY29tL2RidXNoZWxsL1Bpa2FkYXlcclxuICAgIC8vICdzcGVjdHJ1bSc6IFNwZWN0cnVtIGNvbG9yIHBpY2tlciAtIGh0dHA6Ly9iZ3JpbnMuZ2l0aHViLmlvL3NwZWN0cnVtXHJcbiAgICAvLyAnYm9vdHN0cmFwLXNsaWRlcic6IEJvb3RzdHJhcCBTbGlkZXIgcmFuZ2UgY29udHJvbCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9zZWl5cmlhL2Jvb3RzdHJhcC1zbGlkZXJcclxuICAgIC8vICdhY2UnOiBBQ0UgY29kZSBlZGl0b3IgLSBodHRwczovL2FjZS5jOS5pb1xyXG4gICAgLy8gJ2NrZWRpdG9yJzogQ0tFZGl0b3IgSFRNTCAvIHJpY2ggdGV4dCBlZGl0b3IgLSBodHRwOi8vY2tlZGl0b3IuY29tXHJcbiAgICAvLyAndGlueW1jZSc6IFRpbnlNQ0UgSFRNTCAvIHJpY2ggdGV4dCBlZGl0b3IgLSBodHRwczovL3d3dy50aW55bWNlLmNvbVxyXG4gICAgLy8gJ2ltYWdlc2VsZWN0JzogQm9vdHN0cmFwIGRyb3AtZG93biBpbWFnZSBzZWxlY3RvciAtIGh0dHA6Ly9zaWx2aW9tb3JldG8uZ2l0aHViLmlvL2Jvb3RzdHJhcC1zZWxlY3RcclxuICAgIC8vICd3eXNpaHRtbDUnOiBIVE1MIGVkaXRvciAtIGh0dHA6Ly9qaG9sbGluZ3dvcnRoLmdpdGh1Yi5pby9ib290c3RyYXAtd3lzaWh0bWw1XHJcbiAgICAvLyAncXVpbGwnOiBRdWlsbCBIVE1MIC8gcmljaCB0ZXh0IGVkaXRvciAoPykgLSBodHRwczovL3F1aWxsanMuY29tXHJcbiAgfTtcclxuICByZWdpc3RlcmVkV2lkZ2V0czogYW55ID0geyB9O1xyXG4gIGZyYW1ld29ya1dpZGdldHM6IGFueSA9IHsgfTtcclxuICBhY3RpdmVXaWRnZXRzOiBhbnkgPSB7IH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5zZXRBY3RpdmVXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVXaWRnZXRzKCk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5hY3RpdmVXaWRnZXRzID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAgeyB9LCB0aGlzLndpZGdldExpYnJhcnksIHRoaXMuZnJhbWV3b3JrV2lkZ2V0cywgdGhpcy5yZWdpc3RlcmVkV2lkZ2V0c1xyXG4gICAgKTtcclxuICAgIGZvciAoY29uc3Qgd2lkZ2V0TmFtZSBvZiBPYmplY3Qua2V5cyh0aGlzLmFjdGl2ZVdpZGdldHMpKSB7XHJcbiAgICAgIGxldCB3aWRnZXQ6IGFueSA9IHRoaXMuYWN0aXZlV2lkZ2V0c1t3aWRnZXROYW1lXTtcclxuICAgICAgLy8gUmVzb2x2ZSBhbGlhc2VzXHJcbiAgICAgIGlmICh0eXBlb2Ygd2lkZ2V0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IHVzZWRBbGlhc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIHdoaWxlICh0eXBlb2Ygd2lkZ2V0ID09PSAnc3RyaW5nJyAmJiAhdXNlZEFsaWFzZXMuaW5jbHVkZXMod2lkZ2V0KSkge1xyXG4gICAgICAgICAgdXNlZEFsaWFzZXMucHVzaCh3aWRnZXQpO1xyXG4gICAgICAgICAgd2lkZ2V0ID0gdGhpcy5hY3RpdmVXaWRnZXRzW3dpZGdldF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2Ygd2lkZ2V0ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVXaWRnZXRzW3dpZGdldE5hbWVdID0gd2lkZ2V0O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0V2lkZ2V0KHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmhhc1dpZGdldCh0eXBlKSkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIHRoaXMuZGVmYXVsdFdpZGdldCA9IHR5cGU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGhhc1dpZGdldCh0eXBlOiBzdHJpbmcsIHdpZGdldFNldCA9ICdhY3RpdmVXaWRnZXRzJyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJykgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIHJldHVybiBoYXNPd24odGhpc1t3aWRnZXRTZXRdLCB0eXBlKTtcclxuICB9XHJcblxyXG4gIGhhc0RlZmF1bHRXaWRnZXQodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNXaWRnZXQodHlwZSwgJ3dpZGdldExpYnJhcnknKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyV2lkZ2V0KHR5cGU6IHN0cmluZywgd2lkZ2V0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghdHlwZSB8fCAhd2lkZ2V0IHx8IHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJykgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIHRoaXMucmVnaXN0ZXJlZFdpZGdldHNbdHlwZV0gPSB3aWRnZXQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXRBY3RpdmVXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICB1blJlZ2lzdGVyV2lkZ2V0KHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFoYXNPd24odGhpcy5yZWdpc3RlcmVkV2lkZ2V0cywgdHlwZSkpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICBkZWxldGUgdGhpcy5yZWdpc3RlcmVkV2lkZ2V0c1t0eXBlXTtcclxuICAgIHJldHVybiB0aGlzLnNldEFjdGl2ZVdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIHVuUmVnaXN0ZXJBbGxXaWRnZXRzKHVuUmVnaXN0ZXJGcmFtZXdvcmtXaWRnZXRzID0gdHJ1ZSk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkV2lkZ2V0cyA9IHsgfTtcclxuICAgIGlmICh1blJlZ2lzdGVyRnJhbWV3b3JrV2lkZ2V0cykgeyB0aGlzLmZyYW1ld29ya1dpZGdldHMgPSB7IH07IH1cclxuICAgIHJldHVybiB0aGlzLnNldEFjdGl2ZVdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyRnJhbWV3b3JrV2lkZ2V0cyh3aWRnZXRzOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh3aWRnZXRzID09PSBudWxsIHx8IHR5cGVvZiB3aWRnZXRzICE9PSAnb2JqZWN0JykgeyB3aWRnZXRzID0geyB9OyB9XHJcbiAgICB0aGlzLmZyYW1ld29ya1dpZGdldHMgPSB3aWRnZXRzO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0QWN0aXZlV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgdW5SZWdpc3RlckZyYW1ld29ya1dpZGdldHMoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5mcmFtZXdvcmtXaWRnZXRzKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5mcmFtZXdvcmtXaWRnZXRzID0geyB9O1xyXG4gICAgICByZXR1cm4gdGhpcy5zZXRBY3RpdmVXaWRnZXRzKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRXaWRnZXQodHlwZT86IHN0cmluZywgd2lkZ2V0U2V0ID0gJ2FjdGl2ZVdpZGdldHMnKTogYW55IHtcclxuICAgIGlmICh0aGlzLmhhc1dpZGdldCh0eXBlLCB3aWRnZXRTZXQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzW3dpZGdldFNldF1bdHlwZV07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzV2lkZ2V0KHRoaXMuZGVmYXVsdFdpZGdldCwgd2lkZ2V0U2V0KSkge1xyXG4gICAgICByZXR1cm4gdGhpc1t3aWRnZXRTZXRdW3RoaXMuZGVmYXVsdFdpZGdldF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEFsbFdpZGdldHMoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZGdldExpYnJhcnk6IHRoaXMud2lkZ2V0TGlicmFyeSxcclxuICAgICAgcmVnaXN0ZXJlZFdpZGdldHM6IHRoaXMucmVnaXN0ZXJlZFdpZGdldHMsXHJcbiAgICAgIGZyYW1ld29ya1dpZGdldHM6IHRoaXMuZnJhbWV3b3JrV2lkZ2V0cyxcclxuICAgICAgYWN0aXZlV2lkZ2V0czogdGhpcy5hY3RpdmVXaWRnZXRzLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWxpYnJhcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvd2lkZ2V0LWxpYnJhcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9B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TCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNsQyxDQUFDO0lBQ0osQ0FBQzsrR0FuTlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaGFzT3duIH0gZnJvbSAnLi4vc2hhcmVkL3V0aWxpdHkuZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQWRkUmVmZXJlbmNlQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtcmVmZXJlbmNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja2JveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveGVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm9uZUNvbXBvbmVudCB9IGZyb20gJy4vbm9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL251bWJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPbmVPZkNvbXBvbmVudCB9IGZyb20gJy4vb25lLW9mLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvc0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW9zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvb3RDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RGcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1mcmFtZXdvcmsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RjaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRMaWJyYXJ5U2VydmljZSB7XHJcblxyXG4gIGRlZmF1bHRXaWRnZXQgPSAndGV4dCc7XHJcbiAgd2lkZ2V0TGlicmFyeTogYW55ID0ge1xyXG5cclxuICAvLyBBbmd1bGFyIEpTT04gU2NoZW1hIEZvcm0gYWRtaW5pc3RyYXRpdmUgd2lkZ2V0c1xyXG4gICAgJ25vbmUnOiBOb25lQ29tcG9uZW50LCAvLyBQbGFjZWhvbGRlciwgZm9yIGRldmVsb3BtZW50IC0gZGlzcGxheXMgbm90aGluZ1xyXG4gICAgJ3Jvb3QnOiBSb290Q29tcG9uZW50LCAvLyBGb3JtIHJvb3QsIHJlbmRlcnMgYSBjb21wbGV0ZSBsYXlvdXRcclxuICAgICdzZWxlY3QtZnJhbWV3b3JrJzogU2VsZWN0RnJhbWV3b3JrQ29tcG9uZW50LCAvLyBBcHBsaWVzIHRoZSBzZWxlY3RlZCBmcmFtZXdvcmsgdG8gYSBzcGVjaWZpZWQgd2lkZ2V0XHJcbiAgICAnc2VsZWN0LXdpZGdldCc6IFNlbGVjdFdpZGdldENvbXBvbmVudCwgLy8gRGlzcGxheXMgYSBzcGVjaWZpZWQgd2lkZ2V0XHJcbiAgICAnJHJlZic6IEFkZFJlZmVyZW5jZUNvbXBvbmVudCwgLy8gQnV0dG9uIHRvIGFkZCBhIG5ldyBhcnJheSBpdGVtIG9yICRyZWYgZWxlbWVudFxyXG5cclxuICAvLyBGcmVlLWZvcm0gdGV4dCBIVE1MICdpbnB1dCcgZm9ybSBjb250cm9sIHdpZGdldHMgPGlucHV0IHR5cGU9XCIuLi5cIj5cclxuICAgICdlbWFpbCc6ICd0ZXh0JyxcclxuICAgICdpbnRlZ2VyJzogJ251bWJlcicsIC8vIE5vdGU6ICdpbnRlZ2VyJyBpcyBub3QgYSByZWNvZ25pemVkIEhUTUwgaW5wdXQgdHlwZVxyXG4gICAgJ251bWJlcic6IE51bWJlckNvbXBvbmVudCxcclxuICAgICdwYXNzd29yZCc6ICd0ZXh0JyxcclxuICAgICdzZWFyY2gnOiAndGV4dCcsXHJcbiAgICAndGVsJzogJ3RleHQnLFxyXG4gICAgJ3RleHQnOiBJbnB1dENvbXBvbmVudCxcclxuICAgICd1cmwnOiAndGV4dCcsXHJcblxyXG4gIC8vIENvbnRyb2xsZWQgdGV4dCBIVE1MICdpbnB1dCcgZm9ybSBjb250cm9sIHdpZGdldHMgPGlucHV0IHR5cGU9XCIuLi5cIj5cclxuICAgICdjb2xvcic6ICd0ZXh0JyxcclxuICAgICdkYXRlJzogJ3RleHQnLFxyXG4gICAgJ2RhdGV0aW1lJzogJ3RleHQnLFxyXG4gICAgJ2RhdGV0aW1lLWxvY2FsJzogJ3RleHQnLFxyXG4gICAgJ21vbnRoJzogJ3RleHQnLFxyXG4gICAgJ3JhbmdlJzogJ251bWJlcicsXHJcbiAgICAndGltZSc6ICd0ZXh0JyxcclxuICAgICd3ZWVrJzogJ3RleHQnLFxyXG5cclxuICAvLyBOb24tdGV4dCBIVE1MICdpbnB1dCcgZm9ybSBjb250cm9sIHdpZGdldHMgPGlucHV0IHR5cGU9XCIuLi5cIj5cclxuICAgIC8vICdidXR0b24nOiA8aW5wdXQgdHlwZT1cImJ1dHRvblwiPiBub3QgdXNlZCwgdXNlIDxidXR0b24+IGluc3RlYWRcclxuICAgICdjaGVja2JveCc6IENoZWNrYm94Q29tcG9uZW50LCAvLyBUT0RPOiBTZXQgdGVybmFyeSA9IHRydWUgZm9yIDMtc3RhdGUgPz9cclxuICAgICdmaWxlJzogRmlsZUNvbXBvbmVudCwgLy8gVE9ETzogRmluaXNoICdmaWxlJyB3aWRnZXRcclxuICAgICdoaWRkZW4nOiAndGV4dCcsXHJcbiAgICAnaW1hZ2UnOiAndGV4dCcsIC8vIFRPRE86IEZpZ3VyZSBvdXQgaG93IHRvIGhhbmRsZSB0aGVzZVxyXG4gICAgJ3JhZGlvJzogJ3JhZGlvcycsXHJcbiAgICAncmVzZXQnOiAnc3VibWl0JywgLy8gVE9ETzogRmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoZXNlXHJcbiAgICAnc3VibWl0JzogU3VibWl0Q29tcG9uZW50LFxyXG5cclxuICAvLyBPdGhlciAobm9uLSdpbnB1dCcpIEhUTUwgZm9ybSBjb250cm9sIHdpZGdldHNcclxuICAgICdidXR0b24nOiBCdXR0b25Db21wb25lbnQsXHJcbiAgICAnc2VsZWN0JzogU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgLy8gJ29wdGlvbic6IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHNlbGVjdCB3aWRnZXRzXHJcbiAgICAvLyAnb3B0Z3JvdXAnOiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBzZWxlY3Qgd2lkZ2V0c1xyXG4gICAgJ3RleHRhcmVhJzogVGV4dGFyZWFDb21wb25lbnQsXHJcblxyXG4gIC8vIEhUTUwgZm9ybSBjb250cm9sIHdpZGdldCBzZXRzXHJcbiAgICAnY2hlY2tib3hlcyc6IENoZWNrYm94ZXNDb21wb25lbnQsIC8vIEdyb3VwZWQgbGlzdCBvZiBjaGVja2JveGVzXHJcbiAgICAnY2hlY2tib3hlcy1pbmxpbmUnOiAnY2hlY2tib3hlcycsIC8vIENoZWNrYm94ZXMgaW4gb25lIGxpbmVcclxuICAgICdjaGVja2JveGJ1dHRvbnMnOiAnY2hlY2tib3hlcycsIC8vIENoZWNrYm94ZXMgYXMgaHRtbCBidXR0b25zXHJcbiAgICAncmFkaW9zJzogUmFkaW9zQ29tcG9uZW50LCAvLyBHcm91cGVkIGxpc3Qgb2YgcmFkaW8gYnV0dG9uc1xyXG4gICAgJ3JhZGlvcy1pbmxpbmUnOiAncmFkaW9zJywgLy8gUmFkaW8gY29udHJvbHMgaW4gb25lIGxpbmVcclxuICAgICdyYWRpb2J1dHRvbnMnOiAncmFkaW9zJywgLy8gUmFkaW8gY29udHJvbHMgYXMgaHRtbCBidXR0b25zXHJcblxyXG4gIC8vIEhUTUwgTGF5b3V0IHdpZGdldHNcclxuICAgIC8vICdsYWJlbCc6IGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gZGF0YSB3aWRnZXRzXHJcbiAgICAvLyAnbGVnZW5kJzogYXV0b21hdGljYWxseSBhZGRlZCB0byBmaWVsZHNldHNcclxuICAgICdzZWN0aW9uJzogU2VjdGlvbkNvbXBvbmVudCwgLy8gSnVzdCBhIGRpdiA8ZGl2PlxyXG4gICAgJ2Rpdic6ICdzZWN0aW9uJywgLy8gU3RpbGwganVzdCBhIGRpdiA8ZGl2PlxyXG4gICAgJ2ZpZWxkc2V0JzogJ3NlY3Rpb24nLCAvLyBBIGZpZWxkc2V0LCB3aXRoIGFuIG9wdGlvbmFsIGxlZ2VuZCA8ZmllbGRzZXQ+XHJcbiAgICAnZmxleCc6ICdzZWN0aW9uJywgLy8gQSBmbGV4Ym94IGNvbnRhaW5lciA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxyXG5cclxuICAvLyBOb24tSFRNTCBsYXlvdXQgd2lkZ2V0c1xyXG4gICAgJ29uZS1vZic6IE9uZU9mQ29tcG9uZW50LCAvLyBBIHNlbGVjdCBib3ggdGhhdCBjaGFuZ2VzIGFub3RoZXIgaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRmluaXNoICdvbmUtb2YnIHdpZGdldFxyXG4gICAgJ2FycmF5JzogJ3NlY3Rpb24nLCAvLyBBIGxpc3QgeW91IGNhbiBhZGQsIHJlbW92ZSBhbmQgcmVvcmRlciA8ZmllbGRzZXQ+XHJcbiAgICAndGFiYXJyYXknOiAndGFicycsIC8vIEEgdGFiYmVkIHZlcnNpb24gb2YgYXJyYXlcclxuICAgICd0YWInOiAnc2VjdGlvbicsIC8vIEEgdGFiIGdyb3VwLCBzaW1pbGFyIHRvIGEgZmllbGRzZXQgb3Igc2VjdGlvbiA8ZmllbGRzZXQ+XHJcbiAgICAndGFicyc6IFRhYnNDb21wb25lbnQsIC8vIEEgdGFiYmVkIHNldCBvZiBwYW5lbHMgd2l0aCBkaWZmZXJlbnQgY29udHJvbHNcclxuICAgICdtZXNzYWdlJzogTWVzc2FnZUNvbXBvbmVudCwgLy8gSW5zZXJ0IGFyYml0cmFyeSBodG1sXHJcbiAgICAnaGVscCc6ICdtZXNzYWdlJywgLy8gSW5zZXJ0IGFyYml0cmFyeSBodG1sXHJcbiAgICAnbXNnJzogJ21lc3NhZ2UnLCAvLyBJbnNlcnQgYXJiaXRyYXJ5IGh0bWxcclxuICAgICdodG1sJzogJ21lc3NhZ2UnLCAvLyBJbnNlcnQgYXJiaXRyYXJ5IGh0bWxcclxuICAgICd0ZW1wbGF0ZSc6IFRlbXBsYXRlQ29tcG9uZW50LCAvLyBJbnNlcnQgYSBjdXN0b20gQW5ndWxhciBjb21wb25lbnRcclxuXHJcbiAgLy8gV2lkZ2V0cyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpTT04gRm9ybSBBUElcclxuICAgICdhZHZhbmNlZGZpZWxkc2V0JzogJ3NlY3Rpb24nLCAvLyBBZGRzICdBZHZhbmNlZCBzZXR0aW5ncycgdGl0bGUgPGZpZWxkc2V0PlxyXG4gICAgJ2F1dGhmaWVsZHNldCc6ICdzZWN0aW9uJywgLy8gQWRkcyAnQXV0aGVudGljYXRpb24gc2V0dGluZ3MnIHRpdGxlIDxmaWVsZHNldD5cclxuICAgICdvcHRpb25maWVsZHNldCc6ICdvbmUtb2YnLCAvLyBPcHRpb24gY29udHJvbCwgZGlzcGxheXMgc2VsZWN0ZWQgc3ViLWl0ZW0gPGZpZWxkc2V0PlxyXG4gICAgJ3NlbGVjdGZpZWxkc2V0JzogJ29uZS1vZicsIC8vIFNlbGVjdCBjb250cm9sLCBkaXNwbGF5cyBzZWxlY3RlZCBzdWItaXRlbSA8ZmllbGRzZXQ+XHJcbiAgICAnY29uZGl0aW9uYWwnOiAnc2VjdGlvbicsIC8vIElkZW50aWNhbCB0byAnc2VjdGlvbicgKGRlcGVjaWF0ZWQpIDxkaXY+XHJcbiAgICAnYWN0aW9ucyc6ICdzZWN0aW9uJywgLy8gSG9yaXpvbnRhbCBidXR0b24gbGlzdCwgY2FuIG9ubHkgc3VibWl0LCB1c2VzIGJ1dHRvbnMgYXMgaXRlbXMgPGRpdj5cclxuICAgICd0YWdzaW5wdXQnOiAnc2VjdGlvbicsIC8vIEZvciBlbnRlcmluZyBzaG9ydCB0ZXh0IHRhZ3MgPGRpdj5cclxuICAgIC8vIFNlZTogaHR0cDovL3VsaW9uLmdpdGh1Yi5pby9qc29uZm9ybS9wbGF5Z3JvdW5kLz9leGFtcGxlPWZpZWxkcy1jaGVja2JveGJ1dHRvbnNcclxuXHJcbiAgLy8gV2lkZ2V0cyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFJlYWN0IEpTT04gU2NoZW1hIEZvcm0gQVBJXHJcbiAgICAndXBkb3duJzogJ251bWJlcicsXHJcbiAgICAvLydkYXRlLXRpbWUnOiAnZGF0ZXRpbWUtbG9jYWwnLFxyXG4gICAgLy9hcyBwZXIgYWp2IGRhdGUtdGltZSByZXF1aXJlcyBhIHRpbWV6b25lIGJ1dCBpbnB1dCBcclxuICAgIC8vZGF0ZXRpbWUtbG9jYWwgZG9lc24ndCAgXHJcbiAgICAnaXNvLWRhdGUtdGltZSc6J2RhdGV0aW1lLWxvY2FsJyxcclxuICAgICdhbHQtZGF0ZXRpbWUnOiAnZGF0ZXRpbWUtbG9jYWwnLFxyXG4gICAgJ2FsdC1kYXRlJzogJ2RhdGUnLFxyXG5cclxuICAvLyBXaWRnZXRzIGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQW5ndWxhciBTY2hlbWEgRm9ybSBBUElcclxuICAgICd3aXphcmQnOiAnc2VjdGlvbicsIC8vIFRPRE86IFNlcXVlbnRpYWwgcGFuZWxzIHdpdGggXCJOZXh0XCIgYW5kIFwiUHJldmlvdXNcIiBidXR0b25zXHJcblxyXG4gIC8vIFdpZGdldHMgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBsaWJyYXJpZXNcclxuICAgICd0ZXh0bGluZSc6ICd0ZXh0JyxcclxuXHJcbiAgICAnc2VsZWN0Y2hlY2tib3gnOiBTZWxlY3RDaGVja2JveENvbXBvbmVudCxcclxuXHJcbiAgLy8gUmVjb21tZW5kZWQgM3JkLXBhcnR5IGFkZC1vbiB3aWRnZXRzIChUT0RPOiBjcmVhdGUgd3JhcHBlcnMgZm9yIHRoZXNlLi4uKVxyXG4gICAgLy8gJ25nMi1zZWxlY3QnOiBTZWxlY3QgY29udHJvbCByZXBsYWNlbWVudCAtIGh0dHA6Ly92YWxvci1zb2Z0d2FyZS5jb20vbmcyLXNlbGVjdC9cclxuICAgIC8vICdmbGF0cGlja3InOiBGbGF0cGlja3IgZGF0ZSBwaWNrZXIgLSBodHRwczovL2dpdGh1Yi5jb20vY2htbG4vZmxhdHBpY2tyXHJcbiAgICAvLyAncGlrYWRheSc6IFBpa2FkYXkgZGF0ZSBwaWNrZXIgLSBodHRwczovL2dpdGh1Yi5jb20vZGJ1c2hlbGwvUGlrYWRheVxyXG4gICAgLy8gJ3NwZWN0cnVtJzogU3BlY3RydW0gY29sb3IgcGlja2VyIC0gaHR0cDovL2Jncmlucy5naXRodWIuaW8vc3BlY3RydW1cclxuICAgIC8vICdib290c3RyYXAtc2xpZGVyJzogQm9vdHN0cmFwIFNsaWRlciByYW5nZSBjb250cm9sIC0gaHR0cHM6Ly9naXRodWIuY29tL3NlaXlyaWEvYm9vdHN0cmFwLXNsaWRlclxyXG4gICAgLy8gJ2FjZSc6IEFDRSBjb2RlIGVkaXRvciAtIGh0dHBzOi8vYWNlLmM5LmlvXHJcbiAgICAvLyAnY2tlZGl0b3InOiBDS0VkaXRvciBIVE1MIC8gcmljaCB0ZXh0IGVkaXRvciAtIGh0dHA6Ly9ja2VkaXRvci5jb21cclxuICAgIC8vICd0aW55bWNlJzogVGlueU1DRSBIVE1MIC8gcmljaCB0ZXh0IGVkaXRvciAtIGh0dHBzOi8vd3d3LnRpbnltY2UuY29tXHJcbiAgICAvLyAnaW1hZ2VzZWxlY3QnOiBCb290c3RyYXAgZHJvcC1kb3duIGltYWdlIHNlbGVjdG9yIC0gaHR0cDovL3NpbHZpb21vcmV0by5naXRodWIuaW8vYm9vdHN0cmFwLXNlbGVjdFxyXG4gICAgLy8gJ3d5c2lodG1sNSc6IEhUTUwgZWRpdG9yIC0gaHR0cDovL2pob2xsaW5nd29ydGguZ2l0aHViLmlvL2Jvb3RzdHJhcC13eXNpaHRtbDVcclxuICAgIC8vICdxdWlsbCc6IFF1aWxsIEhUTUwgLyByaWNoIHRleHQgZWRpdG9yICg/KSAtIGh0dHBzOi8vcXVpbGxqcy5jb21cclxuICB9O1xyXG4gIHJlZ2lzdGVyZWRXaWRnZXRzOiBhbnkgPSB7IH07XHJcbiAgZnJhbWV3b3JrV2lkZ2V0czogYW55ID0geyB9O1xyXG4gIGFjdGl2ZVdpZGdldHM6IGFueSA9IHsgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnNldEFjdGl2ZVdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2ZVdpZGdldHMoKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLmFjdGl2ZVdpZGdldHMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7IH0sIHRoaXMud2lkZ2V0TGlicmFyeSwgdGhpcy5mcmFtZXdvcmtXaWRnZXRzLCB0aGlzLnJlZ2lzdGVyZWRXaWRnZXRzXHJcbiAgICApO1xyXG4gICAgZm9yIChjb25zdCB3aWRnZXROYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlV2lkZ2V0cykpIHtcclxuICAgICAgbGV0IHdpZGdldDogYW55ID0gdGhpcy5hY3RpdmVXaWRnZXRzW3dpZGdldE5hbWVdO1xyXG4gICAgICAvLyBSZXNvbHZlIGFsaWFzZXNcclxuICAgICAgaWYgKHR5cGVvZiB3aWRnZXQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgdXNlZEFsaWFzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgd2hpbGUgKHR5cGVvZiB3aWRnZXQgPT09ICdzdHJpbmcnICYmICF1c2VkQWxpYXNlcy5pbmNsdWRlcyh3aWRnZXQpKSB7XHJcbiAgICAgICAgICB1c2VkQWxpYXNlcy5wdXNoKHdpZGdldCk7XHJcbiAgICAgICAgICB3aWRnZXQgPSB0aGlzLmFjdGl2ZVdpZGdldHNbd2lkZ2V0XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXQgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZVdpZGdldHNbd2lkZ2V0TmFtZV0gPSB3aWRnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRXaWRnZXQodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaGFzV2lkZ2V0KHR5cGUpKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgdGhpcy5kZWZhdWx0V2lkZ2V0ID0gdHlwZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFzV2lkZ2V0KHR5cGU6IHN0cmluZywgd2lkZ2V0U2V0ID0gJ2FjdGl2ZVdpZGdldHMnKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgcmV0dXJuIGhhc093bih0aGlzW3dpZGdldFNldF0sIHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgaGFzRGVmYXVsdFdpZGdldCh0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1dpZGdldCh0eXBlLCAnd2lkZ2V0TGlicmFyeScpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJXaWRnZXQodHlwZTogc3RyaW5nLCB3aWRnZXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0eXBlIHx8ICF3aWRnZXQgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgdGhpcy5yZWdpc3RlcmVkV2lkZ2V0c1t0eXBlXSA9IHdpZGdldDtcclxuICAgIHJldHVybiB0aGlzLnNldEFjdGl2ZVdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIHVuUmVnaXN0ZXJXaWRnZXQodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWhhc093bih0aGlzLnJlZ2lzdGVyZWRXaWRnZXRzLCB0eXBlKSkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIGRlbGV0ZSB0aGlzLnJlZ2lzdGVyZWRXaWRnZXRzW3R5cGVdO1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0QWN0aXZlV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgdW5SZWdpc3RlckFsbFdpZGdldHModW5SZWdpc3RlckZyYW1ld29ya1dpZGdldHMgPSB0cnVlKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRXaWRnZXRzID0geyB9O1xyXG4gICAgaWYgKHVuUmVnaXN0ZXJGcmFtZXdvcmtXaWRnZXRzKSB7IHRoaXMuZnJhbWV3b3JrV2lkZ2V0cyA9IHsgfTsgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2V0QWN0aXZlV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJGcmFtZXdvcmtXaWRnZXRzKHdpZGdldHM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHdpZGdldHMgPT09IG51bGwgfHwgdHlwZW9mIHdpZGdldHMgIT09ICdvYmplY3QnKSB7IHdpZGdldHMgPSB7IH07IH1cclxuICAgIHRoaXMuZnJhbWV3b3JrV2lkZ2V0cyA9IHdpZGdldHM7XHJcbiAgICByZXR1cm4gdGhpcy5zZXRBY3RpdmVXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICB1blJlZ2lzdGVyRnJhbWV3b3JrV2lkZ2V0cygpOiBib29sZWFuIHtcclxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmZyYW1ld29ya1dpZGdldHMpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmZyYW1ld29ya1dpZGdldHMgPSB7IH07XHJcbiAgICAgIHJldHVybiB0aGlzLnNldEFjdGl2ZVdpZGdldHMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFdpZGdldCh0eXBlPzogc3RyaW5nLCB3aWRnZXRTZXQgPSAnYWN0aXZlV2lkZ2V0cycpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuaGFzV2lkZ2V0KHR5cGUsIHdpZGdldFNldCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXNbd2lkZ2V0U2V0XVt0eXBlXTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNXaWRnZXQodGhpcy5kZWZhdWx0V2lkZ2V0LCB3aWRnZXRTZXQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzW3dpZGdldFNldF1bdGhpcy5kZWZhdWx0V2lkZ2V0XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsV2lkZ2V0cygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkZ2V0TGlicmFyeTogdGhpcy53aWRnZXRMaWJyYXJ5LFxyXG4gICAgICByZWdpc3RlcmVkV2lkZ2V0czogdGhpcy5yZWdpc3RlcmVkV2lkZ2V0cyxcclxuICAgICAgZnJhbWV3b3JrV2lkZ2V0czogdGhpcy5mcmFtZXdvcmtXaWRnZXRzLFxyXG4gICAgICBhY3RpdmVXaWRnZXRzOiB0aGlzLmFjdGl2ZVdpZGdldHMsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|