@unovis/angular 1.5.1 → 1.6.0-beta.0

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.
@@ -78,11 +78,13 @@ export declare class VisAreaComponent<Datum> implements AreaConfigInterface<Datu
78
78
  opacity?: NumericAccessor<Datum[]>;
79
79
  /** Optional area cursor. String or accessor function. Default: `null` */
80
80
  cursor?: StringAccessor<Datum[]>;
81
- /** If an area is smaller than 1px, extend it to have 1px height.
81
+ /** If an area is smaller than 1px, extend it to have 1px height. Default: `false` */
82
+ minHeight1Px?: boolean;
83
+ /** Minimum height of the area, use carefully.
82
84
  * This setting is useful when some of the area values are zeros or very small so visually they become
83
85
  * practically invisible, but you want to show that the data behind them exists and they're not just empty segments.
84
- * Default: `false` */
85
- minHeight1Px?: boolean;
86
+ * Default: `undefined` */
87
+ minHeight?: number;
86
88
  data: Datum[];
87
89
  component: Area<Datum> | undefined;
88
90
  componentContainer: ContainerCore | undefined;
@@ -90,5 +92,5 @@ export declare class VisAreaComponent<Datum> implements AreaConfigInterface<Datu
90
92
  ngOnChanges(changes: SimpleChanges): void;
91
93
  private getConfig;
92
94
  static ɵfac: i0.ɵɵFactoryDeclaration<VisAreaComponent<any>, never>;
93
- static ɵcmp: i0.ɵɵComponentDeclaration<VisAreaComponent<any>, "vis-area", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "curveType": "curveType"; "baseline": "baseline"; "opacity": "opacity"; "cursor": "cursor"; "minHeight1Px": "minHeight1Px"; "data": "data"; }, {}, never, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisAreaComponent<any>, "vis-area", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "x": "x"; "y": "y"; "id": "id"; "color": "color"; "xScale": "xScale"; "yScale": "yScale"; "excludeFromDomainCalculation": "excludeFromDomainCalculation"; "curveType": "curveType"; "baseline": "baseline"; "opacity": "opacity"; "cursor": "cursor"; "minHeight1Px": "minHeight1Px"; "minHeight": "minHeight"; "data": "data"; }, {}, never, never>;
94
96
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, SimpleChanges } from '@angular/core';
2
- import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, GraphNode, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphLink, GraphNodeShape, TrimMode, GraphNodeSelectionHighlightMode, GraphPanelConfig, GraphInputData, GraphDataModel } from '@unovis/ts';
2
+ import { Graph, GraphConfigInterface, ContainerCore, GraphInputNode, GraphInputLink, VisEventType, VisEventCallback, Spacing, GraphFitViewAlignment, GraphLayoutType, StringAccessor, GraphForceLayoutSettings, GraphDagreLayoutSetting, GenericAccessor, GraphElkLayoutSettings, GraphNode, NumericAccessor, GraphLinkStyle, GraphLinkArrowStyle, ColorAccessor, BooleanAccessor, GraphCircleLabel, GraphLink, GraphNodeShape, TrimMode, GraphNodeSelectionHighlightMode, GraphPanelConfig, GraphInputData, GraphDataModel } from '@unovis/ts';
3
3
  import { ElkShape } from 'elkjs';
4
4
  import { Selection } from 'd3-selection';
5
5
  import { D3DragEvent } from 'd3-drag';
@@ -68,6 +68,10 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
68
68
  disableBrush?: boolean;
69
69
  /** Interval to re-render the graph when zooming. Default: `100` */
70
70
  zoomThrottledUpdateNodeThreshold?: number;
71
+ /** Padding for the graph when fitting to container. Default: `50` */
72
+ fitViewPadding?: Spacing | number;
73
+ /** Default alignment when fitting the graph view. Default: `GraphFitViewAlignment.Center` */
74
+ fitViewAlign?: GraphFitViewAlignment;
71
75
  /** Type of the graph layout. Default: `GraphLayoutType.Force` */
72
76
  layoutType?: GraphLayoutType | string;
73
77
  /** Fit the graph to container on data or config updates, or on container resize. Default: `true` */
@@ -142,10 +146,13 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
142
146
  linkDisabled?: BooleanAccessor<L>;
143
147
  /** Link flow animation accessor function or constant value. Default: `false` */
144
148
  linkFlow?: BooleanAccessor<L>;
145
- /** Animation duration of the flow (traffic) circles. Default: `20000` */
146
- linkFlowAnimDuration?: number;
149
+ /** Animation duration of the flow (traffic) circles in milliseconds. If `linkFlowParticleSpeed` is provided,
150
+ * this duration will be calculated based on the link length and particle speed. Default: `20000` */
151
+ linkFlowAnimDuration?: NumericAccessor<L>;
147
152
  /** Size of the moving particles that represent traffic flow. Default: `2` */
148
- linkFlowParticleSize?: number;
153
+ linkFlowParticleSize?: NumericAccessor<L>;
154
+ /** Speed of the moving particles in pixels per second. This property takes precedence over `linkFlowAnimDuration`. Default: `undefined` */
155
+ linkFlowParticleSpeed?: NumericAccessor<L>;
149
156
  /** Link label accessor function or constant value. Default: `undefined` */
150
157
  linkLabel?: GenericAccessor<GraphCircleLabel | GraphCircleLabel[], L> | undefined;
151
158
  /** Shift label along the link center a little bit to avoid overlap with the link arrow. Default: `true` */
@@ -277,5 +284,5 @@ export declare class VisGraphComponent<N extends GraphInputNode, L extends Graph
277
284
  ngOnChanges(changes: SimpleChanges): void;
278
285
  private getConfig;
279
286
  static ɵfac: i0.ɵɵFactoryDeclaration<VisGraphComponent<any, any>, never>;
280
- static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "layoutElkGetNodeShape": "layoutElkGetNodeShape"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "linkHighlightOnHover": "linkHighlightOnHover"; "linkSourcePointOffset": "linkSourcePointOffset"; "linkTargetPointOffset": "linkTargetPointOffset"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "shouldDataUpdate": "shouldDataUpdate"; "data": "data"; }, {}, never, never>;
287
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisGraphComponent<any, any>, "vis-graph", never, { "duration": "duration"; "events": "events"; "attributes": "attributes"; "zoomScaleExtent": "zoomScaleExtent"; "disableZoom": "disableZoom"; "zoomEventFilter": "zoomEventFilter"; "disableDrag": "disableDrag"; "disableBrush": "disableBrush"; "zoomThrottledUpdateNodeThreshold": "zoomThrottledUpdateNodeThreshold"; "fitViewPadding": "fitViewPadding"; "fitViewAlign": "fitViewAlign"; "layoutType": "layoutType"; "layoutAutofit": "layoutAutofit"; "layoutAutofitTolerance": "layoutAutofitTolerance"; "layoutNonConnectedAside": "layoutNonConnectedAside"; "layoutNodeGroup": "layoutNodeGroup"; "layoutGroupOrder": "layoutGroupOrder"; "layoutParallelNodesPerColumn": "layoutParallelNodesPerColumn"; "layoutParallelNodeSubGroup": "layoutParallelNodeSubGroup"; "layoutParallelSubGroupsPerRow": "layoutParallelSubGroupsPerRow"; "layoutParallelGroupSpacing": "layoutParallelGroupSpacing"; "layoutParallelSortConnectionsByGroup": "layoutParallelSortConnectionsByGroup"; "forceLayoutSettings": "forceLayoutSettings"; "dagreLayoutSettings": "dagreLayoutSettings"; "layoutElkSettings": "layoutElkSettings"; "layoutElkNodeGroups": "layoutElkNodeGroups"; "layoutElkGetNodeShape": "layoutElkGetNodeShape"; "linkWidth": "linkWidth"; "linkStyle": "linkStyle"; "linkBandWidth": "linkBandWidth"; "linkArrow": "linkArrow"; "linkStroke": "linkStroke"; "linkDisabled": "linkDisabled"; "linkFlow": "linkFlow"; "linkFlowAnimDuration": "linkFlowAnimDuration"; "linkFlowParticleSize": "linkFlowParticleSize"; "linkFlowParticleSpeed": "linkFlowParticleSpeed"; "linkLabel": "linkLabel"; "linkLabelShiftFromCenter": "linkLabelShiftFromCenter"; "linkNeighborSpacing": "linkNeighborSpacing"; "linkCurvature": "linkCurvature"; "linkHighlightOnHover": "linkHighlightOnHover"; "linkSourcePointOffset": "linkSourcePointOffset"; "linkTargetPointOffset": "linkTargetPointOffset"; "selectedLinkId": "selectedLinkId"; "nodeSize": "nodeSize"; "nodeStrokeWidth": "nodeStrokeWidth"; "nodeShape": "nodeShape"; "nodeGaugeValue": "nodeGaugeValue"; "nodeGaugeFill": "nodeGaugeFill"; "nodeGaugeAnimDuration": "nodeGaugeAnimDuration"; "nodeIcon": "nodeIcon"; "nodeIconSize": "nodeIconSize"; "nodeLabel": "nodeLabel"; "nodeLabelTrim": "nodeLabelTrim"; "nodeLabelTrimMode": "nodeLabelTrimMode"; "nodeLabelTrimLength": "nodeLabelTrimLength"; "nodeSubLabel": "nodeSubLabel"; "nodeSubLabelTrim": "nodeSubLabelTrim"; "nodeSubLabelTrimMode": "nodeSubLabelTrimMode"; "nodeSubLabelTrimLength": "nodeSubLabelTrimLength"; "nodeSideLabels": "nodeSideLabels"; "nodeBottomIcon": "nodeBottomIcon"; "nodeDisabled": "nodeDisabled"; "nodeFill": "nodeFill"; "nodeStroke": "nodeStroke"; "nodeSort": "nodeSort"; "nodeEnterPosition": "nodeEnterPosition"; "nodeEnterScale": "nodeEnterScale"; "nodeExitPosition": "nodeExitPosition"; "nodeExitScale": "nodeExitScale"; "nodeEnterCustomRenderFunction": "nodeEnterCustomRenderFunction"; "nodeUpdateCustomRenderFunction": "nodeUpdateCustomRenderFunction"; "nodePartialUpdateCustomRenderFunction": "nodePartialUpdateCustomRenderFunction"; "nodeExitCustomRenderFunction": "nodeExitCustomRenderFunction"; "nodeOnZoomCustomRenderFunction": "nodeOnZoomCustomRenderFunction"; "nodeSelectionHighlightMode": "nodeSelectionHighlightMode"; "selectedNodeId": "selectedNodeId"; "selectedNodeIds": "selectedNodeIds"; "panels": "panels"; "onNodeDragStart": "onNodeDragStart"; "onNodeDrag": "onNodeDrag"; "onNodeDragEnd": "onNodeDragEnd"; "onZoom": "onZoom"; "onZoomStart": "onZoomStart"; "onZoomEnd": "onZoomEnd"; "onLayoutCalculated": "onLayoutCalculated"; "onNodeSelectionBrush": "onNodeSelectionBrush"; "onNodeSelectionDrag": "onNodeSelectionDrag"; "onRenderComplete": "onRenderComplete"; "shouldDataUpdate": "shouldDataUpdate"; "data": "data"; }, {}, never, never>;
281
288
  }
@@ -90,7 +90,7 @@ export declare class VisLineComponent<Datum> implements LineConfigInterface<Datu
90
90
  * You can customize the line's appearance with `--vis-line-gapfill-stroke-dasharray`
91
91
  * and `--vis-line-gapfill-stroke-opacity` CSS variables.
92
92
  * Default: `false` */
93
- interpolateMissingData: boolean;
93
+ interpolateMissingData?: boolean;
94
94
  data: Datum[];
95
95
  component: Line<Datum> | undefined;
96
96
  componentContainer: ContainerCore | undefined;
@@ -6,11 +6,9 @@ export declare class VisTooltipComponent implements TooltipConfigInterface, Afte
6
6
  components?: ComponentCore<unknown>[];
7
7
  /** Container to where the Tooltip component should be inserted. Default: `undefined` */
8
8
  container?: HTMLElement;
9
- /** Follow the mouse cursor. If `true`, the tooltip can't be hovered over
10
- * even when `allowHover` is set to `true`. Default: `true` */
9
+ /** Follow the mouse cursor. Default: `true` */
11
10
  followCursor?: boolean;
12
- /** Allow the tooltip to be hovered over and interacted with when `followCursor` is set to `false`.
13
- * Default: `true` */
11
+ /** Allow the tooltip to be hovered over and interacted with. Default: `false` */
14
12
  allowHover?: boolean;
15
13
  /** Horizontal placement of the tooltip. Default: `Position.Auto` */
16
14
  horizontalPlacement?: Position | string | undefined;
@@ -61,11 +59,15 @@ export declare class VisTooltipComponent implements TooltipConfigInterface, Afte
61
59
  };
62
60
  /** Custom class name for the tooltip. Default: `undefined` */
63
61
  className?: string;
62
+ /** Hide delay in milliseconds. Default: `undefined` */
63
+ hideDelay?: number;
64
+ /** Show delay in milliseconds. Default: `undefined` */
65
+ showDelay?: number;
64
66
  component: Tooltip | undefined;
65
67
  componentContainer: ContainerCore | undefined;
66
68
  ngAfterViewInit(): void;
67
69
  ngOnChanges(changes: SimpleChanges): void;
68
70
  private getConfig;
69
71
  static ɵfac: i0.ɵɵFactoryDeclaration<VisTooltipComponent, never>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<VisTooltipComponent, "vis-tooltip", never, { "components": "components"; "container": "container"; "followCursor": "followCursor"; "allowHover": "allowHover"; "horizontalPlacement": "horizontalPlacement"; "horizontalShift": "horizontalShift"; "verticalPlacement": "verticalPlacement"; "verticalShift": "verticalShift"; "triggers": "triggers"; "attributes": "attributes"; "className": "className"; }, {}, never, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<VisTooltipComponent, "vis-tooltip", never, { "components": "components"; "container": "container"; "followCursor": "followCursor"; "allowHover": "allowHover"; "horizontalPlacement": "horizontalPlacement"; "horizontalShift": "horizontalShift"; "verticalPlacement": "verticalPlacement"; "verticalShift": "verticalShift"; "triggers": "triggers"; "attributes": "attributes"; "className": "className"; "hideDelay": "hideDelay"; "showDelay": "showDelay"; }, {}, never, never>;
71
73
  }
@@ -21,8 +21,8 @@ export class VisAreaComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px } = this;
25
- const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px };
24
+ const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight } = this;
25
+ const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight };
26
26
  const keys = Object.keys(config);
27
27
  keys.forEach(key => { if (config[key] === undefined)
28
28
  delete config[key]; });
@@ -30,7 +30,7 @@ export class VisAreaComponent {
30
30
  }
31
31
  }
32
32
  VisAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisAreaComponent, selector: "vis-area", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", curveType: "curveType", baseline: "baseline", opacity: "opacity", cursor: "cursor", minHeight1Px: "minHeight1Px", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisAreaComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisAreaComponent, selector: "vis-area", inputs: { duration: "duration", events: "events", attributes: "attributes", x: "x", y: "y", id: "id", color: "color", xScale: "xScale", yScale: "yScale", excludeFromDomainCalculation: "excludeFromDomainCalculation", curveType: "curveType", baseline: "baseline", opacity: "opacity", cursor: "cursor", minHeight1Px: "minHeight1Px", minHeight: "minHeight", data: "data" }, providers: [{ provide: VisXYComponent, useExisting: VisAreaComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisAreaComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -69,7 +69,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
69
69
  type: Input
