@smartbit4all/ng-client 3.3.200 → 3.3.202
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/esm2020/lib/session/api/api/session.service.mjs +1 -1
- package/esm2020/lib/session/api/encoder.mjs +1 -1
- package/esm2020/lib/session/api/model/accountInfo.mjs +1 -1
- package/esm2020/lib/session/api/model/apiError.mjs +1 -1
- package/esm2020/lib/session/api/model/authenticationProviderData.mjs +1 -1
- package/esm2020/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
- package/esm2020/lib/session/api/model/models.mjs +1 -1
- package/esm2020/lib/session/api/model/refreshSessionRequest.mjs +1 -1
- package/esm2020/lib/session/api/model/session.mjs +1 -1
- package/esm2020/lib/session/api/model/userActivityLog.mjs +1 -1
- package/esm2020/lib/session/api/param.mjs +1 -1
- package/esm2020/lib/session/api/variables.mjs +1 -1
- package/esm2020/lib/smart-client/smart-component-api-client.mjs +18 -8
- package/esm2020/lib/smart-component-layout/api/api/api.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/api/default.service.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/api.module.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/configuration.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/encoder.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/index.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/componentType.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/models.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/param.mjs +1 -1
- package/esm2020/lib/smart-component-layout/api/variables.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
- package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/configuration.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/encoder.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/param.mjs +1 -1
- package/esm2020/lib/smart-filter-editor/api/variables.mjs +1 -1
- package/esm2020/lib/smart-form/api/api/api.mjs +1 -1
- package/esm2020/lib/smart-form/api/api/default.service.mjs +1 -1
- package/esm2020/lib/smart-form/api/api.module.mjs +1 -1
- package/esm2020/lib/smart-form/api/configuration.mjs +1 -1
- package/esm2020/lib/smart-form/api/encoder.mjs +1 -1
- package/esm2020/lib/smart-form/api/index.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/models.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/propertyMapping.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
- package/esm2020/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
- package/esm2020/lib/smart-form/api/param.mjs +1 -1
- package/esm2020/lib/smart-form/api/variables.mjs +1 -1
- package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +20 -12
- package/esm2020/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2020/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
- package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
- package/esm2020/lib/smart-tree/tree-api/configuration.mjs +1 -1
- package/esm2020/lib/smart-tree/tree-api/encoder.mjs +1 -1
- package/esm2020/lib/smart-tree/tree-api/param.mjs +1 -1
- package/esm2020/lib/smart-tree/tree-api/variables.mjs +1 -1
- package/esm2020/lib/view-context/api/api/api.mjs +1 -1
- package/esm2020/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2020/lib/view-context/api/api.module.mjs +1 -1
- package/esm2020/lib/view-context/api/configuration.mjs +1 -1
- package/esm2020/lib/view-context/api/encoder.mjs +1 -1
- package/esm2020/lib/view-context/api/index.mjs +1 -1
- package/esm2020/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2020/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2020/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2020/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2020/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2020/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2020/lib/view-context/api/model/link.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/models.mjs +1 -1
- package/esm2020/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2020/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2020/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/smartLinkData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2020/lib/view-context/api/model/style.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2020/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2020/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2020/lib/view-context/api/model/view.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewData.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2020/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2020/lib/view-context/api/param.mjs +1 -1
- package/esm2020/lib/view-context/api/variables.mjs +1 -1
- package/esm2020/lib/view-context/value-api/model/genericValue.mjs +1 -1
- package/esm2020/lib/view-context/value-api/model/models.mjs +1 -1
- package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
- package/fesm2015/smartbit4all-ng-client.mjs +41 -20
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +36 -18
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-client/smart-component-api-client.d.ts +1 -0
- package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +6 -0
- package/lib/smart-form/services/smartform.layout-definition.service.d.ts +1 -0
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.3.202.tgz +0 -0
- package/src/lib/session/api/README.md +226 -226
- package/src/lib/smart-component-layout/api/README.md +226 -226
- package/src/lib/smart-filter-editor/api/README.md +226 -226
- package/src/lib/smart-form/api/README.md +226 -226
- package/src/lib/smart-tree/tree-api/README.md +226 -226
- package/src/lib/view-context/api/README.md +226 -226
- package/smartbit4all-ng-client-3.3.200.tgz +0 -0
|
@@ -226,6 +226,13 @@ export class SmartformLayoutDefinitionService {
|
|
|
226
226
|
return widget;
|
|
227
227
|
}
|
|
228
228
|
createRichText(layoutDefinition) {
|
|
229
|
+
let quillModules;
|
|
230
|
+
if (layoutDefinition.properties && layoutDefinition.properties['quillModules']) {
|
|
231
|
+
quillModules = layoutDefinition.properties['quillModules'];
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
quillModules = SmartformLayoutDefinitionService.DEFAULT_QUILL_MODULES;
|
|
235
|
+
}
|
|
229
236
|
let widget = {
|
|
230
237
|
type: SmartFormWidgetType.RICH_TEXT,
|
|
231
238
|
key: layoutDefinition.key,
|
|
@@ -237,17 +244,7 @@ export class SmartformLayoutDefinitionService {
|
|
|
237
244
|
cssLabelClass: layoutDefinition.cssLabelClass,
|
|
238
245
|
style: layoutDefinition.style,
|
|
239
246
|
labelStyle: layoutDefinition.labelStyle,
|
|
240
|
-
quillModules
|
|
241
|
-
toolbar: {
|
|
242
|
-
container: [
|
|
243
|
-
['bold', 'italic', 'underline', 'strike', 'link'],
|
|
244
|
-
['code-block'],
|
|
245
|
-
[{ header: 1 }, { header: 2 }],
|
|
246
|
-
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
247
|
-
['clean'],
|
|
248
|
-
],
|
|
249
|
-
},
|
|
250
|
-
},
|
|
247
|
+
quillModules,
|
|
251
248
|
maxLength: layoutDefinition.maxLength,
|
|
252
249
|
showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,
|
|
253
250
|
};
|
|
@@ -482,6 +479,17 @@ export class SmartformLayoutDefinitionService {
|
|
|
482
479
|
return widget;
|
|
483
480
|
}
|
|
484
481
|
}
|
|
482
|
+
SmartformLayoutDefinitionService.DEFAULT_QUILL_MODULES = {
|
|
483
|
+
toolbar: {
|
|
484
|
+
container: [
|
|
485
|
+
['bold', 'italic', 'underline', 'strike', 'link'],
|
|
486
|
+
['code-block'],
|
|
487
|
+
[{ header: 1 }, { header: 2 }],
|
|
488
|
+
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
489
|
+
['clean'],
|
|
490
|
+
],
|
|
491
|
+
},
|
|
492
|
+
};
|
|
485
493
|
SmartformLayoutDefinitionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartformLayoutDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
486
494
|
SmartformLayoutDefinitionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartformLayoutDefinitionService, providedIn: 'root' });
|
|
487
495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartformLayoutDefinitionService, decorators: [{
|
|
@@ -490,4 +498,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
490
498
|
providedIn: 'root',
|
|
491
499
|
}]
|
|
492
500
|
}], ctorParameters: function () { return []; } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFpQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDbEIsTUFBeUM7UUFFekMsUUFBUSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMvRCxLQUFLLG1CQUFtQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FB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QVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDdkMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7U0FDaEQsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OzZIQXRmVSxnQ0FBZ0M7aUlBQWhDLGdDQUFnQyxjQUYvQixNQUFNOzJGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiwgU21hcnRGb3JtV2lkZ2V0VHlwZSwgU21hcnRXaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXIsIFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcclxuaW1wb3J0IHsgVmFsdWUgfSBmcm9tICcuLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcge1xyXG4gIGxheW91dERlZmluaXRpb25zPzogU21hcnRXaWRnZXREZWZpbml0aW9uW107XHJcbiAgbGF5b3V0RGVmaW5pdGlvbj86IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbjtcclxuICB1cGxvYWRDYWxsYmFjaz86IChrZXk6IHN0cmluZywgZmlsZXM6IGFueVtdKSA9PiB2b2lkO1xyXG4gIGJ1dHRvbkNhbGxiYWNrPzogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG4gIHVpQWN0aW9ucz86IGFueVtdO1xyXG4gIHVpQWN0aW9uRGVzY3JpcHRvcnM/OiAodWlBY3Rpb246IGFueSkgPT4gYW55O1xyXG4gIG1vZGVsPzogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIHJlbmRlcihjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10ge1xyXG4gICAgbGV0IHdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25maWcubGF5b3V0RGVmaW5pdGlvbnM/LmZvckVhY2goKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikgPT4ge1xyXG4gICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5jcmVhdGVXaWRnZXQoe1xyXG4gICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICBsYXlvdXREZWZpbml0aW9uLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHdpZGdldCkge1xyXG4gICAgICAgIHdpZGdldHMucHVzaCh3aWRnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gd2lkZ2V0cztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV2lkZ2V0KFxyXG4gICAgY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWdcclxuICApOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB8IHVuZGVmaW5lZCB7XHJcbiAgICBzd2l0Y2ggKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy50eXBlKSB7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29udGFpbmVyKGNvbmZpZywgY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUw6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTGFiZWwoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUzpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGRDaGlwcyhjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX05VTUJFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGROdW1iZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9CT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEJveChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVG9nZ2xlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSYWRpb0J1dHRvbihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2hlY2tCb3goY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlbGVjdChjb25maWcubGF5b3V0RGVmaW5pdGlvbiwgY29uZmlnLm1vZGVsKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTZWxlY3RNdWx0aXBsZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZVRpbWVQaWNrZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU1BR0U6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSW1hZ2UoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVN2Zyhjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT046XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQnV0dG9uKGNvbmZpZyk7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURpdmlkZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuUklDSF9URVhUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJpY2hUZXh0KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVI6XHJcbiAgICAgICAgaWYgKCEoY29uZmlnLmxheW91dERlZmluaXRpb24gYXMgU21hcnRGaWxlVXBsb2FkZXIpLnVwbG9hZENhbGxiYWNrKSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcignTm8gdXBsb2FkIGZ1bmN0aW9uIGluamVjdGVkLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWxlVXBsb2FkZXIoY29uZmlnLmxheW91dERlZmluaXRpb24gYXMgU21hcnRGaWxlVXBsb2FkZXIpO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1hdHJpeChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTb3J0YWJsZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5NT05USF9QSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTW9udGhQaWNrZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNb250aFBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NT05USF9QSUNLRVIsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU1hdHJpeChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVgsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBpc011bHRpcGxlOiBsYXlvdXREZWZpbml0aW9uLm1hdHJpeD8ubXVsdGlTZWxlY3QsXHJcbiAgICAgIHZhbHVlOiBsYXlvdXREZWZpbml0aW9uLm1hdHJpeCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTb3J0YWJsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pIHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMYWJlbChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTCxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHdpZGdldERlc2NyaXB0aW9uOiBsYXlvdXREZWZpbml0aW9uLndpZGdldERlc2NyaXB0aW9uLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDb250YWluZXIoXHJcbiAgICBjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyxcclxuICAgIGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvblxyXG4gICk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB2YWx1ZUxpc3Q6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBsYXlvdXREZWZpbml0aW9uLmNoaWxkcmVuQ29tcG9uZW50cz8uZm9yRWFjaCgobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKSA9PiB7XHJcbiAgICAgIGxldCB3aWRnZXQgPSB0aGlzLmNyZWF0ZVdpZGdldCh7XHJcbiAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgIGxheW91dERlZmluaXRpb24sXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAod2lkZ2V0KSB7XHJcbiAgICAgICAgdmFsdWVMaXN0LnB1c2god2lkZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGRpcmVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5kaXJlY3Rpb24gPz8gU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLkNPTCxcclxuICAgICAgdmFsdWVMaXN0LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGQobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBwcmVmaXg6IGxheW91dERlZmluaXRpb24ucHJlZml4LFxyXG4gICAgICBzdWZmaXg6IGxheW91dERlZmluaXRpb24uc3VmZml4LFxyXG4gICAgICBtYXNrOiBsYXlvdXREZWZpbml0aW9uLm1hc2ssXHJcbiAgICAgIGljb246IGxheW91dERlZmluaXRpb24uaWNvbixcclxuICAgICAgaWNvbkNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmljb25Db2xvcixcclxuICAgICAgaWNvblBvc2l0aW9uOiBsYXlvdXREZWZpbml0aW9uLmljb25Qb3NpdGlvbixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaXNQYXNzd29yZDogbGF5b3V0RGVmaW5pdGlvbi5pc1Bhc3N3b3JkLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBmaWx0ZXJFcnJvck1lc3NhZ2U6IGxheW91dERlZmluaXRpb24uZmlsdGVyRXJyb3JNZXNzYWdlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIG1heExlbmd0aDogbGF5b3V0RGVmaW5pdGlvbi5tYXhMZW5ndGgsXHJcbiAgICAgIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zaG93Q2hhcmFjdGVyTGltaXRTdWZmaXgsXHJcbiAgICAgIHRvb2xiYXJJZDogbGF5b3V0RGVmaW5pdGlvbi50b29sYmFySWQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGRDaGlwcyhsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0NISVBTLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHZhbHVlTGlzdDogW10sXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZS5jb2RlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGROdW1iZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgcHJlZml4OiBsYXlvdXREZWZpbml0aW9uLnByZWZpeCxcclxuICAgICAgc3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnN1ZmZpeCxcclxuICAgICAgaWNvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uLFxyXG4gICAgICBpY29uQ29sb3I6IGxheW91dERlZmluaXRpb24uaWNvbkNvbG9yLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0Qm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgICAgbWF4TGVuZ3RoOiBsYXlvdXREZWZpbml0aW9uLm1heExlbmd0aCxcclxuICAgICAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVJpY2hUZXh0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBxdWlsbE1vZHVsZXM6IHtcclxuICAgICAgICB0b29sYmFyOiB7XHJcbiAgICAgICAgICBjb250YWluZXI6IFtcclxuICAgICAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJywgJ2xpbmsnXSxcclxuICAgICAgICAgICAgWydjb2RlLWJsb2NrJ10sXHJcbiAgICAgICAgICAgIFt7IGhlYWRlcjogMSB9LCB7IGhlYWRlcjogMiB9XSxcclxuICAgICAgICAgICAgW3sgbGlzdDogJ29yZGVyZWQnIH0sIHsgbGlzdDogJ2J1bGxldCcgfV0sXHJcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbWF4TGVuZ3RoOiBsYXlvdXREZWZpbml0aW9uLm1heExlbmd0aCxcclxuICAgICAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRvZ2dsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEUsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVSYWRpb0J1dHRvbihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT04sXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlQ2hlY2tCb3gobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YXzIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbiwgbW9kZWw/OiBhbnkpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0TXVsdGlwbGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRGF0ZVBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVUaW1lUGlja2VyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRSxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVTdmcobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVCdXR0b24oY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgdWlBY3Rpb246IGFueSA9IGNvbmZpZy51aUFjdGlvbnM/LmZpbmQoXHJcbiAgICAgICh1aUFjdGlvbjogYW55KSA9PiB1aUFjdGlvbi5jb2RlID09PSBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ua2V5XHJcbiAgICApO1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OLFxyXG4gICAgICBrZXk6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5rZXkhLFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ubGFiZWwhLFxyXG4gICAgICBzaG93TGFiZWw6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogY29uZmlnLmxheW91dERlZmluaXRpb24/LnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ubGFiZWxTdHlsZSxcclxuICAgICAgY2FsbGJhY2s6IGNvbmZpZy5idXR0b25DYWxsYmFjayEsXHJcbiAgICAgIHVpQWN0aW9uLFxyXG4gICAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IGNvbmZpZy51aUFjdGlvbkRlc2NyaXB0b3JzISh1aUFjdGlvbiksXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVEaXZpZGVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRmlsZVVwbG9hZGVyKGxheW91dERlZmluaXRpb246IFNtYXJ0RmlsZVVwbG9hZGVyKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGaWxlVXBsb2FkZXIgPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHVwbG9hZENhbGxiYWNrOiBsYXlvdXREZWZpbml0aW9uLnVwbG9hZENhbGxiYWNrLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
501
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFrQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFZM0MsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDbEIsTUFBeUM7UUFFekMsUUFBUSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMvRCxLQUFLLG1CQUFtQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FB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O1lBQ3ZDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjO1NBQ2hELENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQTdmdUIsc0RBQXFCLEdBQWlCO0lBQzVELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRTtZQUNULENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztZQUNqRCxDQUFDLFlBQVksQ0FBQztZQUNkLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN6QyxDQUFDLE9BQU8sQ0FBQztTQUNWO0tBQ0Y7Q0FDRCxDQUFBOzZIQVhTLGdDQUFnQztpSUFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07MkZBRVAsZ0NBQWdDO2tCQUg1QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLCBTbWFydEZvcm1XaWRnZXRUeXBlLCBTbWFydFdpZGdldERlZmluaXRpb24gfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydEZpbGVVcGxvYWRlciwgU21hcnRGb3JtV2lkZ2V0IH0gZnJvbSAnLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJy4uL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFF1aWxsTW9kdWxlcyB9IGZyb20gJ25neC1xdWlsbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyB7XHJcbiAgbGF5b3V0RGVmaW5pdGlvbnM/OiBTbWFydFdpZGdldERlZmluaXRpb25bXTtcclxuICBsYXlvdXREZWZpbml0aW9uPzogU21hcnRXaWRnZXREZWZpbml0aW9uO1xyXG4gIHVwbG9hZENhbGxiYWNrPzogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgYnV0dG9uQ2FsbGJhY2s/OiAoKHVpQWN0aW9uOiBhbnkpID0+IHZvaWQpIHwgKChrZXk6IHN0cmluZykgPT4gdm9pZCk7XHJcbiAgdWlBY3Rpb25zPzogYW55W107XHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9ycz86ICh1aUFjdGlvbjogYW55KSA9PiBhbnk7XHJcbiAgbW9kZWw/OiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydGZvcm1MYXlvdXREZWZpbml0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9RVUlMTF9NT0RVTEVTOiBRdWlsbE1vZHVsZXMgPSB7XHJcbiAgICB0b29sYmFyOiB7XHJcbiAgICAgIGNvbnRhaW5lcjogW1xyXG4gICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZScsICdsaW5rJ10sXHJcbiAgICAgICAgWydjb2RlLWJsb2NrJ10sXHJcbiAgICAgICAgW3sgaGVhZGVyOiAxIH0sIHsgaGVhZGVyOiAyIH1dLFxyXG4gICAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICAgIFsnY2xlYW4nXSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgfTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyByZW5kZXIoY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcpOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdIHtcclxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgY29uZmlnLmxheW91dERlZmluaXRpb25zPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB3aWRnZXRzLnB1c2god2lkZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdpZGdldChcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgc3dpdGNoIChjb25maWcubGF5b3V0RGVmaW5pdGlvbj8udHlwZSkge1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbnRhaW5lcihjb25maWcsIGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkQ2hpcHMoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRCb3goY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVE9HR0xFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRvZ2dsZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT046XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmFkaW9CdXR0b24oY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNoZWNrQm94KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTZWxlY3QoY29uZmlnLmxheW91dERlZmluaXRpb24sIGNvbmZpZy5tb2RlbCk7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VsZWN0TXVsdGlwbGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZVBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGVUaW1lUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUltYWdlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNWRzpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTdmcoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJ1dHRvbihjb25maWcpO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEaXZpZGVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSaWNoVGV4dChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSOlxyXG4gICAgICAgIGlmICghKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uIGFzIFNtYXJ0RmlsZVVwbG9hZGVyKS51cGxvYWRDYWxsYmFjaykge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ05vIHVwbG9hZCBmdW5jdGlvbiBpbmplY3RlZC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRmlsZVVwbG9hZGVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uIGFzIFNtYXJ0RmlsZVVwbG9hZGVyKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLk1BVFJJWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNYXRyaXgoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU09SVEFCTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU29ydGFibGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vbnRoUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTW9udGhQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNYXRyaXgobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgaXNNdWx0aXBsZTogbGF5b3V0RGVmaW5pdGlvbi5tYXRyaXg/Lm11bHRpU2VsZWN0LFxyXG4gICAgICB2YWx1ZTogbGF5b3V0RGVmaW5pdGlvbi5tYXRyaXgsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU29ydGFibGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKSB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU09SVEFCTEUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGFiZWwobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUwsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICB3aWRnZXREZXNjcmlwdGlvbjogbGF5b3V0RGVmaW5pdGlvbi53aWRnZXREZXNjcmlwdGlvbixcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udGFpbmVyKFxyXG4gICAgY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcsXHJcbiAgICBsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb25cclxuICApOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgdmFsdWVMaXN0OiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgbGF5b3V0RGVmaW5pdGlvbi5jaGlsZHJlbkNvbXBvbmVudHM/LmZvckVhY2goKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikgPT4ge1xyXG4gICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5jcmVhdGVXaWRnZXQoe1xyXG4gICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICBsYXlvdXREZWZpbml0aW9uLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHdpZGdldCkge1xyXG4gICAgICAgIHZhbHVlTGlzdC5wdXNoKHdpZGdldCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUixcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBkaXJlY3Rpb246IGxheW91dERlZmluaXRpb24uZGlyZWN0aW9uID8/IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIHZhbHVlTGlzdCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgcHJlZml4OiBsYXlvdXREZWZpbml0aW9uLnByZWZpeCxcclxuICAgICAgc3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnN1ZmZpeCxcclxuICAgICAgbWFzazogbGF5b3V0RGVmaW5pdGlvbi5tYXNrLFxyXG4gICAgICBpY29uOiBsYXlvdXREZWZpbml0aW9uLmljb24sXHJcbiAgICAgIGljb25Db2xvcjogbGF5b3V0RGVmaW5pdGlvbi5pY29uQ29sb3IsXHJcbiAgICAgIGljb25Qb3NpdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uUG9zaXRpb24sXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGlzUGFzc3dvcmQ6IGxheW91dERlZmluaXRpb24uaXNQYXNzd29yZCxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgZmlsdGVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmZpbHRlckVycm9yTWVzc2FnZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBtYXhMZW5ndGg6IGxheW91dERlZmluaXRpb24ubWF4TGVuZ3RoLFxyXG4gICAgICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg6IGxheW91dERlZmluaXRpb24uc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4LFxyXG4gICAgICB0b29sYmFySWQ6IGxheW91dERlZmluaXRpb24udG9vbGJhcklkLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkQ2hpcHMobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUyxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHByZWZpeDogbGF5b3V0RGVmaW5pdGlvbi5wcmVmaXgsXHJcbiAgICAgIHN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zdWZmaXgsXHJcbiAgICAgIGljb246IGxheW91dERlZmluaXRpb24uaWNvbixcclxuICAgICAgaWNvbkNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmljb25Db2xvcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEJveChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIG1heExlbmd0aDogbGF5b3V0RGVmaW5pdGlvbi5tYXhMZW5ndGgsXHJcbiAgICAgIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zaG93Q2hhcmFjdGVyTGltaXRTdWZmaXgsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVSaWNoVGV4dChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgcXVpbGxNb2R1bGVzOiBRdWlsbE1vZHVsZXM7XHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi5wcm9wZXJ0aWVzICYmIGxheW91dERlZmluaXRpb24ucHJvcGVydGllc1sncXVpbGxNb2R1bGVzJ10pIHtcclxuICAgICAgcXVpbGxNb2R1bGVzID0gbGF5b3V0RGVmaW5pdGlvbi5wcm9wZXJ0aWVzWydxdWlsbE1vZHVsZXMnXSBhcyBRdWlsbE1vZHVsZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBxdWlsbE1vZHVsZXMgPSBTbWFydGZvcm1MYXlvdXREZWZpbml0aW9uU2VydmljZS5ERUZBVUxUX1FVSUxMX01PRFVMRVM7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUklDSF9URVhULFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHF1aWxsTW9kdWxlcyxcclxuICAgICAgbWF4TGVuZ3RoOiBsYXlvdXREZWZpbml0aW9uLm1heExlbmd0aCxcclxuICAgICAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRvZ2dsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEUsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVSYWRpb0J1dHRvbihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT04sXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlQ2hlY2tCb3gobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YXzIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbiwgbW9kZWw/OiBhbnkpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0TXVsdGlwbGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRGF0ZVBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVUaW1lUGlja2VyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRSxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVTdmcobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVCdXR0b24oY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgdWlBY3Rpb246IGFueSA9IGNvbmZpZy51aUFjdGlvbnM/LmZpbmQoXHJcbiAgICAgICh1aUFjdGlvbjogYW55KSA9PiB1aUFjdGlvbi5jb2RlID09PSBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ua2V5XHJcbiAgICApO1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OLFxyXG4gICAgICBrZXk6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5rZXkhLFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ubGFiZWwhLFxyXG4gICAgICBzaG93TGFiZWw6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogY29uZmlnLmxheW91dERlZmluaXRpb24/LnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ubGFiZWxTdHlsZSxcclxuICAgICAgY2FsbGJhY2s6IGNvbmZpZy5idXR0b25DYWxsYmFjayEsXHJcbiAgICAgIHVpQWN0aW9uLFxyXG4gICAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IGNvbmZpZy51aUFjdGlvbkRlc2NyaXB0b3JzISh1aUFjdGlvbiksXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVEaXZpZGVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRmlsZVVwbG9hZGVyKGxheW91dERlZmluaXRpb246IFNtYXJ0RmlsZVVwbG9hZGVyKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGaWxlVXBsb2FkZXIgPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHVwbG9hZENhbGxiYWNrOiBsYXlvdXREZWZpbml0aW9uLnVwbG9hZENhbGxiYWNrLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZENvbHVtbk1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1ncmlkL2FwaS9ncmlkLWFwaS9tb2RlbC9ncmlkQ29sdW1uTWV0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcmlkIGFwaVxuICogVGhlIGdyaWQgYXBpIGlzIHJlc3Bvc2libGUgZm9yIHRoZSBncmlkIGNvbXBvbmVudHMgdGhhdCBzaG93cyBhIGxpc3Qgb2YgaXRlbS4gXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXG4gKiBDb250YWN0OiBpbmZvQGl0NGFsbC5odVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgR3JpZENvbHVtbkNvbnRlbnRUeXBlIH0gZnJvbSAnLi9ncmlkQ29sdW1uQ29udGVudFR5cGUnO1xuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICcuLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3N0eWxlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRDb2x1bW5NZXRhIHsgXG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgICB0eXBlQ2xhc3M/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZvcm1hdCBpbnN0cnVjdGlvbiBmb3IgdGhlIGNvbHVtbi4gVGhpcyBmb3JtYXQgc3RyaW5nIG11c3QgYmUgSmF2YVNjcmlwdCBmb3JtYXQgc3RyaW5naCBmb3IgQW5ndWxhci5cbiAgICAgKi9cbiAgICB0eXBlRm9ybWF0Pzogc3RyaW5nO1xuICAgIGFsd2F5c0hpZGRlbj86IGJvb2xlYW47XG4gICAgYWx3YXlzU2hvdz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogSGlkZSBjb2x1bW4gaGVhZGVyIGxhYmVsLlxuICAgICAqL1xuICAgIGhpZGVMYWJlbD86IGJvb2xlYW47XG4gICAgY29udGVudFR5cGU/OiBHcmlkQ29sdW1uQ29udGVudFR5cGU7XG4gICAgLyoqXG4gICAgICogSWYgcHJlc2VudCwgdGhpcyBTdHlsZSB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGNvbHVtbi4gXG4gICAgICovXG4gICAgc3R5bGU/OiBTdHlsZTtcbn1cblxuXG5cbiJdfQ==
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
49
49
|
type: Input,
|
|
50
50
|
args: ['matContextMenuTriggerFor']
|
|
51
51
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWNvbnRleHQtbWVudS10cmlnZ2VyLWZvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC10YWJsZS9kaXJlY3RpdmVzL21hdC1jb250ZXh0LW1lbnUtdHJpZ2dlci1mb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFTM0UsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLG1CQUFtQjtJQVAxRTs7UUFRUyxtQkFBYyxHQUFzQixJQUFJLENBQUM7S0ErQmpEO0lBN0JDLHVEQUF1RDtJQUN2RCxzREFBc0Q7SUFDdEQsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxJQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRVEsa0JBQWtCO1FBQ3pCLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxnQkFBbUQsRUFBRSxFQUFFO1lBQzdFLElBQUksU0FBUyxHQUF3QixFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFO2dCQUN0QyxhQUFhLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDeEIsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDaEIsQ0FBQzthQUNGLENBQUMsQ0FBQztZQUNILDhDQUE4QztZQUM5QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLGdCQUFnQixFQUFFLFNBQVMsQ0FBQztvQkFDMUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTztvQkFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTztpQkFDL0IsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7SUFDSixDQUFDOzs4SEEvQlUsaUNBQWlDO2tIQUFqQyxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGtCQUFrQjtxQkFDMUI7b0JBQ0QsUUFBUSxFQUFFLGdDQUFnQztpQkFDM0M7OEJBT0ssVUFBVTtzQkFEYixLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudVBhbmVsLCBfTWF0TWVudVRyaWdnZXJCYXNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1ttYXRDb250ZXh0TWVudVRyaWdnZXJGb3JdJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ21hdC1tZW51LXRyaWdnZXInLFxyXG4gIH0sXHJcbiAgZXhwb3J0QXM6ICdtYXRDb250ZXh0TWVudVRyaWdnZXJEaXJlY3RpdmUnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0Q29udGV4dE1lbnVUcmlnZ2VyRm9yRGlyZWN0aXZlIGV4dGVuZHMgX01hdE1lbnVUcmlnZ2VyQmFzZSB7XHJcbiAgcHVibGljIGxhc3RNb3VzZUV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vIER1cGxpY2F0ZSB0aGUgY29kZSBmb3IgdGhlIG1hdE1lbnVUcmlnZ2VyRm9yIGJpbmRpbmdcclxuICAvLyB1c2luZyBhIG5ldyBwcm9wZXJ0eSBhbmQgdGhlIHB1YmxpYyBtZW51IGFjY2Vzc29ycy5cclxuICBASW5wdXQoJ21hdENvbnRleHRNZW51VHJpZ2dlckZvcicpXHJcbiAgZ2V0IG1lbnVfYWdhaW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51ITtcclxuICB9XHJcbiAgc2V0IG1lbnVfYWdhaW4obWVudTogTWF0TWVudVBhbmVsKSB7XHJcbiAgICB0aGlzLm1lbnUgPSBtZW51O1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgLy8gQ2FuJ3QganVzdCBvdmVycmlkZSBhIHByaXZhdGUgbWV0aG9kIGR1ZSB0byBob3cgdGhlIGxpYiBpcyBjb21waWxlZFxyXG4gICAgdGhpc1snX3NldFBvc2l0aW9uJ10gPSAocG9zaXRpb25TdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KSA9PiB7XHJcbiAgICAgIGxldCBwb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXTtcclxuICAgICAgc3VwZXJbJ19zZXRQb3NpdGlvbiddKHBvc2l0aW9uU3RyYXRlZ3ksIHtcclxuICAgICAgICB3aXRoUG9zaXRpb25zOiAocDogYW55KSA9PiB7XHJcbiAgICAgICAgICBwb3NpdGlvbnMgPSBwO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyBwb3NpdGlvblN0cmF0ZWd5Py53aXRoUG9zaXRpb25zKHBvc2l0aW9ucyk7XHJcbiAgICAgIGlmICh0aGlzLmxhc3RNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneT8uc2V0T3JpZ2luKHtcclxuICAgICAgICAgIHg6IHRoaXMubGFzdE1vdXNlRXZlbnQuY2xpZW50WCxcclxuICAgICAgICAgIHk6IHRoaXMubGFzdE1vdXNlRXZlbnQuY2xpZW50WSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5Py53aXRoVmlld3BvcnRNYXJnaW4oMTApO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|