@veloceapps/sdk 11.0.0-0 → 11.0.0-10
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +0 -52
- package/cms/vendor-map.d.ts +11 -25
- package/core/modules/configuration/services/configuration-state.service.d.ts +0 -4
- package/core/modules/configuration/services/configuration.service.d.ts +5 -1
- package/core/modules/configuration/services/runtime-context.service.d.ts +1 -1
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +2 -0
- package/core/types/flow-customization.types.d.ts +0 -12
- package/esm2020/cms/cms.actions.mjs +1 -52
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
- package/esm2020/cms/vendor-map.mjs +5 -11
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +4 -2
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +2 -3
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +29 -10
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +5 -3
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
- package/esm2020/core/services/flow-info.service.mjs +1 -3
- package/esm2020/core/types/flow-customization.types.mjs +1 -1
- package/esm2020/src/flow.component.mjs +4 -5
- package/esm2020/src/flow.module.mjs +5 -10
- package/esm2020/src/pages/product/product.component.mjs +9 -2
- package/esm2020/src/services/flow-dialog.service.mjs +1 -30
- package/fesm2015/veloceapps-sdk-cms.mjs +16 -72
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +32 -16
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +66 -250
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +8 -74
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +34 -16
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +65 -249
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/flow.module.d.ts +2 -3
- package/src/services/flow-dialog.service.d.ts +0 -4
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +0 -129
- package/esm2020/src/components/doc-gen/doc-gen.module.mjs +0 -19
- package/esm2020/src/services/doc-gen.service.mjs +0 -34
- package/src/components/doc-gen/doc-gen.component.d.ts +0 -26
- package/src/components/doc-gen/doc-gen.module.d.ts +0 -9
- package/src/services/doc-gen.service.d.ts +0 -13
package/cms/cms.actions.d.ts
CHANGED
@@ -25,8 +25,6 @@ export declare namespace FlowAction {
|
|
25
25
|
const NavigateToCatalogAction: () => IntegrationAction;
|
26
26
|
const NavigateToShoppingCartAction: () => IntegrationAction;
|
27
27
|
const ApplyProductConfigurationAction: () => IntegrationAction;
|
28
|
-
const OpenDocGenAction: () => IntegrationAction;
|
29
|
-
const CloseDocGenAction: () => IntegrationAction;
|
30
28
|
const RemoteApplyAction: () => IntegrationAction;
|
31
29
|
const RemoteCancelAction: () => IntegrationAction;
|
32
30
|
const SwitchObjectAction: (payload: {
|
@@ -43,56 +41,6 @@ export declare namespace FlowAction {
|
|
43
41
|
}) => IntegrationAction;
|
44
42
|
const OpenDialog: (dialog: string) => IntegrationAction;
|
45
43
|
}
|
46
|
-
/**
|
47
|
-
* @deprecated
|
48
|
-
* Use FlowAction namespace instead
|
49
|
-
*/
|
50
|
-
export declare const ConfigureProductAction: ({ lineItemId, productId, }: {
|
51
|
-
lineItemId?: string | undefined;
|
52
|
-
productId?: string | undefined;
|
53
|
-
}) => IntegrationAction;
|
54
|
-
/**
|
55
|
-
* @deprecated
|
56
|
-
* Use FlowAction namespace instead
|
57
|
-
*/
|
58
|
-
export declare const NavigateBackAction: () => IntegrationAction;
|
59
|
-
/**
|
60
|
-
* @deprecated
|
61
|
-
* Use FlowAction namespace instead
|
62
|
-
*/
|
63
|
-
export declare const NavigateToCatalogAction: () => IntegrationAction;
|
64
|
-
/**
|
65
|
-
* @deprecated
|
66
|
-
* Use FlowAction namespace instead
|
67
|
-
*/
|
68
|
-
export declare const ApplyProductConfigurationAction: () => IntegrationAction;
|
69
|
-
/**
|
70
|
-
* @deprecated
|
71
|
-
* Use FlowAction namespace instead
|
72
|
-
*/
|
73
|
-
export declare const OpenDocGenAction: () => IntegrationAction;
|
74
|
-
/**
|
75
|
-
* @deprecated
|
76
|
-
* Use FlowAction namespace instead
|
77
|
-
*/
|
78
|
-
export declare const CloseDocGenAction: () => IntegrationAction;
|
79
|
-
/**
|
80
|
-
* @deprecated
|
81
|
-
* Use FlowAction namespace instead
|
82
|
-
*/
|
83
|
-
export declare const RemoteApplyAction: () => IntegrationAction;
|
84
|
-
/**
|
85
|
-
* @deprecated
|
86
|
-
* Use FlowAction namespace instead
|
87
|
-
*/
|
88
|
-
export declare const RemoteCancelAction: () => IntegrationAction;
|
89
|
-
/**
|
90
|
-
* @deprecated
|
91
|
-
* Use FlowAction namespace instead
|
92
|
-
*/
|
93
|
-
export declare const SwitchObjectAction: (payload: {
|
94
|
-
id: string;
|
95
|
-
}) => IntegrationAction;
|
96
44
|
export declare namespace CmsAction {
|
97
45
|
const GO_TO_PAGE = "[CMS]_GO_TO_PAGE";
|
98
46
|
const UPDATE_CUSTOMIZATION = "[CMS]_UPDATE_CUSTOMIZATION";
|
package/cms/vendor-map.d.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
import { DataSource } from '@angular/cdk/collections';
|
2
2
|
import * as angularCore from '@angular/core';
|
3
3
|
import * as angularForms from '@angular/forms';
|
4
|
-
import { CatalogApiService, ConfigurationSettingsApiService, ContractedPriceApiService, DeltaApiService, DocumentAttachmentApiService,
|
4
|
+
import { CatalogApiService, ConfigurationSettingsApiService, ContractedPriceApiService, DeltaApiService, DocumentAttachmentApiService, GuidedSellingApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService, ShoppingCartSettingsApiService } from '@veloceapps/api';
|
5
5
|
import { ToastService, ToastType } from '@veloceapps/components';
|
6
|
-
import { ConfigurationContextMode, Operator, Predicate, parseJsonSafely, parseJwt } from '@veloceapps/core';
|
6
|
+
import { ConfigurationContextMode, Operator, Predicate, TokenInfoService, parseJsonSafely, parseJwt } from '@veloceapps/core';
|
7
7
|
import { ActionCodePipe, ConfigurationService, ConfigurationStateService, ContextService, DatePipe, FlowConfigurationService, FlowStateConfigurationService, FlowStateService, IntegrationState, LineItemWorker, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeSettingsService } from '@veloceapps/sdk/core';
|
8
8
|
import lodash from 'lodash';
|
9
9
|
import * as rxjs from 'rxjs';
|
@@ -12,14 +12,6 @@ import * as cmsActions from './cms.actions';
|
|
12
12
|
import { ResourcesService } from './services/resources.service';
|
13
13
|
import { TemplatesService } from './services/templates.service';
|
14
14
|
export declare const vendorMap: {
|
15
|
-
'@angular/core': typeof angularCore;
|
16
|
-
'@angular/forms': typeof angularForms;
|
17
|
-
'@angular/cdk/collections': {
|
18
|
-
DataSource: typeof DataSource;
|
19
|
-
};
|
20
|
-
rxjs: typeof rxjs;
|
21
|
-
'rxjs/operators': typeof rxjsOperators;
|
22
|
-
lodash: lodash.LoDashStatic;
|
23
15
|
'@veloceapps/core': {
|
24
16
|
isDefined: <T>(value: T) => value is Exclude<T, null | undefined>;
|
25
17
|
Operator: typeof Operator;
|
@@ -27,6 +19,7 @@ export declare const vendorMap: {
|
|
27
19
|
parseJsonSafely: typeof parseJsonSafely;
|
28
20
|
ConfigurationContextMode: typeof ConfigurationContextMode;
|
29
21
|
parseJwt: typeof parseJwt;
|
22
|
+
TokenInfoService: typeof TokenInfoService;
|
30
23
|
};
|
31
24
|
'@veloceapps/components': {
|
32
25
|
ToastService: typeof ToastService;
|
@@ -35,7 +28,6 @@ export declare const vendorMap: {
|
|
35
28
|
'@veloceapps/api': {
|
36
29
|
SalesforceApiService: typeof SalesforceApiService;
|
37
30
|
QuoteApiService: typeof QuoteApiService;
|
38
|
-
DocumentTemplatesApiService: typeof DocumentTemplatesApiService;
|
39
31
|
DocumentAttachmentApiService: typeof DocumentAttachmentApiService;
|
40
32
|
RampApiService: typeof RampApiService;
|
41
33
|
CatalogApiService: typeof CatalogApiService;
|
@@ -93,20 +85,6 @@ export declare const vendorMap: {
|
|
93
85
|
ResourcesService: typeof ResourcesService;
|
94
86
|
cmsInject: <T_2 = unknown>(token: string) => T_2;
|
95
87
|
FlowAction: typeof cmsActions.FlowAction;
|
96
|
-
ConfigureProductAction: ({ lineItemId, productId, }: {
|
97
|
-
lineItemId?: string | undefined;
|
98
|
-
productId?: string | undefined;
|
99
|
-
}) => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
100
|
-
NavigateBackAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
101
|
-
NavigateToCatalogAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
102
|
-
ApplyProductConfigurationAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
103
|
-
OpenDocGenAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
104
|
-
CloseDocGenAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
105
|
-
RemoteApplyAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
106
|
-
RemoteCancelAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
107
|
-
SwitchObjectAction: (payload: {
|
108
|
-
id: string;
|
109
|
-
}) => import("@veloceapps/sdk/core").IntegrationAction<any>;
|
110
88
|
CmsAction: typeof cmsActions.CmsAction;
|
111
89
|
DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
|
112
90
|
UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloceapps/core").UIDefinitionMetadata>;
|
@@ -114,5 +92,13 @@ export declare const vendorMap: {
|
|
114
92
|
SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata | undefined>;
|
115
93
|
ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementConfig>;
|
116
94
|
};
|
95
|
+
'@angular/core': typeof angularCore;
|
96
|
+
'@angular/forms': typeof angularForms;
|
97
|
+
'@angular/cdk/collections': {
|
98
|
+
DataSource: typeof DataSource;
|
99
|
+
};
|
100
|
+
rxjs: typeof rxjs;
|
101
|
+
'rxjs/operators': typeof rxjsOperators;
|
102
|
+
lodash: lodash.LoDashStatic;
|
117
103
|
};
|
118
104
|
export type VendorMap = typeof vendorMap;
|
@@ -40,10 +40,6 @@ export declare class ConfigurationStateService {
|
|
40
40
|
select$<Response = unknown>(selectorName: string, inputData?: unknown): Observable<FlowStateSelectorResponse<Response>>;
|
41
41
|
subscribe$<Response = unknown>(selectorName: string, inputData?: unknown, options?: FlowStateSubscriptionOptions): Observable<FlowStateSelectorResponse<Response>>;
|
42
42
|
saveConfiguration(flow?: boolean): Observable<SaveQuoteResponse>;
|
43
|
-
/**
|
44
|
-
* @deprecated Will be removed in @veloceapps/sdk@9
|
45
|
-
*/
|
46
|
-
saveConfiguration(quoteId?: string, flow?: boolean): Observable<SaveQuoteResponse>;
|
47
43
|
cancelConfiguration(): Observable<void>;
|
48
44
|
private get isStatefulConfiguration();
|
49
45
|
private initStateful$;
|
@@ -5,6 +5,7 @@ import { MessageService } from 'primeng/api';
|
|
5
5
|
import { DialogService } from 'primeng/dynamicdialog';
|
6
6
|
import { Observable } from 'rxjs';
|
7
7
|
import { ContextService } from '../../../services/context.service';
|
8
|
+
import { FlowInfoService } from '../../../services/flow-info.service';
|
8
9
|
import { QuoteDraftService } from '../../../services/quote-draft.service';
|
9
10
|
import { RuntimeSettingsService } from '../../../services/runtime-settings.service';
|
10
11
|
import { RuntimeContext } from '../../../types';
|
@@ -19,6 +20,7 @@ export declare class ConfigurationService {
|
|
19
20
|
private messageService;
|
20
21
|
private dialogService;
|
21
22
|
private runtimeSettings;
|
23
|
+
private flowInfoService;
|
22
24
|
private mode;
|
23
25
|
private configurableRamp;
|
24
26
|
private configurationState;
|
@@ -26,7 +28,7 @@ export declare class ConfigurationService {
|
|
26
28
|
private isLoadingSubj$;
|
27
29
|
isLoading$: Observable<boolean>;
|
28
30
|
hasUnsavedChanges: boolean;
|
29
|
-
constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService, runtimeSettings: RuntimeSettingsService);
|
31
|
+
constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService, runtimeSettings: RuntimeSettingsService, flowInfoService: FlowInfoService);
|
30
32
|
reset(): void;
|
31
33
|
patch$(lineItem: LineItem, options?: PatchLineItemOptions): Observable<LineItem>;
|
32
34
|
patch(lineItem: LineItem, options?: PatchLineItemOptions): void;
|
@@ -55,6 +57,8 @@ export declare class ConfigurationService {
|
|
55
57
|
getAsset(): LineItem | undefined;
|
56
58
|
private getUIDefinitionProperties;
|
57
59
|
private showInactiveProductsConfirmation;
|
60
|
+
private extendedConfigureLineItem$;
|
61
|
+
private extendConfigurationRequest;
|
58
62
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService, never>;
|
59
63
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationService>;
|
60
64
|
}
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
5
5
|
export declare class RuntimeContextService {
|
6
6
|
private configurationApiService;
|
7
7
|
constructor(configurationApiService: ConfigurationApiService);
|
8
|
-
getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext>;
|
8
|
+
getRuntimeContext(productId: string, offeringId?: string, defaultUIDefinitionId?: string, requiredUIDefinitionId?: string): Observable<RuntimeContext>;
|
9
9
|
private getUIDefinitionContainer;
|
10
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<RuntimeContextService, never>;
|
11
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<RuntimeContextService>;
|
@@ -4,18 +4,6 @@ import { Observable } from 'rxjs';
|
|
4
4
|
export declare const FLOW_CUSTOMIZATION: InjectionToken<FlowCustomization>;
|
5
5
|
export interface FlowCustomization {
|
6
6
|
getUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;
|
7
|
-
/**
|
8
|
-
* @deprecated Use `getTemplateComponents` instead
|
9
|
-
*/
|
10
|
-
getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
|
11
|
-
/**
|
12
|
-
* @deprecated Use `getTemplateComponents` instead
|
13
|
-
*/
|
14
|
-
getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
|
15
|
-
/**
|
16
|
-
* @deprecated Use `getTemplateComponents` instead
|
17
|
-
*/
|
18
|
-
getAssetsComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
|
19
7
|
getTemplates?(): Observable<UITemplate[]>;
|
20
8
|
getTemplateComponents?(templateName: string): Observable<TemplateComponentWithAttachments[] | null>;
|
21
9
|
getTemplateConfigurationProcessors?(templateName: string): Observable<ConfigurationProcessor[] | null>;
|
@@ -35,12 +35,6 @@ export var FlowAction;
|
|
35
35
|
FlowAction.ApplyProductConfigurationAction = () => ({
|
36
36
|
type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,
|
37
37
|
});
|
38
|
-
FlowAction.OpenDocGenAction = () => ({
|
39
|
-
type: FlowAction.FLOW_OPEN_DOC_GEN,
|
40
|
-
});
|
41
|
-
FlowAction.CloseDocGenAction = () => ({
|
42
|
-
type: FlowAction.FLOW_CLOSE_DOC_GEN,
|
43
|
-
});
|
44
38
|
FlowAction.RemoteApplyAction = () => ({
|
45
39
|
type: FlowAction.REMOTE_APPLY,
|
46
40
|
});
|
@@ -68,51 +62,6 @@ export var FlowAction;
|
|
68
62
|
payload: { dialog },
|
69
63
|
});
|
70
64
|
})(FlowAction || (FlowAction = {}));
|
71
|
-
/**
|
72
|
-
* @deprecated
|
73
|
-
* Use FlowAction namespace instead
|
74
|
-
*/
|
75
|
-
export const ConfigureProductAction = FlowAction.ConfigureProductAction;
|
76
|
-
/**
|
77
|
-
* @deprecated
|
78
|
-
* Use FlowAction namespace instead
|
79
|
-
*/
|
80
|
-
export const NavigateBackAction = FlowAction.NavigateBackAction;
|
81
|
-
/**
|
82
|
-
* @deprecated
|
83
|
-
* Use FlowAction namespace instead
|
84
|
-
*/
|
85
|
-
export const NavigateToCatalogAction = FlowAction.NavigateToCatalogAction;
|
86
|
-
/**
|
87
|
-
* @deprecated
|
88
|
-
* Use FlowAction namespace instead
|
89
|
-
*/
|
90
|
-
export const ApplyProductConfigurationAction = FlowAction.ApplyProductConfigurationAction;
|
91
|
-
/**
|
92
|
-
* @deprecated
|
93
|
-
* Use FlowAction namespace instead
|
94
|
-
*/
|
95
|
-
export const OpenDocGenAction = FlowAction.OpenDocGenAction;
|
96
|
-
/**
|
97
|
-
* @deprecated
|
98
|
-
* Use FlowAction namespace instead
|
99
|
-
*/
|
100
|
-
export const CloseDocGenAction = FlowAction.CloseDocGenAction;
|
101
|
-
/**
|
102
|
-
* @deprecated
|
103
|
-
* Use FlowAction namespace instead
|
104
|
-
*/
|
105
|
-
export const RemoteApplyAction = FlowAction.RemoteApplyAction;
|
106
|
-
/**
|
107
|
-
* @deprecated
|
108
|
-
* Use FlowAction namespace instead
|
109
|
-
*/
|
110
|
-
export const RemoteCancelAction = FlowAction.RemoteCancelAction;
|
111
|
-
/**
|
112
|
-
* @deprecated
|
113
|
-
* Use FlowAction namespace instead
|
114
|
-
*/
|
115
|
-
export const SwitchObjectAction = FlowAction.SwitchObjectAction;
|
116
65
|
export var CmsAction;
|
117
66
|
(function (CmsAction) {
|
118
67
|
CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
|
@@ -177,4 +126,4 @@ export var CmsAction;
|
|
177
126
|
type: CmsAction.HIDE_ALL_OVERLAYS,
|
178
127
|
});
|
179
128
|
})(CmsAction || (CmsAction = {}));
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0F5RjFCO0FBekZELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtLQUNuQyxDQUFDLENBQUM7SUFFVSw2QkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtLQUNwQyxDQUFDLENBQUM7SUFFVSwyQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFB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LENBQUM7SUFFSDs7Ozs7T0FLRztJQUNVLHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBRSxVQUFBLFlBQVk7UUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFO0tBQ2xCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSx5QkFBZSxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxVQUFBLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDLEVBcEVnQixTQUFTLEtBQVQsU0FBUyxRQW9FekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBDdXN0b21pemF0aW9uQ2hhbmdlcyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25BY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmxvd0FjdGlvbiB7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0NPTkZJR1VSRV9QUk9EVUNUID0gJ1tGTE9XXV9DT05GSUdVUkVfUFJPRFVDVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX0JBQ0sgPSAnW0ZMT1ddX05BVklHQVRFX0JBQ0snO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UTyA9ICdbRkxPV11fTkFWSUdBVEVfVE8nO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UT19DQVRBTE9HID0gJ1tGTE9XXV9OQVZJR0FURV9UT19DQVRBTE9HJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCA9ICdbRkxPV11fTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdbRkxPV11fQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfT1BFTl9ET0NfR0VOID0gJ1tGTE9XXV9PUEVOX0RPQ19HRU4nO1xuICBleHBvcnQgY29uc3QgRkxPV19DTE9TRV9ET0NfR0VOID0gJ1tGTE9XXV9DTE9TRV9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfU1dJVENIX09CSkVDVCA9ICdbRkxPV11fU1dJVENIX09CSkVDVCc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQVBQTFkgPSAnW0ZMT1ddX1JFTU9URV9BUFBMWSc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQ0FOQ0VMID0gJ1tGTE9XXV9SRU1PVEVfQ0FOQ0VMJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX09QRU5fR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgU1VCTUlUX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9TVUJNSVRfR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgQ0xPU0VfR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX0NMT1NFX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fRElBTE9HID0gJ1tGTE9XXV9PUEVOX0RJQUxPRyc7XG5cbiAgZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICAgIGxpbmVJdGVtSWQsXG4gICAgcHJvZHVjdElkLFxuICB9OiB7XG4gICAgbGluZUl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DT05GSUdVUkVfUFJPRFVDVCxcbiAgICBwYXlsb2FkOiB7IGxpbmVJdGVtSWQsIHByb2R1Y3RJZCB9LFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQWN0aW9uID0gKHBhdGg6IHN0cmluZywgcHJvZHVjdElkPzogc3RyaW5nLCBsaW5lSXRlbUlkPzogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgcGF5bG9hZDogeyBwYXRoLCBwcm9kdWN0SWQsIGxpbmVJdGVtSWQgfSxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBBcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE9wZW5Eb2NHZW5BY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfT1BFTl9ET0NfR0VOLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQ2xvc2VEb2NHZW5BY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ0xPU0VfRE9DX0dFTixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFJlbW90ZUFwcGx5QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSAocGF5bG9hZDogeyBpZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgIHBheWxvYWQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBPcGVuR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IGd1aWRlZFNlbGxpbmdJZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQ2xvc2VHdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ/OiB7IGtlZXBTdGF0ZT86IGJvb2xlYW4gfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgU3VibWl0R3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgT3BlbkRpYWxvZyA9IChkaWFsb2c6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICBwYXlsb2FkOiB7IGRpYWxvZyB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIEZsb3dBY3Rpb24gbmFtZXNwYWNlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSBGbG93QWN0aW9uLkNvbmZpZ3VyZVByb2R1Y3RBY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0ZUJhY2tBY3Rpb24gPSBGbG93QWN0aW9uLk5hdmlnYXRlQmFja0FjdGlvbjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIEZsb3dBY3Rpb24gbmFtZXNwYWNlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gRmxvd0FjdGlvbi5OYXZpZ2F0ZVRvQ2F0YWxvZ0FjdGlvbjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIEZsb3dBY3Rpb24gbmFtZXNwYWNlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEFwcGx5UHJvZHVjdENvbmZpZ3VyYXRpb25BY3Rpb24gPSBGbG93QWN0aW9uLkFwcGx5UHJvZHVjdENvbmZpZ3VyYXRpb25BY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBPcGVuRG9jR2VuQWN0aW9uID0gRmxvd0FjdGlvbi5PcGVuRG9jR2VuQWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQ2xvc2VEb2NHZW5BY3Rpb24gPSBGbG93QWN0aW9uLkNsb3NlRG9jR2VuQWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSBGbG93QWN0aW9uLlJlbW90ZUFwcGx5QWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgUmVtb3RlQ2FuY2VsQWN0aW9uID0gRmxvd0FjdGlvbi5SZW1vdGVDYW5jZWxBY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSBGbG93QWN0aW9uLlN3aXRjaE9iamVjdEFjdGlvbjtcblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHsgY2hhbmdlcyB9LFxuICB9KTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBTSE9XX09WRVJMQVksXG4gICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEhJREVfT1ZFUkxBWSxcbiAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBISURFX0FMTF9PVkVSTEFZUyxcbiAgfSk7XG59XG4iXX0=
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0FpRjFCO0FBakZELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtLQUNuQyxDQUFDLENBQUM7SUFFVSw2QkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtLQUNwQyxDQUFDLENBQUM7SUFFVSwyQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFB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Ozs7O09BS0c7SUFDVSxxQkFBVyxHQUFHLENBQUMsSUFBWSxFQUFxQixFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLEVBQUUsVUFBQSxZQUFZO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNsQixDQUFDLENBQUM7SUFFSDs7Ozs7T0FLRztJQUNVLHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBRSxVQUFBLFlBQVk7UUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFO0tBQ2xCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSx5QkFBZSxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxVQUFBLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDLEVBcEVnQixTQUFTLEtBQVQsU0FBUyxRQW9FekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBDdXN0b21pemF0aW9uQ2hhbmdlcyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25BY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmxvd0FjdGlvbiB7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0NPTkZJR1VSRV9QUk9EVUNUID0gJ1tGTE9XXV9DT05GSUdVUkVfUFJPRFVDVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX0JBQ0sgPSAnW0ZMT1ddX05BVklHQVRFX0JBQ0snO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UTyA9ICdbRkxPV11fTkFWSUdBVEVfVE8nO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UT19DQVRBTE9HID0gJ1tGTE9XXV9OQVZJR0FURV9UT19DQVRBTE9HJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCA9ICdbRkxPV11fTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdbRkxPV11fQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfT1BFTl9ET0NfR0VOID0gJ1tGTE9XXV9PUEVOX0RPQ19HRU4nO1xuICBleHBvcnQgY29uc3QgRkxPV19DTE9TRV9ET0NfR0VOID0gJ1tGTE9XXV9DTE9TRV9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfU1dJVENIX09CSkVDVCA9ICdbRkxPV11fU1dJVENIX09CSkVDVCc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQVBQTFkgPSAnW0ZMT1ddX1JFTU9URV9BUFBMWSc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQ0FOQ0VMID0gJ1tGTE9XXV9SRU1PVEVfQ0FOQ0VMJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX09QRU5fR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgU1VCTUlUX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9TVUJNSVRfR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgQ0xPU0VfR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX0NMT1NFX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fRElBTE9HID0gJ1tGTE9XXV9PUEVOX0RJQUxPRyc7XG5cbiAgZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICAgIGxpbmVJdGVtSWQsXG4gICAgcHJvZHVjdElkLFxuICB9OiB7XG4gICAgbGluZUl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DT05GSUdVUkVfUFJPRFVDVCxcbiAgICBwYXlsb2FkOiB7IGxpbmVJdGVtSWQsIHByb2R1Y3RJZCB9LFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQWN0aW9uID0gKHBhdGg6IHN0cmluZywgcHJvZHVjdElkPzogc3RyaW5nLCBsaW5lSXRlbUlkPzogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgcGF5bG9hZDogeyBwYXRoLCBwcm9kdWN0SWQsIGxpbmVJdGVtSWQgfSxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBBcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFJlbW90ZUFwcGx5QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSAocGF5bG9hZDogeyBpZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgIHBheWxvYWQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBPcGVuR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IGd1aWRlZFNlbGxpbmdJZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQ2xvc2VHdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ/OiB7IGtlZXBTdGF0ZT86IGJvb2xlYW4gfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgU3VibWl0R3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgT3BlbkRpYWxvZyA9IChkaWFsb2c6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICBwYXlsb2FkOiB7IGRpYWxvZyB9LFxuICB9KTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHsgY2hhbmdlcyB9LFxuICB9KTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBTSE9XX09WRVJMQVksXG4gICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEhJREVfT1ZFUkxBWSxcbiAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBISURFX0FMTF9PVkVSTEFZUyxcbiAgfSk7XG59XG4iXX0=
|