70
70
  }], minHeight1Px: [{
71
71
  type: Input
72
+ }], minHeight: [{
73
+ type: Input
72
74
  }], data: [{
73
75
  type: Input
74
76
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcmVhL2FyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQXFHM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNoSyxNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQTtRQUNsSyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzs4R0EzSFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNlhBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLCtDQUY3RCxFQUFFOzRGQUlELGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO2lCQUN4RTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLENBQUM7c0JBQVQsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQXJlYSxcbiAgQXJlYUNvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIENvbG9yQWNjZXNzb3IsXG4gIENvbnRpbnVvdXNTY2FsZSxcbiAgQ3VydmVUeXBlLFxuICBTdHJpbmdBY2Nlc3Nvcixcbn0gZnJvbSAnQHVub3Zpcy90cydcbmltcG9ydCB7IFZpc1hZQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWFyZWEnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc1hZQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzQXJlYUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzQXJlYUNvbXBvbmVudDxEYXR1bT4gaW1wbGVtZW50cyBBcmVhQ29uZmlnSW50ZXJmYWNlPERhdHVtPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBYIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHg6IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5cblxuICAvKiogQSBzaW5nbGUgb2YgbXVsdGlwbGUgYWNjZXNzb3IgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFkgYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeTogTnVtZXJpY0FjY2Vzc29yPERhdHVtPiB8IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT5bXVxuXG4gIC8qKiBBY2Nlc3NvciBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgdW5pcXVlIGRhdGEgcmVjb3JkIGlkLiBVc2VkIGZvciBtb3JlIHBlcnNpc3RlbnQgZGF0YSB1cGRhdGVzLiBEZWZhdWx0OiBgKGQsIGkpID0+IGQuaWQgPz8gaWAgKi9cbiAgQElucHV0KCkgaWQ/OiAoKGQ6IERhdHVtLCBpOiBudW1iZXIsIC4uLnJlc3QpID0+IHN0cmluZylcblxuICAvKiogQXJlYSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbi4gVGhlIHdob2xlIGRhdGEgYXJyYXkgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBjb2xvcj86IENvbG9yQWNjZXNzb3I8RGF0dW1bXT5cblxuICAvKiogU2NhbGUgZm9yIFggZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeFNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeFNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIFNjYWxlIGZvciBZIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHlTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHlTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBJZGVudGlmaWVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBvdmVyYWxsIFggYW5kIFkgZG9tYWluIGNhbGN1bGF0aW9ucyBvciBub3QuXG4gICAqIFRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHBhc3MgaW5kaXZpZHVhbCBkYXRhIHRvIGEgY29tcG9uZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCBpdCB0byBhZmZlY3RcbiAgICogdGhlIHNjYWxlcyBvZiB0aGUgY2hhcnQuXG4gICAqIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbj86IGJvb2xlYW5cblxuICAvKiogQ3VydmUgdHlwZSBmcm9tIHRoZSBDdXJ2ZVR5cGUgZW51bS4gRGVmYXVsdDogYEN1cnZlVHlwZS5Nb25vdG9uZVhgICovXG4gIEBJbnB1dCgpIGN1cnZlVHlwZT86IEN1cnZlVHlwZSB8IHN0cmluZ1xuXG4gIC8qKiBCYXNlbGluZSB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgYmFzZWxpbmU/OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIE9wYWNpdHkgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBvcGFjaXR5PzogTnVtZXJpY0FjY2Vzc29yPERhdHVtW10+XG5cbiAgLyoqIE9wdGlvbmFsIGFyZWEgY3Vyc29yLiBTdHJpbmcgb3IgYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBjdXJzb3I/OiBTdHJpbmdBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBJZiBhbiBhcmVhIGlzIHNtYWxsZXIgdGhhbiAxcHgsIGV4dGVuZCBpdCB0byBoYXZlIDFweCBoZWlnaHQuXG4gICAqIFRoaXMgc2V0dGluZyBpcyB1c2VmdWwgd2hlbiBzb21lIG9mIHRoZSBhcmVhIHZhbHVlcyBhcmUgemVyb3Mgb3IgdmVyeSBzbWFsbCBzbyB2aXN1YWxseSB0aGV5IGJlY29tZVxuICAgKiBwcmFjdGljYWxseSBpbnZpc2libGUsIGJ1dCB5b3Ugd2FudCB0byBzaG93IHRoYXQgdGhlIGRhdGEgYmVoaW5kIHRoZW0gZXhpc3RzIGFuZCB0aGV5J3JlIG5vdCBqdXN0IGVtcHR5IHNlZ21lbnRzLlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIG1pbkhlaWdodDFQeD86IGJvb2xlYW5cbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQXJlYTxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQXJlYTxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBBcmVhQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBjdXJ2ZVR5cGUsIGJhc2VsaW5lLCBvcGFjaXR5LCBjdXJzb3IsIG1pbkhlaWdodDFQeCB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgY3VydmVUeXBlLCBiYXNlbGluZSwgb3BhY2l0eSwgY3Vyc29yLCBtaW5IZWlnaHQxUHggfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIChrZXlvZiBBcmVhQ29uZmlnSW50ZXJmYWNlPERhdHVtPilbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcmVhL2FyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBVUwsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQXdHM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDM0ssTUFBTSxNQUFNLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFBO1FBQzdLLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUF5QyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUxRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7OzhHQTlIVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixxWkFGaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUMsK0NBRjdELEVBQUU7NEZBSUQsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUM7aUJBQ3hFOzhCQUdVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLE1BQU07c0JBQWQsS0FBSztnQkF3QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxDQUFDO3NCQUFULEtBQUs7Z0JBR0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFNRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vICEhISBUaGlzIGNvZGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkLiBZb3Ugc2hvdWxkIG5vdCBjaGFuZ2UgaXQgISEhXG5pbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEFyZWEsXG4gIEFyZWFDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIFZpc0V2ZW50VHlwZSxcbiAgVmlzRXZlbnRDYWxsYmFjayxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBDb2xvckFjY2Vzc29yLFxuICBDb250aW51b3VzU2NhbGUsXG4gIEN1cnZlVHlwZSxcbiAgU3RyaW5nQWNjZXNzb3IsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNYWUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1hcmVhJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNYWUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0FyZWFDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0FyZWFDb21wb25lbnQ8RGF0dW0+IGltcGxlbWVudHMgQXJlYUNvbmZpZ0ludGVyZmFjZTxEYXR1bT4sIEFmdGVyVmlld0luaXQge1xuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBkYXRhIHVwZGF0ZSB0cmFuc2l0aW9ucyBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGA2MDBgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIEV2ZW50cyBjb25maWd1cmF0aW9uLiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2V2ZW50VHlwZV06IGNhbGxiYWNrRnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgY2xpY2s6IChkKSA9PiBjb25zb2xlLmxvZyhcIkNsaWNrZWQgQXJlYVwiLCBkKVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBldmVudHM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbZXZlbnRUeXBlIGluIFZpc0V2ZW50VHlwZV0/OiBWaXNFdmVudENhbGxiYWNrXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBZb3UgY2FuIHNldCBldmVyeSBTVkcgYW5kIEhUTUwgdmlzdWFsaXphdGlvbiBvYmplY3QgdG8gaGF2ZSBhIGN1c3RvbSBET00gYXR0cmlidXRlcywgd2hpY2ggaXMgdXNlZnVsXG4gICAqIHdoZW4geW91IHdhbnQgdG8gZG8gdW5pdCBvciBlbmQtdG8tZW5kIHRlc3RpbmcuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtzZWxlY3RvclN0cmluZ106IHtcbiAgICogICAgIFxcW2F0dHJpYnV0ZU5hbWVdOiBhdHRyaWJ1dGUgY29uc3RhbnQgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb25cbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IHtcbiAgICogICAgXCJ0ZXN0LXZhbHVlXCI6IGQgPT4gZC52YWx1ZVxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2F0dHI6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoKGRhdHVtOiBhbnkpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pO1xuICAgIH07XG4gIH1cblxuICAvKiogQWNjZXNzb3IgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWCBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+XG5cbiAgLyoqIEEgc2luZ2xlIG9mIG11bHRpcGxlIGFjY2Vzc29yIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgdmFsdWVzIGFsb25nIHRoZSBZIGF4aXMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHk6IE51bWVyaWNBY2Nlc3NvcjxEYXR1bT4gfCBOdW1lcmljQWNjZXNzb3I8RGF0dW0+W11cblxuICAvKiogQWNjZXNzb3IgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIHVuaXF1ZSBkYXRhIHJlY29yZCBpZC4gVXNlZCBmb3IgbW9yZSBwZXJzaXN0ZW50IGRhdGEgdXBkYXRlcy4gRGVmYXVsdDogYChkLCBpKSA9PiBkLmlkID8/IGlgICovXG4gIEBJbnB1dCgpIGlkPzogKChkOiBEYXR1bSwgaTogbnVtYmVyLCAuLi5yZXN0KSA9PiBzdHJpbmcpXG5cbiAgLyoqIEFyZWEgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSB3aG9sZSBkYXRhIGFycmF5IHdpbGwgYmUgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY29sb3I/OiBDb2xvckFjY2Vzc29yPERhdHVtW10+XG5cbiAgLyoqIFNjYWxlIGZvciBYIGRpbWVuc2lvbiwgZS5nLiBTY2FsZS5zY2FsZUxpbmVhcigpLiBJZiB5b3Ugc2V0IHhTY2FsZSB5b3UnbGwgYmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgaXQncyBgZG9tYWluYCBhbmQgYHJhbmdlYCBhcyB3ZWxsLlxuICAgKiBPbmx5IGNvbnRpbnVvdXMgc2NhbGVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHhTY2FsZT86IENvbnRpbnVvdXNTY2FsZVxuXG4gIC8qKiBTY2FsZSBmb3IgWSBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB5U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogSWRlbnRpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gb3ZlcmFsbCBYIGFuZCBZIGRvbWFpbiBjYWxjdWxhdGlvbnMgb3Igbm90LlxuICAgKiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VmdWwgd2hlbiB5b3Ugd2FudCBwYXNzIGluZGl2aWR1YWwgZGF0YSB0byBhIGNvbXBvbmVudCBhbmQgeW91IGRvbid0IHdhbnQgaXQgdG8gYWZmZWN0XG4gICAqIHRoZSBzY2FsZXMgb2YgdGhlIGNoYXJ0LlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGV4Y2x1ZGVGcm9tRG9tYWluQ2FsY3VsYXRpb24/OiBib29sZWFuXG5cbiAgLyoqIEN1cnZlIHR5cGUgZnJvbSB0aGUgQ3VydmVUeXBlIGVudW0uIERlZmF1bHQ6IGBDdXJ2ZVR5cGUuTW9ub3RvbmVYYCAqL1xuICBASW5wdXQoKSBjdXJ2ZVR5cGU/OiBDdXJ2ZVR5cGUgfCBzdHJpbmdcblxuICAvKiogQmFzZWxpbmUgdmFsdWUgb3IgYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGJhc2VsaW5lPzogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBPcGFjaXR5IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgMWAgKi9cbiAgQElucHV0KCkgb3BhY2l0eT86IE51bWVyaWNBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBPcHRpb25hbCBhcmVhIGN1cnNvci4gU3RyaW5nIG9yIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgbnVsbGAgKi9cbiAgQElucHV0KCkgY3Vyc29yPzogU3RyaW5nQWNjZXNzb3I8RGF0dW1bXT5cblxuICAvKiogSWYgYW4gYXJlYSBpcyBzbWFsbGVyIHRoYW4gMXB4LCBleHRlbmQgaXQgdG8gaGF2ZSAxcHggaGVpZ2h0LiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIG1pbkhlaWdodDFQeD86IGJvb2xlYW5cblxuICAvKiogTWluaW11bSBoZWlnaHQgb2YgdGhlIGFyZWEsIHVzZSBjYXJlZnVsbHkuXG4gICAqIFRoaXMgc2V0dGluZyBpcyB1c2VmdWwgd2hlbiBzb21lIG9mIHRoZSBhcmVhIHZhbHVlcyBhcmUgemVyb3Mgb3IgdmVyeSBzbWFsbCBzbyB2aXN1YWxseSB0aGV5IGJlY29tZVxuICAgKiBwcmFjdGljYWxseSBpbnZpc2libGUsIGJ1dCB5b3Ugd2FudCB0byBzaG93IHRoYXQgdGhlIGRhdGEgYmVoaW5kIHRoZW0gZXhpc3RzIGFuZCB0aGV5J3JlIG5vdCBqdXN0IGVtcHR5IHNlZ21lbnRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBtaW5IZWlnaHQ/OiBudW1iZXJcbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogQXJlYTxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQXJlYTxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBBcmVhQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBjdXJ2ZVR5cGUsIGJhc2VsaW5lLCBvcGFjaXR5LCBjdXJzb3IsIG1pbkhlaWdodDFQeCwgbWluSGVpZ2h0IH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBjdXJ2ZVR5cGUsIGJhc2VsaW5lLCBvcGFjaXR5LCBjdXJzb3IsIG1pbkhlaWdodDFQeCwgbWluSGVpZ2h0IH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgQXJlYUNvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
@@ -21,8 +21,8 @@ export class VisGraphComponent {
21
21
  (_c = this.componentContainer) === null || _c === void 0 ? void 0 : _c.render();
22
22
  }
23
23
  getConfig() {
24
- const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate } = this;
25
- const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate };
24
+ const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate } = this;
25
+ const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate };
26
26
  const keys = Object.keys(config);
27
27
  keys.forEach(key => { if (config[key] === undefined)
28
28
  delete config[key]; });
@@ -30,7 +30,7 @@ export class VisGraphComponent {
30
30
  }
31
31
  }
32
32
  VisGraphComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", zoomEventFilter: "zoomEventFilter", disableDrag: "disableDrag", disableBrush: "disableBrush", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", layoutElkGetNodeShape: "layoutElkGetNodeShape", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", linkHighlightOnHover: "linkHighlightOnHover", linkSourcePointOffset: "linkSourcePointOffset", linkTargetPointOffset: "linkTargetPointOffset", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", nodeEnterCustomRenderFunction: "nodeEnterCustomRenderFunction", nodeUpdateCustomRenderFunction: "nodeUpdateCustomRenderFunction", nodePartialUpdateCustomRenderFunction: "nodePartialUpdateCustomRenderFunction", nodeExitCustomRenderFunction: "nodeExitCustomRenderFunction", nodeOnZoomCustomRenderFunction: "nodeOnZoomCustomRenderFunction", nodeSelectionHighlightMode: "nodeSelectionHighlightMode", selectedNodeId: "selectedNodeId", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onZoomStart: "onZoomStart", onZoomEnd: "onZoomEnd", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", onRenderComplete: "onRenderComplete", shouldDataUpdate: "shouldDataUpdate", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
33
+ VisGraphComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisGraphComponent, selector: "vis-graph", inputs: { duration: "duration", events: "events", attributes: "attributes", zoomScaleExtent: "zoomScaleExtent", disableZoom: "disableZoom", zoomEventFilter: "zoomEventFilter", disableDrag: "disableDrag", disableBrush: "disableBrush", zoomThrottledUpdateNodeThreshold: "zoomThrottledUpdateNodeThreshold", fitViewPadding: "fitViewPadding", fitViewAlign: "fitViewAlign", layoutType: "layoutType", layoutAutofit: "layoutAutofit", layoutAutofitTolerance: "layoutAutofitTolerance", layoutNonConnectedAside: "layoutNonConnectedAside", layoutNodeGroup: "layoutNodeGroup", layoutGroupOrder: "layoutGroupOrder", layoutParallelNodesPerColumn: "layoutParallelNodesPerColumn", layoutParallelNodeSubGroup: "layoutParallelNodeSubGroup", layoutParallelSubGroupsPerRow: "layoutParallelSubGroupsPerRow", layoutParallelGroupSpacing: "layoutParallelGroupSpacing", layoutParallelSortConnectionsByGroup: "layoutParallelSortConnectionsByGroup", forceLayoutSettings: "forceLayoutSettings", dagreLayoutSettings: "dagreLayoutSettings", layoutElkSettings: "layoutElkSettings", layoutElkNodeGroups: "layoutElkNodeGroups", layoutElkGetNodeShape: "layoutElkGetNodeShape", linkWidth: "linkWidth", linkStyle: "linkStyle", linkBandWidth: "linkBandWidth", linkArrow: "linkArrow", linkStroke: "linkStroke", linkDisabled: "linkDisabled", linkFlow: "linkFlow", linkFlowAnimDuration: "linkFlowAnimDuration", linkFlowParticleSize: "linkFlowParticleSize", linkFlowParticleSpeed: "linkFlowParticleSpeed", linkLabel: "linkLabel", linkLabelShiftFromCenter: "linkLabelShiftFromCenter", linkNeighborSpacing: "linkNeighborSpacing", linkCurvature: "linkCurvature", linkHighlightOnHover: "linkHighlightOnHover", linkSourcePointOffset: "linkSourcePointOffset", linkTargetPointOffset: "linkTargetPointOffset", selectedLinkId: "selectedLinkId", nodeSize: "nodeSize", nodeStrokeWidth: "nodeStrokeWidth", nodeShape: "nodeShape", nodeGaugeValue: "nodeGaugeValue", nodeGaugeFill: "nodeGaugeFill", nodeGaugeAnimDuration: "nodeGaugeAnimDuration", nodeIcon: "nodeIcon", nodeIconSize: "nodeIconSize", nodeLabel: "nodeLabel", nodeLabelTrim: "nodeLabelTrim", nodeLabelTrimMode: "nodeLabelTrimMode", nodeLabelTrimLength: "nodeLabelTrimLength", nodeSubLabel: "nodeSubLabel", nodeSubLabelTrim: "nodeSubLabelTrim", nodeSubLabelTrimMode: "nodeSubLabelTrimMode", nodeSubLabelTrimLength: "nodeSubLabelTrimLength", nodeSideLabels: "nodeSideLabels", nodeBottomIcon: "nodeBottomIcon", nodeDisabled: "nodeDisabled", nodeFill: "nodeFill", nodeStroke: "nodeStroke", nodeSort: "nodeSort", nodeEnterPosition: "nodeEnterPosition", nodeEnterScale: "nodeEnterScale", nodeExitPosition: "nodeExitPosition", nodeExitScale: "nodeExitScale", nodeEnterCustomRenderFunction: "nodeEnterCustomRenderFunction", nodeUpdateCustomRenderFunction: "nodeUpdateCustomRenderFunction", nodePartialUpdateCustomRenderFunction: "nodePartialUpdateCustomRenderFunction", nodeExitCustomRenderFunction: "nodeExitCustomRenderFunction", nodeOnZoomCustomRenderFunction: "nodeOnZoomCustomRenderFunction", nodeSelectionHighlightMode: "nodeSelectionHighlightMode", selectedNodeId: "selectedNodeId", selectedNodeIds: "selectedNodeIds", panels: "panels", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragEnd: "onNodeDragEnd", onZoom: "onZoom", onZoomStart: "onZoomStart", onZoomEnd: "onZoomEnd", onLayoutCalculated: "onLayoutCalculated", onNodeSelectionBrush: "onNodeSelectionBrush", onNodeSelectionDrag: "onNodeSelectionDrag", onRenderComplete: "onRenderComplete", shouldDataUpdate: "shouldDataUpdate", data: "data" }, providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisGraphComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -57,6 +57,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
57
57
  type: Input
