@c8y/ngx-components 1017.0.267 → 1017.0.294
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/context-dashboard/context-dashboard.model.d.ts +5 -0
- package/core/dashboard/dashboard.model.d.ts +5 -0
- package/esm2020/context-dashboard/context-dashboard.component.mjs +3 -3
- package/esm2020/context-dashboard/context-dashboard.model.mjs +1 -1
- package/esm2020/context-dashboard/dashboard-detail.component.mjs +1 -1
- package/esm2020/core/common/group.service.mjs +2 -11
- package/esm2020/core/dashboard/dashboard.model.mjs +1 -1
- package/esm2020/core/dashboard/widgets-dashboard.component.mjs +5 -4
- package/esm2020/core/realtime/measurement-realtime.service.mjs +4 -2
- package/esm2020/device-profile/device-profile.component.mjs +4 -2
- package/esm2020/widgets/kpi-widget/kpi-widget-view/kpi-widget-view.component.mjs +2 -2
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +2 -2
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-profile.mjs +3 -1
- package/fesm2015/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-widgets-kpi-widget.mjs +1 -1
- package/fesm2015/c8y-ngx-components-widgets-kpi-widget.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +29 -32
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +2 -2
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-profile.mjs +3 -1
- package/fesm2020/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-widgets-kpi-widget.mjs +1 -1
- package/fesm2020/c8y-ngx-components-widgets-kpi-widget.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +29 -32
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +2 -2
- package/widgets/kpi-widget/kpi-widget-view/kpi-widget-view.component.d.ts +2 -2
|
@@ -97,6 +97,11 @@ export interface ContextDashboard {
|
|
|
97
97
|
widgetMargin?: number;
|
|
98
98
|
translateWidgetTitle?: boolean;
|
|
99
99
|
global?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* The amount of columns on that dashboard.
|
|
102
|
+
* Can be freely chosen, but product uses either 12 or 24.
|
|
103
|
+
*/
|
|
104
|
+
columns?: number;
|
|
100
105
|
children?: {
|
|
101
106
|
[id: string]: Widget;
|
|
102
107
|
};
|
|
@@ -131,6 +131,11 @@ export interface DashboardSettings {
|
|
|
131
131
|
* Indicates that the dashboard is loading.
|
|
132
132
|
*/
|
|
133
133
|
isLoading?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* The amount of columns on that dashboard.
|
|
136
|
+
* Can be freely chosen, but product uses either 12 or 24.
|
|
137
|
+
*/
|
|
138
|
+
columns?: number;
|
|
134
139
|
}
|
|
135
140
|
export interface DashboardChildDimension {
|
|
136
141
|
x?: number;
|
|
@@ -451,7 +451,7 @@ export class ContextDashboardComponent {
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
ContextDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.ContextDashboardService }, { token: i3.AlertService }, { token: i0.Renderer2 }, { token: CONTEXT_DASHBOARD_CONFIG }, { token: i4.WidgetService }, { token: i5.BsModalService }, { token: i6.InventoryService }, { token: i3.GainsightService }, { token: i3.ActionBarService }, { token: i7.TranslateService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
454
|
-
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n", dependencies: [{ kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: ["widgets", "context", "contextDashboard", "settings", "breadcrumb"], outputs: ["onAddWidget", "onEditWidget", "onDeleteWidget", "onChangeDashboard", "onEditDashboard", "onCopyDashboard", "onDeleteDashboard", "onFreeze", "onChangeStart", "onChangeEnd"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
|
|
454
|
+
ContextDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContextDashboardComponent, selector: "c8y-context-dashboard", inputs: { name: "name", childrenClasses: "childrenClasses", context: "context", setTitle: "setTitle", disabled: "disabled", defaultWidgets: "defaultWidgets", canCopy: "canCopy", canDelete: "canDelete", isLoading: "isLoading", breadcrumbSettings: "breadcrumbSettings" }, host: { properties: { "class": "this.class" }, styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, ngImport: i0, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n", dependencies: [{ kind: "component", type: i3.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i3.WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: ["widgets", "context", "contextDashboard", "settings", "breadcrumb"], outputs: ["onAddWidget", "onEditWidget", "onDeleteWidget", "onChangeDashboard", "onEditDashboard", "onCopyDashboard", "onDeleteDashboard", "onFreeze", "onChangeStart", "onChangeEnd"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] });
|
|
455
455
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContextDashboardComponent, decorators: [{
|
|
456
456
|
type: Component,
|
|
457
457
|
args: [{ selector: 'c8y-context-dashboard', host: {
|
|
@@ -459,7 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
459
459
|
display: block;
|
|
460
460
|
`,
|
|
461
461
|
class: 'dashboard c8y-grid-dashboard'
|
|
462
|
-
}, template: "<c8y-title>\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n" }]
|
|
462
|
+
}, template: "<c8y-title *ngIf=\"title\">\n {{ title }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'more'\" *ngIf=\"defaultWidgets.length > 0\">\n <button\n type=\"button\"\n title=\"{{ 'Reset dashboard' | translate }}\"\n class=\"btn btn-clean\"\n px-event=\"Reset dashboard\"\n (click)=\"restore()\"\n [disabled]=\"dashboard?.isFrozen || disabled\"\n >\n <i c8yIcon=\"reset\" class=\"m-r-4\"></i>\n {{ 'Reset dashboard' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-widgets-dashboard\n [context]=\"context\"\n [contextDashboard]=\"dashboard\"\n [widgets]=\"widgets\"\n [settings]=\"{\n isLoading: isLoading,\n isFrozen: dashboard?.isFrozen,\n isDisabled: disabled,\n canDelete: canDelete,\n translateWidgetTitle: dashboard?.translateWidgetTitle,\n allowFullscreen: moduleConfig.allowFullscreen,\n title: setTitle ? dashboard.name || title : undefined,\n widgetMargin: dashboard?.widgetMargin,\n canCopy: canCopy,\n columns: dashboard?.columns || 12\n }\"\n [breadcrumb]=\"breadcrumbSettings\"\n (onFreeze)=\"toggleFreeze($event)\"\n (onChangeDashboard)=\"updateDashboardChildren($event)\"\n (onAddWidget)=\"addWidget()\"\n (onEditWidget)=\"editWidget($event)\"\n (onDeleteWidget)=\"deleteWidget($event)\"\n (onChangeStart)=\"addDashboardClassToBody()\"\n (onChangeEnd)=\"removeDashboardClassFromBody()\"\n (onEditDashboard)=\"editDashboard()\"\n (onCopyDashboard)=\"copyDashboard()\"\n (onDeleteDashboard)=\"deleteDashboard()\"\n></c8y-widgets-dashboard>\n" }]
|
|
463
463
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.ContextDashboardService }, { type: i3.AlertService }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
464
464
|
type: Inject,
|
|
465
465
|
args: [CONTEXT_DASHBOARD_CONFIG]
|
|
@@ -487,4 +487,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
487
487
|
type: HostBinding,
|
|
488
488
|
args: ['class']
|
|
489
489
|
}] } });
|
|
490
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixZQUFZLEVBR1osb0JBQW9CLEVBSXBCLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFJUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBSUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFB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LENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ3pFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQXhmVSx5QkFBeUIsa0tBc0MxQix3QkFBd0I7MEdBdEN2Qix5QkFBeUIsNmRDbkR0Qyw4OENBNkNBOzJGRE1hLHlCQUF5QjtrQkFWckMsU0FBUzsrQkFDRSx1QkFBdUIsUUFFM0I7d0JBQ0osS0FBSyxFQUFFOztLQUVOO3dCQUNELEtBQUssRUFBRSw4QkFBOEI7cUJBQ3RDOzswQkF3Q0UsTUFBTTsyQkFBQyx3QkFBd0I7NFBBcENsQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sZUFBZTtzQkFEZCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sS0FBSztzQkFESixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFjdGlvbkJhclNlcnZpY2UsXG4gIEFsZXJ0U2VydmljZSxcbiAgQnJlYWRjcnVtYkl0ZW0sXG4gIERhc2hib2FyZENoYW5nZSxcbiAgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UsXG4gIERhc2hib2FyZENoaWxkQ29tcG9uZW50LFxuICBEYXNoYm9hcmRTZXR0aW5ncyxcbiAgRHluYW1pY0NvbXBvbmVudERlZmluaXRpb24sXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1vZGFsU2VydmljZSxcbiAgU3RhdHVzLFxuICBWaWV3Q29udGV4dCxcbiAgV2lkZ2V0LFxuICBXaWRnZXRDaGFuZ2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGZpbmRJbmRleCwga2V5QnksIG9taXQsIHZhbHVlcywgc29tZSwga2ViYWJDYXNlLCBldmVyeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDb250ZXh0RGFzaGJvYXJkLFxuICBDb250ZXh0RGFzaGJvYXJkQ29uZmlnLFxuICBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCxcbiAgQ09OVEVYVF9EQVNIQk9BUkRfQ09ORklHLFxuICBXSURHRVRfSEVBREVSX0NMQVNTRVNcbn0gZnJvbSAnLi9jb250ZXh0LWRhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBDb250ZXh0RGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vY29udGV4dC1kYXNoYm9hcmQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZGFzaGJvYXJkIGlzIGEgZGFzaGJvYXJkIHdoaWNoIHJlc29sdmVzIGl0IGRhdGEgZnJvbSB0aGUgY3VycmVudCBjb250ZXh0IChkZXZpY2Ugb3IgZ3JvdXApXG4gKiBpdCBpcyBkaXNwbGF5ZWQgb24uIEl0IHVzdWFsbHkgdXNlcyB0aGUgcm91dGUuZGF0YSBmb3IgaXQsIGJ1dCB5b3UgY2FuIHBhc3NcbiAqIGEgZGlmZmVyZW50IG1hbmFnZWRPYmplY3QgdG8gdGhlIFttb10gaW5wdXQgcGFyYW1ldGVyIHRvIGNoYW5nZSB0aGF0IGJlaGF2aW9yLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY29udGV4dC1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgc3R5bGU6IGBcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGAsXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQgYzh5LWdyaWQtZGFzaGJvYXJkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHREYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgY2hpbGRyZW5DbGFzc2VzID0gJyc7XG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcbiAgQElucHV0KClcbiAgc2V0VGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZGVmYXVsdFdpZGdldHM6IFdpZGdldFtdID0gW107XG4gIEBJbnB1dCgpXG4gIGNhbkNvcHk6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBjYW5EZWxldGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBicmVhZGNydW1iU2V0dGluZ3M6IEJyZWFkY3J1bWJJdGVtO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBjbGFzcyA9ICcnO1xuXG4gIHdpZGdldHM6IFdpZGdldFtdID0gW107XG4gIG1vOiBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdDtcbiAgZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkO1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgZGF0YVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjb250ZXh0RGFzaGJvYXJkU2VydmljZTogQ29udGV4dERhc2hib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KENPTlRFWFRfREFTSEJPQVJEX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogQ29udGV4dERhc2hib2FyZENvbmZpZyxcbiAgICBwcml2YXRlIHdpZGdldFNlcnZpY2U6IFdpZGdldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25CYXJTZXJ2aWNlOiBBY3Rpb25CYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsOiBNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICB0aGlzLmxvYWRDb250ZXh0RGFzaGJvYXJkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubG9hZE5hbWVkRGFzaGJvYXJkKCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgY3VycmVudCBjb250ZXh0IHRvIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHdpZGdldCBUaGUgd2lkZ2V0IHRvIGFwcGx5IHRoZSBjb250ZXh0IHRvLlxuICAgKi9cbiAgYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KSB7XG4gICAgaWYgKHdpZGdldC5jb25maWcuZGV2aWNlKSB7XG4gICAgICB3aWRnZXQuY29uZmlnLmRldmljZSA9IHsgaWQ6IHRoaXMuY29udGV4dC5pZCwgbmFtZTogdGhpcy5jb250ZXh0Lm5hbWUgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgcm91dGUgbGlzdGVuZXIuXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3ViKSB7XG4gICAgICB0aGlzLmRhdGFTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIGRhc2hib2FyZCB3aWRnZXRzIHRvIHRoZSBkZWZhdWx0IHdpZGdldHMuXG4gICAqL1xuICBhc3luYyByZXN0b3JlKCkge1xuICAgIGNvbnN0IG1lc2cgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gcmVzZXQgdGhpcyBkYXNoYm9hcmQuIEFsbCBjaGFuZ2VzIHRvIHRoZSBkYXNoYm9hcmQgd2lsbCBnZXQgbG9zdCBhbmQgY2Fubm90IGJlIHJlY292ZXJlZC4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsLmNvbmZpcm0oZ2V0dGV4dCgnUmVzZXQgZGFzaGJvYXJkJyksIG1lc2csIFN0YXR1cy5XQVJOSU5HLCB7XG4gICAgICAgIG9rOiBnZXR0ZXh0KCdSZXNldGBkYXNoYm9hcmRgJyksXG4gICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLm1hcFdpZGdldHModGhpcy5kZWZhdWx0V2lkZ2V0cyk7XG4gICAgICBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZSh0aGlzLm1vKTtcbiAgICAgIGF3YWl0IHRoaXMub25Mb2FkKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFsbCBkYXNoYm9hcmRzIGNoaWxkcmVuJ3MuIFVzZWZ1bCBmb3IgcG9zaXRpb24gY2hhbmdlcyBvbiB0aGUgZGFzaGJvYXJkLlxuICAgKiBAcGFyYW0gY2hpbGQgVGhlIGNoaWxkIHRvIGNoYW5nZS5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkOiBEYXNoYm9hcmRDaGlsZENoYW5nZSB8IERhc2hib2FyZENoYW5nZSkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IGNoaWxkO1xuICAgIGNvbnN0IGRhc2hib2FyZE1POiBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCA9IHRoaXMubW87XG4gICAgY29uc3QgbWFwcGVkQ2hpbGRyZW46IHsgW2lkOiBzdHJpbmddOiBXaWRnZXQgfSA9IGtleUJ5KFxuICAgICAgY2hpbGRyZW4ubWFwKGMgPT4gdGhpcy5jb21wb25lbnRUb1dpZGdldChjKSksXG4gICAgICAnaWQnXG4gICAgKTtcbiAgICBkYXNoYm9hcmRNTy5jOHlfRGFzaGJvYXJkLmNoaWxkcmVuID0gbWFwcGVkQ2hpbGRyZW47XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlKGRhc2hib2FyZE1PKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3BpZXMgdGhlIGRhc2hib2FyZCBhbmQgY3VycmVudCBjb250ZXh0IHRvIGEgY2xpcGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgY29weURhc2hib2FyZCgpIHtcbiAgICBjb25zdCB2aWV3Q29udGV4dCA9IHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGE/LmNvbnRleHQ7XG4gICAgaWYgKHRoaXMuY2FuQ29weURhc2hib2FyZCh2aWV3Q29udGV4dCkpIHtcbiAgICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuY29weUNsaXBib2FyZCA9IHtcbiAgICAgICAgZGFzaGJvYXJkOiBjbG9uZURlZXAodGhpcy5tby5jOHlfRGFzaGJvYXJkKSxcbiAgICAgICAgY29udGV4dDogY2xvbmVEZWVwKHtcbiAgICAgICAgICBjb250ZXh0OiB2aWV3Q29udGV4dCxcbiAgICAgICAgICBjb250ZXh0RGF0YTogdGhpcy5jb250ZXh0XG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgICBpZiAodmlld0NvbnRleHQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgICBjb25zdCBtc2cgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnRGFzaGJvYXJkIGNvcGllZC4gTmF2aWdhdGUgdG8gdGhlIGRlc2lyZWQge3sgY3R4IH19IGFuZCBzZWxlY3QgXCJQYXN0ZSBkYXNoYm9hcmRcIicsXG4gICAgICAgICAgeyBjdHggfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MobXNnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9uQmFyU2VydmljZS5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgY29tcGxldGUgZGFzaGJvYXJkIGFuZCBuYXZpZ2F0ZSBhd2F5LlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRGFzaGJvYXJkKCkge1xuICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuZGVsZXRlKHRoaXMubW8pO1xuICAgIGlmICh0aGlzLnJvdXRlLnBhcmVudCkge1xuICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoKS5qb2luKCcvJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWRpdHMgdGhlIGN1cnJlbnQgZGFzaGJvYXJkXG4gICAqL1xuICBhc3luYyBlZGl0RGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IGlzUmVwb3J0ID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc1JlcG9ydCh0aGlzLm1vKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgaWNvbiwgcHJpb3JpdHksIGM4eV9Jc05hdmlnYXRvck5vZGUsIGRlc2NyaXB0aW9uIH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGFzaGJvYXJkLCB7IG5hbWUsIGljb24sIHByaW9yaXR5LCBjOHlfSXNOYXZpZ2F0b3JOb2RlLCBkZXNjcmlwdGlvbiB9KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgZGFzaGJvYXJkOiB0aGlzLmRhc2hib2FyZCxcbiAgICAgIGRldmljZVR5cGU6IHRoaXMuY29udGV4dC50eXBlLFxuICAgICAgaXNEZXZpY2VUeXBlOiB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSxcbiAgICAgIGlzTmFtZWREYXNoYm9hcmQ6IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuaXNOYW1lZCh0aGlzLm1vKSxcbiAgICAgIGlzUmVwb3J0XG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KERhc2hib2FyZERldGFpbENvbXBvbmVudCwge1xuICAgICAgY2xhc3M6ICdtb2RhbC1sZycsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgIH0pLmNvbnRlbnQgYXMgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXNoYm9hcmRNTyA9IGNsb25lRGVlcCh0aGlzLm1vKTtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IG1vZGFsLnJlc3VsdDtcbiAgICAgIGlmIChpc1JlcG9ydCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIGljb24sIGM4eV9Jc05hdmlnYXRvck5vZGUsIHByaW9yaXR5LCBkZXNjcmlwdGlvbiwgLi4uZGFzaGJvYXJkQ2ZnIH0gPSBjZmc7XG4gICAgICAgIGRhc2hib2FyZE1PLmM4eV9EYXNoYm9hcmQgPSBkYXNoYm9hcmRDZmc7XG4gICAgICAgIHRoaXMudXBkYXRlUmVwb3J0KHtcbiAgICAgICAgICBpZDogdGhpcy5jb250ZXh0LmlkLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlLFxuICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGFzaGJvYXJkTU8uYzh5X0Rhc2hib2FyZCA9IGNmZztcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUoZGFzaGJvYXJkTU8pO1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5yZWZyZXNoVGFicyhkYXNoYm9hcmRNTyk7XG4gICAgICB0aGlzLm9uTG9hZCgpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEZXZpY2VUeXBlRGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGFzaGJvYXJkPy5kZXZpY2VUeXBlICYmICEhdGhpcy5kYXNoYm9hcmQuZGV2aWNlVHlwZVZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIGEgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIHdpZGdldCBjaGFuZ2UgZXZlbnQuXG4gICAqL1xuICBhc3luYyBlZGl0V2lkZ2V0KGNoYW5nZTogV2lkZ2V0Q2hhbmdlKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBjaGFuZ2Uuc291cmNlO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGF3YWl0IHRoaXMud2lkZ2V0U2VydmljZS5nZXRXaWRnZXREZWZpbml0aW9uKFxuICAgICAgY2hhbmdlLndpZGdldC5uYW1lIHx8IGNoYW5nZS53aWRnZXQuY29tcG9uZW50SWRcbiAgICApO1xuICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFkZFdpZGdldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmFkZFdpZGdldCh7XG4gICAgICAuLi5jb21wb25lbnQsXG4gICAgICBkYXRhOiB7IC4uLmNvbXBvbmVudC5kYXRhLCAuLi5jaGFuZ2Uud2lkZ2V0LCBfeDogeCwgX3k6IHksIF93aWR0aDogd2lkdGgsIF9oZWlnaHQ6IGhlaWdodCB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdpZGdldCB0byB0aGUgZGFzaGJvYXJkLlxuICAgKiBAcGFyYW0gc2VsZWN0ZWQgRGVmaW5lIGEgc2VsZWN0ZWQgY29tcG9uZW50IHRvIHN3aXRjaCB0byBlZGl0IG1vZGUgZGlyZWN0bHkuXG4gICAqL1xuICBhc3luYyBhZGRXaWRnZXQoc2VsZWN0ZWQ/OiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHBhcnRpYWxDbG9uZVNlbGVjdGVkID0gc2VsZWN0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIC4uLnNlbGVjdGVkLFxuICAgICAgICAgIGRhdGE6IGNsb25lRGVlcChzZWxlY3RlZC5kYXRhKVxuICAgICAgICB9XG4gICAgICA6IHNlbGVjdGVkO1xuXG4gICAgY29uc3QgaW5pdGlhbFN0YXRlOiBQYXJ0aWFsPFdpZGdldENvbmZpZ0NvbXBvbmVudD4gPSB7XG4gICAgICBtbzogdGhpcy5tbyxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dC5jOHlfUmVwb3J0ID8ge30gOiB0aGlzLmNvbnRleHQsXG4gICAgICBzZWxlY3RlZDogcGFydGlhbENsb25lU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhXaWRnZXRDb25maWdDb21wb25lbnQsIHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtbGcnLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9KS5jb250ZW50IGFzIFdpZGdldENvbmZpZ0NvbXBvbmVudDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXdXaWRnZXQgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBpZiAoIXRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbltuZXdXaWRnZXQuaWRdID0gbmV3V2lkZ2V0O1xuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBuZXdXaWRnZXQuY2xhc3NlcyA9IHRoaXMubWVyZ2VXaWRnZXRDbGFzc2VzKG5ld1dpZGdldCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpZGdldChuZXdXaWRnZXQpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHdpZGdldCBvciBhZGRzIGEgbmV3IG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9uXG4gICAqIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSB3aWRnZXQgVGhlIG5ldyB3aWRnZXRcbiAgICovXG4gIGFzeW5jIHVwZGF0ZVdpZGdldCh3aWRnZXQpIHtcbiAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleCh0aGlzLndpZGdldHMsIHsgaWQ6IHdpZGdldC5pZCB9KTtcbiAgICBjb25zdCBpc05ldyA9IGluZGV4ID09PSAtMTtcbiAgICBjb25zdCBtYXBwZWRXaWRnZXQgPSBhd2FpdCB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICB0aGlzLndpZGdldHMucHVzaChtYXBwZWRXaWRnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpZGdldHMuc3BsaWNlKGluZGV4LCAxLCBtYXBwZWRXaWRnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgd2lkZ2V0IGFuZCByZWFycmFuZ2VzIHRoZSByZW1haW5pbmcgb25lc1xuICAgKiBpZiBuZWNlc3NhcnkuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIGNoYW5nZSBldmVudC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZVdpZGdldChjaGFuZ2U6IFdpZGdldENoYW5nZSkge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlID0gY2hhbmdlLndpZGdldC50aXRsZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdSZW1vdmUgd2lkZ2V0JyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoXG4gICAgICAgICAgICAnWW91IGFyZSBhYm91dCB0byByZW1vdmUgd2lkZ2V0IFwie3sgd2lkZ2V0VGl0bGUgfX1cIiBmcm9tIHlvdXIgZGFzaGJvYXJkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICAgICAgICApLFxuICAgICAgICAgIHsgd2lkZ2V0VGl0bGUgfVxuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBvbiBjYW5jZWw6IGRvIG5vdGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB3aWRnZXQsIHNvdXJjZSB9ID0gY2hhbmdlO1xuICAgICAgZGVsZXRlIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlblt3aWRnZXQuaWRdO1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMud2lkZ2V0cy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgdGhpcy53aWRnZXRzLnNwbGljZSh0aGlzLndpZGdldHMuaW5kZXhPZihyZW1vdmVkKSwgMSk7XG5cbiAgICAgIGNvbnN0IHsgZGFzaGJvYXJkIH0gPSBzb3VyY2U7XG4gICAgICBkYXNoYm9hcmQuY2hpbGRyZW4gPSBkYXNoYm9hcmQuY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5kYXRhLmlkICE9PSB3aWRnZXQuaWQpO1xuXG4gICAgICAvLyB1c2luZyBzZXRUaW1lb3V0IHRvIGdpdmUgdGhlIGNvbXBvbmVudCB0aGUgY2hhbmNlIHRvIHJlbW92ZSBpdC5cbiAgICAgIGNvbnN0IHNsZWVwID0gdGltZW91dCA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dCkpO1xuICAgICAgYXdhaXQgc2xlZXAoMCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHNvdXJjZSk7XG4gICAgICBjaGlsZC5jb2xsYXBzZVVwQWxsKCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBkcmFnZ2VkLWVsZW1lbnRcbiAgICogKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBib2R5KSBoYXMgdGhlIHJpZ2h0IHN0eWxpbmcuXG4gICAqL1xuICBhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBlbnN1cmUgdGhhdCB0aGUgZHJhZ2dlZC1lbGVtZW50XG4gICAqICh3aGljaCBpcyBhdHRhY2hlZCB0byB0aGUgYm9keSkgaGFzIHRoZSByaWdodCBzdHlsaW5nLlxuICAgKi9cbiAgcmVtb3ZlRGFzaGJvYXJkQ2xhc3NGcm9tQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBkYXNoYm9hcmQgc2V0dGluZ3MgdG8gZnJvemVuIG9yIHZpY2UgdmVyc2EuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgdG9nZ2xlRnJlZXplKHNldHRpbmdzOiBEYXNoYm9hcmRTZXR0aW5ncykge1xuICAgIHRoaXMudG9nZ2xlSXNGcm96ZW5GbGFnKHNldHRpbmdzKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBpZiAodGhpcy5kYXNoYm9hcmQuaXNGcm96ZW4pIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIGxvY2tlZCBub3cuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIHVubG9ja2VkIG5vdy4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB0aGlzLnRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZXBvcnQobW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+KSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkudXBkYXRlKG1vKTtcbiAgICB0aGlzLmNvbnRleHQgPSByZXMuZGF0YTtcbiAgICBpZiAodGhpcy5yb3V0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGEuY29udGV4dERhdGEgPSB0aGlzLmNvbnRleHQ7XG4gICAgfVxuICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlTmF2aWdhdG9ySXRlbShyZXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MpIHtcbiAgICBzZXR0aW5ncy5pc0Zyb3plbiA9ICFzZXR0aW5ncy5pc0Zyb3plbjtcbiAgICB0aGlzLmRhc2hib2FyZC5pc0Zyb3plbiA9IHNldHRpbmdzLmlzRnJvemVuO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ29udGV4dERhc2hib2FyZCgpIHtcbiAgICB0aGlzLmRhdGFTdWIgPSB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKCh7IGRhc2hib2FyZCB9KSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhLmNvbnRleHREYXRhO1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dD8ubmFtZTtcbiAgICAgIHRoaXMubW8gPSBkYXNoYm9hcmQ7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IHRoaXMubW8uYzh5X0Rhc2hib2FyZDtcbiAgICAgIHRoaXMub25Mb2FkKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmFtZWREYXNoYm9hcmQoKSB7XG4gICAgdGhpcy5kYXRhU3ViID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZVxuICAgICAgLmdldE5hbWVkRGFzaGJvYXJkT3JDcmVhdGUodGhpcy5uYW1lLCB0aGlzLmRlZmF1bHRXaWRnZXRzLCB0aGlzLmNvbnRleHQpXG4gICAgICAuc3Vic2NyaWJlKG1vID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jb250ZXh0IHx8IHt9O1xuICAgICAgICB0aGlzLm1vID0gbW87XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkID0gdGhpcy5tby5jOHlfRGFzaGJvYXJkO1xuICAgICAgICB0aGlzLm9uTG9hZCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxvYWQodHJhY2tFeHBlcmllbmNlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGNhbkVkaXREYXNoYm9hcmQgPSBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmNhbkVkaXREYXNoYm9hcmQodGhpcy5tbyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9ICFjYW5FZGl0RGFzaGJvYXJkO1xuICAgIHRoaXMuY2FuQ29weSA9XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlRGFzaGJvYXJkKHRoaXMubW8pIHx8XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSB8fFxuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0dyb3VwRGFzaGJvYXJkKHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENoaWxkcmVuID0gY2xvbmVEZWVwKHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbik7XG4gICAgY29uc3QgaXNEZXZpY2VUeXBlID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0RldmljZVR5cGUodGhpcy5tbyk7XG4gICAgY29uc3QgaXNSZXBvcnQgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzUmVwb3J0KHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENsYXNzZXMgPSB7XG4gICAgICAnYzh5LWdyaWQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgIGRhc2hib2FyZDogdHJ1ZSxcbiAgICAgIC4uLnRoaXMuZGFzaGJvYXJkLmNsYXNzZXNcbiAgICB9O1xuXG4gICAgdGhpcy53aWRnZXRzID0gYXdhaXQgUHJvbWlzZS5hbGw8V2lkZ2V0PihcbiAgICAgIHZhbHVlcyhkYXNoYm9hcmRDaGlsZHJlbikubWFwKHdpZGdldCA9PiB7XG4gICAgICAgIHdpZGdldC5jbGFzc2VzID0gdGhpcy5tZXJnZVdpZGdldENsYXNzZXMod2lkZ2V0KTtcbiAgICAgICAgaWYgKGlzRGV2aWNlVHlwZSkge1xuICAgICAgICAgIHRoaXMuYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhY2tFeHBlcmllbmNlKSB7XG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnbG9hZFdpZGdldCcsIHtcbiAgICAgICAgICAgIHdpZGdldE5hbWU6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jbGFzcyA9IE9iamVjdC5rZXlzKGRhc2hib2FyZENsYXNzZXMpLmpvaW4oJyAnKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIHRoaXMuYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0KSB7XG4gICAgY29uc3QgaGFzSGVhZGVyQ2xhc3MgPSBXSURHRVRfSEVBREVSX0NMQVNTRVMuZmluZChcbiAgICAgIGVsID0+IHdpZGdldC5jbGFzc2VzICYmIHdpZGdldC5jbGFzc2VzW2VsLmNsYXNzXVxuICAgICk7XG4gICAgY29uc3Qgd2lkZ2V0Q2xhc3NlcyA9IGhhc0hlYWRlckNsYXNzXG4gICAgICA/IHsgLi4ud2lkZ2V0LmNsYXNzZXMgfVxuICAgICAgOiB7IC4uLnRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXMsIC4uLndpZGdldC5jbGFzc2VzIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcmQ6IHRydWUsXG4gICAgICAnY2FyZC1kYXNoYm9hcmQnOiB0cnVlLFxuICAgICAgW2tlYmFiQ2FzZSh3aWRnZXQuY29tcG9uZW50SWQgfHwgd2lkZ2V0Lm5hbWUpXTogdHJ1ZSxcbiAgICAgIC4uLndpZGdldENsYXNzZXNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRUb1dpZGdldChjaGlsZDogRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub21pdChjaGlsZC5kYXRhLCBbJ2NvbXBvbmVudFRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0JywgJ3RyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0J10pLCAvLyByZW1vdmUgbGVnYWN5XG4gICAgICAuLi4oe1xuICAgICAgICBfeDogY2hpbGQueCxcbiAgICAgICAgX3k6IGNoaWxkLnksXG4gICAgICAgIF93aWR0aDogY2hpbGQud2lkdGgsXG4gICAgICAgIF9oZWlnaHQ6IGNoaWxkLmhlaWdodFxuICAgICAgfSBhcyBXaWRnZXQpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXRUaXRsZSA9IHRydWU7XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dC5uYW1lO1xuICAgIHRoaXMuYnJlYWRjcnVtYlNldHRpbmdzID0ge1xuICAgICAgaWNvbjogJ3RoJyxcbiAgICAgIGxhYmVsOiAnUmVwb3J0cycsXG4gICAgICBwYXRoOiAncmVwb3J0cydcbiAgICB9O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkNvcHlEYXNoYm9hcmQodmlld0NvbnRleHQ6IFZpZXdDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKSAmJiB2aWV3Q29udGV4dCkge1xuICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdPbmx5IGRhc2hib2FyZHMgd2l0aCB3aWRnZXRzIHJlZmVyZW5jaW5nIHRoZSBjdXJyZW50IHt7IGN0eCB9fSBjYW4gYmUgY29waWVkLicsXG4gICAgICAgIHsgY3R4IH1cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0Lndhcm5pbmcobXNnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiwgY2hpbGQgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuY29uZmlnIHx8IHt9O1xuICAgICAgY29uc3QgZGF0YVBvaW50cyA9IGNvbmZpZy5kYXRhcG9pbnRzIHx8IFtdO1xuXG4gICAgICByZXR1cm4gIShcbiAgICAgICAgKGNvbmZpZy5kZXZpY2UgJiYgY29uZmlnLmRldmljZS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB8fFxuICAgICAgICBzb21lKGRhdGFQb2ludHMsIGRhdGFQb2ludCA9PiBkYXRhUG9pbnQuX190YXJnZXQuaWQgIT09IHRoaXMuY29udGV4dC5pZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7IHRpdGxlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbW9yZSdcIiAqbmdJZj1cImRlZmF1bHRXaWRnZXRzLmxlbmd0aCA+IDBcIj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1jbGVhblwiXG4gICAgcHgtZXZlbnQ9XCJSZXNldCBkYXNoYm9hcmRcIlxuICAgIChjbGljayk9XCJyZXN0b3JlKClcIlxuICAgIFtkaXNhYmxlZF09XCJkYXNoYm9hcmQ/LmlzRnJvemVuIHx8IGRpc2FibGVkXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJyZXNldFwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAge3sgJ1Jlc2V0IGRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktd2lkZ2V0cy1kYXNoYm9hcmRcbiAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gIFtjb250ZXh0RGFzaGJvYXJkXT1cImRhc2hib2FyZFwiXG4gIFt3aWRnZXRzXT1cIndpZGdldHNcIlxuICBbc2V0dGluZ3NdPVwie1xuICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgIGlzRnJvemVuOiBkYXNoYm9hcmQ/LmlzRnJvemVuLFxuICAgIGlzRGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGNhbkRlbGV0ZTogY2FuRGVsZXRlLFxuICAgIHRyYW5zbGF0ZVdpZGdldFRpdGxlOiBkYXNoYm9hcmQ/LnRyYW5zbGF0ZVdpZGdldFRpdGxlLFxuICAgIGFsbG93RnVsbHNjcmVlbjogbW9kdWxlQ29uZmlnLmFsbG93RnVsbHNjcmVlbixcbiAgICB0aXRsZTogc2V0VGl0bGUgPyBkYXNoYm9hcmQubmFtZSB8fCB0aXRsZSA6IHVuZGVmaW5lZCxcbiAgICB3aWRnZXRNYXJnaW46IGRhc2hib2FyZD8ud2lkZ2V0TWFyZ2luLFxuICAgIGNhbkNvcHk6IGNhbkNvcHlcbiAgfVwiXG4gIFticmVhZGNydW1iXT1cImJyZWFkY3J1bWJTZXR0aW5nc1wiXG4gIChvbkZyZWV6ZSk9XCJ0b2dnbGVGcmVlemUoJGV2ZW50KVwiXG4gIChvbkNoYW5nZURhc2hib2FyZCk9XCJ1cGRhdGVEYXNoYm9hcmRDaGlsZHJlbigkZXZlbnQpXCJcbiAgKG9uQWRkV2lkZ2V0KT1cImFkZFdpZGdldCgpXCJcbiAgKG9uRWRpdFdpZGdldCk9XCJlZGl0V2lkZ2V0KCRldmVudClcIlxuICAob25EZWxldGVXaWRnZXQpPVwiZGVsZXRlV2lkZ2V0KCRldmVudClcIlxuICAob25DaGFuZ2VTdGFydCk9XCJhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpXCJcbiAgKG9uQ2hhbmdlRW5kKT1cInJlbW92ZURhc2hib2FyZENsYXNzRnJvbUJvZHkoKVwiXG4gIChvbkVkaXREYXNoYm9hcmQpPVwiZWRpdERhc2hib2FyZCgpXCJcbiAgKG9uQ29weURhc2hib2FyZCk9XCJjb3B5RGFzaGJvYXJkKClcIlxuICAob25EZWxldGVEYXNoYm9hcmQpPVwiZGVsZXRlRGFzaGJvYXJkKClcIlxuPjwvYzh5LXdpZGdldHMtZGFzaGJvYXJkPlxuIl19
|
|
490
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vY29udGV4dC1kYXNoYm9hcmQvY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixZQUFZLEVBR1osb0JBQW9CLEVBSXBCLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFJUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBSUwsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFB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LENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ3pFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQXhmVSx5QkFBeUIsa0tBc0MxQix3QkFBd0I7MEdBdEN2Qix5QkFBeUIsNmRDbkR0QyxzZ0RBOENBOzJGREthLHlCQUF5QjtrQkFWckMsU0FBUzsrQkFDRSx1QkFBdUIsUUFFM0I7d0JBQ0osS0FBSyxFQUFFOztLQUVOO3dCQUNELEtBQUssRUFBRSw4QkFBOEI7cUJBQ3RDOzswQkF3Q0UsTUFBTTsyQkFBQyx3QkFBd0I7NFBBcENsQyxJQUFJO3NCQURILEtBQUs7Z0JBR04sZUFBZTtzQkFEZCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sU0FBUztzQkFEUixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sS0FBSztzQkFESixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFjdGlvbkJhclNlcnZpY2UsXG4gIEFsZXJ0U2VydmljZSxcbiAgQnJlYWRjcnVtYkl0ZW0sXG4gIERhc2hib2FyZENoYW5nZSxcbiAgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UsXG4gIERhc2hib2FyZENoaWxkQ29tcG9uZW50LFxuICBEYXNoYm9hcmRTZXR0aW5ncyxcbiAgRHluYW1pY0NvbXBvbmVudERlZmluaXRpb24sXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIE1vZGFsU2VydmljZSxcbiAgU3RhdHVzLFxuICBWaWV3Q29udGV4dCxcbiAgV2lkZ2V0LFxuICBXaWRnZXRDaGFuZ2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGZpbmRJbmRleCwga2V5QnksIG9taXQsIHZhbHVlcywgc29tZSwga2ViYWJDYXNlLCBldmVyeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDb250ZXh0RGFzaGJvYXJkLFxuICBDb250ZXh0RGFzaGJvYXJkQ29uZmlnLFxuICBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCxcbiAgQ09OVEVYVF9EQVNIQk9BUkRfQ09ORklHLFxuICBXSURHRVRfSEVBREVSX0NMQVNTRVNcbn0gZnJvbSAnLi9jb250ZXh0LWRhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBDb250ZXh0RGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vY29udGV4dC1kYXNoYm9hcmQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZGFzaGJvYXJkIGlzIGEgZGFzaGJvYXJkIHdoaWNoIHJlc29sdmVzIGl0IGRhdGEgZnJvbSB0aGUgY3VycmVudCBjb250ZXh0IChkZXZpY2Ugb3IgZ3JvdXApXG4gKiBpdCBpcyBkaXNwbGF5ZWQgb24uIEl0IHVzdWFsbHkgdXNlcyB0aGUgcm91dGUuZGF0YSBmb3IgaXQsIGJ1dCB5b3UgY2FuIHBhc3NcbiAqIGEgZGlmZmVyZW50IG1hbmFnZWRPYmplY3QgdG8gdGhlIFttb10gaW5wdXQgcGFyYW1ldGVyIHRvIGNoYW5nZSB0aGF0IGJlaGF2aW9yLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY29udGV4dC1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgc3R5bGU6IGBcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGAsXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQgYzh5LWdyaWQtZGFzaGJvYXJkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHREYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgY2hpbGRyZW5DbGFzc2VzID0gJyc7XG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcbiAgQElucHV0KClcbiAgc2V0VGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZGVmYXVsdFdpZGdldHM6IFdpZGdldFtdID0gW107XG4gIEBJbnB1dCgpXG4gIGNhbkNvcHk6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBjYW5EZWxldGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBicmVhZGNydW1iU2V0dGluZ3M6IEJyZWFkY3J1bWJJdGVtO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBjbGFzcyA9ICcnO1xuXG4gIHdpZGdldHM6IFdpZGdldFtdID0gW107XG4gIG1vOiBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdDtcbiAgZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkO1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgZGF0YVN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjb250ZXh0RGFzaGJvYXJkU2VydmljZTogQ29udGV4dERhc2hib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KENPTlRFWFRfREFTSEJPQVJEX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogQ29udGV4dERhc2hib2FyZENvbmZpZyxcbiAgICBwcml2YXRlIHdpZGdldFNlcnZpY2U6IFdpZGdldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25CYXJTZXJ2aWNlOiBBY3Rpb25CYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsOiBNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICB0aGlzLmxvYWRDb250ZXh0RGFzaGJvYXJkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubG9hZE5hbWVkRGFzaGJvYXJkKCk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgY3VycmVudCBjb250ZXh0IHRvIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHdpZGdldCBUaGUgd2lkZ2V0IHRvIGFwcGx5IHRoZSBjb250ZXh0IHRvLlxuICAgKi9cbiAgYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KSB7XG4gICAgaWYgKHdpZGdldC5jb25maWcuZGV2aWNlKSB7XG4gICAgICB3aWRnZXQuY29uZmlnLmRldmljZSA9IHsgaWQ6IHRoaXMuY29udGV4dC5pZCwgbmFtZTogdGhpcy5jb250ZXh0Lm5hbWUgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgcm91dGUgbGlzdGVuZXIuXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3ViKSB7XG4gICAgICB0aGlzLmRhdGFTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIGRhc2hib2FyZCB3aWRnZXRzIHRvIHRoZSBkZWZhdWx0IHdpZGdldHMuXG4gICAqL1xuICBhc3luYyByZXN0b3JlKCkge1xuICAgIGNvbnN0IG1lc2cgPSBnZXR0ZXh0KFxuICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gcmVzZXQgdGhpcyBkYXNoYm9hcmQuIEFsbCBjaGFuZ2VzIHRvIHRoZSBkYXNoYm9hcmQgd2lsbCBnZXQgbG9zdCBhbmQgY2Fubm90IGJlIHJlY292ZXJlZC4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm1vZGFsLmNvbmZpcm0oZ2V0dGV4dCgnUmVzZXQgZGFzaGJvYXJkJyksIG1lc2csIFN0YXR1cy5XQVJOSU5HLCB7XG4gICAgICAgIG9rOiBnZXR0ZXh0KCdSZXNldGBkYXNoYm9hcmRgJyksXG4gICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLm1hcFdpZGdldHModGhpcy5kZWZhdWx0V2lkZ2V0cyk7XG4gICAgICBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZSh0aGlzLm1vKTtcbiAgICAgIGF3YWl0IHRoaXMub25Mb2FkKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGFsbCBkYXNoYm9hcmRzIGNoaWxkcmVuJ3MuIFVzZWZ1bCBmb3IgcG9zaXRpb24gY2hhbmdlcyBvbiB0aGUgZGFzaGJvYXJkLlxuICAgKiBAcGFyYW0gY2hpbGQgVGhlIGNoaWxkIHRvIGNoYW5nZS5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkOiBEYXNoYm9hcmRDaGlsZENoYW5nZSB8IERhc2hib2FyZENoYW5nZSkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IGNoaWxkO1xuICAgIGNvbnN0IGRhc2hib2FyZE1POiBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCA9IHRoaXMubW87XG4gICAgY29uc3QgbWFwcGVkQ2hpbGRyZW46IHsgW2lkOiBzdHJpbmddOiBXaWRnZXQgfSA9IGtleUJ5KFxuICAgICAgY2hpbGRyZW4ubWFwKGMgPT4gdGhpcy5jb21wb25lbnRUb1dpZGdldChjKSksXG4gICAgICAnaWQnXG4gICAgKTtcbiAgICBkYXNoYm9hcmRNTy5jOHlfRGFzaGJvYXJkLmNoaWxkcmVuID0gbWFwcGVkQ2hpbGRyZW47XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlKGRhc2hib2FyZE1PKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3BpZXMgdGhlIGRhc2hib2FyZCBhbmQgY3VycmVudCBjb250ZXh0IHRvIGEgY2xpcGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgY29weURhc2hib2FyZCgpIHtcbiAgICBjb25zdCB2aWV3Q29udGV4dCA9IHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGE/LmNvbnRleHQ7XG4gICAgaWYgKHRoaXMuY2FuQ29weURhc2hib2FyZCh2aWV3Q29udGV4dCkpIHtcbiAgICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuY29weUNsaXBib2FyZCA9IHtcbiAgICAgICAgZGFzaGJvYXJkOiBjbG9uZURlZXAodGhpcy5tby5jOHlfRGFzaGJvYXJkKSxcbiAgICAgICAgY29udGV4dDogY2xvbmVEZWVwKHtcbiAgICAgICAgICBjb250ZXh0OiB2aWV3Q29udGV4dCxcbiAgICAgICAgICBjb250ZXh0RGF0YTogdGhpcy5jb250ZXh0XG4gICAgICAgIH0pXG4gICAgICB9O1xuXG4gICAgICBpZiAodmlld0NvbnRleHQpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgICBjb25zdCBtc2cgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAnRGFzaGJvYXJkIGNvcGllZC4gTmF2aWdhdGUgdG8gdGhlIGRlc2lyZWQge3sgY3R4IH19IGFuZCBzZWxlY3QgXCJQYXN0ZSBkYXNoYm9hcmRcIicsXG4gICAgICAgICAgeyBjdHggfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MobXNnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9uQmFyU2VydmljZS5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgY29tcGxldGUgZGFzaGJvYXJkIGFuZCBuYXZpZ2F0ZSBhd2F5LlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRGFzaGJvYXJkKCkge1xuICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuZGVsZXRlKHRoaXMubW8pO1xuICAgIGlmICh0aGlzLnJvdXRlLnBhcmVudCkge1xuICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC51cmwubWFwKHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoKS5qb2luKCcvJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRWRpdHMgdGhlIGN1cnJlbnQgZGFzaGJvYXJkXG4gICAqL1xuICBhc3luYyBlZGl0RGFzaGJvYXJkKCkge1xuICAgIGNvbnN0IGlzUmVwb3J0ID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc1JlcG9ydCh0aGlzLm1vKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgaWNvbiwgcHJpb3JpdHksIGM4eV9Jc05hdmlnYXRvck5vZGUsIGRlc2NyaXB0aW9uIH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZGFzaGJvYXJkLCB7IG5hbWUsIGljb24sIHByaW9yaXR5LCBjOHlfSXNOYXZpZ2F0b3JOb2RlLCBkZXNjcmlwdGlvbiB9KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgZGFzaGJvYXJkOiB0aGlzLmRhc2hib2FyZCxcbiAgICAgIGRldmljZVR5cGU6IHRoaXMuY29udGV4dC50eXBlLFxuICAgICAgaXNEZXZpY2VUeXBlOiB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSxcbiAgICAgIGlzTmFtZWREYXNoYm9hcmQ6IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuaXNOYW1lZCh0aGlzLm1vKSxcbiAgICAgIGlzUmVwb3J0XG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KERhc2hib2FyZERldGFpbENvbXBvbmVudCwge1xuICAgICAgY2xhc3M6ICdtb2RhbC1sZycsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgIH0pLmNvbnRlbnQgYXMgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXNoYm9hcmRNTyA9IGNsb25lRGVlcCh0aGlzLm1vKTtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IG1vZGFsLnJlc3VsdDtcbiAgICAgIGlmIChpc1JlcG9ydCkge1xuICAgICAgICBjb25zdCB7IG5hbWUsIGljb24sIGM4eV9Jc05hdmlnYXRvck5vZGUsIHByaW9yaXR5LCBkZXNjcmlwdGlvbiwgLi4uZGFzaGJvYXJkQ2ZnIH0gPSBjZmc7XG4gICAgICAgIGRhc2hib2FyZE1PLmM4eV9EYXNoYm9hcmQgPSBkYXNoYm9hcmRDZmc7XG4gICAgICAgIHRoaXMudXBkYXRlUmVwb3J0KHtcbiAgICAgICAgICBpZDogdGhpcy5jb250ZXh0LmlkLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlLFxuICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGFzaGJvYXJkTU8uYzh5X0Rhc2hib2FyZCA9IGNmZztcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUoZGFzaGJvYXJkTU8pO1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5yZWZyZXNoVGFicyhkYXNoYm9hcmRNTyk7XG4gICAgICB0aGlzLm9uTG9hZCgpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEZXZpY2VUeXBlRGFzaGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGFzaGJvYXJkPy5kZXZpY2VUeXBlICYmICEhdGhpcy5kYXNoYm9hcmQuZGV2aWNlVHlwZVZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIGEgd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIHdpZGdldCBjaGFuZ2UgZXZlbnQuXG4gICAqL1xuICBhc3luYyBlZGl0V2lkZ2V0KGNoYW5nZTogV2lkZ2V0Q2hhbmdlKSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBjaGFuZ2Uuc291cmNlO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IGF3YWl0IHRoaXMud2lkZ2V0U2VydmljZS5nZXRXaWRnZXREZWZpbml0aW9uKFxuICAgICAgY2hhbmdlLndpZGdldC5uYW1lIHx8IGNoYW5nZS53aWRnZXQuY29tcG9uZW50SWRcbiAgICApO1xuICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICB0aGlzLmFkZFdpZGdldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmFkZFdpZGdldCh7XG4gICAgICAuLi5jb21wb25lbnQsXG4gICAgICBkYXRhOiB7IC4uLmNvbXBvbmVudC5kYXRhLCAuLi5jaGFuZ2Uud2lkZ2V0LCBfeDogeCwgX3k6IHksIF93aWR0aDogd2lkdGgsIF9oZWlnaHQ6IGhlaWdodCB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHdpZGdldCB0byB0aGUgZGFzaGJvYXJkLlxuICAgKiBAcGFyYW0gc2VsZWN0ZWQgRGVmaW5lIGEgc2VsZWN0ZWQgY29tcG9uZW50IHRvIHN3aXRjaCB0byBlZGl0IG1vZGUgZGlyZWN0bHkuXG4gICAqL1xuICBhc3luYyBhZGRXaWRnZXQoc2VsZWN0ZWQ/OiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHBhcnRpYWxDbG9uZVNlbGVjdGVkID0gc2VsZWN0ZWRcbiAgICAgID8ge1xuICAgICAgICAgIC4uLnNlbGVjdGVkLFxuICAgICAgICAgIGRhdGE6IGNsb25lRGVlcChzZWxlY3RlZC5kYXRhKVxuICAgICAgICB9XG4gICAgICA6IHNlbGVjdGVkO1xuXG4gICAgY29uc3QgaW5pdGlhbFN0YXRlOiBQYXJ0aWFsPFdpZGdldENvbmZpZ0NvbXBvbmVudD4gPSB7XG4gICAgICBtbzogdGhpcy5tbyxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dC5jOHlfUmVwb3J0ID8ge30gOiB0aGlzLmNvbnRleHQsXG4gICAgICBzZWxlY3RlZDogcGFydGlhbENsb25lU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLmJzTW9kYWwuc2hvdyhXaWRnZXRDb25maWdDb21wb25lbnQsIHtcbiAgICAgIGNsYXNzOiAnbW9kYWwtbGcnLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9KS5jb250ZW50IGFzIFdpZGdldENvbmZpZ0NvbXBvbmVudDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXdXaWRnZXQgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBpZiAoIXRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLm1vLmM4eV9EYXNoYm9hcmQuY2hpbGRyZW4gPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbltuZXdXaWRnZXQuaWRdID0gbmV3V2lkZ2V0O1xuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBuZXdXaWRnZXQuY2xhc3NlcyA9IHRoaXMubWVyZ2VXaWRnZXRDbGFzc2VzKG5ld1dpZGdldCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpZGdldChuZXdXaWRnZXQpO1xuICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gaW50ZW5kZWQgZW1wdHlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhIHdpZGdldCBvciBhZGRzIGEgbmV3IG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9uXG4gICAqIHRoZSBkYXNoYm9hcmQuXG4gICAqIEBwYXJhbSB3aWRnZXQgVGhlIG5ldyB3aWRnZXRcbiAgICovXG4gIGFzeW5jIHVwZGF0ZVdpZGdldCh3aWRnZXQpIHtcbiAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleCh0aGlzLndpZGdldHMsIHsgaWQ6IHdpZGdldC5pZCB9KTtcbiAgICBjb25zdCBpc05ldyA9IGluZGV4ID09PSAtMTtcbiAgICBjb25zdCBtYXBwZWRXaWRnZXQgPSBhd2FpdCB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICB0aGlzLndpZGdldHMucHVzaChtYXBwZWRXaWRnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndpZGdldHMuc3BsaWNlKGluZGV4LCAxLCBtYXBwZWRXaWRnZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgd2lkZ2V0IGFuZCByZWFycmFuZ2VzIHRoZSByZW1haW5pbmcgb25lc1xuICAgKiBpZiBuZWNlc3NhcnkuXG4gICAqIEBwYXJhbSBjaGFuZ2UgVGhlIGNoYW5nZSBldmVudC5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZVdpZGdldChjaGFuZ2U6IFdpZGdldENoYW5nZSkge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlID0gY2hhbmdlLndpZGdldC50aXRsZTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdSZW1vdmUgd2lkZ2V0JyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgIGdldHRleHQoXG4gICAgICAgICAgICAnWW91IGFyZSBhYm91dCB0byByZW1vdmUgd2lkZ2V0IFwie3sgd2lkZ2V0VGl0bGUgfX1cIiBmcm9tIHlvdXIgZGFzaGJvYXJkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPydcbiAgICAgICAgICApLFxuICAgICAgICAgIHsgd2lkZ2V0VGl0bGUgfVxuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBvbiBjYW5jZWw6IGRvIG5vdGhpbmdcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB3aWRnZXQsIHNvdXJjZSB9ID0gY2hhbmdlO1xuICAgICAgZGVsZXRlIHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlblt3aWRnZXQuaWRdO1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMud2lkZ2V0cy5maW5kKCh7IGlkIH0pID0+IGlkID09PSB3aWRnZXQuaWQpO1xuICAgICAgdGhpcy53aWRnZXRzLnNwbGljZSh0aGlzLndpZGdldHMuaW5kZXhPZihyZW1vdmVkKSwgMSk7XG5cbiAgICAgIGNvbnN0IHsgZGFzaGJvYXJkIH0gPSBzb3VyY2U7XG4gICAgICBkYXNoYm9hcmQuY2hpbGRyZW4gPSBkYXNoYm9hcmQuY2hpbGRyZW4uZmlsdGVyKGMgPT4gYy5kYXRhLmlkICE9PSB3aWRnZXQuaWQpO1xuXG4gICAgICAvLyB1c2luZyBzZXRUaW1lb3V0IHRvIGdpdmUgdGhlIGNvbXBvbmVudCB0aGUgY2hhbmNlIHRvIHJlbW92ZSBpdC5cbiAgICAgIGNvbnN0IHNsZWVwID0gdGltZW91dCA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZW91dCkpO1xuICAgICAgYXdhaXQgc2xlZXAoMCk7XG5cbiAgICAgIGNvbnN0IGNoaWxkID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHNvdXJjZSk7XG4gICAgICBjaGlsZC5jb2xsYXBzZVVwQWxsKCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZURhc2hib2FyZENoaWxkcmVuKGNoaWxkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGVuc3VyZSB0aGF0IHRoZSBkcmFnZ2VkLWVsZW1lbnRcbiAgICogKHdoaWNoIGlzIGF0dGFjaGVkIHRvIHRoZSBib2R5KSBoYXMgdGhlIHJpZ2h0IHN0eWxpbmcuXG4gICAqL1xuICBhZGREYXNoYm9hcmRDbGFzc1RvQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBlbnN1cmUgdGhhdCB0aGUgZHJhZ2dlZC1lbGVtZW50XG4gICAqICh3aGljaCBpcyBhdHRhY2hlZCB0byB0aGUgYm9keSkgaGFzIHRoZSByaWdodCBzdHlsaW5nLlxuICAgKi9cbiAgcmVtb3ZlRGFzaGJvYXJkQ2xhc3NGcm9tQm9keSgpIHtcbiAgICB0aGlzLmNsYXNzLnNwbGl0KCcgJykuZm9yRWFjaChjc3NDbGFzcyA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksIGNzc0NsYXNzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBkYXNoYm9hcmQgc2V0dGluZ3MgdG8gZnJvemVuIG9yIHZpY2UgdmVyc2EuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgZGFzaGJvYXJkLlxuICAgKi9cbiAgYXN5bmMgdG9nZ2xlRnJlZXplKHNldHRpbmdzOiBEYXNoYm9hcmRTZXR0aW5ncykge1xuICAgIHRoaXMudG9nZ2xlSXNGcm96ZW5GbGFnKHNldHRpbmdzKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS51cGRhdGUodGhpcy5tbyk7XG4gICAgICBpZiAodGhpcy5kYXNoYm9hcmQuaXNGcm96ZW4pIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIGxvY2tlZCBub3cuJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ1lvdXIgZGFzaGJvYXJkIGlzIHVubG9ja2VkIG5vdy4nKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB0aGlzLnRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVSZXBvcnQobW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+KSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkudXBkYXRlKG1vKTtcbiAgICB0aGlzLmNvbnRleHQgPSByZXMuZGF0YTtcbiAgICBpZiAodGhpcy5yb3V0ZS5wYXJlbnQpIHtcbiAgICAgIHRoaXMucm91dGUucGFyZW50LnNuYXBzaG90LmRhdGEuY29udGV4dERhdGEgPSB0aGlzLmNvbnRleHQ7XG4gICAgfVxuICAgIHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UudXBkYXRlTmF2aWdhdG9ySXRlbShyZXMuZGF0YSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlzRnJvemVuRmxhZyhzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MpIHtcbiAgICBzZXR0aW5ncy5pc0Zyb3plbiA9ICFzZXR0aW5ncy5pc0Zyb3plbjtcbiAgICB0aGlzLmRhc2hib2FyZC5pc0Zyb3plbiA9IHNldHRpbmdzLmlzRnJvemVuO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQ29udGV4dERhc2hib2FyZCgpIHtcbiAgICB0aGlzLmRhdGFTdWIgPSB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKCh7IGRhc2hib2FyZCB9KSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLnJvdXRlLnBhcmVudC5zbmFwc2hvdC5kYXRhLmNvbnRleHREYXRhO1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dD8ubmFtZTtcbiAgICAgIHRoaXMubW8gPSBkYXNoYm9hcmQ7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IHRoaXMubW8uYzh5X0Rhc2hib2FyZDtcbiAgICAgIHRoaXMub25Mb2FkKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTmFtZWREYXNoYm9hcmQoKSB7XG4gICAgdGhpcy5kYXRhU3ViID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZVxuICAgICAgLmdldE5hbWVkRGFzaGJvYXJkT3JDcmVhdGUodGhpcy5uYW1lLCB0aGlzLmRlZmF1bHRXaWRnZXRzLCB0aGlzLmNvbnRleHQpXG4gICAgICAuc3Vic2NyaWJlKG1vID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jb250ZXh0IHx8IHt9O1xuICAgICAgICB0aGlzLm1vID0gbW87XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkID0gdGhpcy5tby5jOHlfRGFzaGJvYXJkO1xuICAgICAgICB0aGlzLm9uTG9hZCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkxvYWQodHJhY2tFeHBlcmllbmNlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGNhbkVkaXREYXNoYm9hcmQgPSBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmNhbkVkaXREYXNoYm9hcmQodGhpcy5tbyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9ICFjYW5FZGl0RGFzaGJvYXJkO1xuICAgIHRoaXMuY2FuQ29weSA9XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlRGFzaGJvYXJkKHRoaXMubW8pIHx8XG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzRGV2aWNlVHlwZSh0aGlzLm1vKSB8fFxuICAgICAgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0dyb3VwRGFzaGJvYXJkKHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENoaWxkcmVuID0gY2xvbmVEZWVwKHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbik7XG4gICAgY29uc3QgaXNEZXZpY2VUeXBlID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5pc0RldmljZVR5cGUodGhpcy5tbyk7XG4gICAgY29uc3QgaXNSZXBvcnQgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmlzUmVwb3J0KHRoaXMubW8pO1xuICAgIGNvbnN0IGRhc2hib2FyZENsYXNzZXMgPSB7XG4gICAgICAnYzh5LWdyaWQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgIGRhc2hib2FyZDogdHJ1ZSxcbiAgICAgIC4uLnRoaXMuZGFzaGJvYXJkLmNsYXNzZXNcbiAgICB9O1xuXG4gICAgdGhpcy53aWRnZXRzID0gYXdhaXQgUHJvbWlzZS5hbGw8V2lkZ2V0PihcbiAgICAgIHZhbHVlcyhkYXNoYm9hcmRDaGlsZHJlbikubWFwKHdpZGdldCA9PiB7XG4gICAgICAgIHdpZGdldC5jbGFzc2VzID0gdGhpcy5tZXJnZVdpZGdldENsYXNzZXMod2lkZ2V0KTtcbiAgICAgICAgaWYgKGlzRGV2aWNlVHlwZSkge1xuICAgICAgICAgIHRoaXMuYXBwbHlEZXZpY2VUYXJnZXQod2lkZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHJhY2tFeHBlcmllbmNlKSB7XG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudCgnbG9hZFdpZGdldCcsIHtcbiAgICAgICAgICAgIHdpZGdldE5hbWU6IHdpZGdldC5jb21wb25lbnRJZCB8fCB3aWRnZXQubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFNlcnZpY2UubWFwTGVnYWN5KHdpZGdldCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5jbGFzcyA9IE9iamVjdC5rZXlzKGRhc2hib2FyZENsYXNzZXMpLmpvaW4oJyAnKTtcbiAgICBpZiAoaXNSZXBvcnQpIHtcbiAgICAgIHRoaXMuYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VXaWRnZXRDbGFzc2VzKHdpZGdldDogV2lkZ2V0KSB7XG4gICAgY29uc3QgaGFzSGVhZGVyQ2xhc3MgPSBXSURHRVRfSEVBREVSX0NMQVNTRVMuZmluZChcbiAgICAgIGVsID0+IHdpZGdldC5jbGFzc2VzICYmIHdpZGdldC5jbGFzc2VzW2VsLmNsYXNzXVxuICAgICk7XG4gICAgY29uc3Qgd2lkZ2V0Q2xhc3NlcyA9IGhhc0hlYWRlckNsYXNzXG4gICAgICA/IHsgLi4ud2lkZ2V0LmNsYXNzZXMgfVxuICAgICAgOiB7IC4uLnRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXMsIC4uLndpZGdldC5jbGFzc2VzIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcmQ6IHRydWUsXG4gICAgICAnY2FyZC1kYXNoYm9hcmQnOiB0cnVlLFxuICAgICAgW2tlYmFiQ2FzZSh3aWRnZXQuY29tcG9uZW50SWQgfHwgd2lkZ2V0Lm5hbWUpXTogdHJ1ZSxcbiAgICAgIC4uLndpZGdldENsYXNzZXNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRUb1dpZGdldChjaGlsZDogRGFzaGJvYXJkQ2hpbGRDb21wb25lbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub21pdChjaGlsZC5kYXRhLCBbJ2NvbXBvbmVudFRyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0JywgJ3RyYW5zZm9ybUNvbmZpZ1dpdGhDb250ZXh0J10pLCAvLyByZW1vdmUgbGVnYWN5XG4gICAgICAuLi4oe1xuICAgICAgICBfeDogY2hpbGQueCxcbiAgICAgICAgX3k6IGNoaWxkLnksXG4gICAgICAgIF93aWR0aDogY2hpbGQud2lkdGgsXG4gICAgICAgIF9oZWlnaHQ6IGNoaWxkLmhlaWdodFxuICAgICAgfSBhcyBXaWRnZXQpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVwb3J0RGFzaGJvYXJkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXRUaXRsZSA9IHRydWU7XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuY29udGV4dC5uYW1lO1xuICAgIHRoaXMuYnJlYWRjcnVtYlNldHRpbmdzID0ge1xuICAgICAgaWNvbjogJ3RoJyxcbiAgICAgIGxhYmVsOiAnUmVwb3J0cycsXG4gICAgICBwYXRoOiAncmVwb3J0cydcbiAgICB9O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNhbkNvcHlEYXNoYm9hcmQodmlld0NvbnRleHQ6IFZpZXdDb250ZXh0KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKSAmJiB2aWV3Q29udGV4dCkge1xuICAgICAgY29uc3QgY3R4ID0gdmlld0NvbnRleHQuc3BsaXQoJy8nKS5zaGlmdCgpO1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICdPbmx5IGRhc2hib2FyZHMgd2l0aCB3aWRnZXRzIHJlZmVyZW5jaW5nIHRoZSBjdXJyZW50IHt7IGN0eCB9fSBjYW4gYmUgY29waWVkLicsXG4gICAgICAgIHsgY3R4IH1cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0Lndhcm5pbmcobXNnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkRGFzaGJvYXJkQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZXJ5KHRoaXMubW8uYzh5X0Rhc2hib2FyZC5jaGlsZHJlbiwgY2hpbGQgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gY2hpbGQuY29uZmlnIHx8IHt9O1xuICAgICAgY29uc3QgZGF0YVBvaW50cyA9IGNvbmZpZy5kYXRhcG9pbnRzIHx8IFtdO1xuXG4gICAgICByZXR1cm4gIShcbiAgICAgICAgKGNvbmZpZy5kZXZpY2UgJiYgY29uZmlnLmRldmljZS5pZCAhPT0gdGhpcy5jb250ZXh0LmlkKSB8fFxuICAgICAgICBzb21lKGRhdGFQb2ludHMsIGRhdGFQb2ludCA9PiBkYXRhUG9pbnQuX190YXJnZXQuaWQgIT09IHRoaXMuY29udGV4dC5pZClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGUgKm5nSWY9XCJ0aXRsZVwiPlxuICB7eyB0aXRsZSB9fVxuPC9jOHktdGl0bGU+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ21vcmUnXCIgKm5nSWY9XCJkZWZhdWx0V2lkZ2V0cy5sZW5ndGggPiAwXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdSZXNldCBkYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBjbGFzcz1cImJ0biBidG4tY2xlYW5cIlxuICAgIHB4LWV2ZW50PVwiUmVzZXQgZGFzaGJvYXJkXCJcbiAgICAoY2xpY2spPVwicmVzdG9yZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGFzaGJvYXJkPy5pc0Zyb3plbiB8fCBkaXNhYmxlZFwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicmVzZXRcIiBjbGFzcz1cIm0tci00XCI+PC9pPlxuICAgIHt7ICdSZXNldCBkYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LXdpZGdldHMtZGFzaGJvYXJkXG4gIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICBbY29udGV4dERhc2hib2FyZF09XCJkYXNoYm9hcmRcIlxuICBbd2lkZ2V0c109XCJ3aWRnZXRzXCJcbiAgW3NldHRpbmdzXT1cIntcbiAgICBpc0xvYWRpbmc6IGlzTG9hZGluZyxcbiAgICBpc0Zyb3plbjogZGFzaGJvYXJkPy5pc0Zyb3plbixcbiAgICBpc0Rpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBjYW5EZWxldGU6IGNhbkRlbGV0ZSxcbiAgICB0cmFuc2xhdGVXaWRnZXRUaXRsZTogZGFzaGJvYXJkPy50cmFuc2xhdGVXaWRnZXRUaXRsZSxcbiAgICBhbGxvd0Z1bGxzY3JlZW46IG1vZHVsZUNvbmZpZy5hbGxvd0Z1bGxzY3JlZW4sXG4gICAgdGl0bGU6IHNldFRpdGxlID8gZGFzaGJvYXJkLm5hbWUgfHwgdGl0bGUgOiB1bmRlZmluZWQsXG4gICAgd2lkZ2V0TWFyZ2luOiBkYXNoYm9hcmQ/LndpZGdldE1hcmdpbixcbiAgICBjYW5Db3B5OiBjYW5Db3B5LFxuICAgIGNvbHVtbnM6IGRhc2hib2FyZD8uY29sdW1ucyB8fCAxMlxuICB9XCJcbiAgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYlNldHRpbmdzXCJcbiAgKG9uRnJlZXplKT1cInRvZ2dsZUZyZWV6ZSgkZXZlbnQpXCJcbiAgKG9uQ2hhbmdlRGFzaGJvYXJkKT1cInVwZGF0ZURhc2hib2FyZENoaWxkcmVuKCRldmVudClcIlxuICAob25BZGRXaWRnZXQpPVwiYWRkV2lkZ2V0KClcIlxuICAob25FZGl0V2lkZ2V0KT1cImVkaXRXaWRnZXQoJGV2ZW50KVwiXG4gIChvbkRlbGV0ZVdpZGdldCk9XCJkZWxldGVXaWRnZXQoJGV2ZW50KVwiXG4gIChvbkNoYW5nZVN0YXJ0KT1cImFkZERhc2hib2FyZENsYXNzVG9Cb2R5KClcIlxuICAob25DaGFuZ2VFbmQpPVwicmVtb3ZlRGFzaGJvYXJkQ2xhc3NGcm9tQm9keSgpXCJcbiAgKG9uRWRpdERhc2hib2FyZCk9XCJlZGl0RGFzaGJvYXJkKClcIlxuICAob25Db3B5RGFzaGJvYXJkKT1cImNvcHlEYXNoYm9hcmQoKVwiXG4gIChvbkRlbGV0ZURhc2hib2FyZCk9XCJkZWxldGVEYXNoYm9hcmQoKVwiXG4+PC9jOHktd2lkZ2V0cy1kYXNoYm9hcmQ+XG4iXX0=
|
|
@@ -89,4 +89,4 @@ export const DASHBOARD_THEME_CLASSES = [
|
|
|
89
89
|
];
|
|
90
90
|
export const STYLING_CLASS_PREFIXES = ['dashboard-theme-', 'panel-title-', 'panel-content-'];
|
|
91
91
|
export const ALL_GLOBAL_ROLES_SELECTED = 'all';
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb250ZXh0LWRhc2hib2FyZC9jb250ZXh0LWRhc2hib2FyZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFJTCxPQUFPLEVBRVIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBTSx3QkFBd0IsQ0FBQyxDQUFDO0FBMEcxRixNQUFNLENBQU4sSUFBWSxvQkFNWDtBQU5ELFdBQVksb0JBQW9CO0lBQzlCLHlDQUFpQixDQUFBO0lBQ2pCLDJDQUFtQixDQUFBO0lBQ25CLHVDQUFlLENBQUE7SUFDZixzQ0FBYyxDQUFBO0lBQ2QseUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0I7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQztRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDaEMsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLHNEQUFzRCxDQUFDO0tBQzdFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsc0VBQXNFLENBQUM7S0FDN0Y7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDaEMsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLHlDQUF5QyxDQUFDO0tBQ2hFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUM7S0FDeEQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEM7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3hDLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDOUIsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLDBFQUEwRSxDQUFDO0tBQ2pHO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMseUVBQXlFLENBQUM7S0FDaEc7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUM7UUFDcEMsS0FBSyxFQUFFLDJCQUEyQjtRQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLCtCQUErQixDQUFDO0tBQ3REO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ2hDLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztLQUN4RTtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQztRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDakMsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLHFEQUFxRCxDQUFDO0tBQzVFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM5QixLQUFLLEVBQUUsdUJBQXVCO1FBQzlCLFdBQVcsRUFBRSxPQUFPLENBQ2xCLDZFQUE2RSxDQUM5RTtLQUNGO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSxPQUFPLENBQ2xCLDRFQUE0RSxDQUM3RTtLQUNGO0lBQ0QsSUFBSTtJQUNKLDBDQUEwQztJQUMxQywwQ0FBMEM7SUFDMUMsMEJBQTBCO0lBQzFCLDRGQUE0RjtJQUM1RixNQUFNO0lBQ04sS0FBSztJQUNMO1FBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoQyxLQUFLLEVBQUUseUJBQXlCO1FBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsa0RBQWtELENBQUM7S0FDekU7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQVk3RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBXaWRnZXQsXG4gIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uLFxuICBSb3V0ZSxcbiAgZ2V0dGV4dCxcbiAgVmlld0NvbnRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBjb25zdCBDT05URVhUX0RBU0hCT0FSRF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignQ29udGV4dERhc2hib2FyZENvbmZpZycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHREYXNoYm9hcmRDb25maWcge1xuICB3aWRnZXRGaWx0ZXI/OiAoY29tcG9uZW50OiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbikgPT4gYm9vbGVhbjtcbiAgYWxsb3dGdWxsc2NyZWVuPzogYm9vbGVhbjtcbiAgcm91dGVzPzogUm91dGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0V2lkZ2V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgZGVmaW5lIGhvdyB0aGUgZGVmYXVsdCBjb25maWcgY29tcG9uZW50IGlzXG4gICAqIGRpc3BsYXllZC4gVGhleSBhcmUgc3RhdGljIGFuZCB3aWxsIG5vdCBiZSBzYXZlZC5cbiAgICovXG4gIHNldHRpbmdzPzoge1xuICAgIC8qKlxuICAgICAqIEF2b2lkcyB0byBzaG93IHRoZSB3aWRnZXQgaW4gdGhlIFwiYWRkIHdpZGdldFwiIG1vZGFsXG4gICAgICovXG4gICAgbm9OZXdXaWRnZXRzPzogYm9vbGVhbjtcbiAgICBuZzE/OiB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgdGhpcyB0byBmYWxzZSwgdG8gaGlkZSB0aGUgZGV2aWNlL2dyb3VwIHNlbGVjdG9yXG4gICAgICAgICAqIEBkZXByZWNhdGVkOiBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGluIGFuZ3VsYXJqcyBhbmQgd2lsbCBiZSBleHBvcnRlZCB0byBhIHNlcGFyYXRlIGNvbXBvbmVudC5cbiAgICAgICAgICovXG4gICAgICAgIG5vRGV2aWNlVGFyZ2V0PzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCB0aGlzIHRvIGZhbHNlIHRvIG9ubHkgc2VsZWN0IGRldmljZXNcbiAgICAgICAgICogQGRlcHJlY2F0ZWQ6IFRoaXMgaXMgY3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQgaW4gYW5ndWxhcmpzIGFuZCB3aWxsIGJlIGV4cG9ydGVkIHRvIGEgc2VwYXJhdGUgY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgZ3JvdXBzU2VsZWN0YWJsZT86IGJvb2xlYW47XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgY29udGV4dCBmcm9tIHRoZSBkZXZpY2Ugc2VsZWN0b3IuXG4gICAgICAgKi9cbiAgICAgIGNvbnRleHQ/OiB7XG4gICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgc2V0dGluZ3MgcGFzc2VkIHRvIHRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgYXJlIGluamVjdGVkIGluIGFueSBkaXNwbGF5aW5nIGNvbXBvbmVudC5cbiAgICovXG4gIGRpc3BsYXlTZXR0aW5ncz86IHtcbiAgICAvKipcbiAgICAgKiBJZiBlbmFibGVkIHRoZSB3aWRnZXQgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCB0aW1lIGNvbnRleHQuIFlvdSBjYW4gbGlzdGVuIHRvIG5nT25DaGFuZ2VzKCkgY2hhbmdlIGRldGVjdGlvblxuICAgICAqIHRvIHJlYWN0IHRvIGNoYW5nZXMgb24gdGhlIGNvbnRleHQuIFdoZW4gYSBtb3JlIGRldGFpbGVkIGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLCB1c2UgdGhlIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dD5cbiAgICAgKiBjb21wb25lbnQgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnbG9iYWxUaW1lQ29udGV4dD86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoYXRldmVyIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uZmlndXJhdGlvbiB3aGVuIGEgd2lkZ2V0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBjb25maWc/OiB7XG4gICAgLyoqXG4gICAgICogQW55IG90aGVyIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHN0b3JlZCBoZXJlLlxuICAgICAqL1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBkZXZpY2Ugb3IgZ3JvdXAgKG5vdGU6IG5hbWluZyBpcyBpbmNvbnNpc3RlbnQgYXMgZ3JvdXAgd2FzIGFkZGVkIGxhdGVyXG4gICAqIGJ1dCBtdXN0IHN0YXkgZm9yIGFscmVhZHkgaW1wbGVtZW50ZWQgd2lkZ2V0cylcbiAgICovXG4gIGRldmljZT86IHtcbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIEFueSBvdGhlciBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBzdG9yZWQgaGVyZS5cbiAgICovXG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCBleHRlbmRzIElNYW5hZ2VkT2JqZWN0IHtcbiAgYzh5X0Rhc2hib2FyZD86IENvbnRleHREYXNoYm9hcmQ7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dERhc2hib2FyZCB7XG4gIGljb24/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICBkZXZpY2VUeXBlPzogYm9vbGVhbjtcbiAgZGV2aWNlVHlwZVZhbHVlPzogc3RyaW5nO1xuICBpc0Zyb3plbj86IGJvb2xlYW47XG4gIGNsYXNzZXM/OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgd2lkZ2V0Q2xhc3Nlcz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuICB3aWRnZXRNYXJnaW4/OiBudW1iZXI7XG4gIHRyYW5zbGF0ZVdpZGdldFRpdGxlPzogYm9vbGVhbjtcbiAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiB7XG4gICAgW2lkOiBzdHJpbmddOiBXaWRnZXQ7XG4gIH07XG4gIGdsb2JhbFJvbGVzSWRzPzogRGFzaGJvYXJkR2xvYmFsUm9sZXM7XG4gIGM4eV9Jc05hdmlnYXRvck5vZGU/OiBvYmplY3Q7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb250ZXh0RGFzaGJvYXJkVHlwZSB7XG4gIERldmljZSA9ICdkZXZpY2UnLFxuICBEZXZpY2VUeXBlID0gJ3R5cGUnLFxuICBHcm91cCA9ICdncm91cCcsXG4gIE5hbWVkID0gJ25hbWUnLFxuICBSZXBvcnQgPSAncmVwb3J0J1xufVxuXG5leHBvcnQgY29uc3QgV0lER0VUX0hFQURFUl9DTEFTU0VTID0gW1xuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1JlZ3VsYXJgc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1yZWd1bGFyJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBoYXMgbm8gYm9yZGVyIGJldHdlZW4gaGVhZGVyIGFuZCBjb250ZW50LicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQm9yZGVyYHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtdGl0bGUtYm9yZGVyJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBoYXMgYSBzbWFsbCBzZXBhcmF0aW9uIGJvcmRlciBiZXR3ZWVuIGhlYWRlciBhbmQgY29udGVudC4nKVxuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ092ZXJsYXlgc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1vdmVybGF5JyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBjb250ZW50IG92ZXJsYXlzIHRoZSBoZWFkZXIuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdIaWRkZW5gc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1oaWRkZW4nLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGUgd2lkZ2V0IGhlYWRlciBpcyBub3Qgc2hvd24uJylcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9DT05URU5UX0NMQVNTRVMgPSBbXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnTWF0Y2ggZGFzaGJvYXJkYHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtY29udGVudC1saWdodCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgYXBwZWFyYW5jZSBtYXRjaGVzIHRoZSBkYXNoYm9hcmQgYXBwZWFyYW5jZS4nKVxuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0xpZ2h0YHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtY29udGVudC13aGl0ZScsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaGFzIGxpZ2h0IGFwcGVhcmFuY2UsIHRoYXQgaXMsIGRhcmsgdGV4dCBvbiBsaWdodCBiYWNrZ3JvdW5kLicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnRGFya2BzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtZGFyaycsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaGFzIGRhcmsgYXBwZWFyYW5jZSwgdGhhdCBpcywgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdUcmFuc3BhcmVudGBzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtdHJhbnNwYXJlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGUgd2lkZ2V0IGhhcyBubyBiYWNrZ3JvdW5kLicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQnJhbmRlZGBzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtYnJhbmRlZCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaXMgc3R5bGVkIHdpdGggdGhlIG1haW4gYnJhbmQgY29sb3IuJylcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IERBU0hCT0FSRF9USEVNRV9DTEFTU0VTID0gW1xuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ01hdGNoIFVJYHRoZW1lYCcpLFxuICAgIGNsYXNzOiAnZGFzaGJvYXJkLXRoZW1lLWxpZ2h0JyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIGRhc2hib2FyZCBhcHBlYXJhbmNlIG1hdGNoZXMgdGhlIFVJIGFwcGVhcmFuY2UuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdMaWdodGB0aGVtZWAnKSxcbiAgICBjbGFzczogJ2Rhc2hib2FyZC10aGVtZS13aGl0ZScsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAnVGhlIGRhc2hib2FyZCBoYXMgbGlnaHQgYXBwZWFyYW5jZSwgdGhhdCBpcywgZGFyayB0ZXh0IG9uIGxpZ2h0IGJhY2tncm91bmQuJ1xuICAgIClcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdEYXJrYHRoZW1lYCcpLFxuICAgIGNsYXNzOiAnZGFzaGJvYXJkLXRoZW1lLWRhcmsnLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgJ1RoZSBkYXNoYm9hcmQgaGFzIGRhcmsgYXBwZWFyYW5jZSwgdGhhdCBpcywgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQuJ1xuICAgIClcbiAgfSxcbiAgLy8ge1xuICAvLyAgIGxhYmVsOiBnZXR0ZXh0KCdUcmFuc3BhcmVudGB0aGVtZWAnKSxcbiAgLy8gICBjbGFzczogJ2Rhc2hib2FyZC10aGVtZS10cmFuc3BhcmVudCcsXG4gIC8vICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gIC8vICAgICAnVGhlIGRhc2hib2FyZCBpcyBzdHlsZWQgd2l0aCBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQgYW5kIHRoZXJlZm9yZSBpcyBib3JkZXItbGVzcy4nXG4gIC8vICAgKVxuICAvLyB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0JyYW5kZWRgdGhlbWVgJyksXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtdGhlbWUtYnJhbmRlZCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSBkYXNoYm9hcmQgaXMgc3R5bGVkIHVzaW5nIHRoZSBicmFuZCBwYWxldHRlLicpXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBTVFlMSU5HX0NMQVNTX1BSRUZJWEVTID0gWydkYXNoYm9hcmQtdGhlbWUtJywgJ3BhbmVsLXRpdGxlLScsICdwYW5lbC1jb250ZW50LSddO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZENvcHlDbGlwYm9hcmQge1xuICBkYXNoYm9hcmQ6IENvbnRleHREYXNoYm9hcmQ7XG4gIGNvbnRleHQ6IERhc2hib2FyZENvbnRleHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkQ29udGV4dCB7XG4gIGNvbnRleHQ6IFZpZXdDb250ZXh0O1xuICBjb250ZXh0RGF0YTogUGFydGlhbDxJTWFuYWdlZE9iamVjdD47XG59XG5cbmV4cG9ydCBjb25zdCBBTExfR0xPQkFMX1JPTEVTX1NFTEVDVEVEID0gJ2FsbCcgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBEYXNoYm9hcmRHbG9iYWxSb2xlcyA9IG51bWJlcltdIHwgdHlwZW9mIEFMTF9HTE9CQUxfUk9MRVNfU0VMRUNURUQ7XG4iXX0=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYXNoYm9hcmQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb250ZXh0LWRhc2hib2FyZC9jb250ZXh0LWRhc2hib2FyZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFJTCxPQUFPLEVBRVIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBTSx3QkFBd0IsQ0FBQyxDQUFDO0FBK0cxRixNQUFNLENBQU4sSUFBWSxvQkFNWDtBQU5ELFdBQVksb0JBQW9CO0lBQzlCLHlDQUFpQixDQUFBO0lBQ2pCLDJDQUFtQixDQUFBO0lBQ25CLHVDQUFlLENBQUE7SUFDZixzQ0FBYyxDQUFBO0lBQ2QseUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLG9CQUFvQixLQUFwQixvQkFBb0IsUUFNL0I7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQztRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDaEMsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLHNEQUFzRCxDQUFDO0tBQzdFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsc0VBQXNFLENBQUM7S0FDN0Y7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDaEMsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLHlDQUF5QyxDQUFDO0tBQ2hFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUM7S0FDeEQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEM7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3hDLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDOUIsS0FBSyxFQUFFLHFCQUFxQjtRQUM1QixXQUFXLEVBQUUsT0FBTyxDQUFDLDBFQUEwRSxDQUFDO0tBQ2pHO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxPQUFPLENBQUMseUVBQXlFLENBQUM7S0FDaEc7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUM7UUFDcEMsS0FBSyxFQUFFLDJCQUEyQjtRQUNsQyxXQUFXLEVBQUUsT0FBTyxDQUFDLCtCQUErQixDQUFDO0tBQ3REO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ2hDLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQztLQUN4RTtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQztRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDakMsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLHFEQUFxRCxDQUFDO0tBQzVFO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM5QixLQUFLLEVBQUUsdUJBQXVCO1FBQzlCLFdBQVcsRUFBRSxPQUFPLENBQ2xCLDZFQUE2RSxDQUM5RTtLQUNGO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM3QixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSxPQUFPLENBQ2xCLDRFQUE0RSxDQUM3RTtLQUNGO0lBQ0QsSUFBSTtJQUNKLDBDQUEwQztJQUMxQywwQ0FBMEM7SUFDMUMsMEJBQTBCO0lBQzFCLDRGQUE0RjtJQUM1RixNQUFNO0lBQ04sS0FBSztJQUNMO1FBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoQyxLQUFLLEVBQUUseUJBQXlCO1FBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsa0RBQWtELENBQUM7S0FDekU7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQVk3RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBXaWRnZXQsXG4gIER5bmFtaWNDb21wb25lbnREZWZpbml0aW9uLFxuICBSb3V0ZSxcbiAgZ2V0dGV4dCxcbiAgVmlld0NvbnRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBjb25zdCBDT05URVhUX0RBU0hCT0FSRF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignQ29udGV4dERhc2hib2FyZENvbmZpZycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHREYXNoYm9hcmRDb25maWcge1xuICB3aWRnZXRGaWx0ZXI/OiAoY29tcG9uZW50OiBEeW5hbWljQ29tcG9uZW50RGVmaW5pdGlvbikgPT4gYm9vbGVhbjtcbiAgYWxsb3dGdWxsc2NyZWVuPzogYm9vbGVhbjtcbiAgcm91dGVzPzogUm91dGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0V2lkZ2V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgZGVmaW5lIGhvdyB0aGUgZGVmYXVsdCBjb25maWcgY29tcG9uZW50IGlzXG4gICAqIGRpc3BsYXllZC4gVGhleSBhcmUgc3RhdGljIGFuZCB3aWxsIG5vdCBiZSBzYXZlZC5cbiAgICovXG4gIHNldHRpbmdzPzoge1xuICAgIC8qKlxuICAgICAqIEF2b2lkcyB0byBzaG93IHRoZSB3aWRnZXQgaW4gdGhlIFwiYWRkIHdpZGdldFwiIG1vZGFsXG4gICAgICovXG4gICAgbm9OZXdXaWRnZXRzPzogYm9vbGVhbjtcbiAgICBuZzE/OiB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgdGhpcyB0byBmYWxzZSwgdG8gaGlkZSB0aGUgZGV2aWNlL2dyb3VwIHNlbGVjdG9yXG4gICAgICAgICAqIEBkZXByZWNhdGVkOiBUaGlzIGlzIGN1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGluIGFuZ3VsYXJqcyBhbmQgd2lsbCBiZSBleHBvcnRlZCB0byBhIHNlcGFyYXRlIGNvbXBvbmVudC5cbiAgICAgICAgICovXG4gICAgICAgIG5vRGV2aWNlVGFyZ2V0PzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCB0aGlzIHRvIGZhbHNlIHRvIG9ubHkgc2VsZWN0IGRldmljZXNcbiAgICAgICAgICogQGRlcHJlY2F0ZWQ6IFRoaXMgaXMgY3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQgaW4gYW5ndWxhcmpzIGFuZCB3aWxsIGJlIGV4cG9ydGVkIHRvIGEgc2VwYXJhdGUgY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgZ3JvdXBzU2VsZWN0YWJsZT86IGJvb2xlYW47XG4gICAgICB9O1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgY29udGV4dCBmcm9tIHRoZSBkZXZpY2Ugc2VsZWN0b3IuXG4gICAgICAgKi9cbiAgICAgIGNvbnRleHQ/OiB7XG4gICAgICAgIGlkPzogc3RyaW5nO1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgc2V0dGluZ3MgcGFzc2VkIHRvIHRoZSBjb25maWd1cmF0aW9uIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldHRpbmdzIHRoYXQgYXJlIGluamVjdGVkIGluIGFueSBkaXNwbGF5aW5nIGNvbXBvbmVudC5cbiAgICovXG4gIGRpc3BsYXlTZXR0aW5ncz86IHtcbiAgICAvKipcbiAgICAgKiBJZiBlbmFibGVkIHRoZSB3aWRnZXQgaXMgYm91bmQgdG8gdGhlIGdsb2JhbCB0aW1lIGNvbnRleHQuIFlvdSBjYW4gbGlzdGVuIHRvIG5nT25DaGFuZ2VzKCkgY2hhbmdlIGRldGVjdGlvblxuICAgICAqIHRvIHJlYWN0IHRvIGNoYW5nZXMgb24gdGhlIGNvbnRleHQuIFdoZW4gYSBtb3JlIGRldGFpbGVkIGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLCB1c2UgdGhlIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dD5cbiAgICAgKiBjb21wb25lbnQgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBnbG9iYWxUaW1lQ29udGV4dD86IGJvb2xlYW47XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoYXRldmVyIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY29uZmlndXJhdGlvbiB3aGVuIGEgd2lkZ2V0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBjb25maWc/OiB7XG4gICAgLyoqXG4gICAgICogQW55IG90aGVyIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHN0b3JlZCBoZXJlLlxuICAgICAqL1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBkZXZpY2Ugb3IgZ3JvdXAgKG5vdGU6IG5hbWluZyBpcyBpbmNvbnNpc3RlbnQgYXMgZ3JvdXAgd2FzIGFkZGVkIGxhdGVyXG4gICAqIGJ1dCBtdXN0IHN0YXkgZm9yIGFscmVhZHkgaW1wbGVtZW50ZWQgd2lkZ2V0cylcbiAgICovXG4gIGRldmljZT86IHtcbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIEFueSBvdGhlciBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBzdG9yZWQgaGVyZS5cbiAgICovXG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCBleHRlbmRzIElNYW5hZ2VkT2JqZWN0IHtcbiAgYzh5X0Rhc2hib2FyZD86IENvbnRleHREYXNoYm9hcmQ7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dERhc2hib2FyZCB7XG4gIGljb24/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICBkZXZpY2VUeXBlPzogYm9vbGVhbjtcbiAgZGV2aWNlVHlwZVZhbHVlPzogc3RyaW5nO1xuICBpc0Zyb3plbj86IGJvb2xlYW47XG4gIGNsYXNzZXM/OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgd2lkZ2V0Q2xhc3Nlcz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xuICB3aWRnZXRNYXJnaW4/OiBudW1iZXI7XG4gIHRyYW5zbGF0ZVdpZGdldFRpdGxlPzogYm9vbGVhbjtcbiAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgY29sdW1ucyBvbiB0aGF0IGRhc2hib2FyZC5cbiAgICogQ2FuIGJlIGZyZWVseSBjaG9zZW4sIGJ1dCBwcm9kdWN0IHVzZXMgZWl0aGVyIDEyIG9yIDI0LlxuICAgKi9cbiAgY29sdW1ucz86IG51bWJlcjtcbiAgY2hpbGRyZW4/OiB7XG4gICAgW2lkOiBzdHJpbmddOiBXaWRnZXQ7XG4gIH07XG4gIGdsb2JhbFJvbGVzSWRzPzogRGFzaGJvYXJkR2xvYmFsUm9sZXM7XG4gIGM4eV9Jc05hdmlnYXRvck5vZGU/OiBvYmplY3Q7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb250ZXh0RGFzaGJvYXJkVHlwZSB7XG4gIERldmljZSA9ICdkZXZpY2UnLFxuICBEZXZpY2VUeXBlID0gJ3R5cGUnLFxuICBHcm91cCA9ICdncm91cCcsXG4gIE5hbWVkID0gJ25hbWUnLFxuICBSZXBvcnQgPSAncmVwb3J0J1xufVxuXG5leHBvcnQgY29uc3QgV0lER0VUX0hFQURFUl9DTEFTU0VTID0gW1xuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1JlZ3VsYXJgc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1yZWd1bGFyJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBoYXMgbm8gYm9yZGVyIGJldHdlZW4gaGVhZGVyIGFuZCBjb250ZW50LicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQm9yZGVyYHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtdGl0bGUtYm9yZGVyJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBoYXMgYSBzbWFsbCBzZXBhcmF0aW9uIGJvcmRlciBiZXR3ZWVuIGhlYWRlciBhbmQgY29udGVudC4nKVxuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ092ZXJsYXlgc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1vdmVybGF5JyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIHdpZGdldCBjb250ZW50IG92ZXJsYXlzIHRoZSBoZWFkZXIuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdIaWRkZW5gc3R5bGVgJyksXG4gICAgY2xhc3M6ICdwYW5lbC10aXRsZS1oaWRkZW4nLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGUgd2lkZ2V0IGhlYWRlciBpcyBub3Qgc2hvd24uJylcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9DT05URU5UX0NMQVNTRVMgPSBbXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnTWF0Y2ggZGFzaGJvYXJkYHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtY29udGVudC1saWdodCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgYXBwZWFyYW5jZSBtYXRjaGVzIHRoZSBkYXNoYm9hcmQgYXBwZWFyYW5jZS4nKVxuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0xpZ2h0YHN0eWxlYCcpLFxuICAgIGNsYXNzOiAncGFuZWwtY29udGVudC13aGl0ZScsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaGFzIGxpZ2h0IGFwcGVhcmFuY2UsIHRoYXQgaXMsIGRhcmsgdGV4dCBvbiBsaWdodCBiYWNrZ3JvdW5kLicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnRGFya2BzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtZGFyaycsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaGFzIGRhcmsgYXBwZWFyYW5jZSwgdGhhdCBpcywgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdUcmFuc3BhcmVudGBzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtdHJhbnNwYXJlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdUaGUgd2lkZ2V0IGhhcyBubyBiYWNrZ3JvdW5kLicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQnJhbmRlZGBzdHlsZWAnKSxcbiAgICBjbGFzczogJ3BhbmVsLWNvbnRlbnQtYnJhbmRlZCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSB3aWRnZXQgaXMgc3R5bGVkIHdpdGggdGhlIG1haW4gYnJhbmQgY29sb3IuJylcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IERBU0hCT0FSRF9USEVNRV9DTEFTU0VTID0gW1xuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ01hdGNoIFVJYHRoZW1lYCcpLFxuICAgIGNsYXNzOiAnZGFzaGJvYXJkLXRoZW1lLWxpZ2h0JyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnVGhlIGRhc2hib2FyZCBhcHBlYXJhbmNlIG1hdGNoZXMgdGhlIFVJIGFwcGVhcmFuY2UuJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdMaWdodGB0aGVtZWAnKSxcbiAgICBjbGFzczogJ2Rhc2hib2FyZC10aGVtZS13aGl0ZScsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gICAgICAnVGhlIGRhc2hib2FyZCBoYXMgbGlnaHQgYXBwZWFyYW5jZSwgdGhhdCBpcywgZGFyayB0ZXh0IG9uIGxpZ2h0IGJhY2tncm91bmQuJ1xuICAgIClcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdEYXJrYHRoZW1lYCcpLFxuICAgIGNsYXNzOiAnZGFzaGJvYXJkLXRoZW1lLWRhcmsnLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KFxuICAgICAgJ1RoZSBkYXNoYm9hcmQgaGFzIGRhcmsgYXBwZWFyYW5jZSwgdGhhdCBpcywgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQuJ1xuICAgIClcbiAgfSxcbiAgLy8ge1xuICAvLyAgIGxhYmVsOiBnZXR0ZXh0KCdUcmFuc3BhcmVudGB0aGVtZWAnKSxcbiAgLy8gICBjbGFzczogJ2Rhc2hib2FyZC10aGVtZS10cmFuc3BhcmVudCcsXG4gIC8vICAgZGVzY3JpcHRpb246IGdldHRleHQoXG4gIC8vICAgICAnVGhlIGRhc2hib2FyZCBpcyBzdHlsZWQgd2l0aCBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQgYW5kIHRoZXJlZm9yZSBpcyBib3JkZXItbGVzcy4nXG4gIC8vICAgKVxuICAvLyB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0JyYW5kZWRgdGhlbWVgJyksXG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtdGhlbWUtYnJhbmRlZCcsXG4gICAgZGVzY3JpcHRpb246IGdldHRleHQoJ1RoZSBkYXNoYm9hcmQgaXMgc3R5bGVkIHVzaW5nIHRoZSBicmFuZCBwYWxldHRlLicpXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBTVFlMSU5HX0NMQVNTX1BSRUZJWEVTID0gWydkYXNoYm9hcmQtdGhlbWUtJywgJ3BhbmVsLXRpdGxlLScsICdwYW5lbC1jb250ZW50LSddO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZENvcHlDbGlwYm9hcmQge1xuICBkYXNoYm9hcmQ6IENvbnRleHREYXNoYm9hcmQ7XG4gIGNvbnRleHQ6IERhc2hib2FyZENvbnRleHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkQ29udGV4dCB7XG4gIGNvbnRleHQ6IFZpZXdDb250ZXh0O1xuICBjb250ZXh0RGF0YTogUGFydGlhbDxJTWFuYWdlZE9iamVjdD47XG59XG5cbmV4cG9ydCBjb25zdCBBTExfR0xPQkFMX1JPTEVTX1NFTEVDVEVEID0gJ2FsbCcgYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBEYXNoYm9hcmRHbG9iYWxSb2xlcyA9IG51bWJlcltdIHwgdHlwZW9mIEFMTF9HTE9CQUxfUk9MRVNfU0VMRUNURUQ7XG4iXX0=
|
|
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
143
143
|
type: ViewChild,
|
|
144
144
|
args: ['dashboardDetailForm', { static: true }]
|
|
145
145
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb250ZXh0LWRhc2hib2FyZC9kYXNoYm9hcmQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFFVCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFFdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1qSCxNQUFNLE9BQU8sd0JBQXdCO0lBd0NuQyxZQUNVLEtBQWlCLEVBQ04sUUFBa0IsRUFDN0IsdUJBQWdELEVBQ2hELGdCQUFrQyxFQUNsQyxrQkFBK0IsRUFDL0IsZ0JBQWtDO1FBTGxDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFFakIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHVCQUFrQixH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QUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQy9ELHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ3hCLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUNoRSxxQkFBcUIsRUFDckIsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEFySlUsd0JBQXdCLDRDQTBDekIsU0FBUzt5R0ExQ1Isd0JBQXdCLHNNQzFCckMsZzFZQTBTQTsyRkRoUmEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQjs7MEJBNkM3QixNQUFNOzJCQUFDLFNBQVM7MEtBekNpQyxtQkFBbUI7c0JBQXRFLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgZ2V0dGV4dCxcbiAgSUNPTl9MSVNULFxuICBOYXZpZ2F0b3JOb2RlLFxuICBOYXZpZ2F0b3JTZXJ2aWNlLFxuICBQZXJtaXNzaW9uc1xufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGNsb25lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENvbnRleHREYXNoYm9hcmQsXG4gIERBU0hCT0FSRF9USEVNRV9DTEFTU0VTLFxuICBXSURHRVRfSEVBREVSX0NMQVNTRVMsXG4gIERhc2hib2FyZEdsb2JhbFJvbGVzXG59IGZyb20gJy4vY29udGV4dC1kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgQ29udGV4dERhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVQT1JUX0RFRkFVTFRfTkFWSUdBVElPTl9OT0RFX1BSSU9SSVRZIH0gZnJvbSAnLi9yZXBvcnQtZGFzaGJvYXJkL3JlcG9ydC1kYXNoYm9hcmQtbmF2aWdhdGlvbi5mYWN0b3J5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZGFzaGJvYXJkRGV0YWlsRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGRhc2hib2FyZERldGFpbEZvcm06IE5nRm9ybTtcbiAgZGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkO1xuICBjdXJyZW50RGFzaGJvYXJkOiBDb250ZXh0RGFzaGJvYXJkO1xuICBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG4gIGlzUmVwb3J0OiBib29sZWFuO1xuICBkZXZpY2VUeXBlOiBzdHJpbmc7XG4gIGlzTmFtZWREYXNoYm9hcmQ6IGJvb2xlYW47XG4gIGlzRGV2aWNlVHlwZTogYm9vbGVhbjtcbiAgaWNvbnM6IHN0cmluZ1tdO1xuICBmaWx0ZXJlZEljb25zOiBzdHJpbmdbXTtcbiAgc3R5bGluZyA9IHtcbiAgICB0aGVtZUNsYXNzOiAnZGFzaGJvYXJkLXRoZW1lLWxpZ2h0JyxcbiAgICBoZWFkZXJDbGFzczogJ3BhbmVsLXRpdGxlLXJlZ3VsYXInXG4gIH07XG4gIHBvc3NpYmxlU3R5bGluZyA9IHsgREFTSEJPQVJEX1RIRU1FX0NMQVNTRVMsIFdJREdFVF9IRUFERVJfQ0xBU1NFUyB9O1xuICB0aXRsZTogc3RyaW5nO1xuICBuYW1lUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgbmF2aWdhdG9yTm9kZXMkOiBPYnNlcnZhYmxlPE5hdmlnYXRvck5vZGVbXT47XG4gIHJlc3VsdDogUHJvbWlzZTxDb250ZXh0RGFzaGJvYXJkPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9zYXZlID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9jYW5jZWwgPSByZWplY3Q7XG4gIH0pO1xuICBnbG9iYWxSb2xlc0lkczogRGFzaGJvYXJkR2xvYmFsUm9sZXM7XG5cbiAgYXBwbHlUb0RldmljZXNPZlR5cGVQZXJtaXR0ZWQ6IGJvb2xlYW47XG4gIGdldCBhcHBseVRvRGV2aWNlc09mVHlwZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuYXBwbHlUb0RldmljZXNPZlR5cGVQZXJtaXR0ZWRcbiAgICAgID8gZ2V0dGV4dCgnQXBwbHkgZGFzaGJvYXJkIHRvIGFsbCBkZXZpY2VzIG9mIHR5cGUge3sgdHlwZSB9fScpXG4gICAgICA6IGdldHRleHQoJ0FwcGx5IGRhc2hib2FyZCB0byBhbGwgZGV2aWNlcyBvZiB0eXBlIHt7IHR5cGUgfX0gKHBlcm1pc3Npb24gcmVxdWlyZWQpJyk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRleHQsIHsgdHlwZTogdGhpcy5kYXNoYm9hcmQuZGV2aWNlVHlwZVZhbHVlIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgREVGQVVMVF9EQVNIQk9BUkRfTUFSR0lOID0gMTI7XG4gIHJlYWRvbmx5IERFRkFVTFRfREFTSEJPQVJEX0lDT04gPSAndGgnO1xuICByZWFkb25seSBERUZBVUxUX0RBU0hCT0FSRF9QUklPUklUWSA9IDEwMDAwO1xuXG4gIHByaXZhdGUgX3NhdmU7XG4gIHByaXZhdGUgX2NhbmNlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1vZGFsOiBCc01vZGFsUmVmLFxuICAgIEBJbmplY3QoSUNPTl9MSVNUKSBpY29uTGlzdDogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSBjb250ZXh0RGFzaGJvYXJkU2VydmljZTogQ29udGV4dERhc2hib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnNTZXJ2aWNlOiBQZXJtaXNzaW9ucyxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pY29ucyA9IGljb25MaXN0O1xuICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IGljb25MaXN0O1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHREYXNoYm9hcmRDZmcgPSB7XG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmlzUmVwb3J0ID8gZ2V0dGV4dCgnUmVwb3J0JykgOiBnZXR0ZXh0KCdEYXNoYm9hcmQnKSksXG4gICAgICBwcmlvcml0eTogdGhpcy5pc1JlcG9ydFxuICAgICAgICA/IFJFUE9SVF9ERUZBVUxUX05BVklHQVRJT05fTk9ERV9QUklPUklUWVxuICAgICAgICA6IHRoaXMuREVGQVVMVF9EQVNIQk9BUkRfUFJJT1JJVFksXG4gICAgICBpY29uOiB0aGlzLkRFRkFVTFRfREFTSEJPQVJEX0lDT04sXG4gICAgICBkZXZpY2VUeXBlVmFsdWU6IHRoaXMuZGV2aWNlVHlwZVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5kYXNoYm9hcmQpIHtcbiAgICAgIHRoaXMuY3VycmVudERhc2hib2FyZCA9IGNsb25lKHRoaXMuZGFzaGJvYXJkKTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkTmFtZSA9IHRoaXMuY3VycmVudERhc2hib2FyZC5uYW1lO1xuICAgICAgdGhpcy5zZXREYXNoYm9hcmRTdHlsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IGRlZmF1bHREYXNoYm9hcmRDZmc7XG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPSB0aGlzLmRhc2hib2FyZC5uYW1lO1xuICAgICAgdGhpcy5kYXNoYm9hcmREZXRhaWxGb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRUaXRsZSgpO1xuICAgIHRoaXMuc2V0dXBBcHBseVRvRGV2aWNlc09mVHlwZUNoZWNrYm94KCk7XG4gICAgdGhpcy5uYXZpZ2F0b3JOb2RlcyQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuaXRlbXMkO1xuICAgIHRoaXMubmFtZVBsYWNlaG9sZGVyID0gdGhpcy5pc1JlcG9ydCA/IGdldHRleHQoJ2UuZy4gTXkgcmVwb3J0JykgOiBnZXR0ZXh0KCdlLmcuIE15IGRhc2hib2FyZCcpO1xuICAgIHRoaXMuZ2xvYmFsUm9sZXNJZHMgPSB0aGlzLmRhc2hib2FyZC5nbG9iYWxSb2xlc0lkcztcbiAgfVxuXG4gIHNldFRpdGxlKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50RGFzaGJvYXJkKSB7XG4gICAgICB0aGlzLnRpdGxlID0gdGhpcy5pc1JlcG9ydCA/IGdldHRleHQoJ0FkZCByZXBvcnQnKSA6IGdldHRleHQoJ0FkZCBkYXNoYm9hcmQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuaXNSZXBvcnQgPyBnZXR0ZXh0KCdFZGl0IHJlcG9ydCcpIDogZ2V0dGV4dCgnRWRpdCBkYXNoYm9hcmQnKTtcbiAgICB9XG4gIH1cblxuICBzZXR1cEFwcGx5VG9EZXZpY2VzT2ZUeXBlQ2hlY2tib3goKSB7XG4gICAgY29uc3Qgcm9sZXNUb0NoZWNrID0gWydST0xFX0lOVkVOVE9SWV9DUkVBVEUnLCAnUk9MRV9JTlZFTlRPUllfQURNSU4nXTtcbiAgICB0aGlzLmFwcGx5VG9EZXZpY2VzT2ZUeXBlUGVybWl0dGVkID0gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaGFzQW55Um9sZShyb2xlc1RvQ2hlY2spO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLmRhc2hib2FyZC5nbG9iYWxSb2xlc0lkcyA9IHRoaXMuZ2xvYmFsUm9sZXNJZHM7XG4gICAgdGhpcy5kYXNoYm9hcmQubmFtZSA9IHRoaXMuZGFzaGJvYXJkTmFtZTtcbiAgICB0aGlzLmRhc2hib2FyZC5jbGFzc2VzID0geyBbdGhpcy5zdHlsaW5nLnRoZW1lQ2xhc3NdOiB0cnVlIH07XG4gICAgdGhpcy5kYXNoYm9hcmQud2lkZ2V0Q2xhc3NlcyA9IHsgW3RoaXMuc3R5bGluZy5oZWFkZXJDbGFzc106IHRydWUgfTtcbiAgICB0aGlzLmRhc2hib2FyZC5jOHlfSXNOYXZpZ2F0b3JOb2RlID0gdGhpcy5kYXNoYm9hcmQuYzh5X0lzTmF2aWdhdG9yTm9kZVxuICAgICAgPyB7fVxuICAgICAgOiB0aGlzLmN1cnJlbnREYXNoYm9hcmRcbiAgICAgID8gbnVsbFxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc2F2ZSh0aGlzLmRhc2hib2FyZCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLl9jYW5jZWwoKTtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgfVxuXG4gIGdldERhc2hib2FyZFByZXZpZXdTdHlsZSgpIHtcbiAgICBjb25zdCBjc3NDbGFzc2VzID0ge307XG4gICAgY3NzQ2xhc3Nlc1t0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3NdID0gdHJ1ZTtcbiAgICBjc3NDbGFzc2VzW3RoaXMuc3R5bGluZy50aGVtZUNsYXNzXSA9IHRydWU7XG4gICAgcmV0dXJuIGNzc0NsYXNzZXM7XG4gIH1cblxuICBzZWxlY3RJY29uKGljb24pIHtcbiAgICB0aGlzLmRhc2hib2FyZC5pY29uID0gaWNvbjtcbiAgICB0aGlzLmRhc2hib2FyZERldGFpbEZvcm0uZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyZWQodGVybTogc3RyaW5nKSB7XG4gICAgaWYgKHRlcm0pIHtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IG5ldyBSZWdFeHAodGVybSwgJ2knKTtcbiAgICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IHRoaXMuaWNvbnMuZmlsdGVyKHZhbCA9PiBzZWFyY2gudGVzdCh2YWwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZEljb25zID0gdGhpcy5pY29ucztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldERhc2hib2FyZFN0eWxlKCkge1xuICAgIGNvbnN0IGFsbENsYXNzZXMgPSB7XG4gICAgICAuLi50aGlzLmRhc2hib2FyZC5jbGFzc2VzLFxuICAgICAgLi4udGhpcy5kYXNoYm9hcmQud2lkZ2V0Q2xhc3Nlc1xuICAgIH07XG5cbiAgICBjb25zdCBzdHlsZXMgPSBPYmplY3Qua2V5cyhhbGxDbGFzc2VzKS5tYXAoYyA9PiBjLnNwbGl0KCctJykucG9wKCkpO1xuICAgIHN0eWxlcy5mb3JFYWNoKHN0eWxlTmFtZSA9PiB7XG4gICAgICB0aGlzLnN0eWxpbmcudGhlbWVDbGFzcyA9IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuZ2V0U3R5bGluZyhcbiAgICAgICAgREFTSEJPQVJEX1RIRU1FX0NMQVNTRVMsXG4gICAgICAgIHN0eWxlTmFtZSxcbiAgICAgICAgdGhpcy5zdHlsaW5nLnRoZW1lQ2xhc3NcbiAgICAgICk7XG4gICAgICB0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3MgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmdldFN0eWxpbmcoXG4gICAgICAgIFdJREdFVF9IRUFERVJfQ0xBU1NFUyxcbiAgICAgICAgc3R5bGVOYW1lLFxuICAgICAgICB0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3NcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICA8aDMgaWQ9XCJtb2RhbC10aXRsZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWlubmVyLXNjcm9sbFwiIGlkPVwibW9kYWwtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLWwtMjQgcC1yLTI0XCI+XG4gICAgICA8Zm9ybSAjZGFzaGJvYXJkRGV0YWlsRm9ybT1cIm5nRm9ybVwiIGNsYXNzPVwiZC1jb250ZW50c1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzTmFtZWREYXNoYm9hcmQgfHwgaXNSZXBvcnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0dlbmVyYWwnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tci0xNlwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZC1ibG9ja1wiPnt7ICdJY29uJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGRyb3Bkb3duIGNsYXNzPVwiZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0ljb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1kZWZhdWx0IGJ0biBidG4tZ3JheVwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwie3sgZGFzaGJvYXJkLmljb24gfX1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJldFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgbW9kYWwtaW5uZXItc2Nyb2xsIGRyb3Bkb3duLW1lbnUtZ3JpZC00IG0tbC0wXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDI1MHB4XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGljb24gb2YgZmlsdGVyZWRJY29uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIChjbGljayk9XCJzZWxlY3RJY29uKGljb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnRlcmFjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBpY29uIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogZGFzaGJvYXJkLmljb24gPT09IGljb24gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25cIiBbYzh5SWNvbl09XCJpY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXItNFwiIGlkPVwibWVudUxhYmVsXCI+e3sgJ01lbnUgbGFiZWwnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4taGVscCBidG4taGVscC0tc21cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBwb3BvdmVyPVwie3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdNZW51IGxhYmVsIHRvIGRpc3BsYXkgaW4gc3VibWVudSB3aGVuIGRhc2hib2FyZCBpcyBhdHRhY2hlZCcgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ3F1ZXN0aW9uLWNpcmNsZS1vJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwibWVudUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmROYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBuYW1lUGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI1MTJcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwICpuZ0lmPVwiaXNSZXBvcnRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJkZXNjcmlwdGlvblwiPnt7ICdEZXNjcmlwdGlvbiAnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIHJvd3M9XCIyXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIiAqbmdJZj1cIiFpc1JlcG9ydFwiPlxuICAgICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zaXRpb25OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tci00XCIgaWQ9XCJwb3NpdGlvbk5hdlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1Bvc2l0aW9uIGluIG5hdmlnYXRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlcj1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICdQb3NpdGlvbiBpbiBuYXZpZ2F0aW9uIG1lbnUgKDEwMDAwIGZpcnN0LCAtMTAwMDAgbGFzdCknIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidxdWVzdGlvbi1jaXJjbGUtbydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwicG9zaXRpb25OYXZcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkLnByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBtaW49XCItMTAwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjEwMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSA1MDBcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCIgKm5nSWY9XCJpc1JlcG9ydFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5OYXZpZ2F0b3IgbWVudSBpdGVtPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIHRpdGxlPVwie3sgJ1Nob3cgaW4gbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZSB9fVwiIGNsYXNzPVwiYzh5LWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzTmF2aWdhdG9yTm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIiEhZGFzaGJvYXJkLmM4eV9Jc05hdmlnYXRvck5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdTaG93IGluIG5hdmlnYXRvcicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiICpuZ0lmPVwiaXNSZXBvcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBvc2l0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXItNFwiPnt7ICdQb3NpdGlvbiBpbiBuYXZpZ2F0b3InIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9zaXRpb25Jbk5hdlBvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQb3NpdGlvbiBpbiBuYXZpZ2F0b3IgKDEwMDAxIGZpcnN0LCAtMTAwMDAgbGFzdCkuJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fSZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnRXhpc3Rpbmcgbm9kZXM6JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtLXQtMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBub2RlIG9mIG5hdmlnYXRvck5vZGVzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwibm9kZS5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid29yZC1icmVhayBtLWwtNCBtLXItMTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUubGFiZWwubGVuZ3RoID4gMTVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChub2RlLmxhYmVsIHwgc2xpY2U6IDA6MTUpICsgJy4uLidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG5vZGUubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodFwiPnt7IG5vZGUucHJpb3JpdHkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4taGVscCBidG4taGVscC0tc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInSGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3NpdGlvbkluTmF2UG9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ3F1ZXN0aW9uLWNpcmNsZS1vJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgZm9yPVwicG9zaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicHJpb3JpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkLnByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBtaW49XCItMTAwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIG1heD1cIjIwMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlLmcuJyB8IHRyYW5zbGF0ZSB9fSA1MDBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjdXJyZW50RGFzaGJvYXJkICYmIGRldmljZVR5cGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHRpdGxlPVwie3sgYXBwbHlUb0RldmljZXNPZlR5cGVUaXRsZSB9fVwiIGNsYXNzPVwiYzh5LWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRldmljZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkLmRldmljZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhYXBwbHlUb0RldmljZXNPZlR5cGVQZXJtaXR0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7IHR5cGU6IGRhc2hib2FyZC5kZXZpY2VUeXBlVmFsdWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmdOb25CaW5kYWJsZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgQXBwbHkgZGFzaGJvYXJkIHRvIGFsbCBkZXZpY2VzIG9mIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICA8aT57eyB0eXBlIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gbS1iLTI0XCIgKm5nSWY9XCJpc0RldmljZVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGM4eS1pY29uPVwiaW5mb1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInsgdHlwZTogZGFzaGJvYXJkLmRldmljZVR5cGVWYWx1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgbmdOb25CaW5kYWJsZVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBUaGlzIGRhc2hib2FyZCBpcyBzaGFyZWQgYmV0d2VlbiBhbGwgZGV2aWNlcyBvZiB0aGUgdHlwZVxuICAgICAgICAgICAgICAgICAgICA8aT57eyB0eXBlIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICAuXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Yzh5LWRhc2hib2FyZC1hdmFpbGFiaWxpdHlcbiAgICAgICAgICAgICAgKm5nSWY9XCIhIWlzUmVwb3J0ID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgIFsoZ2xvYmFsUm9sZXNJZHMpXT1cImdsb2JhbFJvbGVzSWRzXCJcbiAgICAgICAgICAgICAgKGdsb2JhbFJvbGVzSWRzQ2hhbmdlKT1cImRhc2hib2FyZERldGFpbEZvcm0/LmZvcm0/Lm1hcmtBc0RpcnR5KClcIlxuICAgICAgICAgICAgPjwvYzh5LWRhc2hib2FyZC1hdmFpbGFiaWxpdHk+XG4gICAgICAgICAgICA8Yzh5LWFwcGVhcmFuY2Utc2V0dGluZ3NcbiAgICAgICAgICAgICAgWyh0aGVtZUNsYXNzKV09XCJzdHlsaW5nLnRoZW1lQ2xhc3NcIlxuICAgICAgICAgICAgICBbKGhlYWRlckNsYXNzKV09XCJzdHlsaW5nLmhlYWRlckNsYXNzXCJcbiAgICAgICAgICAgID48L2M4eS1hcHBlYXJhbmNlLXNldHRpbmdzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJwLWItMjQgbS1iLTBcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtYXJnaW5cIj57eyAnV2lkZ2V0IG1hcmdpbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmQud2lkZ2V0TWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXg9XCI1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBERUZBVUxUX0RBU0hCT0FSRF9NQVJHSU4gfX1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uXCI+cHg8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwicC1iLTI0IG0tYi0wXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgdHJhbnNsYXRlPldpZGdldCB0aXRsZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHRpdGxlPVwie3sgJ1RyYW5zbGF0ZSBpZiBwb3NzaWJsZScgfCB0cmFuc2xhdGUgfX1cIiBjbGFzcz1cImM4eS1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0cmFuc2xhdGVXaWRnZXRUaXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmQudHJhbnNsYXRlV2lkZ2V0VGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdUcmFuc2xhdGUgaWYgcG9zc2libGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICA8Yzh5LXdpZGdldC1wcmV2aWV3XG4gICAgICAgICAgICAgIFt0YWJdPVwiIWlzTmFtZWREYXNoYm9hcmQgPyBkYXNoYm9hcmQgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbcHJldmlld0NsYXNzZXNdPVwiZ2V0RGFzaGJvYXJkUHJldmlld1N0eWxlKClcIlxuICAgICAgICAgICAgPjwvYzh5LXdpZGdldC1wcmV2aWV3PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b25cbiAgICAgIHRpdGxlPVwie3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgPlxuICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRhc2hib2FyZERldGFpbEZvcm0uZm9ybS5pbnZhbGlkIHx8IGRhc2hib2FyZERldGFpbEZvcm0uZm9ybS5wcmlzdGluZVwiXG4gICAgPlxuICAgICAge3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb250ZXh0LWRhc2hib2FyZC9kYXNoYm9hcmQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsT0FBTyxFQUNQLFNBQVMsRUFFVCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFFdEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1qSCxNQUFNLE9BQU8sd0JBQXdCO0lBd0NuQyxZQUNVLEtBQWlCLEVBQ04sUUFBa0IsRUFDN0IsdUJBQWdELEVBQ2hELGdCQUFrQyxFQUNsQyxrQkFBK0IsRUFDL0IsZ0JBQWtDO1FBTGxDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFFakIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHVCQUFrQixH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Q0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUMvRCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUN4QixDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FDaEUscUJBQXFCLEVBQ3JCLFNBQVMsRUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBckpVLHdCQUF3Qiw0Q0EwQ3pCLFNBQVM7eUdBMUNSLHdCQUF3QixzTUMxQnJDLGcxWUEwU0E7MkZEaFJhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxzQkFBc0I7OzBCQTZDN0IsTUFBTTsyQkFBQyxTQUFTOzBLQXpDaUMsbUJBQW1CO3NCQUF0RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIGdldHRleHQsXG4gIElDT05fTElTVCxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yU2VydmljZSxcbiAgUGVybWlzc2lvbnNcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBjbG9uZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDb250ZXh0RGFzaGJvYXJkLFxuICBEQVNIQk9BUkRfVEhFTUVfQ0xBU1NFUyxcbiAgV0lER0VUX0hFQURFUl9DTEFTU0VTLFxuICBEYXNoYm9hcmRHbG9iYWxSb2xlc1xufSBmcm9tICcuL2NvbnRleHQtZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LWRhc2hib2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFJFUE9SVF9ERUZBVUxUX05BVklHQVRJT05fTk9ERV9QUklPUklUWSB9IGZyb20gJy4vcmVwb3J0LWRhc2hib2FyZC9yZXBvcnQtZGFzaGJvYXJkLW5hdmlnYXRpb24uZmFjdG9yeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXNoYm9hcmQtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZERldGFpbENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2Rhc2hib2FyZERldGFpbEZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBkYXNoYm9hcmREZXRhaWxGb3JtOiBOZ0Zvcm07XG4gIGRhc2hib2FyZDogQ29udGV4dERhc2hib2FyZDtcbiAgY3VycmVudERhc2hib2FyZDogQ29udGV4dERhc2hib2FyZDtcbiAgZGFzaGJvYXJkTmFtZTogc3RyaW5nO1xuICBpc1JlcG9ydDogYm9vbGVhbjtcbiAgZGV2aWNlVHlwZTogc3RyaW5nO1xuICBpc05hbWVkRGFzaGJvYXJkOiBib29sZWFuO1xuICBpc0RldmljZVR5cGU6IGJvb2xlYW47XG4gIGljb25zOiBzdHJpbmdbXTtcbiAgZmlsdGVyZWRJY29uczogc3RyaW5nW107XG4gIHN0eWxpbmcgPSB7XG4gICAgdGhlbWVDbGFzczogJ2Rhc2hib2FyZC10aGVtZS1saWdodCcsXG4gICAgaGVhZGVyQ2xhc3M6ICdwYW5lbC10aXRsZS1yZWd1bGFyJ1xuICB9O1xuICBwb3NzaWJsZVN0eWxpbmcgPSB7IERBU0hCT0FSRF9USEVNRV9DTEFTU0VTLCBXSURHRVRfSEVBREVSX0NMQVNTRVMgfTtcbiAgdGl0bGU6IHN0cmluZztcbiAgbmFtZVBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIG5hdmlnYXRvck5vZGVzJDogT2JzZXJ2YWJsZTxOYXZpZ2F0b3JOb2RlW10+O1xuICByZXN1bHQ6IFByb21pc2U8Q29udGV4dERhc2hib2FyZD4gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdGhpcy5fc2F2ZSA9IHJlc29sdmU7XG4gICAgdGhpcy5fY2FuY2VsID0gcmVqZWN0O1xuICB9KTtcbiAgZ2xvYmFsUm9sZXNJZHM6IERhc2hib2FyZEdsb2JhbFJvbGVzO1xuXG4gIGFwcGx5VG9EZXZpY2VzT2ZUeXBlUGVybWl0dGVkOiBib29sZWFuO1xuICBnZXQgYXBwbHlUb0RldmljZXNPZlR5cGVUaXRsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLmFwcGx5VG9EZXZpY2VzT2ZUeXBlUGVybWl0dGVkXG4gICAgICA/IGdldHRleHQoJ0FwcGx5IGRhc2hib2FyZCB0byBhbGwgZGV2aWNlcyBvZiB0eXBlIHt7IHR5cGUgfX0nKVxuICAgICAgOiBnZXR0ZXh0KCdBcHBseSBkYXNoYm9hcmQgdG8gYWxsIGRldmljZXMgb2YgdHlwZSB7eyB0eXBlIH19IChwZXJtaXNzaW9uIHJlcXVpcmVkKScpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0ZXh0LCB7IHR5cGU6IHRoaXMuZGFzaGJvYXJkLmRldmljZVR5cGVWYWx1ZSB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IERFRkFVTFRfREFTSEJPQVJEX01BUkdJTiA9IDEyO1xuICByZWFkb25seSBERUZBVUxUX0RBU0hCT0FSRF9JQ09OID0gJ3RoJztcbiAgcmVhZG9ubHkgREVGQVVMVF9EQVNIQk9BUkRfUFJJT1JJVFkgPSAxMDAwMDtcblxuICBwcml2YXRlIF9zYXZlO1xuICBwcml2YXRlIF9jYW5jZWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtb2RhbDogQnNNb2RhbFJlZixcbiAgICBASW5qZWN0KElDT05fTElTVCkgaWNvbkxpc3Q6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgY29udGV4dERhc2hib2FyZFNlcnZpY2U6IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zU2VydmljZTogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaWNvbnMgPSBpY29uTGlzdDtcbiAgICB0aGlzLmZpbHRlcmVkSWNvbnMgPSBpY29uTGlzdDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0RGFzaGJvYXJkQ2ZnOiBQYXJ0aWFsPENvbnRleHREYXNoYm9hcmQ+ID0ge1xuICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5pc1JlcG9ydCA/IGdldHRleHQoJ1JlcG9ydCcpIDogZ2V0dGV4dCgnRGFzaGJvYXJkJykpLFxuICAgICAgcHJpb3JpdHk6IHRoaXMuaXNSZXBvcnRcbiAgICAgICAgPyBSRVBPUlRfREVGQVVMVF9OQVZJR0FUSU9OX05PREVfUFJJT1JJVFlcbiAgICAgICAgOiB0aGlzLkRFRkFVTFRfREFTSEJPQVJEX1BSSU9SSVRZLFxuICAgICAgaWNvbjogdGhpcy5ERUZBVUxUX0RBU0hCT0FSRF9JQ09OLFxuICAgICAgZGV2aWNlVHlwZVZhbHVlOiB0aGlzLmRldmljZVR5cGVcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuZGFzaGJvYXJkKSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXNoYm9hcmQgPSBjbG9uZSh0aGlzLmRhc2hib2FyZCk7XG4gICAgICB0aGlzLmRhc2hib2FyZE5hbWUgPSB0aGlzLmN1cnJlbnREYXNoYm9hcmQubmFtZTtcbiAgICAgIHRoaXMuc2V0RGFzaGJvYXJkU3R5bGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXNoYm9hcmQgPSBkZWZhdWx0RGFzaGJvYXJkQ2ZnO1xuICAgICAgdGhpcy5kYXNoYm9hcmROYW1lID0gdGhpcy5kYXNoYm9hcmQubmFtZTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkRGV0YWlsRm9ybS5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuICAgIHRoaXMuc2V0VGl0bGUoKTtcbiAgICB0aGlzLnNldHVwQXBwbHlUb0RldmljZXNPZlR5cGVDaGVja2JveCgpO1xuICAgIHRoaXMubmF2aWdhdG9yTm9kZXMkID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLml0ZW1zJDtcbiAgICB0aGlzLm5hbWVQbGFjZWhvbGRlciA9IHRoaXMuaXNSZXBvcnQgPyBnZXR0ZXh0KCdlLmcuIE15IHJlcG9ydCcpIDogZ2V0dGV4dCgnZS5nLiBNeSBkYXNoYm9hcmQnKTtcbiAgICB0aGlzLmdsb2JhbFJvbGVzSWRzID0gdGhpcy5kYXNoYm9hcmQuZ2xvYmFsUm9sZXNJZHM7XG4gIH1cblxuICBzZXRUaXRsZSgpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudERhc2hib2FyZCkge1xuICAgICAgdGhpcy50aXRsZSA9IHRoaXMuaXNSZXBvcnQgPyBnZXR0ZXh0KCdBZGQgcmVwb3J0JykgOiBnZXR0ZXh0KCdBZGQgZGFzaGJvYXJkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmlzUmVwb3J0ID8gZ2V0dGV4dCgnRWRpdCByZXBvcnQnKSA6IGdldHRleHQoJ0VkaXQgZGFzaGJvYXJkJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0dXBBcHBseVRvRGV2aWNlc09mVHlwZUNoZWNrYm94KCkge1xuICAgIGNvbnN0IHJvbGVzVG9DaGVjayA9IFsnUk9MRV9JTlZFTlRPUllfQ1JFQVRFJywgJ1JPTEVfSU5WRU5UT1JZX0FETUlOJ107XG4gICAgdGhpcy5hcHBseVRvRGV2aWNlc09mVHlwZVBlcm1pdHRlZCA9IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmhhc0FueVJvbGUocm9sZXNUb0NoZWNrKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5kYXNoYm9hcmQuZ2xvYmFsUm9sZXNJZHMgPSB0aGlzLmdsb2JhbFJvbGVzSWRzO1xuICAgIHRoaXMuZGFzaGJvYXJkLm5hbWUgPSB0aGlzLmRhc2hib2FyZE5hbWU7XG4gICAgdGhpcy5kYXNoYm9hcmQuY2xhc3NlcyA9IHsgW3RoaXMuc3R5bGluZy50aGVtZUNsYXNzXTogdHJ1ZSB9O1xuICAgIHRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXMgPSB7IFt0aGlzLnN0eWxpbmcuaGVhZGVyQ2xhc3NdOiB0cnVlIH07XG4gICAgdGhpcy5kYXNoYm9hcmQuYzh5X0lzTmF2aWdhdG9yTm9kZSA9IHRoaXMuZGFzaGJvYXJkLmM4eV9Jc05hdmlnYXRvck5vZGVcbiAgICAgID8ge31cbiAgICAgIDogdGhpcy5jdXJyZW50RGFzaGJvYXJkXG4gICAgICA/IG51bGxcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuX3NhdmUodGhpcy5kYXNoYm9hcmQpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5fY2FuY2VsKCk7XG4gICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gIH1cblxuICBnZXREYXNoYm9hcmRQcmV2aWV3U3R5bGUoKSB7XG4gICAgY29uc3QgY3NzQ2xhc3NlcyA9IHt9O1xuICAgIGNzc0NsYXNzZXNbdGhpcy5zdHlsaW5nLmhlYWRlckNsYXNzXSA9IHRydWU7XG4gICAgY3NzQ2xhc3Nlc1t0aGlzLnN0eWxpbmcudGhlbWVDbGFzc10gPSB0cnVlO1xuICAgIHJldHVybiBjc3NDbGFzc2VzO1xuICB9XG5cbiAgc2VsZWN0SWNvbihpY29uKSB7XG4gICAgdGhpcy5kYXNoYm9hcmQuaWNvbiA9IGljb247XG4gICAgdGhpcy5kYXNoYm9hcmREZXRhaWxGb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmVkKHRlcm06IHN0cmluZykge1xuICAgIGlmICh0ZXJtKSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSBuZXcgUmVnRXhwKHRlcm0sICdpJyk7XG4gICAgICB0aGlzLmZpbHRlcmVkSWNvbnMgPSB0aGlzLmljb25zLmZpbHRlcih2YWwgPT4gc2VhcmNoLnRlc3QodmFsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IHRoaXMuaWNvbnM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXREYXNoYm9hcmRTdHlsZSgpIHtcbiAgICBjb25zdCBhbGxDbGFzc2VzID0ge1xuICAgICAgLi4udGhpcy5kYXNoYm9hcmQuY2xhc3NlcyxcbiAgICAgIC4uLnRoaXMuZGFzaGJvYXJkLndpZGdldENsYXNzZXNcbiAgICB9O1xuXG4gICAgY29uc3Qgc3R5bGVzID0gT2JqZWN0LmtleXMoYWxsQ2xhc3NlcykubWFwKGMgPT4gYy5zcGxpdCgnLScpLnBvcCgpKTtcbiAgICBzdHlsZXMuZm9yRWFjaChzdHlsZU5hbWUgPT4ge1xuICAgICAgdGhpcy5zdHlsaW5nLnRoZW1lQ2xhc3MgPSB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmdldFN0eWxpbmcoXG4gICAgICAgIERBU0hCT0FSRF9USEVNRV9DTEFTU0VTLFxuICAgICAgICBzdHlsZU5hbWUsXG4gICAgICAgIHRoaXMuc3R5bGluZy50aGVtZUNsYXNzXG4gICAgICApO1xuICAgICAgdGhpcy5zdHlsaW5nLmhlYWRlckNsYXNzID0gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5nZXRTdHlsaW5nKFxuICAgICAgICBXSURHRVRfSEVBREVSX0NMQVNTRVMsXG4gICAgICAgIHN0eWxlTmFtZSxcbiAgICAgICAgdGhpcy5zdHlsaW5nLmhlYWRlckNsYXNzXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlld3BvcnQtbW9kYWxcIj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBzZXBhcmF0b3ItYm90dG9tXCI+XG4gICAgPGgzIGlkPVwibW9kYWwtdGl0bGVcIj57eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1pbm5lci1zY3JvbGxcIiBpZD1cIm1vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicC1sLTI0IHAtci0yNFwiPlxuICAgICAgPGZvcm0gI2Rhc2hib2FyZERldGFpbEZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cImQtY29udGVudHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc05hbWVkRGFzaGJvYXJkIHx8IGlzUmVwb3J0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdHZW5lcmFsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJtLXItMTZcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImQtYmxvY2tcIj57eyAnSWNvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBkcm9wZG93biBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdJY29uJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZGVmYXVsdCBidG4gYnRuLWdyYXlcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInt7IGRhc2hib2FyZC5pY29uIH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IG1vZGFsLWlubmVyLXNjcm9sbCBkcm9wZG93bi1tZW51LWdyaWQtNCBtLWwtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiAyNTBweFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpY29uIG9mIGZpbHRlcmVkSWNvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0SWNvbihpY29uKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW50ZXJhY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgaWNvbiB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGRhc2hib2FyZC5pY29uID09PSBpY29uIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uXCIgW2M4eUljb25dPVwiaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwiZmxleC1ncm93XCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1yLTRcIiBpZD1cIm1lbnVMYWJlbFwiPnt7ICdNZW51IGxhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgcG9wb3Zlcj1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnTWVudSBsYWJlbCB0byBkaXNwbGF5IGluIHN1Ym1lbnUgd2hlbiBkYXNoYm9hcmQgaXMgYXR0YWNoZWQnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwiZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidxdWVzdGlvbi1jaXJjbGUtbydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBpZD1cIm1lbnVMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbmFtZVBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNTEyXCJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCAqbmdJZj1cImlzUmVwb3J0XCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZGVzY3JpcHRpb25cIj57eyAnRGVzY3JpcHRpb24gJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICByb3dzPVwiMlwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmQuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCIgKm5nSWY9XCIhaXNSZXBvcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBvc2l0aW9uTmF2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXItNFwiIGlkPVwicG9zaXRpb25OYXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdQb3NpdGlvbiBpbiBuYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1oZWxwIGJ0bi1oZWxwLS1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXI9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnUG9zaXRpb24gaW4gbmF2aWdhdGlvbiBtZW51ICgxMDAwMCBmaXJzdCwgLTEwMDAwIGxhc3QpJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbYzh5SWNvbl09XCIncXVlc3Rpb24tY2lyY2xlLW8nXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cInBvc2l0aW9uTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZC5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgbWluPVwiLTEwMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIxMDAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiICpuZ0lmPVwiaXNSZXBvcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCB0cmFuc2xhdGU+TmF2aWdhdG9yIG1lbnUgaXRlbTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCB0aXRsZT1cInt7ICdTaG93IGluIG5hdmlnYXRvcicgfCB0cmFuc2xhdGUgfX1cIiBjbGFzcz1cImM4eS1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJpc05hdmlnYXRvck5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCIhIWRhc2hib2FyZC5jOHlfSXNOYXZpZ2F0b3JOb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnU2hvdyBpbiBuYXZpZ2F0b3InIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIiAqbmdJZj1cImlzUmVwb3J0XCI+XG4gICAgICAgICAgICAgICAgICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwb3NpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1yLTRcIj57eyAnUG9zaXRpb24gaW4gbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Bvc2l0aW9uSW5OYXZQb3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUG9zaXRpb24gaW4gbmF2aWdhdG9yICgxMDAwMSBmaXJzdCwgLTEwMDAwIGxhc3QpLicgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX0mbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0V4aXN0aW5nIG5vZGVzOicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbS10LTE2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbm9kZSBvZiBuYXZpZ2F0b3JOb2RlcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIm5vZGUuaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndvcmQtYnJlYWsgbS1sLTQgbS1yLTE2XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLmxhYmVsLmxlbmd0aCA+IDE1XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobm9kZS5sYWJlbCB8IHNsaWNlOiAwOjE1KSArICcuLi4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBub2RlLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHRcIj57eyBub2RlLnByaW9yaXR5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BvcG92ZXJdPVwicG9zaXRpb25Jbk5hdlBvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidxdWVzdGlvbi1jaXJjbGUtbydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInByaW9yaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZC5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgbWluPVwiLTEwMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICBtYXg9XCIyMDAwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gNTAwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhY3VycmVudERhc2hib2FyZCAmJiBkZXZpY2VUeXBlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCB0aXRsZT1cInt7IGFwcGx5VG9EZXZpY2VzT2ZUeXBlVGl0bGUgfX1cIiBjbGFzcz1cImM4eS1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXZpY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZC5kZXZpY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWFwcGx5VG9EZXZpY2VzT2ZUeXBlUGVybWl0dGVkXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwieyB0eXBlOiBkYXNoYm9hcmQuZGV2aWNlVHlwZVZhbHVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIEFwcGx5IGRhc2hib2FyZCB0byBhbGwgZGV2aWNlcyBvZiB0eXBlXG4gICAgICAgICAgICAgICAgICAgICAgPGk+e3sgdHlwZSB9fTwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvIG0tYi0yNFwiICpuZ0lmPVwiaXNEZXZpY2VUeXBlXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjOHktaWNvbj1cImluZm9cIj48L2k+XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7IHR5cGU6IGRhc2hib2FyZC5kZXZpY2VUeXBlVmFsdWUgfVwiXG4gICAgICAgICAgICAgICAgICAgIG5nTm9uQmluZGFibGVcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgVGhpcyBkYXNoYm9hcmQgaXMgc2hhcmVkIGJldHdlZW4gYWxsIGRldmljZXMgb2YgdGhlIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgPGk+e3sgdHlwZSB9fTwvaT5cbiAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGM4eS1kYXNoYm9hcmQtYXZhaWxhYmlsaXR5XG4gICAgICAgICAgICAgICpuZ0lmPVwiISFpc1JlcG9ydCA9PT0gZmFsc2VcIlxuICAgICAgICAgICAgICBbKGdsb2JhbFJvbGVzSWRzKV09XCJnbG9iYWxSb2xlc0lkc1wiXG4gICAgICAgICAgICAgIChnbG9iYWxSb2xlc0lkc0NoYW5nZSk9XCJkYXNoYm9hcmREZXRhaWxGb3JtPy5mb3JtPy5tYXJrQXNEaXJ0eSgpXCJcbiAgICAgICAgICAgID48L2M4eS1kYXNoYm9hcmQtYXZhaWxhYmlsaXR5PlxuICAgICAgICAgICAgPGM4eS1hcHBlYXJhbmNlLXNldHRpbmdzXG4gICAgICAgICAgICAgIFsodGhlbWVDbGFzcyldPVwic3R5bGluZy50aGVtZUNsYXNzXCJcbiAgICAgICAgICAgICAgWyhoZWFkZXJDbGFzcyldPVwic3R5bGluZy5oZWFkZXJDbGFzc1wiXG4gICAgICAgICAgICA+PC9jOHktYXBwZWFyYW5jZS1zZXR0aW5ncz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XG4gICAgICAgICAgICAgICAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwicC1iLTI0IG0tYi0wXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibWFyZ2luXCI+e3sgJ1dpZGdldCBtYXJnaW4nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkLndpZGdldE1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgbWF4PVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgREVGQVVMVF9EQVNIQk9BUkRfTUFSR0lOIH19XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiPnB4PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cInAtYi0yNCBtLWItMFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5XaWRnZXQgdGl0bGVzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCB0aXRsZT1cInt7ICdUcmFuc2xhdGUgaWYgcG9zc2libGUnIHwgdHJhbnNsYXRlIH19XCIgY2xhc3M9XCJjOHktY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidHJhbnNsYXRlV2lkZ2V0VGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkLnRyYW5zbGF0ZVdpZGdldFRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnVHJhbnNsYXRlIGlmIHBvc3NpYmxlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgPGM4eS13aWRnZXQtcHJldmlld1xuICAgICAgICAgICAgICBbdGFiXT1cIiFpc05hbWVkRGFzaGJvYXJkID8gZGFzaGJvYXJkIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3ByZXZpZXdDbGFzc2VzXT1cImdldERhc2hib2FyZFByZXZpZXdTdHlsZSgpXCJcbiAgICAgICAgICAgID48L2M4eS13aWRnZXQtcHJldmlldz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgID5cbiAgICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyAnU2F2ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkYXNoYm9hcmREZXRhaWxGb3JtLmZvcm0uaW52YWxpZCB8fCBkYXNoYm9hcmREZXRhaWxGb3JtLmZvcm0ucHJpc3RpbmVcIlxuICAgID5cbiAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
1
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { property } from 'lodash';
|
|
4
2
|
import { AssetTypesService } from '../asset-types/asset-types.service';
|
|
5
3
|
import { GroupFragment } from './group-fragment.model';
|
|
6
|
-
import { memoize } from './memoize.decorator';
|
|
7
4
|
import * as i0 from "@angular/core";
|
|
8
5
|
import * as i1 from "../asset-types/asset-types.service";
|
|
9
6
|
const MO_TYPES = [
|
|
@@ -143,16 +140,10 @@ export class GroupService {
|
|
|
143
140
|
}
|
|
144
141
|
GroupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GroupService, deps: [{ token: i1.AssetTypesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
145
142
|
GroupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GroupService, providedIn: 'root' });
|
|
146
|
-
__decorate([
|
|
147
|
-
memoize(property('id')),
|
|
148
|
-
__metadata("design:type", Function),
|
|
149
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
150
|
-
__metadata("design:returntype", Promise)
|
|
151
|
-
], GroupService.prototype, "getIcon", null);
|
|
152
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GroupService, decorators: [{
|
|
153
144
|
type: Injectable,
|
|
154
145
|
args: [{
|
|
155
146
|
providedIn: 'root'
|
|
156
147
|
}]
|
|
157
|
-
}], ctorParameters: function () { return [{ type: i1.AssetTypesService }]; }
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dyb3VwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFOUMsTUFBTSxRQUFRLEdBQUc7SUFDZixPQUFPO0lBQ1AsY0FBYztJQUNkLGNBQWM7SUFDZCxzQkFBc0I7SUFDdEIsT0FBTztJQUNQLE9BQU87Q0FDQyxDQUFDO0FBV1gsTUFBTSxPQUFPLFlBQVk7SUF5QnZCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBeEIvQyxVQUFLLEdBQVU7WUFDdEIsb0JBQW9CLEVBQUU7Z0JBQ3BCLElBQUksRUFBRSwyQkFBMkI7Z0JBQ2pDLFFBQVEsRUFBRSwyQkFBMkI7YUFDdEM7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsUUFBUSxFQUFFLHVCQUF1QjthQUNsQztZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsV0FBVztnQkFDakIsUUFBUSxFQUFFLGdCQUFnQjthQUMzQjtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixRQUFRLEVBQUUsc0JBQXNCO2FBQ2pDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsZUFBZTthQUMzQjtTQUNGLENBQUM7UUFDRixxQ0FBZ0MsR0FBRyxJQUFJ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QUFDLEVBQUU7WUFDL0IsT0FBTyxjQUFjLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDekIsT0FBTyxzQkFBc0IsQ0FBQztTQUMvQjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNwQixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O3lHQW5KVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNO0FBcUNsQjtJQURDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7MkNBUXZCOzJGQTFDVSxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjt3R0FvQ08sT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQXNzZXRUeXBlc1NlcnZpY2UgfSBmcm9tICcuLi9hc3NldC10eXBlcy9hc3NldC10eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb3VwRnJhZ21lbnQgfSBmcm9tICcuL2dyb3VwLWZyYWdtZW50Lm1vZGVsJztcbmltcG9ydCB7IG1lbW9pemUgfSBmcm9tICcuL21lbW9pemUuZGVjb3JhdG9yJztcblxuY29uc3QgTU9fVFlQRVMgPSBbXG4gICdhc3NldCcsXG4gICdkeW5hbWljR3JvdXAnLFxuICAnYnJva2VyU291cmNlJyxcbiAgJ2Jyb2tlclNvdXJjZUluYWN0aXZlJyxcbiAgJ2dyb3VwJyxcbiAgJ290aGVyJ1xuXSBhcyBjb25zdDtcblxudHlwZSBNb1R5cGVzID0gdHlwZW9mIE1PX1RZUEVTW251bWJlcl07XG5cbnR5cGUgSWNvbiA9IFBhcnRpYWw8eyBpY29uOiBzdHJpbmc7IGljb25PcGVuPzogc3RyaW5nOyBpY29uQ2xhc3M/OiBzdHJpbmcgfT47XG5cbnR5cGUgSWNvbnMgPSBQYXJ0aWFsPFJlY29yZDxNb1R5cGVzLCBJY29uPj47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwU2VydmljZSB7XG4gIHJlYWRvbmx5IGljb25zOiBJY29ucyA9IHtcbiAgICBicm9rZXJTb3VyY2VJbmFjdGl2ZToge1xuICAgICAgaWNvbjogJ2M4eS1ncm91cC1yZW1vdGUtaW5hY3RpdmUnLFxuICAgICAgaWNvbk9wZW46ICdjOHktZ3JvdXAtcmVtb3RlLWluYWN0aXZlJ1xuICAgIH0sXG4gICAgYnJva2VyU291cmNlOiB7XG4gICAgICBpY29uOiAnYzh5LWdyb3VwLXJlbW90ZScsXG4gICAgICBpY29uT3BlbjogJ2M4eS1ncm91cC1yZW1vdGUtb3BlbidcbiAgICB9LFxuICAgIGdyb3VwOiB7XG4gICAgICBpY29uOiAnYzh5LWdyb3VwJyxcbiAgICAgIGljb25PcGVuOiAnYzh5LWdyb3VwLW9wZW4nXG4gICAgfSxcbiAgICBkeW5hbWljR3JvdXA6IHtcbiAgICAgIGljb246ICdjOHktZ3JvdXAtc21hcnQnLFxuICAgICAgaWNvbk9wZW46ICdjOHktZ3JvdXAtc21hcnQtb3BlbidcbiAgICB9LFxuICAgIG90aGVyOiB7XG4gICAgICBpY29uOiAnZXhjaGFuZ2UnLFxuICAgICAgaWNvbkNsYXNzOiAnc3RhdHVzVW5rbm93bidcbiAgICB9XG4gIH07XG4gIGRhdGFCcm9rZXJTb3VyY2VGcmFnbWVudEluYWN0aXZlID0gYF8ke0dyb3VwRnJhZ21lbnQuZGF0YUJyb2tlclNvdXJjZUZyYWdtZW50fWA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3NldFR5cGVzU2VydmljZTogQXNzZXRUeXBlc1NlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGFuIGljb24gYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIGEgbWFuYWdlZCBvYmplY3QuXG4gICAqIEl0IHRha2VzIGludG8gYWNjb3VudCBmYWN0b3JzIHN1Y2ggYXMgdHlwZSwgYW5kIHNwZWNpZmljIGZyYWdtZW50cy5cbiAgICogQHBhcmFtIG1vIE1hbmFnZWQgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gICAqIEBwYXJhbSBvcGVuIERldGVybWluZXMgd2hldGhlciB0aGUgbWV0aG9kIHNob3VsZCByZXR1cm4gYW4gYWx0ZXJuYXRpdmUgaWNvbiBzaG93aW5nIHRoZSBvcGVuIHN0YXRlLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGFuIGljb24uXG4gICAqL1xuICBAbWVtb2l6ZShwcm9wZXJ0eSgnaWQnKSlcbiAgYXN5bmMgZ2V0SWNvbihtbzogSU1hbmFnZWRPYmplY3QsIG9wZW4gPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZ2VuZXJpY01vVHlwZSA9IHRoaXMuZGV0ZXJtaW5lTW9UeXBlKG1vKTtcbiAgICBpZiAoZ2VuZXJpY01vVHlwZSA9PT0gJ2Fzc2V0Jykge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0QXNzZXRDdXN0b21JY29uKG1vLnR5cGUsIG9wZW4pO1xuICAgIH1cbiAgICBjb25zdCB0eXBlSWNvbnMgPSB0aGlzLmdldERlZmF1bHRJY29uKGdlbmVyaWNNb1R5cGUpO1xuICAgIHJldHVybiAob3BlbiAmJiB0eXBlSWNvbnMuaWNvbk9wZW4pIHx8IHR5cGVJY29ucy5pY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYSBncm91cC5cbiAgICogQHBhcmFtIG1vIE1hbmFnZWQgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiB0aGUgbWFuYWdlZCBvYmplY3QgaXMgYSBncm91cC5cbiAgICovXG4gIGlzR3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhbW9bR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZV0gfHwgbW8udHlwZSA9PT0gR3JvdXBGcmFnbWVudC5ncm91cFR5cGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBtYW5hZ2VkIG9iamVjdCBpcyBhIGR5bmFtaWMgZ3JvdXAuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZHluYW1pYyBncm91cC5cbiAgICovXG4gIGlzRHluYW1pY0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW1vW0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRdIHx8IG1vLnR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIuXG4gICAqL1xuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhbW9bR3JvdXBGcmFnbWVudC5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRdIHx8ICEhbW9bdGhpcy5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRJbmFjdGl2ZV1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYSBkYXRhIGJyb2tlciBhY3RpdmUuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIgYWN0aXZlLlxuICAgKi9cbiAgaXNEYXRhQnJva2VyQWN0aXZlKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiAoXG4gICAgICAhIW1vW0dyb3VwRnJhZ21lbnQuZGF0YUJyb2tlclNvdXJjZUZyYWdtZW50XSAmJiAhbW9bdGhpcy5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRJbmFjdGl2ZV1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYW4gYXNzZXQuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGFuIGFzc2V0LlxuICAgKi9cbiAgaXNBc3NldChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gISFtby5jOHlfSXNBc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgb2JqZWN0IGJlbG9uZ3MgdG8gYW55IHR5cGUgb2YgZ3JvdXAuXG4gICAqIFR5cGVzIG9mIGdyb3VwczogZ3JvdXAsIGR5bmFtaWMgZ3JvdXAsIGRhdGEgYnJva2VyLCBkYXRhIGJyb2tlciBhY3RpdmUuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGJlbG9uZ3MgdG8gdGhlIGdyb3VwIGNhdGVnb3J5LlxuICAgKi9cbiAgaXNBbnlHcm91cChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0dyb3VwKG1vKSB8fFxuICAgICAgdGhpcy5pc0R5bmFtaWNHcm91cChtbykgfHxcbiAgICAgIHRoaXMuaXNEYXRhQnJva2VyKG1vKSB8fFxuICAgICAgdGhpcy5pc0RhdGFCcm9rZXJBY3RpdmUobW8pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGV2aWNlLlxuICAgKiBAcGFyYW0gbW8gTWFuYWdlZCBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSBtYW5hZ2VkIG9iamVjdCBpcyBhIGRldmljZS5cbiAgICovXG4gIGlzRGV2aWNlKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiAhIW1vLmM4eV9Jc0RldmljZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXRDdXN0b21JY29uKG1vVHlwZTogc3RyaW5nLCBvcGVuID0gZmFsc2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFzc2V0VHlwZXNTZXJ2aWNlLmdldEljb24obW9UeXBlLCBvcGVuKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEljb24obW9UeXBlOiBNb1R5cGVzKTogSWNvbiB7XG4gICAgcmV0dXJuIHRoaXMuaWNvbnNbbW9UeXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lTW9UeXBlKG1vOiBJTWFuYWdlZE9iamVjdCk6IE1vVHlwZXMge1xuICAgIGlmICh0aGlzLmlzQXNzZXQobW8pKSB7XG4gICAgICByZXR1cm4gJ2Fzc2V0JztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0R5bmFtaWNHcm91cChtbykpIHtcbiAgICAgIHJldHVybiAnZHluYW1pY0dyb3VwJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0RhdGFCcm9rZXJBY3RpdmUobW8pKSB7XG4gICAgICByZXR1cm4gJ2Jyb2tlclNvdXJjZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNEYXRhQnJva2VyKG1vKSkge1xuICAgICAgcmV0dXJuICdicm9rZXJTb3VyY2VJbmFjdGl2ZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHcm91cChtbykpIHtcbiAgICAgIHJldHVybiAnZ3JvdXAnO1xuICAgIH1cblxuICAgIHJldHVybiAnb3RoZXInO1xuICB9XG59XG4iXX0=
|
|
148
|
+
}], ctorParameters: function () { return [{ type: i1.AssetTypesService }]; } });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dyb3VwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV2RCxNQUFNLFFBQVEsR0FBRztJQUNmLE9BQU87SUFDUCxjQUFjO0lBQ2QsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixPQUFPO0lBQ1AsT0FBTztDQUNDLENBQUM7QUFXWCxNQUFNLE9BQU8sWUFBWTtJQXlCdkIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF4Qi9DLFVBQUssR0FBVTtZQUN0QixvQkFBb0IsRUFBRTtnQkFDcEIsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsUUFBUSxFQUFFLDJCQUEyQjthQUN0QztZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixRQUFRLEVBQUUsdUJBQXVCO2FBQ2xDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxXQUFXO2dCQUNqQixRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLFFBQVEsRUFBRSxzQkFBc0I7YUFDakM7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSxlQUFlO2FBQzNCO1NBQ0YsQ0FBQztRQUNGLHFDQUFnQyxHQUFHLElBQUksYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFFckIsQ0FBQztJQUU1RDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQWtC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QixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3BCLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7eUdBbEpVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFzc2V0VHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXNzZXQtdHlwZXMvYXNzZXQtdHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBHcm91cEZyYWdtZW50IH0gZnJvbSAnLi9ncm91cC1mcmFnbWVudC5tb2RlbCc7XG5cbmNvbnN0IE1PX1RZUEVTID0gW1xuICAnYXNzZXQnLFxuICAnZHluYW1pY0dyb3VwJyxcbiAgJ2Jyb2tlclNvdXJjZScsXG4gICdicm9rZXJTb3VyY2VJbmFjdGl2ZScsXG4gICdncm91cCcsXG4gICdvdGhlcidcbl0gYXMgY29uc3Q7XG5cbnR5cGUgTW9UeXBlcyA9IHR5cGVvZiBNT19UWVBFU1tudW1iZXJdO1xuXG50eXBlIEljb24gPSBQYXJ0aWFsPHsgaWNvbjogc3RyaW5nOyBpY29uT3Blbj86IHN0cmluZzsgaWNvbkNsYXNzPzogc3RyaW5nIH0+O1xuXG50eXBlIEljb25zID0gUGFydGlhbDxSZWNvcmQ8TW9UeXBlcywgSWNvbj4+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHcm91cFNlcnZpY2Uge1xuICByZWFkb25seSBpY29uczogSWNvbnMgPSB7XG4gICAgYnJva2VyU291cmNlSW5hY3RpdmU6IHtcbiAgICAgIGljb246ICdjOHktZ3JvdXAtcmVtb3RlLWluYWN0aXZlJyxcbiAgICAgIGljb25PcGVuOiAnYzh5LWdyb3VwLXJlbW90ZS1pbmFjdGl2ZSdcbiAgICB9LFxuICAgIGJyb2tlclNvdXJjZToge1xuICAgICAgaWNvbjogJ2M4eS1ncm91cC1yZW1vdGUnLFxuICAgICAgaWNvbk9wZW46ICdjOHktZ3JvdXAtcmVtb3RlLW9wZW4nXG4gICAgfSxcbiAgICBncm91cDoge1xuICAgICAgaWNvbjogJ2M4eS1ncm91cCcsXG4gICAgICBpY29uT3BlbjogJ2M4eS1ncm91cC1vcGVuJ1xuICAgIH0sXG4gICAgZHluYW1pY0dyb3VwOiB7XG4gICAgICBpY29uOiAnYzh5LWdyb3VwLXNtYXJ0JyxcbiAgICAgIGljb25PcGVuOiAnYzh5LWdyb3VwLXNtYXJ0LW9wZW4nXG4gICAgfSxcbiAgICBvdGhlcjoge1xuICAgICAgaWNvbjogJ2V4Y2hhbmdlJyxcbiAgICAgIGljb25DbGFzczogJ3N0YXR1c1Vua25vd24nXG4gICAgfVxuICB9O1xuICBkYXRhQnJva2VyU291cmNlRnJhZ21lbnRJbmFjdGl2ZSA9IGBfJHtHcm91cEZyYWdtZW50LmRhdGFCcm9rZXJTb3VyY2VGcmFnbWVudH1gO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXNzZXRUeXBlc1NlcnZpY2U6IEFzc2V0VHlwZXNTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhbiBpY29uIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiBhIG1hbmFnZWQgb2JqZWN0LlxuICAgKiBJdCB0YWtlcyBpbnRvIGFjY291bnQgZmFjdG9ycyBzdWNoIGFzIHR5cGUsIGFuZCBzcGVjaWZpYyBmcmFnbWVudHMuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcGFyYW0gb3BlbiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG1ldGhvZCBzaG91bGQgcmV0dXJuIGFuIGFsdGVybmF0aXZlIGljb24gc2hvd2luZyB0aGUgb3BlbiBzdGF0ZS5cbiAgICogQHJldHVybnMgUmV0dXJucyBhbiBpY29uLlxuICAgKi9cbiAgYXN5bmMgZ2V0SWNvbihtbzogSU1hbmFnZWRPYmplY3QsIG9wZW4gPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZ2VuZXJpY01vVHlwZSA9IHRoaXMuZGV0ZXJtaW5lTW9UeXBlKG1vKTtcbiAgICBpZiAoZ2VuZXJpY01vVHlwZSA9PT0gJ2Fzc2V0Jykge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0QXNzZXRDdXN0b21JY29uKG1vLnR5cGUsIG9wZW4pO1xuICAgIH1cbiAgICBjb25zdCB0eXBlSWNvbnMgPSB0aGlzLmdldERlZmF1bHRJY29uKGdlbmVyaWNNb1R5cGUpO1xuICAgIHJldHVybiAob3BlbiAmJiB0eXBlSWNvbnMuaWNvbk9wZW4pIHx8IHR5cGVJY29ucy5pY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYSBncm91cC5cbiAgICogQHBhcmFtIG1vIE1hbmFnZWQgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gICAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSBpZiB0aGUgbWFuYWdlZCBvYmplY3QgaXMgYSBncm91cC5cbiAgICovXG4gIGlzR3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhbW9bR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZV0gfHwgbW8udHlwZSA9PT0gR3JvdXBGcmFnbWVudC5ncm91cFR5cGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBtYW5hZ2VkIG9iamVjdCBpcyBhIGR5bmFtaWMgZ3JvdXAuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZHluYW1pYyBncm91cC5cbiAgICovXG4gIGlzRHluYW1pY0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW1vW0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRdIHx8IG1vLnR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIuXG4gICAqL1xuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhbW9bR3JvdXBGcmFnbWVudC5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRdIHx8ICEhbW9bdGhpcy5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRJbmFjdGl2ZV1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYSBkYXRhIGJyb2tlciBhY3RpdmUuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGF0YSBicm9rZXIgYWN0aXZlLlxuICAgKi9cbiAgaXNEYXRhQnJva2VyQWN0aXZlKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiAoXG4gICAgICAhIW1vW0dyb3VwRnJhZ21lbnQuZGF0YUJyb2tlclNvdXJjZUZyYWdtZW50XSAmJiAhbW9bdGhpcy5kYXRhQnJva2VyU291cmNlRnJhZ21lbnRJbmFjdGl2ZV1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gbWFuYWdlZCBvYmplY3QgaXMgYW4gYXNzZXQuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGlzIGFuIGFzc2V0LlxuICAgKi9cbiAgaXNBc3NldChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gISFtby5jOHlfSXNBc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgb2JqZWN0IGJlbG9uZ3MgdG8gYW55IHR5cGUgb2YgZ3JvdXAuXG4gICAqIFR5cGVzIG9mIGdyb3VwczogZ3JvdXAsIGR5bmFtaWMgZ3JvdXAsIGRhdGEgYnJva2VyLCBkYXRhIGJyb2tlciBhY3RpdmUuXG4gICAqIEBwYXJhbSBtbyBNYW5hZ2VkIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgdGhlIG1hbmFnZWQgb2JqZWN0IGJlbG9uZ3MgdG8gdGhlIGdyb3VwIGNhdGVnb3J5LlxuICAgKi9cbiAgaXNBbnlHcm91cChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0dyb3VwKG1vKSB8fFxuICAgICAgdGhpcy5pc0R5bmFtaWNHcm91cChtbykgfHxcbiAgICAgIHRoaXMuaXNEYXRhQnJva2VyKG1vKSB8fFxuICAgICAgdGhpcy5pc0RhdGFCcm9rZXJBY3RpdmUobW8pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG1hbmFnZWQgb2JqZWN0IGlzIGEgZGV2aWNlLlxuICAgKiBAcGFyYW0gbW8gTWFuYWdlZCBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSBtYW5hZ2VkIG9iamVjdCBpcyBhIGRldmljZS5cbiAgICovXG4gIGlzRGV2aWNlKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiAhIW1vLmM4eV9Jc0RldmljZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXRDdXN0b21JY29uKG1vVHlwZTogc3RyaW5nLCBvcGVuID0gZmFsc2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFzc2V0VHlwZXNTZXJ2aWNlLmdldEljb24obW9UeXBlLCBvcGVuKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEljb24obW9UeXBlOiBNb1R5cGVzKTogSWNvbiB7XG4gICAgcmV0dXJuIHRoaXMuaWNvbnNbbW9UeXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lTW9UeXBlKG1vOiBJTWFuYWdlZE9iamVjdCk6IE1vVHlwZXMge1xuICAgIGlmICh0aGlzLmlzQXNzZXQobW8pKSB7XG4gICAgICByZXR1cm4gJ2Fzc2V0JztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0R5bmFtaWNHcm91cChtbykpIHtcbiAgICAgIHJldHVybiAnZHluYW1pY0dyb3VwJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0RhdGFCcm9rZXJBY3RpdmUobW8pKSB7XG4gICAgICByZXR1cm4gJ2Jyb2tlclNvdXJjZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNEYXRhQnJva2VyKG1vKSkge1xuICAgICAgcmV0dXJuICdicm9rZXJTb3VyY2VJbmFjdGl2ZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHcm91cChtbykpIHtcbiAgICAgIHJldHVybiAnZ3JvdXAnO1xuICAgIH1cblxuICAgIHJldHVybiAnb3RoZXInO1xuICB9XG59XG4iXX0=
|