@smartbit4all/ng-client 3.3.162 → 3.3.164
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/sessionInfoData.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-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/filterExpressionField.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/filterExpressionField.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/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/widgets/smartformwidget/smartformwidget.component.mjs +5 -4
- package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +2 -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/smart-ui-action/ui-action-toolbar.component.mjs +2 -1
- package/esm2020/lib/view-context/utility/smart-style-utility.mjs +7 -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 +12 -3
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +12 -3
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.3.164.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.162.tgz +0 -0
package/esm2020/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs
CHANGED
|
@@ -31,6 +31,7 @@ export class TableLayoutDefinerComponent {
|
|
|
31
31
|
}
|
|
32
32
|
ngOnDestroy() {
|
|
33
33
|
this._destroy$.next();
|
|
34
|
+
this._destroy$.complete();
|
|
34
35
|
}
|
|
35
36
|
ngAfterViewInit() {
|
|
36
37
|
this.subscibeForValueChange();
|
|
@@ -178,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
178
179
|
type: ViewChildren,
|
|
179
180
|
args: ['forms']
|
|
180
181
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQU16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OzswQkFlakMsTUFBTTsyQkFBQyxlQUFlO3VFQVRGLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBTbWFydEZvcm0sXHJcbiAgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFR5cGUsXHJcbiAgU21hcnRmb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JpZENvbHVtbk1ldGEsIEdyaWRVcGRhdGVEYXRhLCBHcmlkVmlldyB9IGZyb20gJy4uLy4uL2FwaS9ncmlkLWFwaSc7XHJcbmltcG9ydCB7IFNtYXJ0R3JpZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zbWFydC1ncmlkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi8uLi9zbWFydC1kaWFsb2cvcHJvamVjdHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUxheW91dERlZmluZXJDb25maWcge1xyXG4gIHV1aWQ6IHN0cmluZztcclxuICBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgdmlldzogR3JpZFZpZXc7XHJcbiAgc2VydmljZTogU21hcnRHcmlkU2VydmljZTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtbGF5b3V0LWRlZmluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVMYXlvdXREZWZpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZHJlbignZm9ybXMnKSBmb3JtQ2hpbGRyZW4/OiBTbWFydGZvcm1Db21wb25lbnRbXTtcclxuICBmb3Jtcz86IFNtYXJ0Rm9ybVtdO1xyXG4gIHZpZXc/OiBHcmlkVmlldztcclxuICBwcml2YXRlIG9yZGVyZWRDb2x1bW5zQXNPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBkaXNhYmxlU2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFsd2F5c1Nob3dDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNob3dBZGRCdG46IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLnZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuY3VzdG9tQ29tcG9uZW50SW5wdXRzLmNvbmZpZy52aWV3KSk7XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTtcclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9ICEodGhpcy5mb3JtcyEubGVuZ3RoID09IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1heENvbHVtbkNvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5maWx0ZXIoKGNvbCkgPT4gIWNvbC5hbHdheXNIaWRkZW4pLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGlsZHJlbj8uZm9yRWFjaCgoY29tcDogU21hcnRmb3JtQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGNvbXAub25WYWx1ZUNoYW5nZVN1YmplY3Q/LnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdGhpcy5nZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKTtcclxuXHJcbiAgICAgICAgbGV0IGZpbmREdXBsaWNhdGVzID0gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmZpbHRlcihcclxuICAgICAgICAgIChpdGVtLCBpbmRleCkgPT4gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmluZGV4T2YoaXRlbSkgIT09IGluZGV4XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZSA9IGZpbmREdXBsaWNhdGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5oYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1ucyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1uczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuc29tZSgodmFsdWUpID0+IHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybXMgPSB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKGNvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0IH0sXHJcbiAgICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICAgIHVzZU9uVmFsdWVDaGFuZ2VFdmVudDogdHJ1ZSxcclxuICAgICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTogaW5kZXgudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMuZmlsdGVyKChjbSkgPT4gIWNtLmFsd2F5c0hpZGRlbikubWFwKFxyXG4gICAgICAgICAgICAgIChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAga2V5OiAnJyxcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBmb3JtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBhZGRDb2x1bW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mb3JtcyEubGVuZ3RoIDwgdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbHVtbihmb3JtOiBTbWFydEZvcm0pOiB2b2lkIHtcclxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbZm9ybS53aWRnZXRzWzBdLmtleSFdO1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMuaW5kZXhPZihwcm9wZXJ0eU5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy52aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMubWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgdGhpcy5zaG93QWRkQnRuID0gdGhpcy5mb3JtcyEubGVuZ3RoIDwgdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYWJlbEZyb21Db2x1bW5NZXRhKHByb3A6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFiZWwgPSB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZmluZChcclxuICAgICAgKHZhbHVlOiBHcmlkQ29sdW1uTWV0YSkgPT4gdmFsdWUucHJvcGVydHlOYW1lID09PSBwcm9wXHJcbiAgICApPy5sYWJlbDtcclxuICAgIHJldHVybiBsYWJlbCA/PyBwcm9wO1xyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5mb3JtcyEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtRm9yQ29sKGNvbDogc3RyaW5nKTogU21hcnRGb3JtIHtcclxuICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdCB9LFxyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBrZXk6IGNvbCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsRnJvbUNvbHVtbk1ldGEoY29sKSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubWFwKChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGtleTogJycsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyA9IHRoaXMuZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCk7XHJcbiAgICBsZXQgY29uZmlnID0gdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWc7XHJcblxyXG4gICAgbGV0IHVwZGF0ZURhdGE6IEdyaWRVcGRhdGVEYXRhID0ge1xyXG4gICAgICBvcmRlckJ5TGlzdDogdGhpcy52aWV3IS5vcmRlckJ5TGlzdCxcclxuICAgICAgb3JkZXJlZENvbHVtbk5hbWVzOiB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyxcclxuICAgIH07XHJcblxyXG4gICAgYXdhaXQgdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWcuc2VydmljZS51cGRhdGUoXHJcbiAgICAgIGNvbmZpZy51dWlkLFxyXG4gICAgICBjb25maWcuaWRlbnRpZmllcixcclxuICAgICAgdXBkYXRlRGF0YVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKSB7XHJcbiAgICBsZXQgdXBkYXRlZEtleU9yZGVyID0gdGhpcy5mb3JtcyEubWFwKChmb3JtOiBTbWFydEZvcm0pID0+IHtcclxuICAgICAgcmV0dXJuIGZvcm0ud2lkZ2V0c1swXS5rZXkhO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtQ2hpbGRyZW4/LmZvckVhY2goKGNvbXA6IFNtYXJ0Zm9ybUNvbXBvbmVudCkgPT4gY29tcC5zdWJtaXRGb3JtKCkpO1xyXG5cclxuICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB1cGRhdGVkS2V5T3JkZXIhLm1hcCgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W3ZhbHVlXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbaW5kZXhdID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZm9yRWFjaCgoY29sOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICBpZiAoY29sLmFsd2F5c1Nob3cpIHtcclxuICAgICAgICB0aGlzLmFsd2F5c1Nob3dDb2x1bW5zLnB1c2goY29sLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNBbHdheXNTaG93KGNvbDogU21hcnRGb3JtKSB7XHJcbiAgICBsZXQga2V5ID0gY29sLndpZGdldHNbMF0ua2V5ITtcclxuXHJcbiAgICBpZiAodGhpcy5hbHdheXNTaG93Q29sdW1ucy5pbmNsdWRlcyh0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3Rba2V5XSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0LWNvbHVtbnMtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImV4YW1wbGUtbGlzdFwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW1ldGEtcm93XCIgKm5nRm9yPVwibGV0IGNvbCBvZiBmb3Jtc1wiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiPlxyXG4gICAgICA8c21hcnQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBpY29uPVwiZHJhZ19oYW5kbGVcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgIDxzbWFydGZvcm0gY2xhc3M9XCJmb3JtXCIgI2Zvcm1zIFtzbWFydEZvcm1dPVwiY29sXCI+PC9zbWFydGZvcm0+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQWx3YXlzU2hvdyhjb2wpICYmICh2aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMpIS5sZW5ndGggPiAxXCJcclxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ29sdW1uKGNvbClcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhZGQtYnRuXCIgKm5nSWY9XCJzaG93QWRkQnRuXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQ29sdW1uKClcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvb2xiYXJcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIj4gTcOpZ3NlbSA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVTYXZlXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XHJcbiAgICAgIE1lbnTDqXNcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQU16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MkJBOzJGRERhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OzBCQWVqQyxNQUFNOzJCQUFDLGVBQWU7dUVBVEYsWUFBWTtzQkFBbEMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybSxcclxuICBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0VHlwZSxcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uTWV0YSwgR3JpZFVwZGF0ZURhdGEsIEdyaWRWaWV3IH0gZnJvbSAnLi4vLi4vYXBpL2dyaWQtYXBpJztcclxuaW1wb3J0IHsgU21hcnRHcmlkU2VydmljZSB9IGZyb20gJy4uLy4uL3NtYXJ0LWdyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWRpYWxvZy9wcm9qZWN0cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGF5b3V0RGVmaW5lckNvbmZpZyB7XHJcbiAgdXVpZDogc3RyaW5nO1xyXG4gIGlkZW50aWZpZXI6IHN0cmluZztcclxuICB2aWV3OiBHcmlkVmlldztcclxuICBzZXJ2aWNlOiBTbWFydEdyaWRTZXJ2aWNlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1sYXlvdXQtZGVmaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBAVmlld0NoaWxkcmVuKCdmb3JtcycpIGZvcm1DaGlsZHJlbj86IFNtYXJ0Zm9ybUNvbXBvbmVudFtdO1xyXG4gIGZvcm1zPzogU21hcnRGb3JtW107XHJcbiAgdmlldz86IEdyaWRWaWV3O1xyXG4gIHByaXZhdGUgb3JkZXJlZENvbHVtbnNBc09iamVjdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIGRpc2FibGVTYXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWx3YXlzU2hvd0NvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcbiAgc2hvd0FkZEJ0bjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTbWFydERpYWxvZ0RhdGEsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRhYmxlTGF5b3V0RGVmaW5lckNvbXBvbmVudD5cclxuICApIHtcclxuICAgIHRoaXMudmlldyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnZpZXcpKTtcclxuICAgIHRoaXMubWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgdGhpcy5nZXRBbHdheXNTaG93Q29sdW1ucygpO1xyXG4gICAgdGhpcy5zaG93QWRkQnRuID0gISh0aGlzLmZvcm1zIS5sZW5ndGggPT0gdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWF4Q29sdW1uQ291bnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLmZpbHRlcigoY29sKSA9PiAhY29sLmFsd2F5c0hpZGRlbikubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGlsZHJlbj8uZm9yRWFjaCgoY29tcDogU21hcnRmb3JtQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGNvbXAub25WYWx1ZUNoYW5nZVN1YmplY3Q/LnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdGhpcy5nZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKTtcclxuXHJcbiAgICAgICAgbGV0IGZpbmREdXBsaWNhdGVzID0gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmZpbHRlcihcclxuICAgICAgICAgIChpdGVtLCBpbmRleCkgPT4gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmluZGV4T2YoaXRlbSkgIT09IGluZGV4XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZSA9IGZpbmREdXBsaWNhdGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5oYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1ucyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1uczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuc29tZSgodmFsdWUpID0+IHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybXMgPSB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKGNvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0IH0sXHJcbiAgICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICAgIHVzZU9uVmFsdWVDaGFuZ2VFdmVudDogdHJ1ZSxcclxuICAgICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTogaW5kZXgudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMuZmlsdGVyKChjbSkgPT4gIWNtLmFsd2F5c0hpZGRlbikubWFwKFxyXG4gICAgICAgICAgICAgIChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAga2V5OiAnJyxcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBmb3JtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBhZGRDb2x1bW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mb3JtcyEubGVuZ3RoIDwgdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbHVtbihmb3JtOiBTbWFydEZvcm0pOiB2b2lkIHtcclxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbZm9ybS53aWRnZXRzWzBdLmtleSFdO1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMuaW5kZXhPZihwcm9wZXJ0eU5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy52aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMubWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgdGhpcy5zaG93QWRkQnRuID0gdGhpcy5mb3JtcyEubGVuZ3RoIDwgdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYWJlbEZyb21Db2x1bW5NZXRhKHByb3A6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFiZWwgPSB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZmluZChcclxuICAgICAgKHZhbHVlOiBHcmlkQ29sdW1uTWV0YSkgPT4gdmFsdWUucHJvcGVydHlOYW1lID09PSBwcm9wXHJcbiAgICApPy5sYWJlbDtcclxuICAgIHJldHVybiBsYWJlbCA/PyBwcm9wO1xyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5mb3JtcyEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtRm9yQ29sKGNvbDogc3RyaW5nKTogU21hcnRGb3JtIHtcclxuICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdCB9LFxyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIHdpZGdldHM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBrZXk6IGNvbCxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsRnJvbUNvbHVtbk1ldGEoY29sKSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMubWFwKChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGtleTogJycsXHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbE1ldGEucHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyA9IHRoaXMuZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCk7XHJcbiAgICBsZXQgY29uZmlnID0gdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWc7XHJcblxyXG4gICAgbGV0IHVwZGF0ZURhdGE6IEdyaWRVcGRhdGVEYXRhID0ge1xyXG4gICAgICBvcmRlckJ5TGlzdDogdGhpcy52aWV3IS5vcmRlckJ5TGlzdCxcclxuICAgICAgb3JkZXJlZENvbHVtbk5hbWVzOiB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcyxcclxuICAgIH07XHJcblxyXG4gICAgYXdhaXQgdGhpcy5kYXRhLmN1c3RvbUNvbXBvbmVudElucHV0cy5jb25maWcuc2VydmljZS51cGRhdGUoXHJcbiAgICAgIGNvbmZpZy51dWlkLFxyXG4gICAgICBjb25maWcuaWRlbnRpZmllcixcclxuICAgICAgdXBkYXRlRGF0YVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKSB7XHJcbiAgICBsZXQgdXBkYXRlZEtleU9yZGVyID0gdGhpcy5mb3JtcyEubWFwKChmb3JtOiBTbWFydEZvcm0pID0+IHtcclxuICAgICAgcmV0dXJuIGZvcm0ud2lkZ2V0c1swXS5rZXkhO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtQ2hpbGRyZW4/LmZvckVhY2goKGNvbXA6IFNtYXJ0Zm9ybUNvbXBvbmVudCkgPT4gY29tcC5zdWJtaXRGb3JtKCkpO1xyXG5cclxuICAgIGxldCB1cGRhdGVkT3JkZXJlZENvbHVtbnMgPSB1cGRhdGVkS2V5T3JkZXIhLm1hcCgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W3ZhbHVlXTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHVwZGF0ZWRPcmRlcmVkQ29sdW1ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLm1hcCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbaW5kZXhdID0gdmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/LmRlc2NyaXB0b3I/LmNvbHVtbnMuZm9yRWFjaCgoY29sOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICBpZiAoY29sLmFsd2F5c1Nob3cpIHtcclxuICAgICAgICB0aGlzLmFsd2F5c1Nob3dDb2x1bW5zLnB1c2goY29sLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNBbHdheXNTaG93KGNvbDogU21hcnRGb3JtKSB7XHJcbiAgICBsZXQga2V5ID0gY29sLndpZGdldHNbMF0ua2V5ITtcclxuXHJcbiAgICBpZiAodGhpcy5hbHdheXNTaG93Q29sdW1ucy5pbmNsdWRlcyh0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3Rba2V5XSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlZGl0LWNvbHVtbnMtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImV4YW1wbGUtbGlzdFwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW1ldGEtcm93XCIgKm5nRm9yPVwibGV0IGNvbCBvZiBmb3Jtc1wiIGNka0RyYWcgY2RrRHJhZ0xvY2tBeGlzPVwieVwiPlxyXG4gICAgICA8c21hcnQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBpY29uPVwiZHJhZ19oYW5kbGVcIj48L3NtYXJ0LWljb24+XHJcbiAgICAgIDxzbWFydGZvcm0gY2xhc3M9XCJmb3JtXCIgI2Zvcm1zIFtzbWFydEZvcm1dPVwiY29sXCI+PC9zbWFydGZvcm0+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQWx3YXlzU2hvdyhjb2wpICYmICh2aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMpIS5sZW5ndGggPiAxXCJcclxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ29sdW1uKGNvbClcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWljb24+ZGVsZXRlX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhZGQtYnRuXCIgKm5nSWY9XCJzaG93QWRkQnRuXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQ29sdW1uKClcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvb2xiYXJcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIj4gTcOpZ3NlbSA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVTYXZlXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XHJcbiAgICAgIE1lbnTDqXNcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|