58
58
  }], zoomThrottledUpdateNodeThreshold: [{
59
59
  type: Input
60
+ }], fitViewPadding: [{
61
+ type: Input
62
+ }], fitViewAlign: [{
63
+ type: Input
60
64
  }], layoutType: [{
61
65
  type: Input
62
66
  }], layoutAutofit: [{
@@ -107,6 +111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
107
111
  type: Input
108
112
  }], linkFlowParticleSize: [{
109
113
  type: Input
114
+ }], linkFlowParticleSpeed: [{
115
+ type: Input
110
116
  }], linkLabel: [{
111
117
  type: Input
112
118
  }], linkLabelShiftFromCenter: [{
@@ -218,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
218
224
  }], data: [{
219
225
  type: Input
220
226
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBMkJOLE1BQU0sWUFBWSxDQUFBO0FBTW5CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQWlXNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVB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QkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBHcmFwaCxcbiAgR3JhcGhDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIEdyYXBoSW5wdXROb2RlLFxuICBHcmFwaElucHV0TGluayxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBHcmFwaExheW91dFR5cGUsXG4gIFN0cmluZ0FjY2Vzc29yLFxuICBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3MsXG4gIEdyYXBoRGFncmVMYXlvdXRTZXR0aW5nLFxuICBHZW5lcmljQWNjZXNzb3IsXG4gIEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsXG4gIEdyYXBoTm9kZSxcbiAgTnVtZXJpY0FjY2Vzc29yLFxuICBHcmFwaExpbmtTdHlsZSxcbiAgR3JhcGhMaW5rQXJyb3dTdHlsZSxcbiAgQ29sb3JBY2Nlc3NvcixcbiAgQm9vbGVhbkFjY2Vzc29yLFxuICBHcmFwaENpcmNsZUxhYmVsLFxuICBHcmFwaExpbmssXG4gIEdyYXBoTm9kZVNoYXBlLFxuICBUcmltTW9kZSxcbiAgR3JhcGhOb2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSxcbiAgR3JhcGhQYW5lbENvbmZpZyxcbiAgR3JhcGhJbnB1dERhdGEsXG4gIEdyYXBoRGF0YU1vZGVsLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgRWxrU2hhcGUgfSBmcm9tICdlbGtqcydcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJ2QzLXNlbGVjdGlvbidcbmltcG9ydCB7IEQzRHJhZ0V2ZW50IH0gZnJvbSAnZDMtZHJhZydcbmltcG9ydCB7IEQzWm9vbUV2ZW50LCBab29tVHJhbnNmb3JtIH0gZnJvbSAnZDMtem9vbSdcbmltcG9ydCB7IEQzQnJ1c2hFdmVudCB9IGZyb20gJ2QzLWJydXNoJ1xuaW1wb3J0IHsgVmlzQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy1ncmFwaCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzQ29yZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IFZpc0dyYXBoQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNHcmFwaENvbXBvbmVudDxOIGV4dGVuZHMgR3JhcGhJbnB1dE5vZGUsIEwgZXh0ZW5kcyBHcmFwaElucHV0TGluaz4gaW1wbGVtZW50cyBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIGRhdGEgdXBkYXRlIHRyYW5zaXRpb25zIGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdDogYDYwMGAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24/OiBudW1iZXJcblxuICAvKiogRXZlbnRzIGNvbmZpZ3VyYXRpb24uIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbZXZlbnRUeXBlXTogY2FsbGJhY2tGdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBjbGljazogKGQpID0+IGNvbnNvbGUubG9nKFwiQ2xpY2tlZCBBcmVhXCIsIGQpXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGV2ZW50cz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFtldmVudFR5cGUgaW4gVmlzRXZlbnRUeXBlXT86IFZpc0V2ZW50Q2FsbGJhY2tcbiAgICB9O1xuICB9XG5cbiAgLyoqIFlvdSBjYW4gc2V0IGV2ZXJ5IFNWRyBhbmQgSFRNTCB2aXN1YWxpemF0aW9uIG9iamVjdCB0byBoYXZlIGEgY3VzdG9tIERPTSBhdHRyaWJ1dGVzLCB3aGljaCBpcyB1c2VmdWxcbiAgICogd2hlbiB5b3Ugd2FudCB0byBkbyB1bml0IG9yIGVuZC10by1lbmQgdGVzdGluZy4gQXR0cmlidXRlcyBjb25maWd1cmF0aW9uIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXToge1xuICAgKiAgICAgXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSBjb25zdGFudCB2YWx1ZSBvciBhY2Nlc3NvciBmdW5jdGlvblxuICAgKiAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFtBcmVhLnNlbGVjdG9ycy5hcmVhXToge1xuICAgKiAgICBcInRlc3QtdmFsdWVcIjogZCA9PiBkLnZhbHVlXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXM/OiB7XG4gICAgW3NlbGVjdG9yOiBzdHJpbmddOiB7XG4gICAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8ICgoZGF0dW06IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbik7XG4gICAgfTtcbiAgfVxuXG4gIC8qKiBab29tIGxldmVsIGNvbnN0cmFpbnRzLiBEZWZhdWx0OiBbMC4zNSwgMS4yNV0gKi9cbiAgQElucHV0KCkgem9vbVNjYWxlRXh0ZW50PzogW251bWJlciwgbnVtYmVyXVxuXG4gIC8qKiBEaXNhYmxlIHpvb21pbmcuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZVpvb20/OiBib29sZWFuXG5cbiAgLyoqIEN1c3RvbSBab29tIGV2ZW50IGZpbHRlciB0byBiZXR0ZXIgY29udHJvbCB3aGljaCBhY3Rpb25zIHNob3VsZCB0cmlnZ2VyIHpvb21pbmcuXG4gICAqIExlYXJuIG1vcmU6IGh0dHBzOi8vZDNqcy5vcmcvZDMtem9vbSN6b29tX2ZpbHRlci5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgem9vbUV2ZW50RmlsdGVyPzogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IGJvb2xlYW5cblxuICAvKiogRGlzYWJsZSBub2RlIGRyYWdnaW5nLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVEcmFnPzogYm9vbGVhblxuXG4gIC8qKiBEaXNhYmxlIGJydXNoIGZvciBtdWx0aXBsZSBub2RlIHNlbGVjdGlvbi4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlQnJ1c2g/OiBib29sZWFuXG5cbiAgLyoqIEludGVydmFsIHRvIHJlLXJlbmRlciB0aGUgZ3JhcGggd2hlbiB6b29taW5nLiBEZWZhdWx0OiBgMTAwYCAqL1xuICBASW5wdXQoKSB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZD86IG51bWJlclxuXG4gIC8qKiBUeXBlIG9mIHRoZSBncmFwaCBsYXlvdXQuIERlZmF1bHQ6IGBHcmFwaExheW91dFR5cGUuRm9yY2VgICovXG4gIEBJbnB1dCgpIGxheW91dFR5cGU/OiBHcmFwaExheW91dFR5cGUgfCBzdHJpbmdcblxuICAvKiogRml0IHRoZSBncmFwaCB0byBjb250YWluZXIgb24gZGF0YSBvciBjb25maWcgdXBkYXRlcywgb3Igb24gY29udGFpbmVyIHJlc2l6ZS4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXQ/OiBib29sZWFuXG5cbiAgLyoqIFRvbGVyYW5jZSBjb25zdGFudCBkZWZpbmluZyB3aGV0aGVyIHRoZSBncmFwaCBzaG91bGQgYmUgZml0dGVkIHRvIGNvbnRhaW5lclxuICAgKiAob24gZGF0YSBvciBjb25maWcgdXBkYXRlLCBvciBjb250YWluZXIgcmVzaXplKSBhZnRlciBhIHpvb20gLyBwYW4gaW50ZXJhY3Rpb24gb3Igbm90LlxuICAgKiBgMGAg4oCUIFN0b3AgZml0dGluZyBhZnRlciBhbnkgcGFuIG9yIHpvb21cbiAgICogYE51bWJlci5QT1NJVElWRV9JTkZJTklUWWAg4oCUIEFsd2F5cyBmaXRcbiAgICogRGVmYXVsdDogYDguMGAgKi9cbiAgQElucHV0KCkgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZT86IG51bWJlclxuXG4gIC8qKiBQbGFjZSBub24tY29ubmVjdGVkIG5vZGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGdyYXBoLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlPzogYm9vbGVhblxuXG4gIC8qKiBOb2RlIGdyb3VwIGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCwgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLkNvbmNlbnRyaWNgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuZ3JvdXBgICovXG4gIEBJbnB1dCgpIGxheW91dE5vZGVHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE9yZGVyIG9mIHRoZSBsYXlvdXQgZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCwgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLkNvbmNlbnRyaWNgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgbGF5b3V0R3JvdXBPcmRlcj86IHN0cmluZ1tdXG5cbiAgLyoqIFNldHMgdGhlIG51bWJlciBvZiBub2RlcyBpbiBhIHN1Yi1ncm91cCBhZnRlciB3aGljaCB0aGV5J2xsIGNvbnRpbnVlIG9uIHRoZSBuZXh0IGNvbHVtbiAob3Igcm93IGlmIGBsYXlvdXRUeXBlYCBpc1xuICAgKiBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGApLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGA2YCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uPzogbnVtYmVyXG5cbiAgLyoqIE5vZGUgc3ViLWdyb3VwIGFjY2Vzc29yIGZ1bmN0aW9uLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3ViZ3JvdXBgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTnVtYmVyIG9mIHN1Yi1ncm91cHMgcGVyIHJvdyAob3IgY29sdW1uIGlmIGBsYXlvdXRUeXBlYCBpcyBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGApIGluIGEgZ3JvdXAuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93PzogbnVtYmVyXG5cbiAgLyoqIFNwYWNpbmcgYmV0d2VlbiBncm91cHMuXG4gICAqIE9ubHkgZm9yIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxgIGFuZCBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsSG9yaXpvbnRhbGAgbGF5b3V0cy5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmc/OiBudW1iZXJcblxuICAvKiogU2V0IGEgZ3JvdXAgYnkgbmFtZSB0byBoYXZlIHByaW9yaXR5IGluIHNvcnRpbmcgdGhlIGdyYXBoIGxpbmtzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cD86IHN0cmluZ1xuXG4gIC8qKiBGb3JjZSBMYXlvdXQgc2V0dGluZ3MsIHNlZSB0aGUgYGQzLWZvcmNlYCBwYWNrYWdlIGZvciBtb3JlIGRldGFpbHMgKi9cbiAgQElucHV0KCkgZm9yY2VMYXlvdXRTZXR0aW5ncz86IEdyYXBoRm9yY2VMYXlvdXRTZXR0aW5nczxOLCBMPlxuXG4gIC8qKiBEYXJnZSBMYXlvdXQgc2V0dGluZ3MsIHNlZSB0aGUgYGRhZ3JlanNgIHBhY2thZ2VcbiAgICogZm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRodWIuY29tL2RhZ3JlanMvZGFncmUvd2lraSNjb25maWd1cmluZy10aGUtbGF5b3V0ICovXG4gIEBJbnB1dCgpIGRhZ3JlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaERhZ3JlTGF5b3V0U2V0dGluZ1xuXG4gIC8qKiBFTEsgbGF5b3V0IG9wdGlvbnMsIHNlZSB0aGUgYGVsa2pzYCBwYWNrYWdlIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9raWVsZXIvZWxranMuXG4gICAqIElmIHlvdSB3YW50IHRvIHNwZWNpZnkgY3VzdG9tIGxheW91dCBvcHRpb24gZm9yIGVhY2ggbm9kZSBncm91cCwgeW91IGNhbiBwcm92aWRlIGFuIGFjY2Vzc29yIGZ1bmN0aW9uIHRoYXRcbiAgICogcmVjZWl2ZXMgZ3JvdXAgbmFtZSAoJ3Jvb3QnIGZvciB0aGUgdG9wLWxldmVsIGNvbmZpZ3VyYXRpb24pIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZ1xuICAgKiBsYXlvdXQgb3B0aW9ucy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrU2V0dGluZ3M/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhFbGtMYXlvdXRTZXR0aW5ncywgc3RyaW5nPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBBcnJheSBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgdG8gZGVmaW5lIG5lc3RlZCBub2RlIGdyb3VwcyBmb3IgdGhlIEVMSyBMYXllcmVkIGxheW91dC5cbiAgICogRS5nLjogYFtuID0+IG4uZ3JvdXAsIG4gPT4gbi5zdWJHcm91cF1gLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRFbGtOb2RlR3JvdXBzPzogU3RyaW5nQWNjZXNzb3I8Tj5bXVxuXG4gIC8qKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBwZXIgZ3JhcGggbm9kZSB0byBnZXQgdGhlIEVMSyBzaGFwZSBvYmplY3QuXG4gICAqIFRoaXMgZW5hYmxlcyB5b3UgdG8gcHJvdmlkZSBjdXN0b20gbm9kZSBkaW1lbnNpb25zICh0aHJvdWdoIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBwcm9wZXJ0aWVzKVxuICAgKiBhbmQgY29vcmRpbmF0ZXMgKHRocm91Z2ggdGhlIGB4YCBhbmQgYHlgIHByb3BlcnRpZXMpIGlmIG5lZWRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlPzogKGQ6IEdyYXBoTm9kZTxOLCBMPiwgaTogbnVtYmVyKSA9PiBFbGtTaGFwZVxuXG4gIC8qKiBMaW5rIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG90IGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMWAgKi9cbiAgQElucHV0KCkgbGlua1dpZHRoPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgc3R5bGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBHcmFwaExpbmtTdHlsZS5Tb2xpZGAgKi9cbiAgQElucHV0KCkgbGlua1N0eWxlPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoTGlua1N0eWxlLCBMPlxuXG4gIC8qKiBMaW5rIGJhbmQgd2lkdGggYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSBsaW5rQmFuZFdpZHRoPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgYXJyb3cgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtBcnJvdz86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtBcnJvd1N0eWxlIHwgc3RyaW5nIHwgYm9vbGVhbiwgTD4gfCB1bmRlZmluZWRcblxuICAvKiogTGluayBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHJva2U/OiBDb2xvckFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Rpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIExpbmsgZmxvdyBhbmltYXRpb24gYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3c/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogQW5pbWF0aW9uIGR1cmF0aW9uIG9mIHRoZSBmbG93ICh0cmFmZmljKSBjaXJjbGVzLiBEZWZhdWx0OiBgMjAwMDBgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93QW5pbUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIFNpemUgb2YgdGhlIG1vdmluZyBwYXJ0aWNsZXMgdGhhdCByZXByZXNlbnQgdHJhZmZpYyBmbG93LiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3dQYXJ0aWNsZVNpemU/OiBudW1iZXJcblxuICAvKiogTGluayBsYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoQ2lyY2xlTGFiZWwgfCBHcmFwaENpcmNsZUxhYmVsW10sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNoaWZ0IGxhYmVsIGFsb25nIHRoZSBsaW5rIGNlbnRlciBhIGxpdHRsZSBiaXQgdG8gYXZvaWQgb3ZlcmxhcCB3aXRoIHRoZSBsaW5rIGFycm93LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyPzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIFNwYWNpbmcgYmV0d2VlbiBuZWlnaGJvcmluZyBsaW5rcy4gRGVmYXVsdDogYDhgICovXG4gIEBJbnB1dCgpIGxpbmtOZWlnaGJvclNwYWNpbmc/OiBudW1iZXJcblxuICAvKiogQ3VydmF0dXJlIG9mIHRoZSBsaW5rLiBSZWNvbW1lbmRlZCB2YWx1ZSByYW5nZTogWzA6MS41XS5cbiAgICogYDBgIC0gc3RyYWlnaHQgbGluZSxcbiAgICogYDFgIC0gbmljZSBjdXJ2YXR1cmUsXG4gICAqIGAxLjVgIC0gdmVyeSBjdXJ2ZS5cbiAgICogRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIGxpbmtDdXJ2YXR1cmU/OiBOdW1lcmljQWNjZXNzb3I8TD5cblxuICAvKiogSGlnaGxpZ2h0IGxpbmtzIG9uIGhvdmVyLiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbGlua0hpZ2hsaWdodE9uSG92ZXI/OiBib29sZWFuXG5cbiAgLyoqIE9mZnNldCBbeCx5XSBpbiBwaXhlbHMgZnJvbSB0aGUgc291cmNlIG5vZGUncyBjZW50ZXIgcG9pbnQgd2hlcmUgdGhlIGxpbmsgc2hvdWxkIHN0YXJ0LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU291cmNlUG9pbnRPZmZzZXQ/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgR3JhcGhMaW5rPE4sIEw+PlxuXG4gIC8qKiBPZmZzZXQgW3gseV0gaW4gcGl4ZWxzIGZyb20gdGhlIHRhcmdldCBub2RlJ3MgY2VudGVyIHBvaW50IHdoZXJlIHRoZSBsaW5rIHNob3VsZCBlbmQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtUYXJnZXRQb2ludE9mZnNldD86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBHcmFwaExpbms8TiwgTD4+XG5cbiAgLyoqIFNldCBzZWxlY3RlZCBsaW5rIGJ5IGl0cyB1bmlxdWUgaWQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkTGlua0lkPzogbnVtYmVyIHwgc3RyaW5nXG5cbiAgLyoqIE5vZGUgc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDMwYCAqL1xuICBASW5wdXQoKSBub2RlU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDNgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2VXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHNoYXBlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2hhcGUuQ2lyY2xlYCAqL1xuICBASW5wdXQoKSBub2RlU2hhcGU/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhOb2RlU2hhcGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsMTAwXS4gRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZVZhbHVlPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZ2F1Z2Ugb3V0bGluZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlR2F1Z2VGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBBbmltYXRpb24gZHVyYXRpb24gb2YgdGhlIG5vZGUgZ2F1Z2Ugb3V0bGluZS4gRGVmYXVsdDogYDE1MDBgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUFuaW1EdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIGNlbnRyYWwgaWNvbiBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5pY29uYCAqL1xuICBASW5wdXQoKSBub2RlSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIHNpemUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVJY29uU2l6ZT86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmxhYmVsYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBsYWJlbHMgb3Igbm90LiBEZWZhdWx0OiBgdHJ1ZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbT86IEJvb2xlYW5BY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIGxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWU6IERlZmF1bHQ6IGAnJ2AgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogRGVmaW5lcyB3aGV0aGVyIHRvIHRyaW0gdGhlIG5vZGUgc3ViLWxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIHRyaW1taW5nIG1vZGUuIERlZmF1bHQ6IGBUcmltTW9kZS5NaWRkbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1Nb2RlPzogR2VuZXJpY0FjY2Vzc29yPFRyaW1Nb2RlIHwgc3RyaW5nLCBOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBtYXhpbXVtIGFsbG93ZWQgdGV4dCBsZW5ndGggYWJvdmUgd2hpY2ggdGhlIGxhYmVsIHdpbGwgYmUgdHJpbW1lZC4gRGVmYXVsdDogYDE1YCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWxUcmltTGVuZ3RoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgY2lyY3VsYXIgc2lkZSBsYWJlbHMgYWNjZXNzb3IgZnVuY3Rpb24uIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGFycmF5IG9mIEdyYXBoQ2lyY2xlTGFiZWwgb2JqZWN0cy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNpZGVMYWJlbHM/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbFtdLCBOPlxuXG4gIC8qKiBOb2RlIGJvdHRvbSBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlQm90dG9tSWNvbj86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZGlzYWJsZWQgc3RhdGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgbm9kZURpc2FibGVkPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgZmlsbCBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5maWxsYCAqL1xuICBASW5wdXQoKSBub2RlRmlsbD86IENvbG9yQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdHJva2UgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUuc3Ryb2tlYCAqL1xuICBASW5wdXQoKSBub2RlU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBTb3J0aW5nIGZ1bmN0aW9uIHRvIGRldGVybWluZSBub2RlIHBsYWNlbWVudC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVNvcnQ/OiAoKGE6IE4sIGI6IE4pID0+IG51bWJlcilcblxuICAvKiogU3BlY2lmeSB0aGUgaW5pdGlhbCBwb3NpdGlvbiBmb3IgZW50ZXJpbmcgbm9kZXMgYXMgW3gsIHldLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHNjYWxlIGZvciBlbnRlcmluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBwb3NpdGlvbiBmb3IgZXhpdGluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFeGl0UG9zaXRpb24/OiBHZW5lcmljQWNjZXNzb3I8W251bWJlciwgbnVtYmVyXSwgTj4gfCB1bmRlZmluZWRcblxuICAvKiogU3BlY2lmeSB0aGUgZGVzdGluYXRpb24gc2NhbGUgZm9yIGV4aXRpbmcgbm9kZXMgaW4gdGhlIHJhbmdlIFswLDFdLiBEZWZhdWx0OiBgMC43NWAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRTY2FsZT86IE51bWVyaWNBY2Nlc3NvcjxOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBDdXN0b20gXCJlbnRlclwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24/OiAoZGF0dW06IEdyYXBoTm9kZTxOLCBMPiwgbm9kZUdyb3VwRWxlbWVudFNlbGVjdGlvbjogU2VsZWN0aW9uPFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIG51bGwsIHVua25vd24+LCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBDdXN0b20gXCJ1cGRhdGVcIiBmdW5jdGlvbiBmb3Igbm9kZSByZW5kZXJpbmcuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSBwYXJ0aWFsIFwidXBkYXRlXCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nIHdoaWNoIHdpbGwgYmUgdHJpZ2dlcmVkIGFmdGVyIHRoZSBmb2xsb3dpbmcgZXZlbnRzOlxuICAgKiAtIEZ1bGwgbm9kZSB1cGRhdGUgKGBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb25gKTtcbiAgICogLSBCYWNrZ3JvdW5kIGNsaWNrO1xuICAgKiAtIE5vZGUgYW5kIExpbmsgbW91c2VvdmVyIGFuZCBtb3VzZW91dDtcbiAgICogLSBOb2RlIGJydXNoaW5nLFxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlUGFydGlhbFVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIFwiZXhpdFwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGlsZSB6b29taW5nIC8gcGFubmluZyB0aGUgZ3JhcGguIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIERlZmluZSB0aGUgbW9kZSBmb3IgaGlnaGxpZ2h0aW5nIHNlbGVjdGVkIG5vZGVzIGluIHRoZSBncmFwaC4gRGVmYXVsdDogYEdyYXBoTm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUuR3JleW91dE5vbkNvbm5lY3RlZGAgKi9cbiAgQElucHV0KCkgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGU/OiBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlXG5cbiAgLyoqIFNldCBzZWxlY3RlZCBub2RlIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGVzIGJ5IHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWROb2RlSWRzPzogbnVtYmVyW10gfCBzdHJpbmdbXVxuXG4gIC8qKiBQYW5lbHMgY29uZmlndXJhdGlvbi4gQW4gYXJyYXkgb2YgYEdyYXBoUGFuZWxDb25maWdgIG9iamVjdHMuIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgcGFuZWxzPzogR3JhcGhQYW5lbENvbmZpZ1tdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBzdGFydCBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZ1N0YXJ0PzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBjYWxsYmFjayBmdW5jdGlvbi4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25Ob2RlRHJhZz86IChuOiBHcmFwaE5vZGU8TiwgTD4sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBHcmFwaCBub2RlIGRyYWcgZW5kIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnRW5kPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFpvb20gZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbT86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogWm9vbSBzdGFydCBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tU3RhcnQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIFpvb20gZW5kIGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb21FbmQ/OiAoem9vbVNjYWxlOiBudW1iZXIsIHpvb21TY2FsZUV4dGVudDogW251bWJlciwgbnVtYmVyXSwgZXZlbnQ6IEQzWm9vbUV2ZW50PFNWR0dFbGVtZW50LCB1bmtub3duPiB8IHVuZGVmaW5lZCwgdHJhbnNmb3JtOiBab29tVHJhbnNmb3JtKSA9PiB2b2lkXG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBncmFwaCBsYXlvdXQgaXMgY2FsY3VsYXRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25MYXlvdXRDYWxjdWxhdGVkPzogKG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdKSA9PiB2b2lkXG5cbiAgLyoqIEdyYXBoIG5vZGUgc2VsZWN0aW9uIGJydXNoIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25CcnVzaD86IChzZWxlY3RlZE5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgZXZlbnQ6IEQzQnJ1c2hFdmVudDxTVkdHRWxlbWVudD4gfCB1bmRlZmluZWQpID0+IHZvaWRcblxuICAvKiogR3JhcGggbXVsdGlwbGUgbm9kZSBkcmFnIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVTZWxlY3Rpb25EcmFnPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWRcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGdyYXBoIHJlbmRlcmluZyBpcyBjb21wbGV0ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25SZW5kZXJDb21wbGV0ZT86IChnOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIG51bGwsIHVuZGVmaW5lZD4sIG5vZGVzOiBHcmFwaE5vZGU8TiwgTD5bXSwgbGlua3M6IEdyYXBoTGluazxOLCBMPltdLCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHVwZGF0ZSB3aGVuIG5ldyBkYXRhIGlzIHByb3ZpZGVkLlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBwcmV2aW91cyBhbmQgbmV3IGRhdGEgYXMgcGFyYW1ldGVycyBhbmQgcmV0dXJucyBhIGJvb2xlYW5cbiAgICogaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB1cGRhdGUgc2hvdWxkIHByb2NlZWQuIFVzZWZ1bCBmb3IgZmluZS1ncmFpbmVkIGNvbnRyb2wgb3ZlclxuICAgKiB1cGRhdGUgYmVoYXZpb3Igd2hlbiB5b3VyIGRhdGEgaGFzIGEgY29tcGxleCBuZXN0ZWQgc3RydWN0dXJlLlxuICAgKiBCeSBkZWZhdWx0IHRoZSBgaXNFcXVhbGAgZnVuY3Rpb24gZnJvbSBVbm92aXMgd2lsbCBiZSB1c2VkIHRvIGRvIHRoZSBjb21wYXJpc29uLiAqL1xuICBASW5wdXQoKSBzaG91bGREYXRhVXBkYXRlPzogKHByZXZEYXRhOiBHcmFwaElucHV0RGF0YTxOLCBMPiwgbmV4dERhdGE6IEdyYXBoSW5wdXREYXRhPE4sIEw+LCBkYXRhbW9kZWw6IEdyYXBoRGF0YU1vZGVsPE4sIEwsIEdyYXBoTm9kZTxOLCBMPiwgR3JhcGhMaW5rPE4sIEw+PikgPT4gYm9vbGVhblxuICBASW5wdXQoKSBkYXRhOiB7IG5vZGVzOiBOW107IGxpbmtzPzogTFtdIH1cblxuICBjb21wb25lbnQ6IEdyYXBoPE4sIEw+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IEdyYXBoPE4sIEw+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBsaW5rSGlnaGxpZ2h0T25Ib3ZlciwgbGlua1NvdXJjZVBvaW50T2Zmc2V0LCBsaW5rVGFyZ2V0UG9pbnRPZmZzZXQsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSwgc2hvdWxkRGF0YVVwZGF0ZSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgem9vbVNjYWxlRXh0ZW50LCBkaXNhYmxlWm9vbSwgem9vbUV2ZW50RmlsdGVyLCBkaXNhYmxlRHJhZywgZGlzYWJsZUJydXNoLCB6b29tVGhyb3R0bGVkVXBkYXRlTm9kZVRocmVzaG9sZCwgbGF5b3V0VHlwZSwgbGF5b3V0QXV0b2ZpdCwgbGF5b3V0QXV0b2ZpdFRvbGVyYW5jZSwgbGF5b3V0Tm9uQ29ubmVjdGVkQXNpZGUsIGxheW91dE5vZGVHcm91cCwgbGF5b3V0R3JvdXBPcmRlciwgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbiwgbGF5b3V0UGFyYWxsZWxOb2RlU3ViR3JvdXAsIGxheW91dFBhcmFsbGVsU3ViR3JvdXBzUGVyUm93LCBsYXlvdXRQYXJhbGxlbEdyb3VwU3BhY2luZywgbGF5b3V0UGFyYWxsZWxTb3J0Q29ubmVjdGlvbnNCeUdyb3VwLCBmb3JjZUxheW91dFNldHRpbmdzLCBkYWdyZUxheW91dFNldHRpbmdzLCBsYXlvdXRFbGtTZXR0aW5ncywgbGF5b3V0RWxrTm9kZUdyb3VwcywgbGF5b3V0RWxrR2V0Tm9kZVNoYXBlLCBsaW5rV2lkdGgsIGxpbmtTdHlsZSwgbGlua0JhbmRXaWR0aCwgbGlua0Fycm93LCBsaW5rU3Ryb2tlLCBsaW5rRGlzYWJsZWQsIGxpbmtGbG93LCBsaW5rRmxvd0FuaW1EdXJhdGlvbiwgbGlua0Zsb3dQYXJ0aWNsZVNpemUsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBsaW5rSGlnaGxpZ2h0T25Ib3ZlciwgbGlua1NvdXJjZVBvaW50T2Zmc2V0LCBsaW5rVGFyZ2V0UG9pbnRPZmZzZXQsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSwgc2hvdWxkRGF0YVVwZGF0ZSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxLQUFLLEdBNkJOLE1BQU0sWUFBWSxDQUFBO0FBTW5CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRN0MsTUFBTSxPQUFPLGlCQUFpQjtJQTJXNUIsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVB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QUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQU9HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBHcmFwaCxcbiAgR3JhcGhDb25maWdJbnRlcmZhY2UsXG4gIENvbnRhaW5lckNvcmUsXG4gIEdyYXBoSW5wdXROb2RlLFxuICBHcmFwaElucHV0TGluayxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBTcGFjaW5nLFxuICBHcmFwaEZpdFZpZXdBbGlnbm1lbnQsXG4gIEdyYXBoTGF5b3V0VHlwZSxcbiAgU3RyaW5nQWNjZXNzb3IsXG4gIEdyYXBoRm9yY2VMYXlvdXRTZXR0aW5ncyxcbiAgR3JhcGhEYWdyZUxheW91dFNldHRpbmcsXG4gIEdlbmVyaWNBY2Nlc3NvcixcbiAgR3JhcGhFbGtMYXlvdXRTZXR0aW5ncyxcbiAgR3JhcGhOb2RlLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIEdyYXBoTGlua1N0eWxlLFxuICBHcmFwaExpbmtBcnJvd1N0eWxlLFxuICBDb2xvckFjY2Vzc29yLFxuICBCb29sZWFuQWNjZXNzb3IsXG4gIEdyYXBoQ2lyY2xlTGFiZWwsXG4gIEdyYXBoTGluayxcbiAgR3JhcGhOb2RlU2hhcGUsXG4gIFRyaW1Nb2RlLFxuICBHcmFwaE5vZGVTZWxlY3Rpb25IaWdobGlnaHRNb2RlLFxuICBHcmFwaFBhbmVsQ29uZmlnLFxuICBHcmFwaElucHV0RGF0YSxcbiAgR3JhcGhEYXRhTW9kZWwsXG59IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBFbGtTaGFwZSB9IGZyb20gJ2Vsa2pzJ1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnZDMtc2VsZWN0aW9uJ1xuaW1wb3J0IHsgRDNEcmFnRXZlbnQgfSBmcm9tICdkMy1kcmFnJ1xuaW1wb3J0IHsgRDNab29tRXZlbnQsIFpvb21UcmFuc2Zvcm0gfSBmcm9tICdkMy16b29tJ1xuaW1wb3J0IHsgRDNCcnVzaEV2ZW50IH0gZnJvbSAnZDMtYnJ1c2gnXG5pbXBvcnQgeyBWaXNDb3JlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLWdyYXBoJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNDb3JlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzR3JhcGhDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc0dyYXBoQ29tcG9uZW50PE4gZXh0ZW5kcyBHcmFwaElucHV0Tm9kZSwgTCBleHRlbmRzIEdyYXBoSW5wdXRMaW5rPiBpbXBsZW1lbnRzIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIFpvb20gbGV2ZWwgY29uc3RyYWludHMuIERlZmF1bHQ6IFswLjM1LCAxLjI1XSAqL1xuICBASW5wdXQoKSB6b29tU2NhbGVFeHRlbnQ/OiBbbnVtYmVyLCBudW1iZXJdXG5cbiAgLyoqIERpc2FibGUgem9vbWluZy4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBkaXNhYmxlWm9vbT86IGJvb2xlYW5cblxuICAvKiogQ3VzdG9tIFpvb20gZXZlbnQgZmlsdGVyIHRvIGJldHRlciBjb250cm9sIHdoaWNoIGFjdGlvbnMgc2hvdWxkIHRyaWdnZXIgem9vbWluZy5cbiAgICogTGVhcm4gbW9yZTogaHR0cHM6Ly9kM2pzLm9yZy9kMy16b29tI3pvb21fZmlsdGVyLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB6b29tRXZlbnRGaWx0ZXI/OiAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gYm9vbGVhblxuXG4gIC8qKiBEaXNhYmxlIG5vZGUgZHJhZ2dpbmcuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgZGlzYWJsZURyYWc/OiBib29sZWFuXG5cbiAgLyoqIERpc2FibGUgYnJ1c2ggZm9yIG11bHRpcGxlIG5vZGUgc2VsZWN0aW9uLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCcnVzaD86IGJvb2xlYW5cblxuICAvKiogSW50ZXJ2YWwgdG8gcmUtcmVuZGVyIHRoZSBncmFwaCB3aGVuIHpvb21pbmcuIERlZmF1bHQ6IGAxMDBgICovXG4gIEBJbnB1dCgpIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkPzogbnVtYmVyXG5cbiAgLyoqIFBhZGRpbmcgZm9yIHRoZSBncmFwaCB3aGVuIGZpdHRpbmcgdG8gY29udGFpbmVyLiBEZWZhdWx0OiBgNTBgICovXG4gIEBJbnB1dCgpIGZpdFZpZXdQYWRkaW5nPzogU3BhY2luZyB8IG51bWJlclxuXG4gIC8qKiBEZWZhdWx0IGFsaWdubWVudCB3aGVuIGZpdHRpbmcgdGhlIGdyYXBoIHZpZXcuIERlZmF1bHQ6IGBHcmFwaEZpdFZpZXdBbGlnbm1lbnQuQ2VudGVyYCAqL1xuICBASW5wdXQoKSBmaXRWaWV3QWxpZ24/OiBHcmFwaEZpdFZpZXdBbGlnbm1lbnRcblxuICAvKiogVHlwZSBvZiB0aGUgZ3JhcGggbGF5b3V0LiBEZWZhdWx0OiBgR3JhcGhMYXlvdXRUeXBlLkZvcmNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRUeXBlPzogR3JhcGhMYXlvdXRUeXBlIHwgc3RyaW5nXG5cbiAgLyoqIEZpdCB0aGUgZ3JhcGggdG8gY29udGFpbmVyIG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZXMsIG9yIG9uIGNvbnRhaW5lciByZXNpemUuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsYXlvdXRBdXRvZml0PzogYm9vbGVhblxuXG4gIC8qKiBUb2xlcmFuY2UgY29uc3RhbnQgZGVmaW5pbmcgd2hldGhlciB0aGUgZ3JhcGggc2hvdWxkIGJlIGZpdHRlZCB0byBjb250YWluZXJcbiAgICogKG9uIGRhdGEgb3IgY29uZmlnIHVwZGF0ZSwgb3IgY29udGFpbmVyIHJlc2l6ZSkgYWZ0ZXIgYSB6b29tIC8gcGFuIGludGVyYWN0aW9uIG9yIG5vdC5cbiAgICogYDBgIOKAlCBTdG9wIGZpdHRpbmcgYWZ0ZXIgYW55IHBhbiBvciB6b29tXG4gICAqIGBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlgIOKAlCBBbHdheXMgZml0XG4gICAqIERlZmF1bHQ6IGA4LjBgICovXG4gIEBJbnB1dCgpIGxheW91dEF1dG9maXRUb2xlcmFuY2U/OiBudW1iZXJcblxuICAvKiogUGxhY2Ugbm9uLWNvbm5lY3RlZCBub2RlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBncmFwaC4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb25Db25uZWN0ZWRBc2lkZT86IGJvb2xlYW5cblxuICAvKiogTm9kZSBncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXROb2RlR3JvdXA/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBPcmRlciBvZiB0aGUgbGF5b3V0IGdyb3Vwcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAsIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5Db25jZW50cmljYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgW11gICovXG4gIEBJbnB1dCgpIGxheW91dEdyb3VwT3JkZXI/OiBzdHJpbmdbXVxuXG4gIC8qKiBTZXRzIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBzdWItZ3JvdXAgYWZ0ZXIgd2hpY2ggdGhleSdsbCBjb250aW51ZSBvbiB0aGUgbmV4dCBjb2x1bW4gKG9yIHJvdyBpZiBgbGF5b3V0VHlwZWAgaXNcbiAgICogYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKS5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgNmAgKi9cbiAgQElucHV0KCkgbGF5b3V0UGFyYWxsZWxOb2Rlc1BlckNvbHVtbj86IG51bWJlclxuXG4gIC8qKiBOb2RlIHN1Yi1ncm91cCBhY2Nlc3NvciBmdW5jdGlvbi5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLnN1Ymdyb3VwYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIE51bWJlciBvZiBzdWItZ3JvdXBzIHBlciByb3cgKG9yIGNvbHVtbiBpZiBgbGF5b3V0VHlwZWAgaXMgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgKSBpbiBhIGdyb3VwLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGAxYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdz86IG51bWJlclxuXG4gIC8qKiBTcGFjaW5nIGJldHdlZW4gZ3JvdXBzLlxuICAgKiBPbmx5IGZvciBgR3JhcGhMYXlvdXRUeXBlLlBhcmFsbGVsYCBhbmQgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbEhvcml6b250YWxgIGxheW91dHMuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nPzogbnVtYmVyXG5cbiAgLyoqIFNldCBhIGdyb3VwIGJ5IG5hbWUgdG8gaGF2ZSBwcmlvcml0eSBpbiBzb3J0aW5nIHRoZSBncmFwaCBsaW5rcy5cbiAgICogT25seSBmb3IgYEdyYXBoTGF5b3V0VHlwZS5QYXJhbGxlbGAgYW5kIGBHcmFwaExheW91dFR5cGUuUGFyYWxsZWxIb3Jpem9udGFsYCBsYXlvdXRzLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXA/OiBzdHJpbmdcblxuICAvKiogRm9yY2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkMy1mb3JjZWAgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzICovXG4gIEBJbnB1dCgpIGZvcmNlTGF5b3V0U2V0dGluZ3M/OiBHcmFwaEZvcmNlTGF5b3V0U2V0dGluZ3M8TiwgTD5cblxuICAvKiogRGFyZ2UgTGF5b3V0IHNldHRpbmdzLCBzZWUgdGhlIGBkYWdyZWpzYCBwYWNrYWdlXG4gICAqIGZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYWdyZWpzL2RhZ3JlL3dpa2kjY29uZmlndXJpbmctdGhlLWxheW91dCAqL1xuICBASW5wdXQoKSBkYWdyZUxheW91dFNldHRpbmdzPzogR3JhcGhEYWdyZUxheW91dFNldHRpbmdcblxuICAvKiogRUxLIGxheW91dCBvcHRpb25zLCBzZWUgdGhlIGBlbGtqc2AgcGFja2FnZSBmb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20va2llbGVyL2Vsa2pzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBzcGVjaWZ5IGN1c3RvbSBsYXlvdXQgb3B0aW9uIGZvciBlYWNoIG5vZGUgZ3JvdXAsIHlvdSBjYW4gcHJvdmlkZSBhbiBhY2Nlc3NvciBmdW5jdGlvbiB0aGF0XG4gICAqIHJlY2VpdmVzIGdyb3VwIG5hbWUgKCdyb290JyBmb3IgdGhlIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uKSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogbGF5b3V0IG9wdGlvbnMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa1NldHRpbmdzPzogR2VuZXJpY0FjY2Vzc29yPEdyYXBoRWxrTGF5b3V0U2V0dGluZ3MsIHN0cmluZz4gfCB1bmRlZmluZWRcblxuICAvKiogQXJyYXkgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGRlZmluZSBuZXN0ZWQgbm9kZSBncm91cHMgZm9yIHRoZSBFTEsgTGF5ZXJlZCBsYXlvdXQuXG4gICAqIEUuZy46IGBbbiA9PiBuLmdyb3VwLCBuID0+IG4uc3ViR3JvdXBdYC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGF5b3V0RWxrTm9kZUdyb3Vwcz86IFN0cmluZ0FjY2Vzc29yPE4+W11cblxuICAvKiogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgcGVyIGdyYXBoIG5vZGUgdG8gZ2V0IHRoZSBFTEsgc2hhcGUgb2JqZWN0LlxuICAgKiBUaGlzIGVuYWJsZXMgeW91IHRvIHByb3ZpZGUgY3VzdG9tIG5vZGUgZGltZW5zaW9ucyAodGhyb3VnaCB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcylcbiAgICogYW5kIGNvb3JkaW5hdGVzICh0aHJvdWdoIHRoZSBgeGAgYW5kIGB5YCBwcm9wZXJ0aWVzKSBpZiBuZWVkZWQuXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxheW91dEVsa0dldE5vZGVTaGFwZT86IChkOiBHcmFwaE5vZGU8TiwgTD4sIGk6IG51bWJlcikgPT4gRWxrU2hhcGVcblxuICAvKiogTGluayB3aWR0aCBhY2Nlc3NvciBmdW5jdGlvbiBvdCBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYDFgICovXG4gIEBJbnB1dCgpIGxpbmtXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIHN0eWxlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgR3JhcGhMaW5rU3R5bGUuU29saWRgICovXG4gIEBJbnB1dCgpIGxpbmtTdHlsZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaExpbmtTdHlsZSwgTD5cblxuICAvKiogTGluayBiYW5kIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0JhbmRXaWR0aD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGFycm93IGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rQXJyb3c/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhMaW5rQXJyb3dTdHlsZSB8IHN0cmluZyB8IGJvb2xlYW4sIEw+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIExpbmsgc3Ryb2tlIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rU3Ryb2tlPzogQ29sb3JBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGRpc2FibGVkIHN0YXRlIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtEaXNhYmxlZD86IEJvb2xlYW5BY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGZsb3cgYW5pbWF0aW9uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93PzogQm9vbGVhbkFjY2Vzc29yPEw+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZmxvdyAodHJhZmZpYykgY2lyY2xlcyBpbiBtaWxsaXNlY29uZHMuIElmIGBsaW5rRmxvd1BhcnRpY2xlU3BlZWRgIGlzIHByb3ZpZGVkLFxuICAgKiB0aGlzIGR1cmF0aW9uIHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgbGluayBsZW5ndGggYW5kIHBhcnRpY2xlIHNwZWVkLiBEZWZhdWx0OiBgMjAwMDBgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93QW5pbUR1cmF0aW9uPzogTnVtZXJpY0FjY2Vzc29yPEw+XG5cbiAgLyoqIFNpemUgb2YgdGhlIG1vdmluZyBwYXJ0aWNsZXMgdGhhdCByZXByZXNlbnQgdHJhZmZpYyBmbG93LiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGlua0Zsb3dQYXJ0aWNsZVNpemU/OiBOdW1lcmljQWNjZXNzb3I8TD5cblxuICAvKiogU3BlZWQgb2YgdGhlIG1vdmluZyBwYXJ0aWNsZXMgaW4gcGl4ZWxzIHBlciBzZWNvbmQuIFRoaXMgcHJvcGVydHkgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBsaW5rRmxvd0FuaW1EdXJhdGlvbmAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtGbG93UGFydGljbGVTcGVlZD86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBMaW5rIGxhYmVsIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBsaW5rTGFiZWw/OiBHZW5lcmljQWNjZXNzb3I8R3JhcGhDaXJjbGVMYWJlbCB8IEdyYXBoQ2lyY2xlTGFiZWxbXSwgTD4gfCB1bmRlZmluZWRcblxuICAvKiogU2hpZnQgbGFiZWwgYWxvbmcgdGhlIGxpbmsgY2VudGVyIGEgbGl0dGxlIGJpdCB0byBhdm9pZCBvdmVybGFwIHdpdGggdGhlIGxpbmsgYXJyb3cuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsaW5rTGFiZWxTaGlmdEZyb21DZW50ZXI/OiBCb29sZWFuQWNjZXNzb3I8TD5cblxuICAvKiogU3BhY2luZyBiZXR3ZWVuIG5laWdoYm9yaW5nIGxpbmtzLiBEZWZhdWx0OiBgOGAgKi9cbiAgQElucHV0KCkgbGlua05laWdoYm9yU3BhY2luZz86IG51bWJlclxuXG4gIC8qKiBDdXJ2YXR1cmUgb2YgdGhlIGxpbmsuIFJlY29tbWVuZGVkIHZhbHVlIHJhbmdlOiBbMDoxLjVdLlxuICAgKiBgMGAgLSBzdHJhaWdodCBsaW5lLFxuICAgKiBgMWAgLSBuaWNlIGN1cnZhdHVyZSxcbiAgICogYDEuNWAgLSB2ZXJ5IGN1cnZlLlxuICAgKiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbGlua0N1cnZhdHVyZT86IE51bWVyaWNBY2Nlc3NvcjxMPlxuXG4gIC8qKiBIaWdobGlnaHQgbGlua3Mgb24gaG92ZXIuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBsaW5rSGlnaGxpZ2h0T25Ib3Zlcj86IGJvb2xlYW5cblxuICAvKiogT2Zmc2V0IFt4LHldIGluIHBpeGVscyBmcm9tIHRoZSBzb3VyY2Ugbm9kZSdzIGNlbnRlciBwb2ludCB3aGVyZSB0aGUgbGluayBzaG91bGQgc3RhcnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmtTb3VyY2VQb2ludE9mZnNldD86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBHcmFwaExpbms8TiwgTD4+XG5cbiAgLyoqIE9mZnNldCBbeCx5XSBpbiBwaXhlbHMgZnJvbSB0aGUgdGFyZ2V0IG5vZGUncyBjZW50ZXIgcG9pbnQgd2hlcmUgdGhlIGxpbmsgc2hvdWxkIGVuZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbGlua1RhcmdldFBvaW50T2Zmc2V0PzogR2VuZXJpY0FjY2Vzc29yPFtudW1iZXIsIG51bWJlcl0sIEdyYXBoTGluazxOLCBMPj5cblxuICAvKiogU2V0IHNlbGVjdGVkIGxpbmsgYnkgaXRzIHVuaXF1ZSBpZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRMaW5rSWQ/OiBudW1iZXIgfCBzdHJpbmdcblxuICAvKiogTm9kZSBzaXplIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgMzBgICovXG4gIEBJbnB1dCgpIG5vZGVTaXplPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc3Ryb2tlIHdpZHRoIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgM2AgKi9cbiAgQElucHV0KCkgbm9kZVN0cm9rZVdpZHRoPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgc2hhcGUgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBHcmFwaE5vZGVTaGFwZS5DaXJjbGVgICovXG4gIEBJbnB1dCgpIG5vZGVTaGFwZT86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaE5vZGVTaGFwZSB8IHN0cmluZywgTj5cblxuICAvKiogTm9kZSBnYXVnZSBvdXRsaW5lIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlIGluIHRoZSByYW5nZSBbMCwxMDBdLiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgbm9kZUdhdWdlVmFsdWU/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBnYXVnZSBvdXRsaW5lIGZpbGwgY29sb3IgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVHYXVnZUZpbGw/OiBDb2xvckFjY2Vzc29yPE4+XG5cbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgbm9kZSBnYXVnZSBvdXRsaW5lLiBEZWZhdWx0OiBgMTUwMGAgKi9cbiAgQElucHV0KCkgbm9kZUdhdWdlQW5pbUR1cmF0aW9uPzogbnVtYmVyXG5cbiAgLyoqIE5vZGUgY2VudHJhbCBpY29uIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmljb25gICovXG4gIEBJbnB1dCgpIG5vZGVJY29uPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBjZW50cmFsIGljb24gc2l6ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUljb25TaXplPzogTnVtZXJpY0FjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgYWNjZXNzb3IgZnVuY3Rpb24gb3IgY29uc3RhbnQgdmFsdWUuIERlZmF1bHQ6IGBub2RlID0+IG5vZGUubGFiZWxgICovXG4gIEBJbnB1dCgpIG5vZGVMYWJlbD86IFN0cmluZ0FjY2Vzc29yPE4+XG5cbiAgLyoqIERlZmluZXMgd2hldGhlciB0byB0cmltIHRoZSBub2RlIGxhYmVscyBvciBub3QuIERlZmF1bHQ6IGB0cnVlYCAqL1xuICBASW5wdXQoKSBub2RlTGFiZWxUcmltPzogQm9vbGVhbkFjY2Vzc29yPE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgdHJpbW1pbmcgbW9kZS4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbU1vZGU/OiBHZW5lcmljQWNjZXNzb3I8VHJpbU1vZGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgbGFiZWwgbWF4aW11bSBhbGxvd2VkIHRleHQgbGVuZ3RoIGFib3ZlIHdoaWNoIHRoZSBsYWJlbCB3aWxsIGJlIHRyaW1tZWQuIERlZmF1bHQ6IGAxNWAgKi9cbiAgQElucHV0KCkgbm9kZUxhYmVsVHJpbUxlbmd0aD86IE51bWVyaWNBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN1Yi1sYWJlbCBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZTogRGVmYXVsdDogYCcnYCAqL1xuICBASW5wdXQoKSBub2RlU3ViTGFiZWw/OiBTdHJpbmdBY2Nlc3NvcjxOPlxuXG4gIC8qKiBEZWZpbmVzIHdoZXRoZXIgdG8gdHJpbSB0aGUgbm9kZSBzdWItbGFiZWxzIG9yIG5vdC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW0/OiBCb29sZWFuQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBzdWItbGFiZWwgdHJpbW1pbmcgbW9kZS4gRGVmYXVsdDogYFRyaW1Nb2RlLk1pZGRsZWAgKi9cbiAgQElucHV0KCkgbm9kZVN1YkxhYmVsVHJpbU1vZGU/OiBHZW5lcmljQWNjZXNzb3I8VHJpbU1vZGUgfCBzdHJpbmcsIE4+XG5cbiAgLyoqIE5vZGUgc3ViLWxhYmVsIG1heGltdW0gYWxsb3dlZCB0ZXh0IGxlbmd0aCBhYm92ZSB3aGljaCB0aGUgbGFiZWwgd2lsbCBiZSB0cmltbWVkLiBEZWZhdWx0OiBgMTVgICovXG4gIEBJbnB1dCgpIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGg/OiBOdW1lcmljQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBjaXJjdWxhciBzaWRlIGxhYmVscyBhY2Nlc3NvciBmdW5jdGlvbi4gVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gYXJyYXkgb2YgR3JhcGhDaXJjbGVMYWJlbCBvYmplY3RzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlU2lkZUxhYmVscz86IEdlbmVyaWNBY2Nlc3NvcjxHcmFwaENpcmNsZUxhYmVsW10sIE4+XG5cbiAgLyoqIE5vZGUgYm90dG9tIGljb24gYWNjZXNzb3IgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVCb3R0b21JY29uPzogU3RyaW5nQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBkaXNhYmxlZCBzdGF0ZSBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBub2RlRGlzYWJsZWQ/OiBCb29sZWFuQWNjZXNzb3I8Tj5cblxuICAvKiogTm9kZSBmaWxsIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uIG9yIGNvbnN0YW50IHZhbHVlLiBEZWZhdWx0OiBgbm9kZSA9PiBub2RlLmZpbGxgICovXG4gIEBJbnB1dCgpIG5vZGVGaWxsPzogQ29sb3JBY2Nlc3NvcjxOPlxuXG4gIC8qKiBOb2RlIHN0cm9rZSBjb2xvciBhY2Nlc3NvciBmdW5jdGlvbiBvciBjb25zdGFudCB2YWx1ZS4gRGVmYXVsdDogYG5vZGUgPT4gbm9kZS5zdHJva2VgICovXG4gIEBJbnB1dCgpIG5vZGVTdHJva2U/OiBDb2xvckFjY2Vzc29yPE4+XG5cbiAgLyoqIFNvcnRpbmcgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIG5vZGUgcGxhY2VtZW50LiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlU29ydD86ICgoYTogTiwgYjogTikgPT4gbnVtYmVyKVxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBpbml0aWFsIHBvc2l0aW9uIGZvciBlbnRlcmluZyBub2RlcyBhcyBbeCwgeV0uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVFbnRlclBvc2l0aW9uPzogR2VuZXJpY0FjY2Vzc29yPFtudW1iZXIsIG51bWJlcl0sIE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGluaXRpYWwgc2NhbGUgZm9yIGVudGVyaW5nIG5vZGVzIGluIHRoZSByYW5nZSBbMCwxXS4gRGVmYXVsdDogYDAuNzVgICovXG4gIEBJbnB1dCgpIG5vZGVFbnRlclNjYWxlPzogTnVtZXJpY0FjY2Vzc29yPE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIFNwZWNpZnkgdGhlIGRlc3RpbmF0aW9uIHBvc2l0aW9uIGZvciBleGl0aW5nIG5vZGVzIGFzIFt4LCB5XS4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZUV4aXRQb3NpdGlvbj86IEdlbmVyaWNBY2Nlc3NvcjxbbnVtYmVyLCBudW1iZXJdLCBOPiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBTcGVjaWZ5IHRoZSBkZXN0aW5hdGlvbiBzY2FsZSBmb3IgZXhpdGluZyBub2RlcyBpbiB0aGUgcmFuZ2UgWzAsMV0uIERlZmF1bHQ6IGAwLjc1YCAqL1xuICBASW5wdXQoKSBub2RlRXhpdFNjYWxlPzogTnVtZXJpY0FjY2Vzc29yPE4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEN1c3RvbSBcImVudGVyXCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRW50ZXJDdXN0b21SZW5kZXJGdW5jdGlvbj86IChkYXR1bTogR3JhcGhOb2RlPE4sIEw+LCBub2RlR3JvdXBFbGVtZW50U2VsZWN0aW9uOiBTZWxlY3Rpb248U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgbnVsbCwgdW5rbm93bj4sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyKSA9PiB2b2lkXG5cbiAgLyoqIEN1c3RvbSBcInVwZGF0ZVwiIGZ1bmN0aW9uIGZvciBub2RlIHJlbmRlcmluZy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZVVwZGF0ZUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIHBhcnRpYWwgXCJ1cGRhdGVcIiBmdW5jdGlvbiBmb3Igbm9kZSByZW5kZXJpbmcgd2hpY2ggd2lsbCBiZSB0cmlnZ2VyZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBldmVudHM6XG4gICAqIC0gRnVsbCBub2RlIHVwZGF0ZSAoYG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbmApO1xuICAgKiAtIEJhY2tncm91bmQgY2xpY2s7XG4gICAqIC0gTm9kZSBhbmQgTGluayBtb3VzZW92ZXIgYW5kIG1vdXNlb3V0O1xuICAgKiAtIE5vZGUgYnJ1c2hpbmcsXG4gICAqIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG5vZGVQYXJ0aWFsVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb24/OiAoZGF0dW06IEdyYXBoTm9kZTxOLCBMPiwgbm9kZUdyb3VwRWxlbWVudFNlbGVjdGlvbjogU2VsZWN0aW9uPFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIG51bGwsIHVua25vd24+LCBjb25maWc6IEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+LCBkdXJhdGlvbjogbnVtYmVyLCB6b29tTGV2ZWw6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBDdXN0b20gXCJleGl0XCIgZnVuY3Rpb24gZm9yIG5vZGUgcmVuZGVyaW5nLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBub2RlRXhpdEN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgZHVyYXRpb246IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoaWxlIHpvb21pbmcgLyBwYW5uaW5nIHRoZSBncmFwaC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uPzogKGRhdHVtOiBHcmFwaE5vZGU8TiwgTD4sIG5vZGVHcm91cEVsZW1lbnRTZWxlY3Rpb246IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCBudWxsLCB1bmtub3duPiwgY29uZmlnOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiwgem9vbUxldmVsOiBudW1iZXIpID0+IHZvaWRcblxuICAvKiogRGVmaW5lIHRoZSBtb2RlIGZvciBoaWdobGlnaHRpbmcgc2VsZWN0ZWQgbm9kZXMgaW4gdGhlIGdyYXBoLiBEZWZhdWx0OiBgR3JhcGhOb2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZS5HcmV5b3V0Tm9uQ29ubmVjdGVkYCAqL1xuICBASW5wdXQoKSBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZT86IEdyYXBoTm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGVcblxuICAvKiogU2V0IHNlbGVjdGVkIG5vZGUgYnkgdW5pcXVlIGlkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZE5vZGVJZD86IG51bWJlciB8IHN0cmluZ1xuXG4gIC8qKiBTZXQgc2VsZWN0ZWQgbm9kZXMgYnkgdW5pcXVlIGlkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZE5vZGVJZHM/OiBudW1iZXJbXSB8IHN0cmluZ1tdXG5cbiAgLyoqIFBhbmVscyBjb25maWd1cmF0aW9uLiBBbiBhcnJheSBvZiBgR3JhcGhQYW5lbENvbmZpZ2Agb2JqZWN0cy4gRGVmYXVsdDogYFtdYCAqL1xuICBASW5wdXQoKSBwYW5lbHM/OiBHcmFwaFBhbmVsQ29uZmlnW10gfCB1bmRlZmluZWRcblxuICAvKiogR3JhcGggbm9kZSBkcmFnIHN0YXJ0IGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnU3RhcnQ/OiAobjogR3JhcGhOb2RlPE4sIEw+LCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWQgfCB1bmRlZmluZWRcblxuICAvKiogR3JhcGggbm9kZSBkcmFnIGNhbGxiYWNrIGZ1bmN0aW9uLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbk5vZGVEcmFnPzogKG46IEdyYXBoTm9kZTxOLCBMPiwgZXZlbnQ6IEQzRHJhZ0V2ZW50PFNWR0dFbGVtZW50LCBHcmFwaE5vZGU8TiwgTD4sIHVua25vd24+KSA9PiB2b2lkIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEdyYXBoIG5vZGUgZHJhZyBlbmQgY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZURyYWdFbmQ/OiAobjogR3JhcGhOb2RlPE4sIEw+LCBldmVudDogRDNEcmFnRXZlbnQ8U1ZHR0VsZW1lbnQsIEdyYXBoTm9kZTxOLCBMPiwgdW5rbm93bj4pID0+IHZvaWQgfCB1bmRlZmluZWRcblxuICAvKiogWm9vbSBldmVudCBjYWxsYmFjay4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgb25ab29tPzogKHpvb21TY2FsZTogbnVtYmVyLCB6b29tU2NhbGVFeHRlbnQ6IFtudW1iZXIsIG51bWJlcl0sIGV2ZW50OiBEM1pvb21FdmVudDxTVkdHRWxlbWVudCwgdW5rbm93bj4gfCB1bmRlZmluZWQsIHRyYW5zZm9ybTogWm9vbVRyYW5zZm9ybSkgPT4gdm9pZFxuXG4gIC8qKiBab29tIHN0YXJ0IGV2ZW50IGNhbGxiYWNrLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblpvb21TdGFydD86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogWm9vbSBlbmQgZXZlbnQgY2FsbGJhY2suIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uWm9vbUVuZD86ICh6b29tU2NhbGU6IG51bWJlciwgem9vbVNjYWxlRXh0ZW50OiBbbnVtYmVyLCBudW1iZXJdLCBldmVudDogRDNab29tRXZlbnQ8U1ZHR0VsZW1lbnQsIHVua25vd24+IHwgdW5kZWZpbmVkLCB0cmFuc2Zvcm06IFpvb21UcmFuc2Zvcm0pID0+IHZvaWRcblxuICAvKiogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGdyYXBoIGxheW91dCBpcyBjYWxjdWxhdGVkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvbkxheW91dENhbGN1bGF0ZWQ/OiAobm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBsaW5rczogR3JhcGhMaW5rPE4sIEw+W10pID0+IHZvaWRcblxuICAvKiogR3JhcGggbm9kZSBzZWxlY3Rpb24gYnJ1c2ggY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZVNlbGVjdGlvbkJydXNoPzogKHNlbGVjdGVkTm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBldmVudDogRDNCcnVzaEV2ZW50PFNWR0dFbGVtZW50PiB8IHVuZGVmaW5lZCkgPT4gdm9pZFxuXG4gIC8qKiBHcmFwaCBtdWx0aXBsZSBub2RlIGRyYWcgY2FsbGJhY2sgZnVuY3Rpb24uIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIG9uTm9kZVNlbGVjdGlvbkRyYWc/OiAoc2VsZWN0ZWROb2RlczogR3JhcGhOb2RlPE4sIEw+W10sIGV2ZW50OiBEM0RyYWdFdmVudDxTVkdHRWxlbWVudCwgR3JhcGhOb2RlPE4sIEw+LCB1bmtub3duPikgPT4gdm9pZFxuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZ3JhcGggcmVuZGVyaW5nIGlzIGNvbXBsZXRlLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBvblJlbmRlckNvbXBsZXRlPzogKGc6IFNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgbnVsbCwgdW5kZWZpbmVkPiwgbm9kZXM6IEdyYXBoTm9kZTxOLCBMPltdLCBsaW5rczogR3JhcGhMaW5rPE4sIEw+W10sIGNvbmZpZzogR3JhcGhDb25maWdJbnRlcmZhY2U8TiwgTD4sIGR1cmF0aW9uOiBudW1iZXIsIHpvb21MZXZlbDogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikgPT4gdm9pZFxuXG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlIHdoZW4gbmV3IGRhdGEgaXMgcHJvdmlkZWQuXG4gICAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIHByZXZpb3VzIGFuZCBuZXcgZGF0YSBhcyBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIGEgYm9vbGVhblxuICAgKiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHVwZGF0ZSBzaG91bGQgcHJvY2VlZC4gVXNlZnVsIGZvciBmaW5lLWdyYWluZWQgY29udHJvbCBvdmVyXG4gICAqIHVwZGF0ZSBiZWhhdmlvciB3aGVuIHlvdXIgZGF0YSBoYXMgYSBjb21wbGV4IG5lc3RlZCBzdHJ1Y3R1cmUuXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGBpc0VxdWFsYCBmdW5jdGlvbiBmcm9tIFVub3ZpcyB3aWxsIGJlIHVzZWQgdG8gZG8gdGhlIGNvbXBhcmlzb24uICovXG4gIEBJbnB1dCgpIHNob3VsZERhdGFVcGRhdGU/OiAocHJldkRhdGE6IEdyYXBoSW5wdXREYXRhPE4sIEw+LCBuZXh0RGF0YTogR3JhcGhJbnB1dERhdGE8TiwgTD4sIGRhdGFtb2RlbDogR3JhcGhEYXRhTW9kZWw8TiwgTCwgR3JhcGhOb2RlPE4sIEw+LCBHcmFwaExpbms8TiwgTD4+KSA9PiBib29sZWFuXG4gIEBJbnB1dCgpIGRhdGE6IHsgbm9kZXM6IE5bXTsgbGlua3M/OiBMW10gfVxuXG4gIGNvbXBvbmVudDogR3JhcGg8TiwgTD4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgR3JhcGg8TiwgTD4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBHcmFwaENvbmZpZ0ludGVyZmFjZTxOLCBMPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB6b29tU2NhbGVFeHRlbnQsIGRpc2FibGVab29tLCB6b29tRXZlbnRGaWx0ZXIsIGRpc2FibGVEcmFnLCBkaXNhYmxlQnJ1c2gsIHpvb21UaHJvdHRsZWRVcGRhdGVOb2RlVGhyZXNob2xkLCBmaXRWaWV3UGFkZGluZywgZml0Vmlld0FsaWduLCBsYXlvdXRUeXBlLCBsYXlvdXRBdXRvZml0LCBsYXlvdXRBdXRvZml0VG9sZXJhbmNlLCBsYXlvdXROb25Db25uZWN0ZWRBc2lkZSwgbGF5b3V0Tm9kZUdyb3VwLCBsYXlvdXRHcm91cE9yZGVyLCBsYXlvdXRQYXJhbGxlbE5vZGVzUGVyQ29sdW1uLCBsYXlvdXRQYXJhbGxlbE5vZGVTdWJHcm91cCwgbGF5b3V0UGFyYWxsZWxTdWJHcm91cHNQZXJSb3csIGxheW91dFBhcmFsbGVsR3JvdXBTcGFjaW5nLCBsYXlvdXRQYXJhbGxlbFNvcnRDb25uZWN0aW9uc0J5R3JvdXAsIGZvcmNlTGF5b3V0U2V0dGluZ3MsIGRhZ3JlTGF5b3V0U2V0dGluZ3MsIGxheW91dEVsa1NldHRpbmdzLCBsYXlvdXRFbGtOb2RlR3JvdXBzLCBsYXlvdXRFbGtHZXROb2RlU2hhcGUsIGxpbmtXaWR0aCwgbGlua1N0eWxlLCBsaW5rQmFuZFdpZHRoLCBsaW5rQXJyb3csIGxpbmtTdHJva2UsIGxpbmtEaXNhYmxlZCwgbGlua0Zsb3csIGxpbmtGbG93QW5pbUR1cmF0aW9uLCBsaW5rRmxvd1BhcnRpY2xlU2l6ZSwgbGlua0Zsb3dQYXJ0aWNsZVNwZWVkLCBsaW5rTGFiZWwsIGxpbmtMYWJlbFNoaWZ0RnJvbUNlbnRlciwgbGlua05laWdoYm9yU3BhY2luZywgbGlua0N1cnZhdHVyZSwgbGlua0hpZ2hsaWdodE9uSG92ZXIsIGxpbmtTb3VyY2VQb2ludE9mZnNldCwgbGlua1RhcmdldFBvaW50T2Zmc2V0LCBzZWxlY3RlZExpbmtJZCwgbm9kZVNpemUsIG5vZGVTdHJva2VXaWR0aCwgbm9kZVNoYXBlLCBub2RlR2F1Z2VWYWx1ZSwgbm9kZUdhdWdlRmlsbCwgbm9kZUdhdWdlQW5pbUR1cmF0aW9uLCBub2RlSWNvbiwgbm9kZUljb25TaXplLCBub2RlTGFiZWwsIG5vZGVMYWJlbFRyaW0sIG5vZGVMYWJlbFRyaW1Nb2RlLCBub2RlTGFiZWxUcmltTGVuZ3RoLCBub2RlU3ViTGFiZWwsIG5vZGVTdWJMYWJlbFRyaW0sIG5vZGVTdWJMYWJlbFRyaW1Nb2RlLCBub2RlU3ViTGFiZWxUcmltTGVuZ3RoLCBub2RlU2lkZUxhYmVscywgbm9kZUJvdHRvbUljb24sIG5vZGVEaXNhYmxlZCwgbm9kZUZpbGwsIG5vZGVTdHJva2UsIG5vZGVTb3J0LCBub2RlRW50ZXJQb3NpdGlvbiwgbm9kZUVudGVyU2NhbGUsIG5vZGVFeGl0UG9zaXRpb24sIG5vZGVFeGl0U2NhbGUsIG5vZGVFbnRlckN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVQYXJ0aWFsVXBkYXRlQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVFeGl0Q3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVPblpvb21DdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVNlbGVjdGlvbkhpZ2hsaWdodE1vZGUsIHNlbGVjdGVkTm9kZUlkLCBzZWxlY3RlZE5vZGVJZHMsIHBhbmVscywgb25Ob2RlRHJhZ1N0YXJ0LCBvbk5vZGVEcmFnLCBvbk5vZGVEcmFnRW5kLCBvblpvb20sIG9uWm9vbVN0YXJ0LCBvblpvb21FbmQsIG9uTGF5b3V0Q2FsY3VsYXRlZCwgb25Ob2RlU2VsZWN0aW9uQnJ1c2gsIG9uTm9kZVNlbGVjdGlvbkRyYWcsIG9uUmVuZGVyQ29tcGxldGUsIHNob3VsZERhdGFVcGRhdGUgfSA9IHRoaXNcbiAgICBjb25zdCBjb25maWcgPSB7IGR1cmF0aW9uLCBldmVudHMsIGF0dHJpYnV0ZXMsIHpvb21TY2FsZUV4dGVudCwgZGlzYWJsZVpvb20sIHpvb21FdmVudEZpbHRlciwgZGlzYWJsZURyYWcsIGRpc2FibGVCcnVzaCwgem9vbVRocm90dGxlZFVwZGF0ZU5vZGVUaHJlc2hvbGQsIGZpdFZpZXdQYWRkaW5nLCBmaXRWaWV3QWxpZ24sIGxheW91dFR5cGUsIGxheW91dEF1dG9maXQsIGxheW91dEF1dG9maXRUb2xlcmFuY2UsIGxheW91dE5vbkNvbm5lY3RlZEFzaWRlLCBsYXlvdXROb2RlR3JvdXAsIGxheW91dEdyb3VwT3JkZXIsIGxheW91dFBhcmFsbGVsTm9kZXNQZXJDb2x1bW4sIGxheW91dFBhcmFsbGVsTm9kZVN1Ykdyb3VwLCBsYXlvdXRQYXJhbGxlbFN1Ykdyb3Vwc1BlclJvdywgbGF5b3V0UGFyYWxsZWxHcm91cFNwYWNpbmcsIGxheW91dFBhcmFsbGVsU29ydENvbm5lY3Rpb25zQnlHcm91cCwgZm9yY2VMYXlvdXRTZXR0aW5ncywgZGFncmVMYXlvdXRTZXR0aW5ncywgbGF5b3V0RWxrU2V0dGluZ3MsIGxheW91dEVsa05vZGVHcm91cHMsIGxheW91dEVsa0dldE5vZGVTaGFwZSwgbGlua1dpZHRoLCBsaW5rU3R5bGUsIGxpbmtCYW5kV2lkdGgsIGxpbmtBcnJvdywgbGlua1N0cm9rZSwgbGlua0Rpc2FibGVkLCBsaW5rRmxvdywgbGlua0Zsb3dBbmltRHVyYXRpb24sIGxpbmtGbG93UGFydGljbGVTaXplLCBsaW5rRmxvd1BhcnRpY2xlU3BlZWQsIGxpbmtMYWJlbCwgbGlua0xhYmVsU2hpZnRGcm9tQ2VudGVyLCBsaW5rTmVpZ2hib3JTcGFjaW5nLCBsaW5rQ3VydmF0dXJlLCBsaW5rSGlnaGxpZ2h0T25Ib3ZlciwgbGlua1NvdXJjZVBvaW50T2Zmc2V0LCBsaW5rVGFyZ2V0UG9pbnRPZmZzZXQsIHNlbGVjdGVkTGlua0lkLCBub2RlU2l6ZSwgbm9kZVN0cm9rZVdpZHRoLCBub2RlU2hhcGUsIG5vZGVHYXVnZVZhbHVlLCBub2RlR2F1Z2VGaWxsLCBub2RlR2F1Z2VBbmltRHVyYXRpb24sIG5vZGVJY29uLCBub2RlSWNvblNpemUsIG5vZGVMYWJlbCwgbm9kZUxhYmVsVHJpbSwgbm9kZUxhYmVsVHJpbU1vZGUsIG5vZGVMYWJlbFRyaW1MZW5ndGgsIG5vZGVTdWJMYWJlbCwgbm9kZVN1YkxhYmVsVHJpbSwgbm9kZVN1YkxhYmVsVHJpbU1vZGUsIG5vZGVTdWJMYWJlbFRyaW1MZW5ndGgsIG5vZGVTaWRlTGFiZWxzLCBub2RlQm90dG9tSWNvbiwgbm9kZURpc2FibGVkLCBub2RlRmlsbCwgbm9kZVN0cm9rZSwgbm9kZVNvcnQsIG5vZGVFbnRlclBvc2l0aW9uLCBub2RlRW50ZXJTY2FsZSwgbm9kZUV4aXRQb3NpdGlvbiwgbm9kZUV4aXRTY2FsZSwgbm9kZUVudGVyQ3VzdG9tUmVuZGVyRnVuY3Rpb24sIG5vZGVVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZVBhcnRpYWxVcGRhdGVDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZUV4aXRDdXN0b21SZW5kZXJGdW5jdGlvbiwgbm9kZU9uWm9vbUN1c3RvbVJlbmRlckZ1bmN0aW9uLCBub2RlU2VsZWN0aW9uSGlnaGxpZ2h0TW9kZSwgc2VsZWN0ZWROb2RlSWQsIHNlbGVjdGVkTm9kZUlkcywgcGFuZWxzLCBvbk5vZGVEcmFnU3RhcnQsIG9uTm9kZURyYWcsIG9uTm9kZURyYWdFbmQsIG9uWm9vbSwgb25ab29tU3RhcnQsIG9uWm9vbUVuZCwgb25MYXlvdXRDYWxjdWxhdGVkLCBvbk5vZGVTZWxlY3Rpb25CcnVzaCwgb25Ob2RlU2VsZWN0aW9uRHJhZywgb25SZW5kZXJDb21wbGV0ZSwgc2hvdWxkRGF0YVVwZGF0ZSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIEdyYXBoQ29uZmlnSW50ZXJmYWNlPE4sIEw+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
76
76
  }], data: [{
77
77
  type: Input
78
78
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9saW5lL2xpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBV0wsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQStHM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNsTixNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtRQUNwTixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzs4R0FySVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IscWVBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLCtDQUY3RCxFQUFFOzRGQUlELGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO2lCQUN4RTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLENBQUM7c0JBQVQsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTGluZSxcbiAgTGluZUNvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIENvbG9yQWNjZXNzb3IsXG4gIENvbnRpbnVvdXNTY2FsZSxcbiAgQ3VydmVUeXBlLFxuICBHZW5lcmljQWNjZXNzb3IsXG4gIFN0cmluZ0FjY2Vzc29yLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzWFlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtbGluZScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNMaW5lQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNMaW5lQ29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIExpbmVDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeDogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBBIHNpbmdsZSBvZiBtdWx0aXBsZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWSBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBMaW5lIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uLiBUaGUgd2hvbGUgZGF0YSBhcnJheSB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBTY2FsZSBmb3IgWCBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB4U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogU2NhbGUgZm9yIFkgZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeVNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIElkZW50aWZpZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIG92ZXJhbGwgWCBhbmQgWSBkb21haW4gY2FsY3VsYXRpb25zIG9yIG5vdC5cbiAgICogVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZnVsIHdoZW4geW91IHdhbnQgcGFzcyBpbmRpdmlkdWFsIGRhdGEgdG8gYSBjb21wb25lbnQgYW5kIHlvdSBkb24ndCB3YW50IGl0IHRvIGFmZmVjdFxuICAgKiB0aGUgc2NhbGVzIG9mIHRoZSBjaGFydC5cbiAgICogRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uPzogYm9vbGVhblxuXG4gIC8qKiBDdXJ2ZSB0eXBlIGZyb20gdGhlIEN1cnZlVHlwZSBlbnVtLiBEZWZhdWx0OiBgQ3VydmVUeXBlLk1vbm90b25lWGAgKi9cbiAgQElucHV0KCkgY3VydmVUeXBlPzogQ3VydmVUeXBlXG5cbiAgLyoqIExpbmUgd2lkdGggaW4gcGl4ZWxzLiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGluZVdpZHRoPzogbnVtYmVyXG5cbiAgLyoqIExpbmUgZGFzaCBhcnJheSwgc2VlIFNWRydzIHN0cm9rZS1kYXNoYXJyYXkuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmVEYXNoQXJyYXk/OiBHZW5lcmljQWNjZXNzb3I8bnVtYmVyW10sIERhdHVtW10+XG5cbiAgLyoqIFdoZW4gYSBkYXRhIHBvaW50IGhhcyBhbiBgdW5kZWZpbmVkYCwgYE5hTmAsIG9yIG90aGVyIG5vLWRhdGEgdmFsdWUsIHRoZXknbGwgYmUgcmVwbGFjZWQgd2l0aCBhIHZhbHVlIHNwZWNpZmllZCBoZXJlLlxuICAgKiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgdG8gYHVuZGVmaW5lZGAgd2lsbCBsZWFkIHRvIGhhdmluZyB0aGUgbGluZSBicmVhayB3aGVuIHRoZXJlJ3Mgbm8gZGF0YSwgYW5kIGNvbnRpbnVlIHdoZW5cbiAgICogdGhlIGRhdGEgYXBwZWFycyBhZ2Fpbi4gSWYgeW91IHNldCBpdCB0byBgbnVsbGAsIHRoZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIG51bWVyaWNhbCBgMGAgdmFsdWVzIGFuZCB0aGUgbGluZVxuICAgKiB3b24ndCBicmVhazsgaG93ZXZlciBpZiB0aGUgd2hvbGUgZGF0YXNldCBjb25zaXN0cyBvZiBvbmx5IGBudWxsYHMsIHRoZSBsaW5lIHdvbid0IGJlIGRpc3BsYXllZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZmFsbGJhY2tWYWx1ZT86IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogSGlnaGxpZ2h0IGxpbmUgb24gaG92ZXIuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgaGlnaGxpZ2h0T25Ib3Zlcj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgbGluayBjdXJzb3IuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBjdXJzb3I/OiBTdHJpbmdBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBFbmFibGUgaW50ZXJwb2xhdGVkIGxpbmUgd2hlcmUgZGF0YSBwb2ludHMgYXJlIG1pc3Npbmcgb3IgZmFsbGJhY2tWYWx1ZSBpcyB1c2VkLlxuICAgKiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgbGluZSdzIGFwcGVhcmFuY2Ugd2l0aCBgLS12aXMtbGluZS1nYXBmaWxsLXN0cm9rZS1kYXNoYXJyYXlgXG4gICAqIGFuZCBgLS12aXMtbGluZS1nYXBmaWxsLXN0cm9rZS1vcGFjaXR5YCBDU1MgdmFyaWFibGVzLlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGludGVycG9sYXRlTWlzc2luZ0RhdGE6IGJvb2xlYW5cbiAgQElucHV0KCkgZGF0YTogRGF0dW1bXVxuXG4gIGNvbXBvbmVudDogTGluZTxEYXR1bT4gfCB1bmRlZmluZWRcbiAgcHVibGljIGNvbXBvbmVudENvbnRhaW5lcjogQ29udGFpbmVyQ29yZSB8IHVuZGVmaW5lZFxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgTGluZTxEYXR1bT4odGhpcy5nZXRDb25maWcoKSlcblxuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50LnNldERhdGEodGhpcy5kYXRhKVxuICAgICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhKSB7IHRoaXMuY29tcG9uZW50Py5zZXREYXRhKHRoaXMuZGF0YSkgfVxuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBMaW5lQ29uZmlnSW50ZXJmYWNlPERhdHVtPiB7XG4gICAgY29uc3QgeyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBjdXJ2ZVR5cGUsIGxpbmVXaWR0aCwgbGluZURhc2hBcnJheSwgZmFsbGJhY2tWYWx1ZSwgaGlnaGxpZ2h0T25Ib3ZlciwgY3Vyc29yLCBpbnRlcnBvbGF0ZU1pc3NpbmdEYXRhIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBkdXJhdGlvbiwgZXZlbnRzLCBhdHRyaWJ1dGVzLCB4LCB5LCBpZCwgY29sb3IsIHhTY2FsZSwgeVNjYWxlLCBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uLCBjdXJ2ZVR5cGUsIGxpbmVXaWR0aCwgbGluZURhc2hBcnJheSwgZmFsbGJhY2tWYWx1ZSwgaGlnaGxpZ2h0T25Ib3ZlciwgY3Vyc29yLCBpbnRlcnBvbGF0ZU1pc3NpbmdEYXRhIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgTGluZUNvbmZpZ0ludGVyZmFjZTxEYXR1bT4pW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9saW5lL2xpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFDTCxJQUFJLEdBV0wsTUFBTSxZQUFZLENBQUE7QUFDbkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQStHM0IsZUFBZTs7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRWxELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7U0FDbEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFFLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFBRSxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUN4RCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsTUFBTSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNsTixNQUFNLE1BQU0sR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQTtRQUNwTixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBeUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOzs4R0FySVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IscWVBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLCtDQUY3RCxFQUFFOzRGQUlELGdCQUFnQjtrQkFONUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO2lCQUN4RTs4QkFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQW1CRyxNQUFNO3NCQUFkLEtBQUs7Z0JBd0JHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csQ0FBQztzQkFBVCxLQUFLO2dCQUdHLENBQUM7c0JBQVQsS0FBSztnQkFHRyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgTGluZSxcbiAgTGluZUNvbmZpZ0ludGVyZmFjZSxcbiAgQ29udGFpbmVyQ29yZSxcbiAgVmlzRXZlbnRUeXBlLFxuICBWaXNFdmVudENhbGxiYWNrLFxuICBOdW1lcmljQWNjZXNzb3IsXG4gIENvbG9yQWNjZXNzb3IsXG4gIENvbnRpbnVvdXNTY2FsZSxcbiAgQ3VydmVUeXBlLFxuICBHZW5lcmljQWNjZXNzb3IsXG4gIFN0cmluZ0FjY2Vzc29yLFxufSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzWFlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXMtbGluZScsXG4gIHRlbXBsYXRlOiAnJyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVmlzWFlDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNMaW5lQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNMaW5lQ29tcG9uZW50PERhdHVtPiBpbXBsZW1lbnRzIExpbmVDb25maWdJbnRlcmZhY2U8RGF0dW0+LCBBZnRlclZpZXdJbml0IHtcbiAgLyoqIEFuaW1hdGlvbiBkdXJhdGlvbiBvZiB0aGUgZGF0YSB1cGRhdGUgdHJhbnNpdGlvbnMgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgNjAwYCAqL1xuICBASW5wdXQoKSBkdXJhdGlvbj86IG51bWJlclxuXG4gIC8qKiBFdmVudHMgY29uZmlndXJhdGlvbi4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFtldmVudFR5cGVdOiBjYWxsYmFja0Z1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIGNsaWNrOiAoZCkgPT4gY29uc29sZS5sb2coXCJDbGlja2VkIEFyZWFcIiwgZClcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgZXZlbnRzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXToge1xuICAgICAgW2V2ZW50VHlwZSBpbiBWaXNFdmVudFR5cGVdPzogVmlzRXZlbnRDYWxsYmFja1xuICAgIH07XG4gIH1cblxuICAvKiogWW91IGNhbiBzZXQgZXZlcnkgU1ZHIGFuZCBIVE1MIHZpc3VhbGl6YXRpb24gb2JqZWN0IHRvIGhhdmUgYSBjdXN0b20gRE9NIGF0dHJpYnV0ZXMsIHdoaWNoIGlzIHVzZWZ1bFxuICAgKiB3aGVuIHlvdSB3YW50IHRvIGRvIHVuaXQgb3IgZW5kLXRvLWVuZCB0ZXN0aW5nLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiB7XG4gICAqICAgICBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIGNvbnN0YW50IHZhbHVlIG9yIGFjY2Vzc29yIGZ1bmN0aW9uXG4gICAqICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiB7XG4gICAqICAgIFwidGVzdC12YWx1ZVwiOiBkID0+IGQudmFsdWVcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106IHtcbiAgICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgKChkYXR1bTogYW55KSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB2YWx1ZXMgYWxvbmcgdGhlIFggYXhpcy4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeDogTnVtZXJpY0FjY2Vzc29yPERhdHVtPlxuXG4gIC8qKiBBIHNpbmdsZSBvZiBtdWx0aXBsZSBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIGdldHRpbmcgdGhlIHZhbHVlcyBhbG9uZyB0aGUgWSBheGlzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB5OiBOdW1lcmljQWNjZXNzb3I8RGF0dW0+IHwgTnVtZXJpY0FjY2Vzc29yPERhdHVtPltdXG5cbiAgLyoqIEFjY2Vzc29yIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRoZSB1bmlxdWUgZGF0YSByZWNvcmQgaWQuIFVzZWQgZm9yIG1vcmUgcGVyc2lzdGVudCBkYXRhIHVwZGF0ZXMuIERlZmF1bHQ6IGAoZCwgaSkgPT4gZC5pZCA/PyBpYCAqL1xuICBASW5wdXQoKSBpZD86ICgoZDogRGF0dW0sIGk6IG51bWJlciwgLi4ucmVzdCkgPT4gc3RyaW5nKVxuXG4gIC8qKiBMaW5lIGNvbG9yIGFjY2Vzc29yIGZ1bmN0aW9uLiBUaGUgd2hvbGUgZGF0YSBhcnJheSB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBTY2FsZSBmb3IgWCBkaW1lbnNpb24sIGUuZy4gU2NhbGUuc2NhbGVMaW5lYXIoKS4gSWYgeW91IHNldCB4U2NhbGUgeW91J2xsIGJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGl0J3MgYGRvbWFpbmAgYW5kIGByYW5nZWAgYXMgd2VsbC5cbiAgICogT25seSBjb250aW51b3VzIHNjYWxlcyBhcmUgc3VwcG9ydGVkLlxuICAgKiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSB4U2NhbGU/OiBDb250aW51b3VzU2NhbGVcblxuICAvKiogU2NhbGUgZm9yIFkgZGltZW5zaW9uLCBlLmcuIFNjYWxlLnNjYWxlTGluZWFyKCkuIElmIHlvdSBzZXQgeVNjYWxlIHlvdSdsbCBiZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBpdCdzIGBkb21haW5gIGFuZCBgcmFuZ2VgIGFzIHdlbGwuXG4gICAqIE9ubHkgY29udGludW91cyBzY2FsZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgeVNjYWxlPzogQ29udGludW91c1NjYWxlXG5cbiAgLyoqIElkZW50aWZpZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIG92ZXJhbGwgWCBhbmQgWSBkb21haW4gY2FsY3VsYXRpb25zIG9yIG5vdC5cbiAgICogVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZnVsIHdoZW4geW91IHdhbnQgcGFzcyBpbmRpdmlkdWFsIGRhdGEgdG8gYSBjb21wb25lbnQgYW5kIHlvdSBkb24ndCB3YW50IGl0IHRvIGFmZmVjdFxuICAgKiB0aGUgc2NhbGVzIG9mIHRoZSBjaGFydC5cbiAgICogRGVmYXVsdDogYGZhbHNlYCAqL1xuICBASW5wdXQoKSBleGNsdWRlRnJvbURvbWFpbkNhbGN1bGF0aW9uPzogYm9vbGVhblxuXG4gIC8qKiBDdXJ2ZSB0eXBlIGZyb20gdGhlIEN1cnZlVHlwZSBlbnVtLiBEZWZhdWx0OiBgQ3VydmVUeXBlLk1vbm90b25lWGAgKi9cbiAgQElucHV0KCkgY3VydmVUeXBlPzogQ3VydmVUeXBlXG5cbiAgLyoqIExpbmUgd2lkdGggaW4gcGl4ZWxzLiBEZWZhdWx0OiBgMmAgKi9cbiAgQElucHV0KCkgbGluZVdpZHRoPzogbnVtYmVyXG5cbiAgLyoqIExpbmUgZGFzaCBhcnJheSwgc2VlIFNWRydzIHN0cm9rZS1kYXNoYXJyYXkuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGxpbmVEYXNoQXJyYXk/OiBHZW5lcmljQWNjZXNzb3I8bnVtYmVyW10sIERhdHVtW10+XG5cbiAgLyoqIFdoZW4gYSBkYXRhIHBvaW50IGhhcyBhbiBgdW5kZWZpbmVkYCwgYE5hTmAsIG9yIG90aGVyIG5vLWRhdGEgdmFsdWUsIHRoZXknbGwgYmUgcmVwbGFjZWQgd2l0aCBhIHZhbHVlIHNwZWNpZmllZCBoZXJlLlxuICAgKiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgdG8gYHVuZGVmaW5lZGAgd2lsbCBsZWFkIHRvIGhhdmluZyB0aGUgbGluZSBicmVhayB3aGVuIHRoZXJlJ3Mgbm8gZGF0YSwgYW5kIGNvbnRpbnVlIHdoZW5cbiAgICogdGhlIGRhdGEgYXBwZWFycyBhZ2Fpbi4gSWYgeW91IHNldCBpdCB0byBgbnVsbGAsIHRoZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIG51bWVyaWNhbCBgMGAgdmFsdWVzIGFuZCB0aGUgbGluZVxuICAgKiB3b24ndCBicmVhazsgaG93ZXZlciBpZiB0aGUgd2hvbGUgZGF0YXNldCBjb25zaXN0cyBvZiBvbmx5IGBudWxsYHMsIHRoZSBsaW5lIHdvbid0IGJlIGRpc3BsYXllZC5cbiAgICogRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgZmFsbGJhY2tWYWx1ZT86IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogSGlnaGxpZ2h0IGxpbmUgb24gaG92ZXIuIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgaGlnaGxpZ2h0T25Ib3Zlcj86IGJvb2xlYW5cblxuICAvKiogT3B0aW9uYWwgbGluayBjdXJzb3IuIERlZmF1bHQ6IGBudWxsYCAqL1xuICBASW5wdXQoKSBjdXJzb3I/OiBTdHJpbmdBY2Nlc3NvcjxEYXR1bVtdPlxuXG4gIC8qKiBFbmFibGUgaW50ZXJwb2xhdGVkIGxpbmUgd2hlcmUgZGF0YSBwb2ludHMgYXJlIG1pc3Npbmcgb3IgZmFsbGJhY2tWYWx1ZSBpcyB1c2VkLlxuICAgKiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgbGluZSdzIGFwcGVhcmFuY2Ugd2l0aCBgLS12aXMtbGluZS1nYXBmaWxsLXN0cm9rZS1kYXNoYXJyYXlgXG4gICAqIGFuZCBgLS12aXMtbGluZS1nYXBmaWxsLXN0cm9rZS1vcGFjaXR5YCBDU1MgdmFyaWFibGVzLlxuICAgKiBEZWZhdWx0OiBgZmFsc2VgICovXG4gIEBJbnB1dCgpIGludGVycG9sYXRlTWlzc2luZ0RhdGE/OiBib29sZWFuXG4gIEBJbnB1dCgpIGRhdGE6IERhdHVtW11cblxuICBjb21wb25lbnQ6IExpbmU8RGF0dW0+IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBjb21wb25lbnRDb250YWluZXI6IENvbnRhaW5lckNvcmUgfCB1bmRlZmluZWRcblxuICBuZ0FmdGVyVmlld0luaXQgKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IExpbmU8RGF0dW0+KHRoaXMuZ2V0Q29uZmlnKCkpXG5cbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudC5zZXREYXRhKHRoaXMuZGF0YSlcbiAgICAgIHRoaXMuY29tcG9uZW50Q29udGFpbmVyPy5yZW5kZXIoKVxuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGF0YSkgeyB0aGlzLmNvbXBvbmVudD8uc2V0RGF0YSh0aGlzLmRhdGEpIH1cbiAgICB0aGlzLmNvbXBvbmVudD8uc2V0Q29uZmlnKHRoaXMuZ2V0Q29uZmlnKCkpXG4gICAgdGhpcy5jb21wb25lbnRDb250YWluZXI/LnJlbmRlcigpXG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpZyAoKTogTGluZUNvbmZpZ0ludGVyZmFjZTxEYXR1bT4ge1xuICAgIGNvbnN0IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgY3VydmVUeXBlLCBsaW5lV2lkdGgsIGxpbmVEYXNoQXJyYXksIGZhbGxiYWNrVmFsdWUsIGhpZ2hsaWdodE9uSG92ZXIsIGN1cnNvciwgaW50ZXJwb2xhdGVNaXNzaW5nRGF0YSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgZHVyYXRpb24sIGV2ZW50cywgYXR0cmlidXRlcywgeCwgeSwgaWQsIGNvbG9yLCB4U2NhbGUsIHlTY2FsZSwgZXhjbHVkZUZyb21Eb21haW5DYWxjdWxhdGlvbiwgY3VydmVUeXBlLCBsaW5lV2lkdGgsIGxpbmVEYXNoQXJyYXksIGZhbGxiYWNrVmFsdWUsIGhpZ2hsaWdodE9uSG92ZXIsIGN1cnNvciwgaW50ZXJwb2xhdGVNaXNzaW5nRGF0YSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIExpbmVDb25maWdJbnRlcmZhY2U8RGF0dW0+KVtdXG4gICAga2V5cy5mb3JFYWNoKGtleSA9PiB7IGlmIChjb25maWdba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgY29uZmlnW2tleV0gfSlcblxuICAgIHJldHVybiBjb25maWdcbiAgfVxufVxuIl19
@@ -13,8 +13,8 @@ export class VisTooltipComponent {
13
13
  (_b = this.componentContainer) === null || _b === void 0 ? void 0 : _b.render();
14
14
  }
15
15
  getConfig() {
16
- const { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className } = this;
17
- const config = { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className };
16
+ const { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay } = this;
17
+ const config = { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay };
18
18
  const keys = Object.keys(config);
19
19
  keys.forEach(key => { if (config[key] === undefined)
20
20
  delete config[key]; });
@@ -22,7 +22,7 @@ export class VisTooltipComponent {
22
22
  }
23
23
  }
24
24
  VisTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- VisTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisTooltipComponent, selector: "vis-tooltip", inputs: { components: "components", container: "container", followCursor: "followCursor", allowHover: "allowHover", horizontalPlacement: "horizontalPlacement", horizontalShift: "horizontalShift", verticalPlacement: "verticalPlacement", verticalShift: "verticalShift", triggers: "triggers", attributes: "attributes", className: "className" }, providers: [{ provide: VisGenericComponent, useExisting: VisTooltipComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
25
+ VisTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VisTooltipComponent, selector: "vis-tooltip", inputs: { components: "components", container: "container", followCursor: "followCursor", allowHover: "allowHover", horizontalPlacement: "horizontalPlacement", horizontalShift: "horizontalShift", verticalPlacement: "verticalPlacement", verticalShift: "verticalShift", triggers: "triggers", attributes: "attributes", className: "className", hideDelay: "hideDelay", showDelay: "showDelay" }, providers: [{ provide: VisGenericComponent, useExisting: VisTooltipComponent }], usesOnChanges: true, ngImport: i0, template: '', isInline: true });
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VisTooltipComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{
@@ -53,5 +53,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
53
53
  type: Input
54
54
  }], className: [{
55
55
  type: Input
56
+ }], hideDelay: [{
57
+ type: Input
58
+ }], showDelay: [{
59
+ type: Input
56
60
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQWtFLE1BQU0sWUFBWSxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLG1CQUFtQjtJQTBFOUIsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ3pLLE1BQU0sTUFBTSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQTtRQUMzSyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBcUMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFMUUsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDOztpSEExRlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsNFhBRm5CLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLENBQUMsK0NBRnJFLEVBQUU7NEZBSUQsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixnREFBZ0Q7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcscUJBQXFCLEVBQUUsQ0FBQztpQkFDaEY7OEJBR1UsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFnQkcsUUFBUTtzQkFBaEIsS0FBSztnQkFtQkcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gISEhIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQuIFlvdSBzaG91bGQgbm90IGNoYW5nZSBpdCAhISFcbmltcG9ydCB7IENvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVG9vbHRpcCwgVG9vbHRpcENvbmZpZ0ludGVyZmFjZSwgQ29udGFpbmVyQ29yZSwgQ29tcG9uZW50Q29yZSwgUG9zaXRpb24gfSBmcm9tICdAdW5vdmlzL3RzJ1xuaW1wb3J0IHsgVmlzR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpcy10b29sdGlwJyxcbiAgdGVtcGxhdGU6ICcnLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBWaXNHZW5lcmljQ29tcG9uZW50LCB1c2VFeGlzdGluZzogVmlzVG9vbHRpcENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIFRvb2x0aXBDb25maWdJbnRlcmZhY2UsIEFmdGVyVmlld0luaXQge1xuICAvKiogQW4gYXJyYXkgb2YgdmlzdWFsaXphdGlvbiBjb21wb25lbnRzIHRvIGludGVyYWN0IHdpdGguIERlZmF1bHQ6IGBbXWAgKi9cbiAgQElucHV0KCkgY29tcG9uZW50cz86IENvbXBvbmVudENvcmU8dW5rbm93bj5bXVxuXG4gIC8qKiBDb250YWluZXIgdG8gd2hlcmUgdGhlIFRvb2x0aXAgY29tcG9uZW50IHNob3VsZCBiZSBpbnNlcnRlZC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyPzogSFRNTEVsZW1lbnRcblxuICAvKiogRm9sbG93IHRoZSBtb3VzZSBjdXJzb3IuIElmIGB0cnVlYCwgdGhlIHRvb2x0aXAgY2FuJ3QgYmUgaG92ZXJlZCBvdmVyXG4gICAqIGV2ZW4gd2hlbiBgYWxsb3dIb3ZlcmAgaXMgc2V0IHRvIGB0cnVlYC4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGZvbGxvd0N1cnNvcj86IGJvb2xlYW5cblxuICAvKiogQWxsb3cgdGhlIHRvb2x0aXAgdG8gYmUgaG92ZXJlZCBvdmVyIGFuZCBpbnRlcmFjdGVkIHdpdGggd2hlbiBgZm9sbG93Q3Vyc29yYCBpcyBzZXQgdG8gYGZhbHNlYC5cbiAgICogRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGFsbG93SG92ZXI/OiBib29sZWFuXG5cbiAgLyoqIEhvcml6b250YWwgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwLiBEZWZhdWx0OiBgUG9zaXRpb24uQXV0b2AgKi9cbiAgQElucHV0KCkgaG9yaXpvbnRhbFBsYWNlbWVudD86IFBvc2l0aW9uIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEhvcml6b250YWwgc2hpZnQgb2YgdGhlIHRvb2x0aXAgaW4gcGl4ZWxzLiBXb3JrcyBvbmx5IHdpdGhcbiAgICogYGhvcml6b250YWxQbGFjZW1lbnRgIHNldCB0byBgUG9zaXRpb24uTGVmdGAgb3IgYFBvc2l0aW9uLlJpZ2h0YC5cbiAgICogRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIGhvcml6b250YWxTaGlmdD86IG51bWJlclxuXG4gIC8qKiBWZXJ0aWNhbCBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAuIERlZmF1bHQ6IGBQb3NpdGlvbi5Ub3BgICovXG4gIEBJbnB1dCgpIHZlcnRpY2FsUGxhY2VtZW50PzogUG9zaXRpb24gfCBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvKiogVmVydGljYWwgc2hpZnQgb2YgdGhlIHRvb2x0aXAgaW4gcGl4ZWxzLiBXb3JrcyBvbmx5IHdpdGhcbiAgICogYHZlcnRpY2FsUGxhY2VtZW50YCBzZXQgdG8gYFBvc2l0aW9uLlRvcGAgb3IgYFBvc2l0aW9uLkJvdHRvbWAuXG4gICAqIERlZmF1bHQ6IGAwYCAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFNoaWZ0PzogbnVtYmVyXG5cbiAgLyoqIERlZmluZXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAgYW5kIGhvdmVyaW5nIG92ZXIgd2hpY2ggZWxlbWVudHMgc2hvdWxkIHRyaWdnZXIgaXQuXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW3NlbGVjdG9yU3RyaW5nXTogKGQ6IHVua25vd24pID0+IHN0cmluZyB8IEhUTUxFbGVtZW50XG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcW0FyZWEuc2VsZWN0b3JzLmFyZWFdOiAoZDogQXJlYURhdHVtW10pID0+IGA8ZGl2PiR7ZC52YWx1ZS50b1N0cmluZygpfTwvZGl2PlxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSB0cmlnZ2Vycz86IHtcbiAgICBbc2VsZWN0b3I6IHN0cmluZ106ICgoZGF0YTogYW55LCBpOiBudW1iZXIsIGVsZW1lbnRzOiAoSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KVtdKSA9PiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwgfCB2b2lkKSB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIH1cblxuICAvKiogQ3VzdG9tIERPTSBhdHRyaWJ1dGVzIGZvciB0aGUgdG9vbHRpcC4gVXNlZnVsIHdoZW4geW91IG5lZWQgdG8gcmVmZXIgdG8gYSBzcGVjaWZpYyB0b29sdGlwIGluc3RhbmNlXG4gICAqIGJ5IHVzaW5nIGEgQ1NTIHNlbGVjdG9yLiBBdHRyaWJ1dGVzIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbYXR0cmlidXRlTmFtZV06IGF0dHJpYnV0ZSB2YWx1ZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBlLmcuOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXCd0eXBlJzogJ2FyZWEtdG9vbHRpcCcsXG4gICAqIFxcJ3ZhbHVlJzogNDJcbiAgICogfVxuICAgKiBgYGAgKi9cbiAgQElucHV0KCkgYXR0cmlidXRlcz86IHtcbiAgICBbYXR0cjogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbiAgfVxuXG4gIC8qKiBDdXN0b20gY2xhc3MgbmFtZSBmb3IgdGhlIHRvb2x0aXAuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIGNsYXNzTmFtZT86IHN0cmluZ1xuXG4gIGNvbXBvbmVudDogVG9vbHRpcCB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBUb29sdGlwKHRoaXMuZ2V0Q29uZmlnKCkpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgZm9sbG93Q3Vyc29yLCBhbGxvd0hvdmVyLCBob3Jpem9udGFsUGxhY2VtZW50LCBob3Jpem9udGFsU2hpZnQsIHZlcnRpY2FsUGxhY2VtZW50LCB2ZXJ0aWNhbFNoaWZ0LCB0cmlnZ2VycywgYXR0cmlidXRlcywgY2xhc3NOYW1lIH0gPSB0aGlzXG4gICAgY29uc3QgY29uZmlnID0geyBjb21wb25lbnRzLCBjb250YWluZXIsIGZvbGxvd0N1cnNvciwgYWxsb3dIb3ZlciwgaG9yaXpvbnRhbFBsYWNlbWVudCwgaG9yaXpvbnRhbFNoaWZ0LCB2ZXJ0aWNhbFBsYWNlbWVudCwgdmVydGljYWxTaGlmdCwgdHJpZ2dlcnMsIGF0dHJpYnV0ZXMsIGNsYXNzTmFtZSB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGNvbmZpZykgYXMgKGtleW9mIFRvb2x0aXBDb25maWdJbnRlcmZhY2UpW11cbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsgaWYgKGNvbmZpZ1trZXldID09PSB1bmRlZmluZWQpIGRlbGV0ZSBjb25maWdba2V5XSB9KVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTtBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQWtFLE1BQU0sWUFBWSxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTs7QUFRaEQsTUFBTSxPQUFPLG1CQUFtQjtJQThFOUIsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELFdBQVcsQ0FBRSxPQUFzQjs7UUFDakMsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7UUFDM0MsTUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLE1BQU0sRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDL0wsTUFBTSxNQUFNLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUE7UUFDak0sTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQXFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTFFLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQzs7aUhBOUZVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDRhQUZuQixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLCtDQUZyRSxFQUFFOzRGQUlELG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZ0RBQWdEO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHFCQUFxQixFQUFFLENBQUM7aUJBQ2hGOzhCQUdVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBZ0JHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBbUJHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAhISEgVGhpcyBjb2RlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC4gWW91IHNob3VsZCBub3QgY2hhbmdlIGl0ICEhIVxuaW1wb3J0IHsgQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUb29sdGlwLCBUb29sdGlwQ29uZmlnSW50ZXJmYWNlLCBDb250YWluZXJDb3JlLCBDb21wb25lbnRDb3JlLCBQb3NpdGlvbiB9IGZyb20gJ0B1bm92aXMvdHMnXG5pbXBvcnQgeyBWaXNHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzLXRvb2x0aXAnLFxuICB0ZW1wbGF0ZTogJycsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFZpc0dlbmVyaWNDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBWaXNUb29sdGlwQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNUb29sdGlwQ29tcG9uZW50IGltcGxlbWVudHMgVG9vbHRpcENvbmZpZ0ludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBBbiBhcnJheSBvZiB2aXN1YWxpemF0aW9uIGNvbXBvbmVudHMgdG8gaW50ZXJhY3Qgd2l0aC4gRGVmYXVsdDogYFtdYCAqL1xuICBASW5wdXQoKSBjb21wb25lbnRzPzogQ29tcG9uZW50Q29yZTx1bmtub3duPltdXG5cbiAgLyoqIENvbnRhaW5lciB0byB3aGVyZSB0aGUgVG9vbHRpcCBjb21wb25lbnQgc2hvdWxkIGJlIGluc2VydGVkLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBjb250YWluZXI/OiBIVE1MRWxlbWVudFxuXG4gIC8qKiBGb2xsb3cgdGhlIG1vdXNlIGN1cnNvci4gRGVmYXVsdDogYHRydWVgICovXG4gIEBJbnB1dCgpIGZvbGxvd0N1cnNvcj86IGJvb2xlYW5cblxuICAvKiogQWxsb3cgdGhlIHRvb2x0aXAgdG8gYmUgaG92ZXJlZCBvdmVyIGFuZCBpbnRlcmFjdGVkIHdpdGguIERlZmF1bHQ6IGBmYWxzZWAgKi9cbiAgQElucHV0KCkgYWxsb3dIb3Zlcj86IGJvb2xlYW5cblxuICAvKiogSG9yaXpvbnRhbCBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAuIERlZmF1bHQ6IGBQb3NpdGlvbi5BdXRvYCAqL1xuICBASW5wdXQoKSBob3Jpem9udGFsUGxhY2VtZW50PzogUG9zaXRpb24gfCBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvKiogSG9yaXpvbnRhbCBzaGlmdCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHMuIFdvcmtzIG9ubHkgd2l0aFxuICAgKiBgaG9yaXpvbnRhbFBsYWNlbWVudGAgc2V0IHRvIGBQb3NpdGlvbi5MZWZ0YCBvciBgUG9zaXRpb24uUmlnaHRgLlxuICAgKiBEZWZhdWx0OiBgMGAgKi9cbiAgQElucHV0KCkgaG9yaXpvbnRhbFNoaWZ0PzogbnVtYmVyXG5cbiAgLyoqIFZlcnRpY2FsIHBsYWNlbWVudCBvZiB0aGUgdG9vbHRpcC4gRGVmYXVsdDogYFBvc2l0aW9uLlRvcGAgKi9cbiAgQElucHV0KCkgdmVydGljYWxQbGFjZW1lbnQ/OiBQb3NpdGlvbiB8IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIC8qKiBWZXJ0aWNhbCBzaGlmdCBvZiB0aGUgdG9vbHRpcCBpbiBwaXhlbHMuIFdvcmtzIG9ubHkgd2l0aFxuICAgKiBgdmVydGljYWxQbGFjZW1lbnRgIHNldCB0byBgUG9zaXRpb24uVG9wYCBvciBgUG9zaXRpb24uQm90dG9tYC5cbiAgICogRGVmYXVsdDogYDBgICovXG4gIEBJbnB1dCgpIHZlcnRpY2FsU2hpZnQ/OiBudW1iZXJcblxuICAvKiogRGVmaW5lcyB0aGUgY29udGVudCBvZiB0aGUgdG9vbHRpcCBhbmQgaG92ZXJpbmcgb3ZlciB3aGljaCBlbGVtZW50cyBzaG91bGQgdHJpZ2dlciBpdC5cbiAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbc2VsZWN0b3JTdHJpbmddOiAoZDogdW5rbm93bikgPT4gc3RyaW5nIHwgSFRNTEVsZW1lbnRcbiAgICogfVxuICAgKiBgYGBcbiAgICogZS5nLjpcbiAgICogYGBgXG4gICAqIHtcbiAgICogXFxbQXJlYS5zZWxlY3RvcnMuYXJlYV06IChkOiBBcmVhRGF0dW1bXSkgPT4gYDxkaXY+JHtkLnZhbHVlLnRvU3RyaW5nKCl9PC9kaXY+XG4gICAqIH1cbiAgICogYGBgICovXG4gIEBJbnB1dCgpIHRyaWdnZXJzPzoge1xuICAgIFtzZWxlY3Rvcjogc3RyaW5nXTogKChkYXRhOiBhbnksIGk6IG51bWJlciwgZWxlbWVudHM6IChIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpW10pID0+IHN0cmluZyB8IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCB8IHZvaWQpIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgfVxuXG4gIC8qKiBDdXN0b20gRE9NIGF0dHJpYnV0ZXMgZm9yIHRoZSB0b29sdGlwLiBVc2VmdWwgd2hlbiB5b3UgbmVlZCB0byByZWZlciB0byBhIHNwZWNpZmljIHRvb2x0aXAgaW5zdGFuY2VcbiAgICogYnkgdXNpbmcgYSBDU1Mgc2VsZWN0b3IuIEF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiBcXFthdHRyaWJ1dGVOYW1lXTogYXR0cmlidXRlIHZhbHVlXG4gICAqIH1cbiAgICogYGBgXG4gICAqIGUuZy46XG4gICAqIGBgYFxuICAgKiB7XG4gICAqIFxcJ3R5cGUnOiAnYXJlYS10b29sdGlwJyxcbiAgICogXFwndmFsdWUnOiA0MlxuICAgKiB9XG4gICAqIGBgYCAqL1xuICBASW5wdXQoKSBhdHRyaWJ1dGVzPzoge1xuICAgIFthdHRyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICB9XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBuYW1lIGZvciB0aGUgdG9vbHRpcC4gRGVmYXVsdDogYHVuZGVmaW5lZGAgKi9cbiAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nXG5cbiAgLyoqIEhpZGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0OiBgdW5kZWZpbmVkYCAqL1xuICBASW5wdXQoKSBoaWRlRGVsYXk/OiBudW1iZXJcblxuICAvKiogU2hvdyBkZWxheSBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQ6IGB1bmRlZmluZWRgICovXG4gIEBJbnB1dCgpIHNob3dEZWxheT86IG51bWJlclxuXG4gIGNvbXBvbmVudDogVG9vbHRpcCB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY29tcG9uZW50Q29udGFpbmVyOiBDb250YWluZXJDb3JlIHwgdW5kZWZpbmVkXG5cbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyBUb29sdGlwKHRoaXMuZ2V0Q29uZmlnKCkpXG4gIH1cblxuICBuZ09uQ2hhbmdlcyAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50Py5zZXRDb25maWcodGhpcy5nZXRDb25maWcoKSlcbiAgICB0aGlzLmNvbXBvbmVudENvbnRhaW5lcj8ucmVuZGVyKClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlnICgpOiBUb29sdGlwQ29uZmlnSW50ZXJmYWNlIHtcbiAgICBjb25zdCB7IGNvbXBvbmVudHMsIGNvbnRhaW5lciwgZm9sbG93Q3Vyc29yLCBhbGxvd0hvdmVyLCBob3Jpem9udGFsUGxhY2VtZW50LCBob3Jpem9udGFsU2hpZnQsIHZlcnRpY2FsUGxhY2VtZW50LCB2ZXJ0aWNhbFNoaWZ0LCB0cmlnZ2VycywgYXR0cmlidXRlcywgY2xhc3NOYW1lLCBoaWRlRGVsYXksIHNob3dEZWxheSB9ID0gdGhpc1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgY29tcG9uZW50cywgY29udGFpbmVyLCBmb2xsb3dDdXJzb3IsIGFsbG93SG92ZXIsIGhvcml6b250YWxQbGFjZW1lbnQsIGhvcml6b250YWxTaGlmdCwgdmVydGljYWxQbGFjZW1lbnQsIHZlcnRpY2FsU2hpZnQsIHRyaWdnZXJzLCBhdHRyaWJ1dGVzLCBjbGFzc05hbWUsIGhpZGVEZWxheSwgc2hvd0RlbGF5IH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKSBhcyAoa2V5b2YgVG9vbHRpcENvbmZpZ0ludGVyZmFjZSlbXVxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4geyBpZiAoY29uZmlnW2tleV0gPT09IHVuZGVmaW5lZCkgZGVsZXRlIGNvbmZpZ1trZXldIH0pXG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbn1cbiJdfQ==