@hestia-earth/ui-components 0.27.62 → 0.27.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/drawer-container/sidenav.store.d.ts +15 -0
- package/cycles/cycles-completeness/cycles-completeness.component.d.ts +27 -27
- package/cycles/cycles-nodes/cycles-nodes.component.d.ts +47 -46
- package/engine/engine-models-stage-deep/engine-models-stage-deep.component.d.ts +2 -2
- package/esm2022/common/drawer-container/drawer-container.component.mjs +8 -8
- package/esm2022/common/drawer-container/sidenav.store.mjs +2 -2
- package/esm2022/cycles/cycles-completeness/cycles-completeness.component.mjs +14 -8
- package/esm2022/cycles/cycles-nodes/cycles-nodes.component.mjs +13 -6
- package/esm2022/engine/engine-models-stage-deep/engine-models-stage-deep.component.mjs +16 -5
- package/esm2022/files/files-error.model.mjs +6 -1
- package/esm2022/files/files-form/files-form.component.mjs +3 -3
- package/esm2022/impact-assessments/impact-assessments-products/impact-assessments-products.component.mjs +13 -6
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +3 -3
- package/esm2022/node/node-value-details/node-value-details.component.mjs +3 -3
- package/esm2022/sites/sites-management-chart/sites-management-chart.component.mjs +4 -3
- package/esm2022/sites/sites-nodes/sites-nodes.component.mjs +17 -9
- package/fesm2022/hestia-earth-ui-components.mjs +80 -39
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +38 -37
- package/package.json +1 -1
- package/sites/sites-nodes/sites-nodes.component.d.ts +39 -38
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
export declare const initialState: {
|
|
2
|
+
minWidth: number;
|
|
3
|
+
maxWidth: number;
|
|
4
|
+
width: number;
|
|
5
|
+
expanded: boolean;
|
|
6
|
+
side: "left" | "right";
|
|
7
|
+
resizeEvent: {
|
|
8
|
+
isResizing: boolean;
|
|
9
|
+
startingCursorX: number;
|
|
10
|
+
startingWidth: number;
|
|
11
|
+
newWidth: number;
|
|
12
|
+
};
|
|
13
|
+
contentContainerSpacing: number;
|
|
14
|
+
minMenuDistance: number;
|
|
15
|
+
};
|
|
1
16
|
export declare const sidenavStore: import("@angular/core").Type<{
|
|
2
17
|
expanded: import("@angular/core").Signal<boolean>;
|
|
3
18
|
maxWidth: import("@angular/core").Signal<number>;
|
|
@@ -7,34 +7,33 @@ declare enum View {
|
|
|
7
7
|
logs = "Recalculations logs"
|
|
8
8
|
}
|
|
9
9
|
export declare class CyclesCompletenessComponent {
|
|
10
|
-
private
|
|
10
|
+
private readonly modalService;
|
|
11
|
+
private readonly nodeStoreService;
|
|
11
12
|
protected readonly faDownload: IconDefinition;
|
|
12
|
-
protected dataState: import("@angular/core").InputSignal<DataState>;
|
|
13
|
-
protected schemaBaseUrl: string;
|
|
14
|
-
protected defaultLabel: (node?: any) => any;
|
|
15
|
-
protected keyToLabel: (key: string) => string;
|
|
16
|
-
protected getCompleteness: (cycle: any) => any;
|
|
17
|
-
protected
|
|
18
|
-
protected
|
|
19
|
-
protected
|
|
20
|
-
protected View: typeof View;
|
|
21
|
-
protected viewIcon: {
|
|
13
|
+
protected readonly dataState: import("@angular/core").InputSignal<DataState>;
|
|
14
|
+
protected readonly schemaBaseUrl: string;
|
|
15
|
+
protected readonly defaultLabel: (node?: any) => any;
|
|
16
|
+
protected readonly keyToLabel: (key: string) => string;
|
|
17
|
+
protected readonly getCompleteness: (cycle: any) => any;
|
|
18
|
+
protected readonly nodeKey = NonBlankNodesKey.completeness;
|
|
19
|
+
protected readonly View: typeof View;
|
|
20
|
+
protected readonly viewIcon: {
|
|
22
21
|
"Table view": IconDefinition;
|
|
23
22
|
"Recalculations logs": IconDefinition;
|
|
24
23
|
};
|
|
25
|
-
private showView;
|
|
26
|
-
protected views: import("@angular/core").Signal<View[]>;
|
|
27
|
-
protected selectedView: import("@angular/core").WritableSignal<View>;
|
|
28
|
-
private originalCycles;
|
|
29
|
-
private _allCycles;
|
|
30
|
-
protected cycles: import("@angular/core").Signal<ICycleJSONLD[]>;
|
|
31
|
-
private selectedIndex;
|
|
32
|
-
private ogirinalSelectedCycle;
|
|
33
|
-
private selectedCycle;
|
|
34
|
-
protected selectedLogsKey: import("@angular/core").Signal<any>;
|
|
35
|
-
protected selectedOriginalValues: import("@angular/core").Signal<any>;
|
|
36
|
-
protected selectedRecalculatedValues: import("@angular/core").Signal<any>;
|
|
37
|
-
protected selectedNode: import("@angular/core").Signal<{
|
|
24
|
+
private readonly showView;
|
|
25
|
+
protected readonly views: import("@angular/core").Signal<View[]>;
|
|
26
|
+
protected readonly selectedView: import("@angular/core").WritableSignal<View>;
|
|
27
|
+
private readonly originalCycles;
|
|
28
|
+
private readonly _allCycles;
|
|
29
|
+
protected readonly cycles: import("@angular/core").Signal<ICycleJSONLD[]>;
|
|
30
|
+
private readonly selectedIndex;
|
|
31
|
+
private readonly ogirinalSelectedCycle;
|
|
32
|
+
private readonly selectedCycle;
|
|
33
|
+
protected readonly selectedLogsKey: import("@angular/core").Signal<any>;
|
|
34
|
+
protected readonly selectedOriginalValues: import("@angular/core").Signal<any>;
|
|
35
|
+
protected readonly selectedRecalculatedValues: import("@angular/core").Signal<any>;
|
|
36
|
+
protected readonly selectedNode: import("@angular/core").Signal<{
|
|
38
37
|
'@type': NodeType;
|
|
39
38
|
type: NodeType;
|
|
40
39
|
dataState: DataState;
|
|
@@ -89,9 +88,9 @@ export declare class CyclesCompletenessComponent {
|
|
|
89
88
|
'@id': string;
|
|
90
89
|
name: string;
|
|
91
90
|
}>;
|
|
92
|
-
protected hasData: import("@angular/core").Signal<number>;
|
|
93
|
-
protected isOriginal: import("@angular/core").Signal<boolean>;
|
|
94
|
-
protected completenessKeys: import("@angular/core").Signal<string[]>;
|
|
91
|
+
protected readonly hasData: import("@angular/core").Signal<number>;
|
|
92
|
+
protected readonly isOriginal: import("@angular/core").Signal<boolean>;
|
|
93
|
+
protected readonly completenessKeys: import("@angular/core").Signal<string[]>;
|
|
95
94
|
constructor();
|
|
96
95
|
protected trackById(_index: number, item: ICycleJSONLD): string;
|
|
97
96
|
protected selectIndex({ target: { value } }: {
|
|
@@ -99,6 +98,7 @@ export declare class CyclesCompletenessComponent {
|
|
|
99
98
|
value: any;
|
|
100
99
|
};
|
|
101
100
|
}): void;
|
|
101
|
+
protected showDownload(): void;
|
|
102
102
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesCompletenessComponent, never>;
|
|
103
103
|
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesCompletenessComponent, "he-cycles-completeness", never, { "dataState": { "alias": "dataState"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
104
104
|
}
|
|
@@ -18,42 +18,42 @@ export declare enum CycleNodesKeyGroup {
|
|
|
18
18
|
}
|
|
19
19
|
type groupedNode = Animal | Transformation;
|
|
20
20
|
export declare class CyclesNodesComponent {
|
|
21
|
+
private readonly modalService;
|
|
21
22
|
private nodeStoreService;
|
|
22
23
|
protected readonly faDownload: IconDefinition;
|
|
23
|
-
protected dataState: import("@angular/core").InputSignal<DataState>;
|
|
24
|
-
protected nodeKeys: import("@angular/core").InputSignal<BlankNodesKey[]>;
|
|
25
|
-
protected nodeKeyGroup: import("@angular/core").InputSignal<CycleNodesKeyGroup>;
|
|
26
|
-
protected BlankNodesKey: typeof BlankNodesKey;
|
|
27
|
-
protected firstNodeKey: import("@angular/core").Signal<BlankNodesKey>;
|
|
28
|
-
protected selectedNodeKey: import("@angular/core").WritableSignal<BlankNodesKey>;
|
|
29
|
-
protected selectedGroupTerm: import("@angular/core").WritableSignal<Term>;
|
|
30
|
-
protected schemaBaseUrl: string;
|
|
31
|
-
protected propertyValue: (value: import("@hestia-earth/utils/dist/term").propertyValueType | import("@hestia-earth/utils/dist/term").propertyValueType[], termId?: string) => import("@hestia-earth/utils/dist/term").propertyValueType;
|
|
32
|
-
protected defaultLabel: (node?: any) => any;
|
|
33
|
-
protected
|
|
34
|
-
protected
|
|
35
|
-
protected
|
|
36
|
-
protected viewIcon: {
|
|
24
|
+
protected readonly dataState: import("@angular/core").InputSignal<DataState>;
|
|
25
|
+
protected readonly nodeKeys: import("@angular/core").InputSignal<BlankNodesKey[]>;
|
|
26
|
+
protected readonly nodeKeyGroup: import("@angular/core").InputSignal<CycleNodesKeyGroup>;
|
|
27
|
+
protected readonly BlankNodesKey: typeof BlankNodesKey;
|
|
28
|
+
protected readonly firstNodeKey: import("@angular/core").Signal<BlankNodesKey>;
|
|
29
|
+
protected readonly selectedNodeKey: import("@angular/core").WritableSignal<BlankNodesKey>;
|
|
30
|
+
protected readonly selectedGroupTerm: import("@angular/core").WritableSignal<Term>;
|
|
31
|
+
protected readonly schemaBaseUrl: string;
|
|
32
|
+
protected readonly propertyValue: (value: import("@hestia-earth/utils/dist/term").propertyValueType | import("@hestia-earth/utils/dist/term").propertyValueType[], termId?: string) => import("@hestia-earth/utils/dist/term").propertyValueType;
|
|
33
|
+
protected readonly defaultLabel: (node?: any) => any;
|
|
34
|
+
protected readonly headerKeys: import("@angular/core").Signal<string[]>;
|
|
35
|
+
protected readonly View: typeof View;
|
|
36
|
+
protected readonly viewIcon: {
|
|
37
37
|
"Table view": IconDefinition;
|
|
38
38
|
"Chart view": IconDefinition;
|
|
39
39
|
"Operations Timeline": IconDefinition;
|
|
40
40
|
"Recalculations logs": IconDefinition;
|
|
41
41
|
};
|
|
42
|
-
private showView;
|
|
43
|
-
protected views: import("@angular/core").Signal<View[]>;
|
|
44
|
-
protected selectedView: import("@angular/core").WritableSignal<View>;
|
|
45
|
-
private _allNodes;
|
|
46
|
-
private originalNodes;
|
|
47
|
-
private currentNodes;
|
|
48
|
-
protected originalCycles: import("@angular/core").Signal<ICycleJSONLD[] | groupedNode[]>;
|
|
49
|
-
protected cycles: import("@angular/core").Signal<ICycleJSONLD[] | groupedNode[]>;
|
|
50
|
-
private selectedIndex;
|
|
51
|
-
private ogirinalSelectedCycle;
|
|
52
|
-
private selectedCycle;
|
|
53
|
-
protected selectedLogsKey: import("@angular/core").Signal<any>;
|
|
54
|
-
protected selectedOriginalValues: import("@angular/core").Signal<any>;
|
|
55
|
-
protected selectedRecalculatedValues: import("@angular/core").Signal<any>;
|
|
56
|
-
protected selectedNode: import("@angular/core").Signal<{
|
|
42
|
+
private readonly showView;
|
|
43
|
+
protected readonly views: import("@angular/core").Signal<View[]>;
|
|
44
|
+
protected readonly selectedView: import("@angular/core").WritableSignal<View>;
|
|
45
|
+
private readonly _allNodes;
|
|
46
|
+
private readonly originalNodes;
|
|
47
|
+
private readonly currentNodes;
|
|
48
|
+
protected readonly originalCycles: import("@angular/core").Signal<ICycleJSONLD[] | groupedNode[]>;
|
|
49
|
+
protected readonly cycles: import("@angular/core").Signal<ICycleJSONLD[] | groupedNode[]>;
|
|
50
|
+
private readonly selectedIndex;
|
|
51
|
+
private readonly ogirinalSelectedCycle;
|
|
52
|
+
private readonly selectedCycle;
|
|
53
|
+
protected readonly selectedLogsKey: import("@angular/core").Signal<any>;
|
|
54
|
+
protected readonly selectedOriginalValues: import("@angular/core").Signal<any>;
|
|
55
|
+
protected readonly selectedRecalculatedValues: import("@angular/core").Signal<any>;
|
|
56
|
+
protected readonly selectedNode: import("@angular/core").Signal<{
|
|
57
57
|
'@type': NodeType;
|
|
58
58
|
type: NodeType;
|
|
59
59
|
dataState: DataState;
|
|
@@ -161,25 +161,25 @@ export declare class CyclesNodesComponent {
|
|
|
161
161
|
updatedVersion?: string[];
|
|
162
162
|
id?: string;
|
|
163
163
|
}>;
|
|
164
|
-
private isOriginal;
|
|
165
|
-
private originalValues;
|
|
166
|
-
private hasRecalculatedNodes;
|
|
167
|
-
protected showSwitchToRecalculated: import("@angular/core").Signal<boolean>;
|
|
168
|
-
protected timelineValues: import("@angular/core").Signal<blankNodesType[]>;
|
|
169
|
-
private enableTimeline;
|
|
170
|
-
protected isNodeKeyAllowed: import("@angular/core").Signal<boolean>;
|
|
171
|
-
private groupedNodes;
|
|
172
|
-
protected groupNodeTerms: import("@angular/core").Signal<Term[]>;
|
|
173
|
-
protected isGroupNode: import("@angular/core").Signal<boolean>;
|
|
174
|
-
protected isEmission: import("@angular/core").Signal<boolean>;
|
|
175
|
-
protected data: import("@angular/core").Signal<groupedEmissions | {
|
|
164
|
+
private readonly isOriginal;
|
|
165
|
+
private readonly originalValues;
|
|
166
|
+
private readonly hasRecalculatedNodes;
|
|
167
|
+
protected readonly showSwitchToRecalculated: import("@angular/core").Signal<boolean>;
|
|
168
|
+
protected readonly timelineValues: import("@angular/core").Signal<blankNodesType[]>;
|
|
169
|
+
private readonly enableTimeline;
|
|
170
|
+
protected readonly isNodeKeyAllowed: import("@angular/core").Signal<boolean>;
|
|
171
|
+
private readonly groupedNodes;
|
|
172
|
+
protected readonly groupNodeTerms: import("@angular/core").Signal<Term[]>;
|
|
173
|
+
protected readonly isGroupNode: import("@angular/core").Signal<boolean>;
|
|
174
|
+
protected readonly isEmission: import("@angular/core").Signal<boolean>;
|
|
175
|
+
protected readonly data: import("@angular/core").Signal<groupedEmissions | {
|
|
176
176
|
[k: string]: IGroupedKeys<Product>[];
|
|
177
177
|
}>;
|
|
178
|
-
protected dataKeys: import("@angular/core").Signal<string[]>;
|
|
179
|
-
protected hasData: import("@angular/core").Signal<boolean>;
|
|
180
|
-
protected filterTermTypes: import("@angular/core").Signal<TermTermType[]>;
|
|
181
|
-
protected filterTerm: import("@angular/core").WritableSignal<string>;
|
|
182
|
-
protected csvFilename: import("@angular/core").Signal<string>;
|
|
178
|
+
protected readonly dataKeys: import("@angular/core").Signal<string[]>;
|
|
179
|
+
protected readonly hasData: import("@angular/core").Signal<boolean>;
|
|
180
|
+
protected readonly filterTermTypes: import("@angular/core").Signal<TermTermType[]>;
|
|
181
|
+
protected readonly filterTerm: import("@angular/core").WritableSignal<string>;
|
|
182
|
+
protected readonly csvFilename: import("@angular/core").Signal<string>;
|
|
183
183
|
constructor();
|
|
184
184
|
private groupNodesByKey;
|
|
185
185
|
private groupEmissions;
|
|
@@ -190,6 +190,7 @@ export declare class CyclesNodesComponent {
|
|
|
190
190
|
};
|
|
191
191
|
}): void;
|
|
192
192
|
protected cycleNode(cycle: ICycleJSONLD | groupedNode): Term | ICycleJSONLD | groupedNode;
|
|
193
|
+
protected showDownload(): void;
|
|
193
194
|
static ɵfac: i0.ɵɵFactoryDeclaration<CyclesNodesComponent, never>;
|
|
194
195
|
static ɵcmp: i0.ɵɵComponentDeclaration<CyclesNodesComponent, "he-cycles-nodes", never, { "dataState": { "alias": "dataState"; "required": false; "isSignal": true; }; "nodeKeys": { "alias": "nodeKeys"; "required": true; "isSignal": true; }; "nodeKeyGroup": { "alias": "nodeKeyGroup"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
195
196
|
}
|
|
@@ -11,7 +11,6 @@ export declare class EngineModelsStageDeepComponent<T extends NodeType> {
|
|
|
11
11
|
protected readonly faAngleDown: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
12
12
|
protected readonly node: import("@angular/core").InputSignal<IJSONLDExtended>;
|
|
13
13
|
protected readonly expanded: import("@angular/core").ModelSignal<boolean>;
|
|
14
|
-
protected readonly showVersion: import("@angular/core").ModelSignal<boolean>;
|
|
15
14
|
/**
|
|
16
15
|
* When nesting the components, avoid allowing expansion on the top-level node.
|
|
17
16
|
*/
|
|
@@ -19,6 +18,7 @@ export declare class EngineModelsStageDeepComponent<T extends NodeType> {
|
|
|
19
18
|
protected readonly id: import("@angular/core").Signal<string>;
|
|
20
19
|
protected readonly type: import("@angular/core").Signal<NodeType>;
|
|
21
20
|
protected readonly nodeColour: import("@angular/core").Signal<any>;
|
|
21
|
+
protected readonly recalculatedAt: import("@angular/core").Signal<any>;
|
|
22
22
|
protected readonly loading: import("@angular/core").WritableSignal<boolean>;
|
|
23
23
|
private readonly relatedNodes;
|
|
24
24
|
private readonly relatedNodes$;
|
|
@@ -35,6 +35,6 @@ export declare class EngineModelsStageDeepComponent<T extends NodeType> {
|
|
|
35
35
|
private findNode;
|
|
36
36
|
protected trackNode(node: IJSONLDExtended): string;
|
|
37
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<EngineModelsStageDeepComponent<any>, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EngineModelsStageDeepComponent<any>, "he-engine-models-stage-deep", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EngineModelsStageDeepComponent<any>, "he-engine-models-stage-deep", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "expandedNode": { "alias": "expandedNode"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, never, true, never>;
|
|
39
39
|
}
|
|
40
40
|
export {};
|
|
@@ -9,7 +9,7 @@ import { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/n
|
|
|
9
9
|
import { animationFrameScheduler, combineLatest, EMPTY, fromEvent } from 'rxjs';
|
|
10
10
|
import { LocalStorageService } from 'ngx-webstorage';
|
|
11
11
|
import { HE_REDUCE_WIDTH_ANIMATION, HE_SIDE_MENU_ANIMATION } from './drawer-container.animations';
|
|
12
|
-
import { sidenavStore } from './sidenav.store';
|
|
12
|
+
import { sidenavStore, initialState } from './sidenav.store';
|
|
13
13
|
import { NavigationMenuComponent } from '../navigation-menu/navigation-menu.component';
|
|
14
14
|
import { ResponsiveService } from '../responsive.service';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
@@ -22,7 +22,7 @@ export class DrawerContainerComponent {
|
|
|
22
22
|
this.localStorage = inject(LocalStorageService);
|
|
23
23
|
this.contentContainer = viewChild('contentContainer', { read: ElementRef });
|
|
24
24
|
this.menuState = signal('close');
|
|
25
|
-
this.expanded = signal(
|
|
25
|
+
this.expanded = signal(initialState.expanded);
|
|
26
26
|
/**
|
|
27
27
|
* The breakpoint at which the drawer will no longer be compact.
|
|
28
28
|
* If a number is provided, it will be used as the width in pixels.
|
|
@@ -31,10 +31,10 @@ export class DrawerContainerComponent {
|
|
|
31
31
|
* @default 'tablet' - the drawer will be compact until the tablet breakpoint.
|
|
32
32
|
*/
|
|
33
33
|
this.compactBreakpoint = input('tablet');
|
|
34
|
-
this.position = input(
|
|
35
|
-
this.min = input(
|
|
36
|
-
this.width = model(
|
|
37
|
-
this.max = input(
|
|
34
|
+
this.position = input(initialState.side);
|
|
35
|
+
this.min = input(initialState.minWidth);
|
|
36
|
+
this.width = model(initialState.width);
|
|
37
|
+
this.max = input(initialState.maxWidth);
|
|
38
38
|
this.resizable = input(true);
|
|
39
39
|
this.contentPaddingStyles = input();
|
|
40
40
|
this.menuOverlap = input(true);
|
|
@@ -45,7 +45,7 @@ export class DrawerContainerComponent {
|
|
|
45
45
|
/**
|
|
46
46
|
* The minimum distance between the menu and the edge of the content container.
|
|
47
47
|
*/
|
|
48
|
-
this.minMenuDistance = input(
|
|
48
|
+
this.minMenuDistance = input(initialState.minMenuDistance);
|
|
49
49
|
/**
|
|
50
50
|
* Giving an id to the menu so that it can store the resized position.
|
|
51
51
|
*/
|
|
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
152
152
|
type: HostListener,
|
|
153
153
|
args: ['window:mouseup']
|
|
154
154
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2RyYXdlci1jb250YWluZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2RyYXdlci1jb250YWluZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWMsTUFB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R0FBeEIsd0JBQXdCLGt1RUFGeEIsQ0FBQyxZQUFZLENBQUMsMkhBUWlELFVBQVUsNkNDL0R0RixxOEZBZ0ZBLDByRkQ1Q0ksZ0JBQWdCLG9KQUNoQixlQUFlLGtQQUNmLE9BQU8sbUZBQ1AsV0FBVywrQkFDWCxXQUFXLG9OQUNYLGVBQWUsOERBQ2YsaUJBQWlCLGdFQUNqQix1QkFBdUIsNElBS2IsQ0FBQyxHQUFHLHNCQUFzQixFQUFFLEdBQUcseUJBQXlCLENBQUM7OzRGQVMxRCx3QkFBd0I7a0JBekJwQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQix1QkFBdUI7cUJBQ3hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxHQUFHLHlCQUF5QixDQUFDLFFBRS9EO3dCQUNKLFNBQVMsRUFBRSxhQUFhO3dCQUN4Qix3QkFBd0IsRUFBRSxZQUFZO3dCQUN0QyxxQkFBcUIsRUFBRSxhQUFhO3FCQUNyQyxhQUNVLENBQUMsWUFBWSxDQUFDO3dEQStJekIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIHZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFDaGV2cm9uRG93biwgZmFDaGV2cm9uTGVmdCwgZmFDaGV2cm9uUmlnaHQsIGZhQ2hldnJvblVwIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB0eXBlIHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlLCB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVsYXksIGZpbHRlciwgbWFwLCBza2lwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JEcm9wZG93biwgTmdiRHJvcGRvd25NZW51LCBOZ2JEcm9wZG93blRvZ2dsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXdlYnN0b3JhZ2UnO1xuXG5pbXBvcnQgeyBIRV9SRURVQ0VfV0lEVEhfQU5JTUFUSU9OLCBIRV9TSURFX01FTlVfQU5JTUFUSU9OIH0gZnJvbSAnLi9kcmF3ZXItY29udGFpbmVyLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgc2lkZW5hdlN0b3JlIH0gZnJvbSAnLi9zaWRlbmF2LnN0b3JlJztcbmltcG9ydCB7IElOYXZpZ2F0aW9uTWVudUxpbmssIE5hdmlnYXRpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1tZW51L25hdmlnYXRpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZUJyZWFrcG9pbnQsIFJlc3BvbnNpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzcG9uc2l2ZS5zZXJ2aWNlJztcblxuY29uc3Qgc3RvcmFnZUtleSA9ICdoZS1kcmF3ZXItY29udGFpbmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZHJhd2VyLWNvbnRhaW5lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBOZ0NsYXNzLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duLFxuICAgIE5nYkRyb3Bkb3duTWVudSxcbiAgICBOZ2JEcm9wZG93blRvZ2dsZSxcbiAgICBOYXZpZ2F0aW9uTWVudUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFsuLi5IRV9TSURFX01FTlVfQU5JTUFUSU9OLCAuLi5IRV9SRURVQ0VfV0lEVEhfQU5JTUFUSU9OXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdob3N0Q2xhc3MoKScsXG4gICAgJ1thdHRyLmRyYXdlci1wb3NpdGlvbl0nOiAncG9zaXRpb24oKScsXG4gICAgJ1thdHRyLmRyYXdlci1zdGF0ZV0nOiAnbWVudVN0YXRlKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW3NpZGVuYXZTdG9yZV1cbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNpZGVuYXZTdG9yZSA9IGluamVjdChzaWRlbmF2U3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNpdmVTZXJ2aWNlID0gaW5qZWN0KFJlc3BvbnNpdmVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50Q29udGFpbmVyID0gdmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51U3RhdGUgPSBzaWduYWw8J29wZW4nIHwgJ2Nsb3NlJz4oJ2Nsb3NlJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRlZCA9IHNpZ25hbCh0cnVlKTtcblxuICAvKipcbiAgICogVGhlIGJyZWFrcG9pbnQgYXQgd2hpY2ggdGhlIGRyYXdlciB3aWxsIG5vIGxvbmdlciBiZSBjb21wYWN0LlxuICAgKiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSB3aWR0aCBpbiBwaXhlbHMuXG4gICAqIElmICdub25lJyBpcyBwcm92aWRlZCwgdGhlIGRyYXdlciB3aWxsIG5ldmVyIGJlIGNvbXBhY3QuXG4gICAqIElmIGEgYnJlYWtwb2ludCBuYW1lIGlzIHByb3ZpZGVkLCB0aGUgZHJhd2VyIHdpbGwgYmUgY29tcGFjdCB1bnRpbCB0aGF0IGJyZWFrcG9pbnQuXG4gICAqIEBkZWZhdWx0ICd0YWJsZXQnIC0gdGhlIGRyYXdlciB3aWxsIGJlIGNvbXBhY3QgdW50aWwgdGhlIHRhYmxldCBicmVha3BvaW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbXBhY3RCcmVha3BvaW50ID0gaW5wdXQ8UmVzcG9uc2l2ZUJyZWFrcG9pbnQ+KCd0YWJsZXQnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5wdXQ8J2xlZnQnIHwgJ3JpZ2h0Jz4oJ2xlZnQnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlcj4oMjUwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpZHRoID0gbW9kZWw8bnVtYmVyPigyNTYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWF4ID0gaW5wdXQ8bnVtYmVyPig2MDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzaXphYmxlID0gaW5wdXQodHJ1ZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZW50UGFkZGluZ1N0eWxlcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnVPdmVybGFwID0gaW5wdXQodHJ1ZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsaW5rcyA9IGlucHV0PElOYXZpZ2F0aW9uTWVudUxpbmtbXT4oW10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhd2VySGVhZGVyVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbXBhY3RIZWFkZXJDbGFzcyA9IGlucHV0PE5nQ2xhc3NbJ25nQ2xhc3MnXT4obnVsbCk7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBtZW51IGFuZCB0aGUgZWRnZSBvZiB0aGUgY29udGVudCBjb250YWluZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWluTWVudURpc3RhbmNlID0gaW5wdXQ8bnVtYmVyPigyMCk7XG4gIC8qKlxuICAgKiBHaXZpbmcgYW4gaWQgdG8gdGhlIG1lbnUgc28gdGhhdCBpdCBjYW4gc3RvcmUgdGhlIHJlc2l6ZWQgcG9zaXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSBpbnB1dCgnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wZW5lZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLm1lbnVTdGF0ZSkucGlwZShcbiAgICAgIHNraXAoMSksXG4gICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUgPT09ICdvcGVuJyksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9zZWQgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZShcbiAgICB0b09ic2VydmFibGUodGhpcy5tZW51U3RhdGUpLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgZmlsdGVyKHN0YXRlID0+IHN0YXRlID09PSAnY2xvc2UnKSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgIClcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFDaGV2cm9uVXAgPSBmYUNoZXZyb25VcDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhQ2hldnJvbkRvd24gPSBmYUNoZXZyb25Eb3duO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB2aXNpYmxlID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbdGhpcy5saW5rcygpPy5sZW5ndGggPiAwLCAhIXRoaXMuZHJhd2VySGVhZGVyVGVtcGxhdGUoKSwgISF0aGlzLmRyYXdlck1lbnVIZWFkZXJUZW1wbGF0ZSgpXS5zb21lKEJvb2xlYW4pXG4gICk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBzaG93aW5nIG1vZGFsIHdpdGhpbiB0aGUgY29udGVudCBvZiB0aGUgZHJhd2VyIGNvbnRhaW5lciwgd2hpY2ggYnJlYWtzIHRoZSBsYXlvdXQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzTW9kYWwgPSB0b1NpZ25hbChcbiAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbW9kYWwnKS5sZW5ndGggPiAwKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVBbmltYXRpb24gPSB0b1NpZ25hbCh0b09ic2VydmFibGUodGhpcy5oYXNNb2RhbCkucGlwZShkZWxheSgxMDAwKSkpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0NvbXBhY3QgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5jb21wYWN0QnJlYWtwb2ludCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChicmVha3BvaW50ID0+XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZVNlcnZpY2UuaXNBYm92ZUJyZWFrcG9pbnQkKGJyZWFrcG9pbnQpLnBpcGUobWFwKGlzQWJvdmVCcmVha3BvaW50ID0+ICFpc0Fib3ZlQnJlYWtwb2ludCkpXG4gICAgICApXG4gICAgKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbJ2lzLWZsZXgnLCB0aGlzLmlzQ29tcGFjdCgpID8gJ2lzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbicgOiAnJywgdGhpcy5yZXNpemFibGUoKSA/ICdpcy1yZXNpemFibGUnIDogJyddLmpvaW4oJyAnKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNIb2xkaW5nVG9nZ2xlID0gdGhpcy5zaWRlbmF2U3RvcmUuaXNSZXNpemluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVTaWRlbmF2RXZlbnQkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2lkZW5hdlN0b3JlLmlzUmVzaXppbmcpLnBpcGUoXG4gICAgc3dpdGNoTWFwKGxpc3RlbiA9PiAobGlzdGVuID8gKGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+KSA6IEVNUFRZKSksXG4gICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKVxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50Q29udGFpbmVyJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRlbnRDb250YWluZXIpLnBpcGUoZmlsdGVyKHggPT4gISF4KSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RDb21wb25lbnRXaWR0aCQgPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZShzdGFydFdpdGgod2luZG93LmlubmVyV2lkdGgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNPdmVybGFwcGluZyQgPSB0b09ic2VydmFibGUodGhpcy5zaWRlbmF2U3RvcmUuaXNNZW51T3ZlcmxhcHBpbmcpO1xuXG4gIC8qKlxuICAgKiB3ZSB1c2UgY29tYmluZUxhdGVzdCBpbnN0ZWFkIG9mIGNvbXB1dGVkIHRvIGF2b2lkIHRoZSBhbmltYXRpb24gZmxpY2tlcmluZyAod2FpdCBmb3IgYWxsIHNvdXJjZXMgdG8gZW1pdClcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZWR1Y2VBbmltYXRpb24gPSB0b1NpZ25hbChcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmV4cGFuZGVkKSxcbiAgICAgIHRoaXMuX2lzT3ZlcmxhcHBpbmckLFxuICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuaXNDb21wYWN0KSxcbiAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnZpc2libGUpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2V4cGFuZGVkLCBpc092ZXJsYXBwaW5nLCBpc0NvbXBhY3QsIHZpc2libGVdKSA9PlxuICAgICAgICBbZXhwYW5kZWQsICFpc092ZXJsYXBwaW5nLCAhaXNDb21wYWN0LCB2aXNpYmxlXS5ldmVyeShCb29sZWFuKSA/ICdyZWR1Y2VkJyA6ICdmdWxsJ1xuICAgICAgKVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudENvbnRhaW5lclBhZGRpbmckID0gdGhpcy5faG9zdENvbXBvbmVudFdpZHRoJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9jb250ZW50Q29udGFpbmVyJC5waXBlKG1hcCh0aGlzLl9nZXRDb250ZW50TGVmdFNpZGVTcGFjZSkpKVxuICApO1xuXG4gIHByaXZhdGUgc3RvcmFnZUtleSA9IGNvbXB1dGVkKCgpID0+IFtzdG9yYWdlS2V5LCB0aGlzLmlkKCldLmZpbHRlcihCb29sZWFuKS5qb2luKCctJykpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldFNpZGUodGhpcy5wb3NpdGlvbik7XG4gICAgdGhpcy5zaWRlbmF2U3RvcmUuc2V0TWluV2lkdGgodGhpcy5taW4pO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldE1heFdpZHRoKHRoaXMubWF4KTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zZXRXaWR0aCh0aGlzLndpZHRoKTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS51cGRhdGVSZXNpemluZyh0aGlzLl91cGRhdGVTaWRlbmF2RXZlbnQkKTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zZXRDb250ZW50Q29udGFpbmVyU3BhY2luZyh0aGlzLl9jb250ZW50Q29udGFpbmVyUGFkZGluZyQpO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldEV4cGFuZGVkKHRoaXMuZXhwYW5kZWQpO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldE1pbk1lbnVEaXN0YW5jZSh0aGlzLm1pbk1lbnVEaXN0YW5jZSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6YWJsZSgpKSB7XG4gICAgICAgICAgY29uc3QgeyB3aWR0aCB9ID0gSlNPTi5wYXJzZSh0aGlzLmxvY2FsU3RvcmFnZS5yZXRyaWV2ZSh0aGlzLnN0b3JhZ2VLZXkoKSkgfHwgJ3t9Jyk7XG4gICAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMud2lkdGguc2V0KHdpZHRoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXJ0UmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzaXphYmxlKCkpIHJldHVybjtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zdGFydFJlc2l6aW5nKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwJylcbiAgc3RvcFJlc2l6aW5nKCkge1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnN0b3BSZXNpemluZygpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnN0b3JlKHRoaXMuc3RvcmFnZUtleSgpLCBKU09OLnN0cmluZ2lmeSh7IHdpZHRoOiB0aGlzLnNpZGVuYXZTdG9yZS53aWR0aCgpIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVJY29uKCkge1xuICAgIHJldHVybiAodGhpcy5leHBhbmRlZCgpICYmIHRoaXMucG9zaXRpb24oKSA9PT0gJ2xlZnQnKSB8fCAoIXRoaXMuZXhwYW5kZWQoKSAmJiB0aGlzLnBvc2l0aW9uKCkgPT09ICdyaWdodCcpXG4gICAgICA/IGZhQ2hldnJvbkxlZnRcbiAgICAgIDogZmFDaGV2cm9uUmlnaHQ7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcbiAgICBpZiAodGhpcy5zaWRlbmF2U3RvcmUuaGFzTWVudVdpZHRoQ2hhbmdlZCgpICYmIHRoaXMuZXhwYW5kZWQoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5leHBhbmRlZCgpID8gdGhpcy5oaWRlTWVudSgpIDogdGhpcy5zaG93TWVudSgpO1xuICB9XG5cbiAgcHVibGljIGhpZGVNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93TWVudSgpIHtcbiAgICB0aGlzLmV4cGFuZGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGNvbnN0IGRpZE9wZW4gPSBldmVudC50b1N0YXRlICE9PSAnaGlkZGVuJztcbiAgICB0aGlzLm1lbnVTdGF0ZS5zZXQoZGlkT3BlbiA/ICdvcGVuJyA6ICdjbG9zZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29udGVudExlZnRTaWRlU3BhY2UoZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25zdCBwYWRkaW5nID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWxlZnQnKTtcbiAgICBjb25zdCBtYXJnaW4gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbi1sZWZ0Jyk7XG4gICAgcmV0dXJuIHBhcnNlSW50KHBhZGRpbmcsIDEwKSArIHBhcnNlSW50KG1hcmdpbiwgMTApO1xuICB9XG59XG4iLCJAaWYgKHZpc2libGUoKSkge1xuICBAaWYgKGlzQ29tcGFjdCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImNvbXBhY3QtaGVhZGVyXCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImNvbXBhY3RIZWFkZXJDbGFzcygpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWFsaWduLWl0ZW1zLWZsZXgtc3RhcnQgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gdy0xMDBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWdyb3ctMSBpcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbiBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW5cIj5cbiAgICAgICAgICAgIEBpZiAoZHJhd2VySGVhZGVyVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyYXdlckhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGRyYXdlck1lbnVIZWFkZXJUZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmIChsaW5rcygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duICNvcHRpb25EZD1cIm5nYkRyb3Bkb3duXCIgY29udGFpbmVyPVwiYm9keVwiIHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wYWN0LWhlYWRlci0tYnRuIGJ1dHRvbiBpcy1zbWFsbCBpcy1uby1zaGFkb3dcIlxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJkcmF3ZXItbWVudVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIE1lbnVcblxuICAgICAgICAgICAgICAgIDxmYS1pY29uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBhY3QtaGVhZGVyLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwib3B0aW9uRGQuaXNPcGVuKCkgPyBmYUNoZXZyb25VcCA6IGZhQ2hldnJvbkRvd25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBpZD1cImRyYXdlci1tZW51XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQgbmF2aWdhdGlvbi1tZW51LWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICA8aGUtbmF2aWdhdGlvbi1tZW51IChjbG9zZWQpPVwib3B0aW9uRGQuY2xvc2UoKVwiIFtsaW5rc109XCJsaW5rcygpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxhc2lkZT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzaGVsbF9fbWVudUNvbnRlbnQgfCBoLTEwMFwiXG4gICAgICAgIChAc2lkZU1lbnUuZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIlxuICAgICAgICBbQHNpZGVNZW51XT1cImV4cGFuZGVkKCkgPyAnZnVsbCcgOiAnaGlkZGVuJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgc2hlbGxfX21lbnVDb250ZW50LS1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGRyYXdlckhlYWRlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VySGVhZGVyVGVtcGxhdGUoKVwiIC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChsaW5rcygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8aGUtbmF2aWdhdGlvbi1tZW51IFtsaW5rc109XCJsaW5rcygpXCI+XG4gICAgICAgICAgICAgIEBpZiAoZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG91dGVyLWNvbnRlbnQgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2hlLW5hdmlnYXRpb24tbWVudT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVNZW51KClcIiAobW91c2Vkb3duKT1cInN0YXJ0UmVzaXppbmcoJGV2ZW50KVwiIGNsYXNzPVwic2hlbGxfX21lbnVDb250ZW50LS10b2dnbGVcIj5cbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ0b2dnbGVJY29uKClcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXNpZGU+XG4gIH1cbn1cblxuPGRpdlxuICBbY2xhc3MuaXMtcmVzaXppbmddPVwiaXNIb2xkaW5nVG9nZ2xlKClcIlxuICBbQHJlZHVjZVdpZHRoXT1cInJlZHVjZUFuaW1hdGlvbigpXCJcbiAgY2xhc3M9XCJzaGVsbF9fY29udGVudCB8IGgtMTAwIHctMTAwIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LWZsZXgtZW5kXCI+XG4gIDxkaXZcbiAgICBbY2xhc3MuZGlzYWJsZS1hbmltYXRpb25dPVwiZGlzYWJsZUFuaW1hdGlvbigpXCJcbiAgICBbY2xhc3MuZGlzYWJsZS10cmFuc2Zvcm0teF09XCJoYXNNb2RhbCgpXCJcbiAgICBjbGFzcz1cInNoZWxsX19jb250ZW50LS1ib2R5IHwgdy0xMDBcIj5cbiAgICA8ZGl2ICNjb250ZW50Q29udGFpbmVyIFtjbGFzc05hbWVdPVwiY29udGVudFBhZGRpbmdTdHlsZXMoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RyYXdlci1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2RyYXdlci1jb250YWluZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2RyYXdlci1jb250YWluZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWMsTUFB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QUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDOytHQS9LVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrdUVBRnhCLENBQUMsWUFBWSxDQUFDLDJIQVFpRCxVQUFVLDZDQy9EdEYscThGQWdGQSwwckZENUNJLGdCQUFnQixvSkFDaEIsZUFBZSxrUEFDZixPQUFPLG1GQUNQLFdBQVcsK0JBQ1gsV0FBVyxvTkFDWCxlQUFlLDhEQUNmLGlCQUFpQixnRUFDakIsdUJBQXVCLDRJQUtiLENBQUMsR0FBRyxzQkFBc0IsRUFBRSxHQUFHLHlCQUF5QixDQUFDOzs0RkFTMUQsd0JBQXdCO2tCQXpCcEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsdUJBQXVCO3FCQUN4QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLEdBQUcsc0JBQXNCLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxRQUUvRDt3QkFDSixTQUFTLEVBQUUsYUFBYTt3QkFDeEIsd0JBQXdCLEVBQUUsWUFBWTt3QkFDdEMscUJBQXFCLEVBQUUsYUFBYTtxQkFDckMsYUFDVSxDQUFDLFlBQVksQ0FBQzt3REErSXpCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICB2aWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhQ2hldnJvbkRvd24sIGZhQ2hldnJvbkxlZnQsIGZhQ2hldnJvblJpZ2h0LCBmYUNoZXZyb25VcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgdHlwZSB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIG1hcCwgc2tpcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiRHJvcGRvd24sIE5nYkRyb3Bkb3duTWVudSwgTmdiRHJvcGRvd25Ub2dnbGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgY29tYmluZUxhdGVzdCwgRU1QVFksIGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJ25neC13ZWJzdG9yYWdlJztcblxuaW1wb3J0IHsgSEVfUkVEVUNFX1dJRFRIX0FOSU1BVElPTiwgSEVfU0lERV9NRU5VX0FOSU1BVElPTiB9IGZyb20gJy4vZHJhd2VyLWNvbnRhaW5lci5hbmltYXRpb25zJztcbmltcG9ydCB7IHNpZGVuYXZTdG9yZSwgaW5pdGlhbFN0YXRlIH0gZnJvbSAnLi9zaWRlbmF2LnN0b3JlJztcbmltcG9ydCB7IElOYXZpZ2F0aW9uTWVudUxpbmssIE5hdmlnYXRpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1tZW51L25hdmlnYXRpb24tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZUJyZWFrcG9pbnQsIFJlc3BvbnNpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzcG9uc2l2ZS5zZXJ2aWNlJztcblxuY29uc3Qgc3RvcmFnZUtleSA9ICdoZS1kcmF3ZXItY29udGFpbmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZHJhd2VyLWNvbnRhaW5lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEZhSWNvbkNvbXBvbmVudCxcbiAgICBOZ0NsYXNzLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nYkRyb3Bkb3duLFxuICAgIE5nYkRyb3Bkb3duTWVudSxcbiAgICBOZ2JEcm9wZG93blRvZ2dsZSxcbiAgICBOYXZpZ2F0aW9uTWVudUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFsuLi5IRV9TSURFX01FTlVfQU5JTUFUSU9OLCAuLi5IRV9SRURVQ0VfV0lEVEhfQU5JTUFUSU9OXSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdob3N0Q2xhc3MoKScsXG4gICAgJ1thdHRyLmRyYXdlci1wb3NpdGlvbl0nOiAncG9zaXRpb24oKScsXG4gICAgJ1thdHRyLmRyYXdlci1zdGF0ZV0nOiAnbWVudVN0YXRlKCknXG4gIH0sXG4gIHByb3ZpZGVyczogW3NpZGVuYXZTdG9yZV1cbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNpZGVuYXZTdG9yZSA9IGluamVjdChzaWRlbmF2U3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNpdmVTZXJ2aWNlID0gaW5qZWN0KFJlc3BvbnNpdmVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFN0b3JhZ2UgPSBpbmplY3QoTG9jYWxTdG9yYWdlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50Q29udGFpbmVyID0gdmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51U3RhdGUgPSBzaWduYWw8J29wZW4nIHwgJ2Nsb3NlJz4oJ2Nsb3NlJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRlZCA9IHNpZ25hbChpbml0aWFsU3RhdGUuZXhwYW5kZWQpO1xuXG4gIC8qKlxuICAgKiBUaGUgYnJlYWtwb2ludCBhdCB3aGljaCB0aGUgZHJhd2VyIHdpbGwgbm8gbG9uZ2VyIGJlIGNvbXBhY3QuXG4gICAqIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHdpZHRoIGluIHBpeGVscy5cbiAgICogSWYgJ25vbmUnIGlzIHByb3ZpZGVkLCB0aGUgZHJhd2VyIHdpbGwgbmV2ZXIgYmUgY29tcGFjdC5cbiAgICogSWYgYSBicmVha3BvaW50IG5hbWUgaXMgcHJvdmlkZWQsIHRoZSBkcmF3ZXIgd2lsbCBiZSBjb21wYWN0IHVudGlsIHRoYXQgYnJlYWtwb2ludC5cbiAgICogQGRlZmF1bHQgJ3RhYmxldCcgLSB0aGUgZHJhd2VyIHdpbGwgYmUgY29tcGFjdCB1bnRpbCB0aGUgdGFibGV0IGJyZWFrcG9pbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcGFjdEJyZWFrcG9pbnQgPSBpbnB1dDxSZXNwb25zaXZlQnJlYWtwb2ludD4oJ3RhYmxldCcpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDwnbGVmdCcgfCAncmlnaHQnPihpbml0aWFsU3RhdGUuc2lkZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtaW4gPSBpbnB1dDxudW1iZXI+KGluaXRpYWxTdGF0ZS5taW5XaWR0aCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB3aWR0aCA9IG1vZGVsPG51bWJlcj4oaW5pdGlhbFN0YXRlLndpZHRoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlcj4oaW5pdGlhbFN0YXRlLm1heFdpZHRoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc2l6YWJsZSA9IGlucHV0KHRydWUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGVudFBhZGRpbmdTdHlsZXMgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtZW51T3ZlcmxhcCA9IGlucHV0KHRydWUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlua3MgPSBpbnB1dDxJTmF2aWdhdGlvbk1lbnVMaW5rW10+KFtdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYXdlckhlYWRlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYXdlck1lbnVIZWFkZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21wYWN0SGVhZGVyQ2xhc3MgPSBpbnB1dDxOZ0NsYXNzWyduZ0NsYXNzJ10+KG51bGwpO1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGlzdGFuY2UgYmV0d2VlbiB0aGUgbWVudSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGNvbnRlbnQgY29udGFpbmVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1pbk1lbnVEaXN0YW5jZSA9IGlucHV0PG51bWJlcj4oaW5pdGlhbFN0YXRlLm1pbk1lbnVEaXN0YW5jZSk7XG4gIC8qKlxuICAgKiBHaXZpbmcgYW4gaWQgdG8gdGhlIG1lbnUgc28gdGhhdCBpdCBjYW4gc3RvcmUgdGhlIHJlc2l6ZWQgcG9zaXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWQgPSBpbnB1dCgnJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wZW5lZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLm1lbnVTdGF0ZSkucGlwZShcbiAgICAgIHNraXAoMSksXG4gICAgICBmaWx0ZXIoc3RhdGUgPT4gc3RhdGUgPT09ICdvcGVuJyksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICApXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9zZWQgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZShcbiAgICB0b09ic2VydmFibGUodGhpcy5tZW51U3RhdGUpLnBpcGUoXG4gICAgICBza2lwKDEpLFxuICAgICAgZmlsdGVyKHN0YXRlID0+IHN0YXRlID09PSAnY2xvc2UnKSxcbiAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgIClcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFDaGV2cm9uVXAgPSBmYUNoZXZyb25VcDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhQ2hldnJvbkRvd24gPSBmYUNoZXZyb25Eb3duO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB2aXNpYmxlID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbdGhpcy5saW5rcygpPy5sZW5ndGggPiAwLCAhIXRoaXMuZHJhd2VySGVhZGVyVGVtcGxhdGUoKSwgISF0aGlzLmRyYXdlck1lbnVIZWFkZXJUZW1wbGF0ZSgpXS5zb21lKEJvb2xlYW4pXG4gICk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBzaG93aW5nIG1vZGFsIHdpdGhpbiB0aGUgY29udGVudCBvZiB0aGUgZHJhd2VyIGNvbnRhaW5lciwgd2hpY2ggYnJlYWtzIHRoZSBsYXlvdXQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzTW9kYWwgPSB0b1NpZ25hbChcbiAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbW9kYWwnKS5sZW5ndGggPiAwKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVBbmltYXRpb24gPSB0b1NpZ25hbCh0b09ic2VydmFibGUodGhpcy5oYXNNb2RhbCkucGlwZShkZWxheSgxMDAwKSkpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpc0NvbXBhY3QgPSB0b1NpZ25hbChcbiAgICB0b09ic2VydmFibGUodGhpcy5jb21wYWN0QnJlYWtwb2ludCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChicmVha3BvaW50ID0+XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZVNlcnZpY2UuaXNBYm92ZUJyZWFrcG9pbnQkKGJyZWFrcG9pbnQpLnBpcGUobWFwKGlzQWJvdmVCcmVha3BvaW50ID0+ICFpc0Fib3ZlQnJlYWtwb2ludCkpXG4gICAgICApXG4gICAgKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbJ2lzLWZsZXgnLCB0aGlzLmlzQ29tcGFjdCgpID8gJ2lzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbicgOiAnJywgdGhpcy5yZXNpemFibGUoKSA/ICdpcy1yZXNpemFibGUnIDogJyddLmpvaW4oJyAnKVxuICApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNIb2xkaW5nVG9nZ2xlID0gdGhpcy5zaWRlbmF2U3RvcmUuaXNSZXNpemluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGVTaWRlbmF2RXZlbnQkID0gdG9PYnNlcnZhYmxlKHRoaXMuc2lkZW5hdlN0b3JlLmlzUmVzaXppbmcpLnBpcGUoXG4gICAgc3dpdGNoTWFwKGxpc3RlbiA9PiAobGlzdGVuID8gKGZyb21FdmVudCh3aW5kb3csICdtb3VzZW1vdmUnKSBhcyBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+KSA6IEVNUFRZKSksXG4gICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKVxuICApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50Q29udGFpbmVyJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRlbnRDb250YWluZXIpLnBpcGUoZmlsdGVyKHggPT4gISF4KSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RDb21wb25lbnRXaWR0aCQgPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZShzdGFydFdpdGgod2luZG93LmlubmVyV2lkdGgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNPdmVybGFwcGluZyQgPSB0b09ic2VydmFibGUodGhpcy5zaWRlbmF2U3RvcmUuaXNNZW51T3ZlcmxhcHBpbmcpO1xuXG4gIC8qKlxuICAgKiB3ZSB1c2UgY29tYmluZUxhdGVzdCBpbnN0ZWFkIG9mIGNvbXB1dGVkIHRvIGF2b2lkIHRoZSBhbmltYXRpb24gZmxpY2tlcmluZyAod2FpdCBmb3IgYWxsIHNvdXJjZXMgdG8gZW1pdClcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByZWR1Y2VBbmltYXRpb24gPSB0b1NpZ25hbChcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmV4cGFuZGVkKSxcbiAgICAgIHRoaXMuX2lzT3ZlcmxhcHBpbmckLFxuICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuaXNDb21wYWN0KSxcbiAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnZpc2libGUpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2V4cGFuZGVkLCBpc092ZXJsYXBwaW5nLCBpc0NvbXBhY3QsIHZpc2libGVdKSA9PlxuICAgICAgICBbZXhwYW5kZWQsICFpc092ZXJsYXBwaW5nLCAhaXNDb21wYWN0LCB2aXNpYmxlXS5ldmVyeShCb29sZWFuKSA/ICdyZWR1Y2VkJyA6ICdmdWxsJ1xuICAgICAgKVxuICAgIClcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudENvbnRhaW5lclBhZGRpbmckID0gdGhpcy5faG9zdENvbXBvbmVudFdpZHRoJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9jb250ZW50Q29udGFpbmVyJC5waXBlKG1hcCh0aGlzLl9nZXRDb250ZW50TGVmdFNpZGVTcGFjZSkpKVxuICApO1xuXG4gIHByaXZhdGUgc3RvcmFnZUtleSA9IGNvbXB1dGVkKCgpID0+IFtzdG9yYWdlS2V5LCB0aGlzLmlkKCldLmZpbHRlcihCb29sZWFuKS5qb2luKCctJykpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldFNpZGUodGhpcy5wb3NpdGlvbik7XG4gICAgdGhpcy5zaWRlbmF2U3RvcmUuc2V0TWluV2lkdGgodGhpcy5taW4pO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldE1heFdpZHRoKHRoaXMubWF4KTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zZXRXaWR0aCh0aGlzLndpZHRoKTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS51cGRhdGVSZXNpemluZyh0aGlzLl91cGRhdGVTaWRlbmF2RXZlbnQkKTtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zZXRDb250ZW50Q29udGFpbmVyU3BhY2luZyh0aGlzLl9jb250ZW50Q29udGFpbmVyUGFkZGluZyQpO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldEV4cGFuZGVkKHRoaXMuZXhwYW5kZWQpO1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnNldE1pbk1lbnVEaXN0YW5jZSh0aGlzLm1pbk1lbnVEaXN0YW5jZSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6YWJsZSgpKSB7XG4gICAgICAgICAgY29uc3QgeyB3aWR0aCB9ID0gSlNPTi5wYXJzZSh0aGlzLmxvY2FsU3RvcmFnZS5yZXRyaWV2ZSh0aGlzLnN0b3JhZ2VLZXkoKSkgfHwgJ3t9Jyk7XG4gICAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMud2lkdGguc2V0KHdpZHRoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHN0YXJ0UmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzaXphYmxlKCkpIHJldHVybjtcbiAgICB0aGlzLnNpZGVuYXZTdG9yZS5zdGFydFJlc2l6aW5nKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZXVwJylcbiAgc3RvcFJlc2l6aW5nKCkge1xuICAgIHRoaXMuc2lkZW5hdlN0b3JlLnN0b3BSZXNpemluZygpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnN0b3JlKHRoaXMuc3RvcmFnZUtleSgpLCBKU09OLnN0cmluZ2lmeSh7IHdpZHRoOiB0aGlzLnNpZGVuYXZTdG9yZS53aWR0aCgpIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVJY29uKCkge1xuICAgIHJldHVybiAodGhpcy5leHBhbmRlZCgpICYmIHRoaXMucG9zaXRpb24oKSA9PT0gJ2xlZnQnKSB8fCAoIXRoaXMuZXhwYW5kZWQoKSAmJiB0aGlzLnBvc2l0aW9uKCkgPT09ICdyaWdodCcpXG4gICAgICA/IGZhQ2hldnJvbkxlZnRcbiAgICAgIDogZmFDaGV2cm9uUmlnaHQ7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcbiAgICBpZiAodGhpcy5zaWRlbmF2U3RvcmUuaGFzTWVudVdpZHRoQ2hhbmdlZCgpICYmIHRoaXMuZXhwYW5kZWQoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5leHBhbmRlZCgpID8gdGhpcy5oaWRlTWVudSgpIDogdGhpcy5zaG93TWVudSgpO1xuICB9XG5cbiAgcHVibGljIGhpZGVNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93TWVudSgpIHtcbiAgICB0aGlzLmV4cGFuZGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGNvbnN0IGRpZE9wZW4gPSBldmVudC50b1N0YXRlICE9PSAnaGlkZGVuJztcbiAgICB0aGlzLm1lbnVTdGF0ZS5zZXQoZGlkT3BlbiA/ICdvcGVuJyA6ICdjbG9zZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29udGVudExlZnRTaWRlU3BhY2UoZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25zdCBwYWRkaW5nID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWxlZnQnKTtcbiAgICBjb25zdCBtYXJnaW4gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbi1sZWZ0Jyk7XG4gICAgcmV0dXJuIHBhcnNlSW50KHBhZGRpbmcsIDEwKSArIHBhcnNlSW50KG1hcmdpbiwgMTApO1xuICB9XG59XG4iLCJAaWYgKHZpc2libGUoKSkge1xuICBAaWYgKGlzQ29tcGFjdCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImNvbXBhY3QtaGVhZGVyXCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImNvbXBhY3RIZWFkZXJDbGFzcygpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWFsaWduLWl0ZW1zLWZsZXgtc3RhcnQgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gdy0xMDBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWdyb3ctMSBpcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbiBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW5cIj5cbiAgICAgICAgICAgIEBpZiAoZHJhd2VySGVhZGVyVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyYXdlckhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGRyYXdlck1lbnVIZWFkZXJUZW1wbGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmIChsaW5rcygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duICNvcHRpb25EZD1cIm5nYkRyb3Bkb3duXCIgY29udGFpbmVyPVwiYm9keVwiIHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wYWN0LWhlYWRlci0tYnRuIGJ1dHRvbiBpcy1zbWFsbCBpcy1uby1zaGFkb3dcIlxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJkcmF3ZXItbWVudVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIE1lbnVcblxuICAgICAgICAgICAgICAgIDxmYS1pY29uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbXBhY3QtaGVhZGVyLS1idG5fX2ljb25cIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwib3B0aW9uRGQuaXNPcGVuKCkgPyBmYUNoZXZyb25VcCA6IGZhQ2hldnJvbkRvd25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBpZD1cImRyYXdlci1tZW51XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQgbmF2aWdhdGlvbi1tZW51LWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICA8aGUtbmF2aWdhdGlvbi1tZW51IChjbG9zZWQpPVwib3B0aW9uRGQuY2xvc2UoKVwiIFtsaW5rc109XCJsaW5rcygpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxhc2lkZT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzaGVsbF9fbWVudUNvbnRlbnQgfCBoLTEwMFwiXG4gICAgICAgIChAc2lkZU1lbnUuZG9uZSk9XCJhbmltYXRpb25Eb25lKCRldmVudClcIlxuICAgICAgICBbQHNpZGVNZW51XT1cImV4cGFuZGVkKCkgPyAnZnVsbCcgOiAnaGlkZGVuJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgc2hlbGxfX21lbnVDb250ZW50LS1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGRyYXdlckhlYWRlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VySGVhZGVyVGVtcGxhdGUoKVwiIC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChsaW5rcygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8aGUtbmF2aWdhdGlvbi1tZW51IFtsaW5rc109XCJsaW5rcygpXCI+XG4gICAgICAgICAgICAgIEBpZiAoZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG91dGVyLWNvbnRlbnQgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhd2VyTWVudUhlYWRlclRlbXBsYXRlKClcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2hlLW5hdmlnYXRpb24tbWVudT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVNZW51KClcIiAobW91c2Vkb3duKT1cInN0YXJ0UmVzaXppbmcoJGV2ZW50KVwiIGNsYXNzPVwic2hlbGxfX21lbnVDb250ZW50LS10b2dnbGVcIj5cbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ0b2dnbGVJY29uKClcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXNpZGU+XG4gIH1cbn1cblxuPGRpdlxuICBbY2xhc3MuaXMtcmVzaXppbmddPVwiaXNIb2xkaW5nVG9nZ2xlKClcIlxuICBbQHJlZHVjZVdpZHRoXT1cInJlZHVjZUFuaW1hdGlvbigpXCJcbiAgY2xhc3M9XCJzaGVsbF9fY29udGVudCB8IGgtMTAwIHctMTAwIGlzLWZsZXggaXMtanVzdGlmeS1jb250ZW50LWZsZXgtZW5kXCI+XG4gIDxkaXZcbiAgICBbY2xhc3MuZGlzYWJsZS1hbmltYXRpb25dPVwiZGlzYWJsZUFuaW1hdGlvbigpXCJcbiAgICBbY2xhc3MuZGlzYWJsZS10cmFuc2Zvcm0teF09XCJoYXNNb2RhbCgpXCJcbiAgICBjbGFzcz1cInNoZWxsX19jb250ZW50LS1ib2R5IHwgdy0xMDBcIj5cbiAgICA8ZGl2ICNjb250ZW50Q29udGFpbmVyIFtjbGFzc05hbWVdPVwiY29udGVudFBhZGRpbmdTdHlsZXMoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RyYXdlci1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -9,7 +9,7 @@ const initialResizeEvent = {
|
|
|
9
9
|
startingWidth: 0,
|
|
10
10
|
newWidth: 0
|
|
11
11
|
};
|
|
12
|
-
const initialState = {
|
|
12
|
+
export const initialState = {
|
|
13
13
|
minWidth: 250,
|
|
14
14
|
maxWidth: 600,
|
|
15
15
|
width: 256,
|
|
@@ -86,4 +86,4 @@ export const sidenavStore = signalStore(withState(initialState), withComputed(({
|
|
|
86
86
|
setSidenavWidthCss(sidenavWidth);
|
|
87
87
|
}
|
|
88
88
|
})));
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vZHJhd2VyLWNvbnRhaW5lci9zaWRlbmF2LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixVQUFVLEVBQUUsS0FBSztJQUNqQixlQUFlLEVBQUUsQ0FBQztJQUNsQixhQUFhLEVBQUUsQ0FBQztJQUNoQixRQUFRLEVBQUUsQ0FBQztDQUNaLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRztJQUNuQixRQUFRLEVBQUUsR0FBRztJQUNiLFFBQVEsRUFBRSxHQUFHO0lBQ2IsS0FBSyxFQUFFLEdBQUc7SUFDVixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxNQUEwQjtJQUNoQyxXQUFXLEVBQUUsa0JBQWtCO0lBQy9CLHVCQUF1QixFQUFFLENBQUM7SUFDMUIsZUFBZSxFQUFFLEVBQUU7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQ3JDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFDdkIsWUFBWSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLFlBQVksRUFBRSxR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c2lnbmFsU3RvcmUsIHdpdGhDb21wdXRlZCwgd2l0aEhvb2tzLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyByeE1ldGhvZCB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IGluaXRpYWxSZXNpemVFdmVudCA9IHtcbiAgaXNSZXNpemluZzogZmFsc2UsXG4gIHN0YXJ0aW5nQ3Vyc29yWDogMCxcbiAgc3RhcnRpbmdXaWR0aDogMCxcbiAgbmV3V2lkdGg6IDBcbn07XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgbWluV2lkdGg6IDI1MCxcbiAgbWF4V2lkdGg6IDYwMCxcbiAgd2lkdGg6IDI1NixcbiAgZXhwYW5kZWQ6IHRydWUsXG4gIHNpZGU6ICdsZWZ0JyBhcyAnbGVmdCcgfCAncmlnaHQnLFxuICByZXNpemVFdmVudDogaW5pdGlhbFJlc2l6ZUV2ZW50LFxuICBjb250ZW50Q29udGFpbmVyU3BhY2luZzogMCxcbiAgbWluTWVudURpc3RhbmNlOiAyMFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZGVuYXZTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICB3aXRoU3RhdGUoaW5pdGlhbFN0YXRlKSxcbiAgd2l0aENvbXB1dGVkKCh7IG1pbldpZHRoLCB3aWR0aCwgbWF4V2lkdGggfSkgPT4gKHtcbiAgICBzaWRlbmF2V2lkdGg6IGNvbXB1dGVkKCgpID0+IE1hdGgubWluKE1hdGgubWF4KHdpZHRoKCksIG1pbldpZHRoKCkpLCBtYXhXaWR0aCgpKSlcbiAgfSkpLFxuICB3aXRoTWV0aG9kcyhzdG9yZSA9PiAoe1xuICAgIHNldEV4cGFuZGVkOiByeE1ldGhvZDxib29sZWFuPihwaXBlKHRhcCgoZXhwYW5kZWQ6IGJvb2xlYW4pID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgZXhwYW5kZWQgfSkpKSksXG4gICAgc2V0U2lkZTogcnhNZXRob2Q8J2xlZnQnIHwgJ3JpZ2h0Jz4ocGlwZSh0YXAoKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgc2lkZSB9KSkpKSxcbiAgICBzZXRNaW5NZW51RGlzdGFuY2U6IHJ4TWV0aG9kPG51bWJlcj4oXG4gICAgICBwaXBlKHRhcCgobWluTWVudURpc3RhbmNlOiBudW1iZXIpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgbWluTWVudURpc3RhbmNlOiBtaW5NZW51RGlzdGFuY2UgfSkpKVxuICAgICksXG4gICAgc2V0TWluV2lkdGg6IHJ4TWV0aG9kPG51bWJlcj4ocGlwZSh0YXAoKG1pbjogbnVtYmVyKSA9PiBwYXRjaFN0YXRlKHN0b3JlLCB7IG1pbldpZHRoOiBtaW4gfSkpKSksXG4gICAgc2V0TWF4V2lkdGg6IHJ4TWV0aG9kPG51bWJlcj4ocGlwZSh0YXAoKG1heDogbnVtYmVyKSA9PiBwYXRjaFN0YXRlKHN0b3JlLCB7IG1heFdpZHRoOiBtYXggfSkpKSksXG4gICAgc2V0V2lkdGg6IHJ4TWV0aG9kPG51bWJlcj4ocGlwZSh0YXAoKHdpZHRoOiBudW1iZXIpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgd2lkdGggfSkpKSksXG4gICAgc2V0U2lkZW5hdldpZHRoQ3NzOiByeE1ldGhvZDxudW1iZXI+KFxuICAgICAgcGlwZShcbiAgICAgICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICAgICAgdGFwKCh3aWR0aDogbnVtYmVyKSA9PiBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGVuYXYtd2lkdGgnLCBgJHt3aWR0aH1weGApKVxuICAgICAgKVxuICAgICksXG4gICAgc2V0Q29udGVudFRyYW5zZm9ybUNzczogcnhNZXRob2Q8e1xuICAgICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgICBwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JztcbiAgICAgIHZhbHVlOiBudW1iZXI7XG4gICAgfT4oXG4gICAgICBwaXBlKFxuICAgICAgICB0YXAoKHsgZXhwYW5kZWQsIHBvc2l0aW9uLCB2YWx1ZSB9KSA9PlxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1jb250ZW50VHJhbnNpdGlvblgnLFxuICAgICAgICAgICAgYCR7ZXhwYW5kZWQgPyAocG9zaXRpb24gPT0gJ2xlZnQnID8gMSA6IC0xKSAqIHZhbHVlIDogMH1weGBcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHNldENvbnRlbnRDb250YWluZXJTcGFjaW5nOiByeE1ldGhvZDxudW1iZXI+KFxuICAgICAgcGlwZSh0YXAoKGNvbnRlbnRDb250YWluZXJTcGFjaW5nOiBudW1iZXIpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgY29udGVudENvbnRhaW5lclNwYWNpbmcgfSkpKVxuICAgICksXG4gICAgc3RhcnRSZXNpemluZzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PlxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICByZXNpemVFdmVudDoge1xuICAgICAgICAgIGlzUmVzaXppbmc6IHRydWUsXG4gICAgICAgICAgc3RhcnRpbmdDdXJzb3JYOiBldmVudC5jbGllbnRYLFxuICAgICAgICAgIHN0YXJ0aW5nV2lkdGg6IHN0b3JlLnNpZGVuYXZXaWR0aCgpLFxuICAgICAgICAgIG5ld1dpZHRoOiBzdG9yZS5zaWRlbmF2V2lkdGgoKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICB1cGRhdGVSZXNpemluZzogcnhNZXRob2Q8TW91c2VFdmVudD4oXG4gICAgICB0YXAoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc2l6ZUV2ZW50ID0gc3RvcmUucmVzaXplRXZlbnQoKTtcbiAgICAgICAgLy8gTm8gbmVlZCB0byBldmVuIGNvbnRpbnVlIGlmIHdlJ3JlIG5vdCByZXNpemluZ1xuICAgICAgICBpZiAoIXJlc2l6ZUV2ZW50LmlzUmVzaXppbmcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyAxLiBDYWxjdWxhdGUgaG93IG11Y2ggbW91c2UgaGFzIG1vdmVkIG9uIHRoZSB4LWF4aXNcbiAgICAgICAgY29uc3QgY3Vyc29yRGVsdGFYID0gZXZlbnQuY2xpZW50WCAtIHJlc2l6ZUV2ZW50LnN0YXJ0aW5nQ3Vyc29yWDtcblxuICAgICAgICAvLyAyLiBDYWxjdWxhdGUgdGhlIG5ldyB3aWR0aCBhY2NvcmRpbmcgdG8gaW5pdGlhbCB3aWR0aCBhbmQgbW91c2UgbW92ZW1lbnRcbiAgICAgICAgY29uc3QgbmV3V2lkdGggPSByZXNpemVFdmVudC5zdGFydGluZ1dpZHRoIC0gKHN0b3JlLnNpZGUoKSA9PT0gJ2xlZnQnID8gLTEgOiAxKSAqIGN1cnNvckRlbHRhWDtcblxuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBzdGF0ZSA9PiAoe1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHJlc2l6ZUV2ZW50OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5yZXNpemVFdmVudCxcbiAgICAgICAgICAgIG5ld1dpZHRoXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3aWR0aDogbmV3V2lkdGhcbiAgICAgICAgfSkpO1xuICAgICAgfSlcbiAgICApLFxuICAgIHN0b3BSZXNpemluZzogKCkgPT5cbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgcmVzaXplRXZlbnQ6IHtcbiAgICAgICAgICAuLi5zdG9yZS5yZXNpemVFdmVudCgpLFxuICAgICAgICAgIGlzUmVzaXppbmc6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH0pKSxcbiAgd2l0aENvbXB1dGVkKCh7IHNpZGVuYXZXaWR0aCwgbWluTWVudURpc3RhbmNlLCByZXNpemVFdmVudCwgY29udGVudENvbnRhaW5lclNwYWNpbmcgfSkgPT4ge1xuICAgIGNvbnN0IGlzTWVudU92ZXJsYXBwaW5nID0gY29tcHV0ZWQoKCkgPT4gc2lkZW5hdldpZHRoKCkgPCBjb250ZW50Q29udGFpbmVyU3BhY2luZygpICogMik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2lkZW5hdldpZHRoOiBzaWRlbmF2V2lkdGgsXG4gICAgICBoYXNNZW51V2lkdGhDaGFuZ2VkOiBjb21wdXRlZCgoKSA9PiByZXNpemVFdmVudCgpLnN0YXJ0aW5nV2lkdGggIT09IHJlc2l6ZUV2ZW50KCkubmV3V2lkdGgpLFxuICAgICAgaXNSZXNpemluZzogY29tcHV0ZWQoKCkgPT4gcmVzaXplRXZlbnQoKS5pc1Jlc2l6aW5nKSxcbiAgICAgIGlzTWVudU92ZXJsYXBwaW5nOiBpc01lbnVPdmVybGFwcGluZyxcbiAgICAgIGNvbnRlbnRDb250YWluZXJUcmFuc2Zvcm06IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHNpZGVuYXZXaWR0aCgpICsgbWluTWVudURpc3RhbmNlKCkgPiBjb250ZW50Q29udGFpbmVyU3BhY2luZygpICYmIGlzTWVudU92ZXJsYXBwaW5nKClcbiAgICAgICAgICA/IHNpZGVuYXZXaWR0aCgpICsgbWluTWVudURpc3RhbmNlKCkgLSBjb250ZW50Q29udGFpbmVyU3BhY2luZygpXG4gICAgICAgICAgOiAwXG4gICAgICApXG4gICAgfTtcbiAgfSksXG4gIHdpdGhIb29rcyhcbiAgICAoeyBzaWRlbmF2V2lkdGgsIHNldFNpZGVuYXZXaWR0aENzcywgc2V0Q29udGVudFRyYW5zZm9ybUNzcywgc2lkZSwgZXhwYW5kZWQsIGNvbnRlbnRDb250YWluZXJUcmFuc2Zvcm0gfSkgPT4gKHtcbiAgICAgIG9uSW5pdDogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50VHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgICBleHBhbmRlZDogZXhwYW5kZWQoKSxcbiAgICAgICAgICBwb3NpdGlvbjogc2lkZSgpLFxuICAgICAgICAgIHZhbHVlOiBjb250ZW50Q29udGFpbmVyVHJhbnNmb3JtKClcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHNldENvbnRlbnRUcmFuc2Zvcm1Dc3MoY29udGVudFRyYW5zZm9ybSk7XG4gICAgICAgIHNldFNpZGVuYXZXaWR0aENzcyhzaWRlbmF2V2lkdGgpO1xuICAgICAgfVxuICAgIH0pXG4gIClcbik7XG4iXX0=
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21tb24vZHJhd2VyLWNvbnRhaW5lci9zaWRlbmF2LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixVQUFVLEVBQUUsS0FBSztJQUNqQixlQUFlLEVBQUUsQ0FBQztJQUNsQixhQUFhLEVBQUUsQ0FBQztJQUNoQixRQUFRLEVBQUUsQ0FBQztDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsUUFBUSxFQUFFLEdBQUc7SUFDYixRQUFRLEVBQUUsR0FBRztJQUNiLEtBQUssRUFBRSxHQUFHO0lBQ1YsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsTUFBMEI7SUFDaEMsV0FBVyxFQUFFLGtCQUFrQjtJQUMvQix1QkFBdUIsRUFBRSxDQUFDO0lBQzFCLGVBQWUsRUFBRSxFQUFFO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUNyQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQ3ZCLFlBQVksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxZ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dGNoU3RhdGUsIHNpZ25hbFN0b3JlLCB3aXRoQ29tcHV0ZWQsIHdpdGhIb29rcywgd2l0aE1ldGhvZHMsIHdpdGhTdGF0ZSB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHsgcnhNZXRob2QgfSBmcm9tICdAbmdyeC9zaWduYWxzL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwLCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBpbml0aWFsUmVzaXplRXZlbnQgPSB7XG4gIGlzUmVzaXppbmc6IGZhbHNlLFxuICBzdGFydGluZ0N1cnNvclg6IDAsXG4gIHN0YXJ0aW5nV2lkdGg6IDAsXG4gIG5ld1dpZHRoOiAwXG59O1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICBtaW5XaWR0aDogMjUwLFxuICBtYXhXaWR0aDogNjAwLFxuICB3aWR0aDogMjU2LFxuICBleHBhbmRlZDogdHJ1ZSxcbiAgc2lkZTogJ2xlZnQnIGFzICdsZWZ0JyB8ICdyaWdodCcsXG4gIHJlc2l6ZUV2ZW50OiBpbml0aWFsUmVzaXplRXZlbnQsXG4gIGNvbnRlbnRDb250YWluZXJTcGFjaW5nOiAwLFxuICBtaW5NZW51RGlzdGFuY2U6IDIwXG59O1xuXG5leHBvcnQgY29uc3Qgc2lkZW5hdlN0b3JlID0gc2lnbmFsU3RvcmUoXG4gIHdpdGhTdGF0ZShpbml0aWFsU3RhdGUpLFxuICB3aXRoQ29tcHV0ZWQoKHsgbWluV2lkdGgsIHdpZHRoLCBtYXhXaWR0aCB9KSA9PiAoe1xuICAgIHNpZGVuYXZXaWR0aDogY29tcHV0ZWQoKCkgPT4gTWF0aC5taW4oTWF0aC5tYXgod2lkdGgoKSwgbWluV2lkdGgoKSksIG1heFdpZHRoKCkpKVxuICB9KSksXG4gIHdpdGhNZXRob2RzKHN0b3JlID0+ICh7XG4gICAgc2V0RXhwYW5kZWQ6IHJ4TWV0aG9kPGJvb2xlYW4+KHBpcGUodGFwKChleHBhbmRlZDogYm9vbGVhbikgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBleHBhbmRlZCB9KSkpKSxcbiAgICBzZXRTaWRlOiByeE1ldGhvZDwnbGVmdCcgfCAncmlnaHQnPihwaXBlKHRhcCgoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JykgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBzaWRlIH0pKSkpLFxuICAgIHNldE1pbk1lbnVEaXN0YW5jZTogcnhNZXRob2Q8bnVtYmVyPihcbiAgICAgIHBpcGUodGFwKChtaW5NZW51RGlzdGFuY2U6IG51bWJlcikgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBtaW5NZW51RGlzdGFuY2U6IG1pbk1lbnVEaXN0YW5jZSB9KSkpXG4gICAgKSxcbiAgICBzZXRNaW5XaWR0aDogcnhNZXRob2Q8bnVtYmVyPihwaXBlKHRhcCgobWluOiBudW1iZXIpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgbWluV2lkdGg6IG1pbiB9KSkpKSxcbiAgICBzZXRNYXhXaWR0aDogcnhNZXRob2Q8bnVtYmVyPihwaXBlKHRhcCgobWF4OiBudW1iZXIpID0+IHBhdGNoU3RhdGUoc3RvcmUsIHsgbWF4V2lkdGg6IG1heCB9KSkpKSxcbiAgICBzZXRXaWR0aDogcnhNZXRob2Q8bnVtYmVyPihwaXBlKHRhcCgod2lkdGg6IG51bWJlcikgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyB3aWR0aCB9KSkpKSxcbiAgICBzZXRTaWRlbmF2V2lkdGhDc3M6IHJ4TWV0aG9kPG51bWJlcj4oXG4gICAgICBwaXBlKFxuICAgICAgICB0aHJvdHRsZVRpbWUoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgICAgICB0YXAoKHdpZHRoOiBudW1iZXIpID0+IGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZW5hdi13aWR0aCcsIGAke3dpZHRofXB4YCkpXG4gICAgICApXG4gICAgKSxcbiAgICBzZXRDb250ZW50VHJhbnNmb3JtQ3NzOiByeE1ldGhvZDx7XG4gICAgICBleHBhbmRlZDogYm9vbGVhbjtcbiAgICAgIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xuICAgICAgdmFsdWU6IG51bWJlcjtcbiAgICB9PihcbiAgICAgIHBpcGUoXG4gICAgICAgIHRhcCgoeyBleHBhbmRlZCwgcG9zaXRpb24sIHZhbHVlIH0pID0+XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWNvbnRlbnRUcmFuc2l0aW9uWCcsXG4gICAgICAgICAgICBgJHtleHBhbmRlZCA/IChwb3NpdGlvbiA9PSAnbGVmdCcgPyAxIDogLTEpICogdmFsdWUgOiAwfXB4YFxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgc2V0Q29udGVudENvbnRhaW5lclNwYWNpbmc6IHJ4TWV0aG9kPG51bWJlcj4oXG4gICAgICBwaXBlKHRhcCgoY29udGVudENvbnRhaW5lclNwYWNpbmc6IG51bWJlcikgPT4gcGF0Y2hTdGF0ZShzdG9yZSwgeyBjb250ZW50Q29udGFpbmVyU3BhY2luZyB9KSkpXG4gICAgKSxcbiAgICBzdGFydFJlc2l6aW5nOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+XG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgIHJlc2l6ZUV2ZW50OiB7XG4gICAgICAgICAgaXNSZXNpemluZzogdHJ1ZSxcbiAgICAgICAgICBzdGFydGluZ0N1cnNvclg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgc3RhcnRpbmdXaWR0aDogc3RvcmUuc2lkZW5hdldpZHRoKCksXG4gICAgICAgICAgbmV3V2lkdGg6IHN0b3JlLnNpZGVuYXZXaWR0aCgpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIHVwZGF0ZVJlc2l6aW5nOiByeE1ldGhvZDxNb3VzZUV2ZW50PihcbiAgICAgIHRhcCgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmVzaXplRXZlbnQgPSBzdG9yZS5yZXNpemVFdmVudCgpO1xuICAgICAgICAvLyBObyBuZWVkIHRvIGV2ZW4gY29udGludWUgaWYgd2UncmUgbm90IHJlc2l6aW5nXG4gICAgICAgIGlmICghcmVzaXplRXZlbnQuaXNSZXNpemluZykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDEuIENhbGN1bGF0ZSBob3cgbXVjaCBtb3VzZSBoYXMgbW92ZWQgb24gdGhlIHgtYXhpc1xuICAgICAgICBjb25zdCBjdXJzb3JEZWx0YVggPSBldmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuc3RhcnRpbmdDdXJzb3JYO1xuXG4gICAgICAgIC8vIDIuIENhbGN1bGF0ZSB0aGUgbmV3IHdpZHRoIGFjY29yZGluZyB0byBpbml0aWFsIHdpZHRoIGFuZCBtb3VzZSBtb3ZlbWVudFxuICAgICAgICBjb25zdCBuZXdXaWR0aCA9IHJlc2l6ZUV2ZW50LnN0YXJ0aW5nV2lkdGggLSAoc3RvcmUuc2lkZSgpID09PSAnbGVmdCcgPyAtMSA6IDEpICogY3Vyc29yRGVsdGFYO1xuXG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHN0YXRlID0+ICh7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgcmVzaXplRXZlbnQ6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnJlc2l6ZUV2ZW50LFxuICAgICAgICAgICAgbmV3V2lkdGhcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdpZHRoOiBuZXdXaWR0aFxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgICksXG4gICAgc3RvcFJlc2l6aW5nOiAoKSA9PlxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICByZXNpemVFdmVudDoge1xuICAgICAgICAgIC4uLnN0b3JlLnJlc2l6ZUV2ZW50KCksXG4gICAgICAgICAgaXNSZXNpemluZzogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfSkpLFxuICB3aXRoQ29tcHV0ZWQoKHsgc2lkZW5hdldpZHRoLCBtaW5NZW51RGlzdGFuY2UsIHJlc2l6ZUV2ZW50LCBjb250ZW50Q29udGFpbmVyU3BhY2luZyB9KSA9PiB7XG4gICAgY29uc3QgaXNNZW51T3ZlcmxhcHBpbmcgPSBjb21wdXRlZCgoKSA9PiBzaWRlbmF2V2lkdGgoKSA8IGNvbnRlbnRDb250YWluZXJTcGFjaW5nKCkgKiAyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzaWRlbmF2V2lkdGg6IHNpZGVuYXZXaWR0aCxcbiAgICAgIGhhc01lbnVXaWR0aENoYW5nZWQ6IGNvbXB1dGVkKCgpID0+IHJlc2l6ZUV2ZW50KCkuc3RhcnRpbmdXaWR0aCAhPT0gcmVzaXplRXZlbnQoKS5uZXdXaWR0aCksXG4gICAgICBpc1Jlc2l6aW5nOiBjb21wdXRlZCgoKSA9PiByZXNpemVFdmVudCgpLmlzUmVzaXppbmcpLFxuICAgICAgaXNNZW51T3ZlcmxhcHBpbmc6IGlzTWVudU92ZXJsYXBwaW5nLFxuICAgICAgY29udGVudENvbnRhaW5lclRyYW5zZm9ybTogY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgc2lkZW5hdldpZHRoKCkgKyBtaW5NZW51RGlzdGFuY2UoKSA+IGNvbnRlbnRDb250YWluZXJTcGFjaW5nKCkgJiYgaXNNZW51T3ZlcmxhcHBpbmcoKVxuICAgICAgICAgID8gc2lkZW5hdldpZHRoKCkgKyBtaW5NZW51RGlzdGFuY2UoKSAtIGNvbnRlbnRDb250YWluZXJTcGFjaW5nKClcbiAgICAgICAgICA6IDBcbiAgICAgIClcbiAgICB9O1xuICB9KSxcbiAgd2l0aEhvb2tzKFxuICAgICh7IHNpZGVuYXZXaWR0aCwgc2V0U2lkZW5hdldpZHRoQ3NzLCBzZXRDb250ZW50VHJhbnNmb3JtQ3NzLCBzaWRlLCBleHBhbmRlZCwgY29udGVudENvbnRhaW5lclRyYW5zZm9ybSB9KSA9PiAoe1xuICAgICAgb25Jbml0OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICAgIGV4cGFuZGVkOiBleHBhbmRlZCgpLFxuICAgICAgICAgIHBvc2l0aW9uOiBzaWRlKCksXG4gICAgICAgICAgdmFsdWU6IGNvbnRlbnRDb250YWluZXJUcmFuc2Zvcm0oKVxuICAgICAgICB9KSk7XG5cbiAgICAgICAgc2V0Q29udGVudFRyYW5zZm9ybUNzcyhjb250ZW50VHJhbnNmb3JtKTtcbiAgICAgICAgc2V0U2lkZW5hdldpZHRoQ3NzKHNpZGVuYXZXaWR0aCk7XG4gICAgICB9XG4gICAgfSlcbiAgKVxuKTtcbiJdfQ==
|