@veloceapps/sdk 5.0.9 → 5.0.11
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/bundles/veloce-sdk-cms.umd.js +102 -51
- package/bundles/veloce-sdk-cms.umd.js.map +1 -1
- package/bundles/veloce-sdk-core.umd.js.map +1 -1
- package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
- package/bundles/veloce-sdk.umd.js +4 -2
- package/bundles/veloce-sdk.umd.js.map +1 -1
- package/cms/components/element-renderer/element-renderer.component.d.ts +1 -0
- package/cms/services/launcher.service.d.ts +3 -3
- package/cms/types/compilation.types.d.ts +6 -0
- package/cms/types/index.d.ts +1 -0
- package/cms/utils/elements-resolver.d.ts +3 -0
- package/cms/vendor-map.d.ts +124 -116
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +23 -2
- package/esm2015/cms/components/element.component.js +1 -1
- package/esm2015/cms/components/preview/preview.component.js +7 -4
- package/esm2015/cms/decorators/element.decorator.js +1 -1
- package/esm2015/cms/directives/custom-template.directive.js +1 -1
- package/esm2015/cms/engine/models/entity.js +1 -1
- package/esm2015/cms/modules/federated/federated.component.js +1 -1
- package/esm2015/cms/modules/federated/federated.utils.js +1 -1
- package/esm2015/cms/plugins/configuration.plugin.js +1 -1
- package/esm2015/cms/plugins/script.plugin.js +1 -1
- package/esm2015/cms/services/dynamic-module.service.js +1 -1
- package/esm2015/cms/services/element-context.service.js +1 -1
- package/esm2015/cms/services/integration.state.js +1 -1
- package/esm2015/cms/services/launcher.service.js +10 -10
- package/esm2015/cms/services/templates.service.js +1 -1
- package/esm2015/cms/types/compilation.types.js +2 -0
- package/esm2015/cms/types/index.js +2 -1
- package/esm2015/cms/utils/element.utils.js +1 -1
- package/esm2015/cms/utils/elements-resolver.js +52 -30
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +1 -1
- package/esm2015/core/modules/configuration/services/configuration.service.js +1 -1
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +1 -1
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +1 -1
- package/esm2015/core/services/context.service.js +1 -1
- package/esm2015/core/services/quote-draft.service.js +1 -1
- package/esm2015/core/utils/line-item.utils.js +1 -1
- package/esm2015/runtime/components/component-preview/component-preview.component.js +1 -1
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +1 -1
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +1 -1
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +1 -1
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +1 -1
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +1 -1
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +1 -1
- package/esm2015/runtime/execution/components/federated/federated.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +1 -1
- package/esm2015/runtime/execution/directives/section-script.directive.js +1 -1
- package/esm2015/runtime/execution/directives/sf-query.directive.js +1 -1
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +1 -1
- package/esm2015/runtime/execution/directives/velo-port.directive.js +1 -1
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +1 -1
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +1 -1
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +1 -1
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +1 -1
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +1 -1
- package/esm2015/runtime/execution/utils/federated.util.js +1 -1
- package/esm2015/runtime/services/cart.service.js +1 -1
- package/esm2015/runtime/services/collapsible-state.service.js +1 -1
- package/esm2015/runtime/services/configuration.service.js +1 -1
- package/esm2015/runtime/services/current-state.service.js +1 -1
- package/esm2015/runtime/services/form-scope.service.js +1 -1
- package/esm2015/runtime/services/product-model-cache.service.js +1 -1
- package/esm2015/runtime/services/runtime-context.service.js +1 -1
- package/esm2015/runtime/services/runtime-form.service.js +2 -2
- package/esm2015/runtime/services/runtime.service.js +1 -1
- package/esm2015/runtime/services/section-helper.service.js +1 -1
- package/esm2015/runtime/services/section-scope.service.js +1 -1
- package/esm2015/runtime/services/section-store.service.js +1 -1
- package/esm2015/runtime/services/section.service.js +1 -1
- package/esm2015/runtime/types/script-registry.types.js +1 -1
- package/esm2015/runtime/utils/line-item.util.js +1 -1
- package/esm2015/runtime/utils/sections-binder.helper.js +1 -1
- package/esm2015/src/components/dialog/dialog.component.js +1 -1
- package/esm2015/src/components/doc-gen/doc-gen.component.js +2 -2
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +2 -2
- package/esm2015/src/components/header/header.component.js +4 -2
- package/esm2015/src/components/header/metrics/metrics.component.js +1 -1
- package/esm2015/src/flow-routing.module.js +1 -1
- package/esm2015/src/flow.component.js +1 -1
- package/esm2015/src/guards/product-unload.guard.js +1 -1
- package/esm2015/src/guards/root.guard.js +1 -1
- package/esm2015/src/pages/catalog/catalog.component.js +1 -1
- package/esm2015/src/pages/debug/debug.component.js +1 -1
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +1 -1
- package/esm2015/src/pages/product/product.component.js +1 -1
- package/esm2015/src/pages/record-not-found/record-not-found.component.js +1 -1
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +1 -1
- package/esm2015/src/resolvers/flow.resolver.js +1 -1
- package/esm2015/src/resolvers/quote.resolver.js +1 -1
- package/esm2015/src/services/flow-router.service.js +1 -1
- package/fesm2015/veloce-sdk-cms.js +86 -40
- package/fesm2015/veloce-sdk-cms.js.map +1 -1
- package/fesm2015/veloce-sdk-core.js.map +1 -1
- package/fesm2015/veloce-sdk-runtime.js +1 -1
- package/fesm2015/veloce-sdk-runtime.js.map +1 -1
- package/fesm2015/veloce-sdk.js +4 -2
- package/fesm2015/veloce-sdk.js.map +1 -1
- package/package.json +1 -1
- package/runtime/services/runtime-form.service.d.ts +3 -3
- package/runtime/utils/line-item.util.d.ts +1 -1
- package/src/guards/product-unload.guard.d.ts +2 -1
- package/src/resolvers/flow.resolver.d.ts +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
2
2
|
import { ToastType } from '@veloce/components';
|
3
|
-
import { UITemplateComponentType, UITemplateType } from '@veloce/core';
|
3
|
+
import { UITemplateComponentType, UITemplateType, } from '@veloce/core';
|
4
4
|
import { extendElementMetadata, extractElementMetadata } from '@veloce/sdk/cms';
|
5
5
|
import { BehaviorSubject, catchError, first, map, of, Subject, switchMap, takeUntil, tap } from 'rxjs';
|
6
6
|
import * as i0 from "@angular/core";
|
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
106
106
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
107
107
|
}]
|
108
108
|
}], ctorParameters: function () { return [{ type: i1.QuoteDraftService }, { type: i1.ContextService }, { type: i2.UITemplatesApiService }, { type: i3.FlowDocGenService }, { type: i4.ToastService }]; } });
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLWdlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvY29tcG9uZW50cy9kb2MtZ2VuL2RvYy1nZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvZG9jLWdlbi9kb2MtZ2VuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQWlDLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBU25ILE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQ1UsaUJBQW9DLEVBQ3BDLGNBQThCLEVBQzlCLFlBQW1DLEVBQ25DLGFBQWdDLEVBQ2hDLFlBQTBCO1FBSjFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFYN0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFHOUQsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsYUFBUSxH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R0FDdEM7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxNQUFNLEtBQUssR0FBaUI7Z0JBQzFCLElBQUksRUFBRSxFQUFFO2dCQUNSLGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxDQUFDO2dCQUNWLFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxRQUFRLEVBQUUsRUFBRTt3QkFDWixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDdEMsTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO3dCQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztxQkFDbkM7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7NkdBdkhVLGVBQWU7aUdBQWYsZUFBZSx1RENmNUIsNE5BS0E7NEZEVWEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVRlbXBsYXRlc0FwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2FwaSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2UvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCwgVUlUZW1wbGF0ZSwgVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGUsIFVJVGVtcGxhdGVUeXBlIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IGV4dGVuZEVsZW1lbnRNZXRhZGF0YSwgZXh0cmFjdEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUXVvdGVEcmFmdFNlcnZpY2UsIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd0RvY0dlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2MtZ2VuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1mbG93LWRvYy1nZW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jLWdlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvYy1nZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERvY0dlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB1aURlZmluaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVSURlZmluaXRpb24gfCBudWxsPihudWxsKTtcbiAgcHVibGljIGlzVmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUFwaU5hbWUgPSAnJztcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGk6IFVJVGVtcGxhdGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGRvY0dlblNlcnZpY2U6IEZsb3dEb2NHZW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNWaXNpYmxlJCA9IHRoaXMuZG9jR2VuU2VydmljZS5pc1Zpc2libGUkO1xuXG4gICAgLy8gaW5pdGlhbGl6ZSB3aGVuIHF1b3RlIGRyYWZ0IHJlcXVlc3RlZFxuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pbml0aWFsaXplKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZUFwaU5hbWUgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKS5wcm9wZXJ0aWVzLmRvY0dlblRlbXBsYXRlQXBpTmFtZSA/PyAnJztcblxuICAgIHRoaXMuZ2VuZXJhdGVVSURlZmluaXRpb24kKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodWlEZWYgPT4ge1xuICAgICAgICAgIGlmICghdWlEZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29tcG9uZW50IHdpdGggbmFtZSAnJHt0aGlzLnRlbXBsYXRlQXBpTmFtZX0nIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVpRGVmaW5pdGlvbiQubmV4dCh1aURlZik7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdGYWlsZWQgdG8gcmVzb2x2ZSBEb2NHZW4gY29tcG9uZW50LiAnICsgKGVyci5tZXNzYWdlID8/ICcnKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5hZGQoeyBzZXZlcml0eTogVG9hc3RUeXBlLmVycm9yLCBzdW1tYXJ5OiBtZXNzYWdlLCBzdGlja3k6IHRydWUgfSk7XG4gICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFRlbXBsYXRlUm9vdENvbXBvbmVudCQodGVtcGxhdGU6IFVJVGVtcGxhdGUpOiBPYnNlcnZhYmxlPFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzQXBpXG4gICAgICAuZmV0Y2hDb21wb25lbnRzJCh0ZW1wbGF0ZS5pZClcbiAgICAgIC5waXBlKG1hcChjb21wb25lbnRzID0+IGNvbXBvbmVudHMuZmluZChjID0+IGMudHlwZSA9PT0gVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGUuUk9PVCkgPz8gdW5kZWZpbmVkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldERvY0dlbkNvbXBvbmVudE1ldGEkKCkge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlc0FwaS5mZXRjaFRlbXBsYXRlcyQoKS5waXBlKFxuICAgICAgbWFwPFVJVGVtcGxhdGVbXSwgVUlUZW1wbGF0ZSB8IHVuZGVmaW5lZD4odGVtcGxhdGVzID0+IHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0ZW1wbGF0ZXMuZmluZChcbiAgICAgICAgICB0ZW1wbGF0ZSA9PiB0ZW1wbGF0ZS50eXBlID09PSBVSVRlbXBsYXRlVHlwZS5ET0NHRU4gJiYgdGVtcGxhdGUubmFtZSA9PT0gdGhpcy50ZW1wbGF0ZUFwaU5hbWUsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZSA/PyB0ZW1wbGF0ZXNbMF07XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCh0ZW1wbGF0ZSA9PiAodGVtcGxhdGUgPyB0aGlzLmdldFRlbXBsYXRlUm9vdENvbXBvbmVudCQodGVtcGxhdGUpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgICAgc3dpdGNoTWFwKGNvbXBvbmVudCA9PlxuICAgICAgICBjb21wb25lbnQgPyB0aGlzLnRlbXBsYXRlc0FwaS5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRzJChjb21wb25lbnQudWlUZW1wbGF0ZUlkLCBjb21wb25lbnQpIDogb2YodW5kZWZpbmVkKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVVSURlZmluaXRpb24kKCk6IE9ic2VydmFibGU8VUlEZWZpbml0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZUFwaU5hbWUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGbG93IFF1ZXJ5IHBhcmFtZXRlciAnZG9jR2VuVGVtcGxhdGVBcGlOYW1lJyBpcyBtaXNzaW5nLlwiKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAobWV0YSA9PiAobWV0YSA/IG9mKG1ldGEpIDogdGhpcy5nZXREb2NHZW5Db21wb25lbnRNZXRhJCgpKSksXG4gICAgICBtYXAobWV0YSA9PiB7XG4gICAgICAgIGlmICghbWV0YSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhlYWRlcklkID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCkucHJvcGVydGllcy5JZCA/PyBudWxsO1xuICAgICAgICBsZXQgc2NyaXB0ID0gbWV0YS5qcztcblxuICAgICAgICBpZiAoc2NyaXB0KSB7XG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBleHRyYWN0RWxlbWVudE1ldGFkYXRhKHNjcmlwdCk7XG4gICAgICAgICAgc2NyaXB0ID0gZXh0ZW5kRWxlbWVudE1ldGFkYXRhKHNjcmlwdCwge1xuICAgICAgICAgICAgaW5wdXRzOiB7XG4gICAgICAgICAgICAgIC4uLm1ldGFkYXRhLmlucHV0cyxcbiAgICAgICAgICAgICAgSWQ6IGhlYWRlcklkID8gYFwiJHtoZWFkZXJJZH1cImAgOiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVpRGVmOiBVSURlZmluaXRpb24gPSB7XG4gICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgY3JlYXRlZFRpbWVzdGFtcDogMCxcbiAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIHR5cGU6ICdERUZBVUxUJyxcbiAgICAgICAgICB2ZXJzaW9uOiAyLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgdGVtcGxhdGU6IG1ldGEuaHRtbCAmJiBidG9hKG1ldGEuaHRtbCksXG4gICAgICAgICAgICAgIHNjcmlwdDogc2NyaXB0ICYmIGJ0b2Eoc2NyaXB0KSxcbiAgICAgICAgICAgICAgc3R5bGVzOiBtZXRhLmNzcyAmJiBidG9hKG1ldGEuY3NzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdWlEZWY7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWaXNpYmxlJCB8IGFzeW5jXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1aURlZmluaXRpb24kIHwgYXN5bmMgYXMgdWlEZWZpbml0aW9uXCI+XG4gICAgPHZsLWNtcy1wcmV2aWV3IFt1aURlZmluaXRpb25dPVwidWlEZWZpbml0aW9uXCI+PC92bC1jbXMtcHJldmlldz5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLWdlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvY29tcG9uZW50cy9kb2MtZ2VuL2RvYy1nZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvZG9jLWdlbi9kb2MtZ2VuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBSUwsdUJBQXVCLEVBQ3ZCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBU25ILE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQ1UsaUJBQW9DLEVBQ3BDLGNBQThCLEVBQzlCLFlBQW1DLEVBQ25DLGFBQWdDLEVBQ2hDLFlBQTBCO1FBSjFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFYN0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFHOUQsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsYUFBUSxH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LEdBQ3RDO2lCQUNGLENBQUMsQ0FBQzthQUNKO1lBRUQsTUFBTSxLQUFLLEdBQWlCO2dCQUMxQixJQUFJLEVBQUUsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsQ0FBQztnQkFDVixRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsUUFBUSxFQUFFLEVBQUU7d0JBQ1osUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ3RDLE1BQU0sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQzt3QkFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ25DO2lCQUNGO2FBQ0YsQ0FBQztZQUVGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzZHQXZIVSxlQUFlO2lHQUFmLGVBQWUsdURDckI1Qiw0TkFLQTs0RkRnQmEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVRlbXBsYXRlc0FwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlL2FwaSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2UvY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBDb21wb25lbnRBdHRhY2htZW50cyxcbiAgVGVtcGxhdGVDb21wb25lbnQsXG4gIFVJVGVtcGxhdGUsXG4gIFVJVGVtcGxhdGVDb21wb25lbnRUeXBlLFxuICBVSVRlbXBsYXRlVHlwZSxcbn0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IGV4dGVuZEVsZW1lbnRNZXRhZGF0YSwgZXh0cmFjdEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgUXVvdGVEcmFmdFNlcnZpY2UsIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBmaXJzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd0RvY0dlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2MtZ2VuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1mbG93LWRvYy1nZW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jLWdlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvYy1nZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERvY0dlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyB1aURlZmluaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVSURlZmluaXRpb24gfCBudWxsPihudWxsKTtcbiAgcHVibGljIGlzVmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUFwaU5hbWUgPSAnJztcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZXNBcGk6IFVJVGVtcGxhdGVzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGRvY0dlblNlcnZpY2U6IEZsb3dEb2NHZW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuaXNWaXNpYmxlJCA9IHRoaXMuZG9jR2VuU2VydmljZS5pc1Zpc2libGUkO1xuXG4gICAgLy8gaW5pdGlhbGl6ZSB3aGVuIHF1b3RlIGRyYWZ0IHJlcXVlc3RlZFxuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pbml0aWFsaXplKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGVBcGlOYW1lID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCkucHJvcGVydGllcy5kb2NHZW5UZW1wbGF0ZUFwaU5hbWUgPz8gJyc7XG5cbiAgICB0aGlzLmdlbmVyYXRlVUlEZWZpbml0aW9uJCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHVpRGVmID0+IHtcbiAgICAgICAgICBpZiAoIXVpRGVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbXBvbmVudCB3aXRoIG5hbWUgJyR7dGhpcy50ZW1wbGF0ZUFwaU5hbWV9JyBub3QgZm91bmQuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy51aURlZmluaXRpb24kLm5leHQodWlEZWYpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnRmFpbGVkIHRvIHJlc29sdmUgRG9jR2VuIGNvbXBvbmVudC4gJyArIChlcnIubWVzc2FnZSA/PyAnJyk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciwgc3VtbWFyeTogbWVzc2FnZSwgc3RpY2t5OiB0cnVlIH0pO1xuICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZW1wbGF0ZVJvb3RDb21wb25lbnQkKHRlbXBsYXRlOiBVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlc0FwaVxuICAgICAgLmZldGNoQ29tcG9uZW50cyQodGVtcGxhdGUuaWQpXG4gICAgICAucGlwZShtYXAoY29tcG9uZW50cyA9PiBjb21wb25lbnRzLmZpbmQoYyA9PiBjLnR5cGUgPT09IFVJVGVtcGxhdGVDb21wb25lbnRUeXBlLlJPT1QpID8/IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2NHZW5Db21wb25lbnRNZXRhJCgpOiBPYnNlcnZhYmxlPENvbXBvbmVudEF0dGFjaG1lbnRzIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzQXBpLmZldGNoVGVtcGxhdGVzJCgpLnBpcGUoXG4gICAgICBtYXA8VUlUZW1wbGF0ZVtdLCBVSVRlbXBsYXRlIHwgdW5kZWZpbmVkPih0ZW1wbGF0ZXMgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRlbXBsYXRlcy5maW5kKFxuICAgICAgICAgIHRlbXBsYXRlID0+IHRlbXBsYXRlLnR5cGUgPT09IFVJVGVtcGxhdGVUeXBlLkRPQ0dFTiAmJiB0ZW1wbGF0ZS5uYW1lID09PSB0aGlzLnRlbXBsYXRlQXBpTmFtZSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlID8/IHRlbXBsYXRlc1swXTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHRlbXBsYXRlID0+ICh0ZW1wbGF0ZSA/IHRoaXMuZ2V0VGVtcGxhdGVSb290Q29tcG9uZW50JCh0ZW1wbGF0ZSkgOiBvZih1bmRlZmluZWQpKSksXG4gICAgICBzd2l0Y2hNYXAoY29tcG9uZW50ID0+XG4gICAgICAgIGNvbXBvbmVudCA/IHRoaXMudGVtcGxhdGVzQXBpLmZldGNoQ29tcG9uZW50QXR0YWNobWVudHMkKGNvbXBvbmVudC51aVRlbXBsYXRlSWQsIGNvbXBvbmVudCkgOiBvZih1bmRlZmluZWQpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVVJRGVmaW5pdGlvbiQoKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlQXBpTmFtZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZsb3cgUXVlcnkgcGFyYW1ldGVyICdkb2NHZW5UZW1wbGF0ZUFwaU5hbWUnIGlzIG1pc3NpbmcuXCIpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcChtZXRhID0+IChtZXRhID8gb2YobWV0YSkgOiB0aGlzLmdldERvY0dlbkNvbXBvbmVudE1ldGEkKCkpKSxcbiAgICAgIG1hcChtZXRhID0+IHtcbiAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGVhZGVySWQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKS5wcm9wZXJ0aWVzLklkID8/IG51bGw7XG4gICAgICAgIGxldCBzY3JpcHQgPSBtZXRhLmpzO1xuXG4gICAgICAgIGlmIChzY3JpcHQpIHtcbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGV4dHJhY3RFbGVtZW50TWV0YWRhdGEoc2NyaXB0KTtcbiAgICAgICAgICBzY3JpcHQgPSBleHRlbmRFbGVtZW50TWV0YWRhdGEoc2NyaXB0LCB7XG4gICAgICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAgICAgLi4ubWV0YWRhdGEuaW5wdXRzLFxuICAgICAgICAgICAgICBJZDogaGVhZGVySWQgPyBgXCIke2hlYWRlcklkfVwiYCA6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdWlEZWY6IFVJRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiAwLFxuICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgdHlwZTogJ0RFRkFVTFQnLFxuICAgICAgICAgIHZlcnNpb246IDIsXG4gICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgICB0ZW1wbGF0ZTogbWV0YS5odG1sICYmIGJ0b2EobWV0YS5odG1sKSxcbiAgICAgICAgICAgICAgc2NyaXB0OiBzY3JpcHQgJiYgYnRvYShzY3JpcHQpLFxuICAgICAgICAgICAgICBzdHlsZXM6IG1ldGEuY3NzICYmIGJ0b2EobWV0YS5jc3MpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB1aURlZjtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Zpc2libGUkIHwgYXN5bmNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVpRGVmaW5pdGlvbiQgfCBhc3luYyBhcyB1aURlZmluaXRpb25cIj5cbiAgICA8dmwtY21zLXByZXZpZXcgW3VpRGVmaW5pdGlvbl09XCJ1aURlZmluaXRpb25cIj48L3ZsLWNtcy1wcmV2aWV3PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
@@ -104,7 +104,7 @@ export class CartPreviewComponent {
|
|
104
104
|
}
|
105
105
|
}
|
106
106
|
CartPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewComponent, deps: [{ token: i1.FlowConfigurationService }, { token: i2.FlowRouterService }, { token: i1.ProductImagesService }, { token: i1.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Component });
|
107
|
-
CartPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n
|
107
|
+
CartPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
108
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CartPreviewComponent, decorators: [{
|
109
109
|
type: Component,
|
110
110
|
args: [{
|
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
119
119
|
}], products: [{
|
120
120
|
type: Input
|
121
121
|
}] } });
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFVbkcsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0IsWUFDVSxpQkFBMkMsRUFDM0MsYUFBZ0MsRUFDaEMsb0JBQTBDLEVBQzFDLGlCQUFvQztRQUhwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmOUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRS9CLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd6QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFF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QUMsT0FBTyxFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3RDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7a0hBdEhVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLHVJQUNwQixZQUFZLHFFQ3hCekIsdStKQTJHQTs0RkRwRmEsb0JBQW9CO2tCQU5oQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7a05BRTBCLFlBQVk7c0JBQXBDLFNBQVM7dUJBQUMsWUFBWTtnQkFFZCxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uU2VydmljZSwgUHJvZHVjdEltYWdlc1NlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmxvdy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIZWFkZXJQcm9kdWN0IH0gZnJvbSAnLi4vaGVhZGVyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY2FydC1wcmV2aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcnQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgQElucHV0KCkgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dIZWlnaHQgPSA5NztcblxuICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgbG9ja2VkUHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaGFzVGVybUluUHJvZHVjdHMgPSBmYWxzZTtcbiAgcHVibGljIHNjcm9sbEhlaWdodCA9IDA7XG5cbiAgcHJpdmF0ZSBzaG91bGRVcGRhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2R1Y3RJbWFnZXNTZXJ2aWNlOiBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sb2NrZWRQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZXJTZXJ2aWNlLnJvdXRlJCwgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpXSkucGlwZShcbiAgICAgIG1hcCgoW3JvdXRlLCBpc0NvbmZpZ3VyYXRpb25Sb3V0ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0NvbmZpZ3VyYXRpb25Sb3V0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2R1Y3RJZDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgcHJvZHVjdHMgfSA9IGNoYW5nZXM7XG5cbiAgICBpZiAocHJvZHVjdHMpIHtcbiAgICAgIHRoaXMuc2hvdWxkVXBkYXRlJC5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5zY3JvbGxIZWlnaHQgPSBNYXRoLm1pbih0aGlzLnByb2R1Y3RzLmxlbmd0aCAqIHRoaXMucHJvZHVjdFJvd0hlaWdodCwgNDYwKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5sb2NrZWRQcm9kdWN0SWQkLCB0aGlzLmlzRWRpdE1vZGUkLCB0aGlzLnNob3VsZFVwZGF0ZSQsIHRoaXMub3ZlcmxheVBhbmVsLm9uU2hvd10pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMub3ZlcmxheVBhbmVsLm92ZXJsYXlWaXNpYmxlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbbG9ja2VkUHJvZHVjdElkLCBpc0VkaXRNb2RlXSkgPT4gdGhpcy51cGRhdGVDb250cm9scyh0aGlzLnByb2R1Y3RzLCBpc0VkaXRNb2RlLCBsb2NrZWRQcm9kdWN0SWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdEltYWdlc1NlcnZpY2UuZ2V0SW1hZ2VVcmwkKHByb2R1Y3RJZCk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZDogc3RyaW5nLCBsaW5lSXRlbUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQsIGxpbmVJdGVtSWQpO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xCbHVySGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXTtcbiAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi51cGRhdGUoW1xuICAgICAge1xuICAgICAgICBkYXRhVHlwZTogJ0xJTkVJVEVNJyxcbiAgICAgICAgYXR0cmlidXRlVHlwZTogJ1FUWScsXG4gICAgICAgIGlkOiBwcm9kdWN0LmlkLFxuICAgICAgICBuZXdWYWx1ZTogY29udHJvbC52YWx1ZSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlSGFuZGxlcihwcm9kdWN0OiBIZWFkZXJQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUoW3Byb2R1Y3QuaWRdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb2R1Y3RJZHMgPSB0aGlzLnByb2R1Y3RzLm1hcChwcm9kdWN0ID0+IHByb2R1Y3QuaWQpO1xuICAgIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZGVsZXRlKHByb2R1Y3RJZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250cm9scyhwcm9kdWN0czogSGVhZGVyUHJvZHVjdFtdLCBpc0VkaXRNb2RlOiBib29sZWFuLCBsb2NrZWRQcm9kdWN0SWQ6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcm9kdWN0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpdGVtLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWRzLnB1c2goaXRlbS5pZCk7XG5cbiAgICAgIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdKSB7XG4gICAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKGl0ZW0uaWQsIG5ldyBGb3JtQ29udHJvbChpdGVtLnF0eSwgW10pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXT8uc2V0VmFsdWUoaXRlbS5xdHkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRWRpdE1vZGUgfHwgaXRlbS5kZWxldGVkIHx8IGl0ZW0ucHJvZHVjdElkID09PSBsb2NrZWRQcm9kdWN0SWQpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tpdGVtLmlkXS5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW92ZWRJZHMgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZpbHRlcihpZCA9PiAhaWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgcmVtb3ZlZElkcy5mb3JFYWNoKGlkID0+IHRoaXMuZm9ybS5yZW1vdmVDb250cm9sKGlkKSk7XG4gICAgdGhpcy5oYXNUZXJtSW5Qcm9kdWN0cyA9IHByb2R1Y3RzLnNvbWUoKGl0ZW06IEhlYWRlclByb2R1Y3QpID0+IGl0ZW0uaGFzVGVybSk7XG4gIH1cbn1cbiIsIjxwLW92ZXJsYXlQYW5lbFxuICBzdHlsZUNsYXNzPVwibmF2aWdhdGlvbi1zZXR0aW5ncy1vdmVybGF5IGZsb3ctaGVhZGVyLW92ZXJsYXkgY2VudGVyIG5vLXBhZGRpbmdcIlxuICBzaG93VHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuICBoaWRlVHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X193cmFwcGVyXCIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkJCB8IGFzeW5jIGFzIGxvY2tlZFByb2R1Y3RJZFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc0VkaXRNb2RlJCB8IGFzeW5jIGFzIGlzRWRpdE1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3RzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW4+UHJvZHVjdHMgKHt7IHByb2R1Y3RzLmxlbmd0aCB9fSk8L3NwYW4+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC5oaWRlKClcIj48L2k+XG4gICAgICAgICAgPC9oMj5cblxuICAgICAgICAgIDxwLXZpcnR1YWxTY3JvbGxlciBbdmFsdWVdPVwicHJvZHVjdHNcIiBzY3JvbGxIZWlnaHQ9XCJ7eyBzY3JvbGxIZWlnaHQgfX1weFwiIFtpdGVtU2l6ZV09XCJwcm9kdWN0Um93SGVpZ2h0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0IGhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlByb2R1Y3Q8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+UXR5PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yaWdodFwiPk1SUjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5OUlI8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtcHJvZHVjdD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdCBpdGVtXCJcbiAgICAgICAgICAgICAgICAqdmxMZXQ9XCIhaXNFZGl0TW9kZSB8fCBwcm9kdWN0LmRlbGV0ZWQgYXMgaXNSZWFkb25seVByb2R1Y3RcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJpc1JlYWRvbmx5UHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRlbGV0ZWRdPVwicHJvZHVjdC5kZWxldGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZCBhcyBpc0xvY2tlZFByb2R1Y3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiIFtjbGFzcy5saW5lLXRocm91Z2hdPVwicHJvZHVjdC5kZWxldGVkXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1JlYWRvbmx5UHJvZHVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29uZmlndXJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCAhcHJvZHVjdC5jb25maWd1cmFibGUgfHwgcHJvZHVjdC5oYXNUZXJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC0yIHBsLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdC5wcm9kdWN0SWQsIHByb2R1Y3QuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCBwcm9kdWN0Lmhhc1Rlcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcC0yIHByLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHQtMlwiICpuZ0lmPVwiIWlzUmVhZG9ubHlQcm9kdWN0OyBlbHNlIHJlYWRvbmx5UXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicXR5LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29udHJvbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlRdHlcbiAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+e3sgY29udHJvbC52YWx1ZSB9fTwvc3Bhbj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5tcnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIiBbY2xhc3MucHQtM109XCIhaXNSZWFkb25seVByb2R1Y3RcIj4ke3sgcHJvZHVjdC5ucnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3AtdmlydHVhbFNjcm9sbGVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tbm8taW1hZ2Ugbm8taW1hZ2UtaWNvblwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmb290ZXJcIj5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICBsYWJlbD1cIkNsZWFyIGNhcnRcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcGwtMCBwci0wXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VkaXRNb2RlIHx8ICEhbG9ja2VkUHJvZHVjdElkIHx8IGhhc1Rlcm1JblByb2R1Y3RzXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZGVsZXRlQWxsSGFuZGxlcigpXCJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICA8aDIgY2xhc3M9XCJmbG93LWhlYWRlci1vdmVybGF5X190aXRsZVwiPlxuICAgICAgICAgIDxzcGFuPkVtcHR5IENhcnQ8L3NwYW4+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2xvc2UgY2xvc2UtaWNvblwiIChjbGljayk9XCJvdmVybGF5UGFuZWwuaGlkZSgpXCI+PC9pPlxuICAgICAgICA8L2gyPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZW1wdHktc3RhdGVcIj5UaGVyZSBhcmUgbm8gcHJvZHVjdHMgYWRkZWQgdG8gdGhlIFNob3BwaW5nIENhcnQgeWV0Ljwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuIl19
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFVbkcsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0IsWUFDVSxpQkFBMkMsRUFDM0MsYUFBZ0MsRUFDaEMsb0JBQTBDLEVBQzFDLGlCQUFvQztRQUhwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmOUIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRS9CLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUd6QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFF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QUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN0QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7O2tIQXRIVSxvQkFBb0I7c0dBQXBCLG9CQUFvQix1SUFDcEIsWUFBWSxxRUN4QnpCLCtwSkFzR0E7NEZEL0VhLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxTQUFTLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO2tOQUVpQyxZQUFZO3NCQUEzQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRVAsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFByb2R1Y3RJbWFnZXNTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhZGVyUHJvZHVjdCB9IGZyb20gJy4uL2hlYWRlci50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWNhcnQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJ0LXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhcnRQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcHVibGljIG92ZXJsYXlQYW5lbCE6IE92ZXJsYXlQYW5lbDtcblxuICBASW5wdXQoKSBwdWJsaWMgcHJvZHVjdHMhOiBIZWFkZXJQcm9kdWN0W107XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2R1Y3RSb3dIZWlnaHQgPSA5NztcblxuICBwdWJsaWMgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgbG9ja2VkUHJvZHVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaGFzVGVybUluUHJvZHVjdHMgPSBmYWxzZTtcbiAgcHVibGljIHNjcm9sbEhlaWdodCA9IDA7XG5cbiAgcHJpdmF0ZSBzaG91bGRVcGRhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2R1Y3RJbWFnZXNTZXJ2aWNlOiBQcm9kdWN0SW1hZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5sb2NrZWRQcm9kdWN0SWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5yb3V0ZXJTZXJ2aWNlLnJvdXRlJCwgdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpXSkucGlwZShcbiAgICAgIG1hcCgoW3JvdXRlLCBpc0NvbmZpZ3VyYXRpb25Sb3V0ZV0pID0+IHtcbiAgICAgICAgaWYgKCFpc0NvbmZpZ3VyYXRpb25Sb3V0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlLnF1ZXJ5UGFyYW1zLnByb2R1Y3RJZDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IHByb2R1Y3RzIH0gPSBjaGFuZ2VzO1xuXG4gICAgaWYgKHByb2R1Y3RzKSB7XG4gICAgICB0aGlzLnNob3VsZFVwZGF0ZSQubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gTWF0aC5taW4odGhpcy5wcm9kdWN0cy5sZW5ndGggKiB0aGlzLnByb2R1Y3RSb3dIZWlnaHQsIDQ2MCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvY2tlZFByb2R1Y3RJZCQsIHRoaXMuaXNFZGl0TW9kZSQsIHRoaXMuc2hvdWxkVXBkYXRlJCwgdGhpcy5vdmVybGF5UGFuZWwub25TaG93XSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UGFuZWwub3ZlcmxheVZpc2libGUpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtsb2NrZWRQcm9kdWN0SWQsIGlzRWRpdE1vZGVdKSA9PiB0aGlzLnVwZGF0ZUNvbnRyb2xzKHRoaXMucHJvZHVjdHMsIGlzRWRpdE1vZGUsIGxvY2tlZFByb2R1Y3RJZCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SW1hZ2VVcmwocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0SW1hZ2VzU2VydmljZS5nZXRJbWFnZVVybCQocHJvZHVjdElkKTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdElkOiBzdHJpbmcsIGxpbmVJdGVtSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMub3ZlcmxheVBhbmVsLmhpZGUoKTtcbiAgICB0aGlzLnJvdXRlclNlcnZpY2UubmF2aWdhdGVUb1Byb2R1Y3RDb25maWd1cmF0aW9uKHByb2R1Y3RJZCwgbGluZUl0ZW1JZCk7XG4gIH1cblxuICBwdWJsaWMgY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3Byb2R1Y3QuaWRdO1xuICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLnVwZGF0ZShbXG4gICAgICB7XG4gICAgICAgIGRhdGFUeXBlOiAnTElORUlURU0nLFxuICAgICAgICBhdHRyaWJ1dGVUeXBlOiAnUVRZJyxcbiAgICAgICAgaWQ6IHByb2R1Y3QuaWQsXG4gICAgICAgIG5ld1ZhbHVlOiBjb250cm9sLnZhbHVlLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVIYW5kbGVyKHByb2R1Y3Q6IEhlYWRlclByb2R1Y3QpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmRlbGV0ZShbcHJvZHVjdC5pZF0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbEhhbmRsZXIoKTogdm9pZCB7XG4gICAgY29uc3QgcHJvZHVjdElkcyA9IHRoaXMucHJvZHVjdHMubWFwKHByb2R1Y3QgPT4gcHJvZHVjdC5pZCk7XG4gICAgdGhpcy5mbG93Q29uZmlndXJhdGlvbi5kZWxldGUocHJvZHVjdElkcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRyb2xzKHByb2R1Y3RzOiBIZWFkZXJQcm9kdWN0W10sIGlzRWRpdE1vZGU6IGJvb2xlYW4sIGxvY2tlZFByb2R1Y3RJZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSBbXTtcblxuICAgIHByb2R1Y3RzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZHMucHVzaChpdGVtLmlkKTtcblxuICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0pIHtcbiAgICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woaXRlbS5pZCwgbmV3IEZvcm1Db250cm9sKGl0ZW0ucXR5LCBbXSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdPy5zZXRWYWx1ZShpdGVtLnF0eSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFZGl0TW9kZSB8fCBpdGVtLmRlbGV0ZWQgfHwgaXRlbS5wcm9kdWN0SWQgPT09IGxvY2tlZFByb2R1Y3RJZCkge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbaXRlbS5pZF0uZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2l0ZW0uaWRdLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVtb3ZlZElkcyA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZmlsdGVyKGlkID0+ICFpZHMuaW5jbHVkZXMoaWQpKTtcbiAgICByZW1vdmVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woaWQpKTtcbiAgICB0aGlzLmhhc1Rlcm1JblByb2R1Y3RzID0gcHJvZHVjdHMuc29tZSgoaXRlbTogSGVhZGVyUHJvZHVjdCkgPT4gaXRlbS5oYXNUZXJtKTtcbiAgfVxufVxuIiwiPHAtb3ZlcmxheVBhbmVsXG4gIHN0eWxlQ2xhc3M9XCJuYXZpZ2F0aW9uLXNldHRpbmdzLW92ZXJsYXkgZmxvdy1oZWFkZXItb3ZlcmxheSBjZW50ZXIgbm8tcGFkZGluZ1wiXG4gIHNob3dUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4gIGhpZGVUcmFuc2l0aW9uT3B0aW9ucz1cIjBtc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIiAqdmxMZXQ9XCJsb2NrZWRQcm9kdWN0SWQkIHwgYXN5bmMgYXMgbG9ja2VkUHJvZHVjdElkXCI+XG4gICAgICA8bmctY29udGFpbmVyICp2bExldD1cImlzRWRpdE1vZGUkIHwgYXN5bmMgYXMgaXNFZGl0TW9kZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdHMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eVwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3RpdGxlXCI+XG4gICAgICAgICAgICA8c3Bhbj5Qcm9kdWN0cyAoe3sgcHJvZHVjdHMubGVuZ3RoIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgICA8L2gyPlxuXG4gICAgICAgICAgPHAtdmlydHVhbFNjcm9sbGVyIFt2YWx1ZV09XCJwcm9kdWN0c1wiIHNjcm9sbEhlaWdodD1cInt7IHNjcm9sbEhlaWdodCB9fXB4XCIgW2l0ZW1TaXplXT1cInByb2R1Y3RSb3dIZWlnaHRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QgaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+UHJvZHVjdDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5RdHk8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtcHJvZHVjdD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdCBpdGVtXCJcbiAgICAgICAgICAgICAgICAqdmxMZXQ9XCIhaXNFZGl0TW9kZSB8fCBwcm9kdWN0LmRlbGV0ZWQgYXMgaXNSZWFkb25seVByb2R1Y3RcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJpc1JlYWRvbmx5UHJvZHVjdFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRlbGV0ZWRdPVwicHJvZHVjdC5kZWxldGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwibG9ja2VkUHJvZHVjdElkID09PSBwcm9kdWN0LnByb2R1Y3RJZCBhcyBpc0xvY2tlZFByb2R1Y3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0X19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJbWFnZVVybChwcm9kdWN0LnByb2R1Y3RJZCkgfCBhc3luYyBhcyBpbWFnZVVybDsgZWxzZSBub0ltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdF9faW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlVXJsICsgJyknIH1cIlxuICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid29yZC1icmVha1wiIFtjbGFzcy5saW5lLXRocm91Z2hdPVwicHJvZHVjdC5kZWxldGVkXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1JlYWRvbmx5UHJvZHVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiQ29uZmlndXJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCAhcHJvZHVjdC5jb25maWd1cmFibGUgfHwgcHJvZHVjdC5oYXNUZXJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC0yIHBsLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJuYXZpZ2F0ZVRvUHJvZHVjdENvbmZpZ3VyYXRpb24ocHJvZHVjdC5wcm9kdWN0SWQsIHByb2R1Y3QuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkUHJvZHVjdCB8fCBwcm9kdWN0Lmhhc1Rlcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tbGluayBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1kYW5nZXIgcC0yIHByLTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5jb250cm9sc1twcm9kdWN0LmlkXSBhcyBjb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHQtMlwiICpuZ0lmPVwiIWlzUmVhZG9ubHlQcm9kdWN0OyBlbHNlIHJlYWRvbmx5UXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicXR5LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIiRhbnkoY29udHJvbClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbEJsdXJIYW5kbGVyKHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLWlucHV0TnVtYmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVhZG9ubHlRdHlcbiAgICAgICAgICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+e3sgY29udHJvbC52YWx1ZSB9fTwvc3Bhbj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9wLXZpcnR1YWxTY3JvbGxlcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWFnZT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLW5vLWltYWdlIG5vLWltYWdlLWljb25cIj48L2k+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZm9vdGVyXCI+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBjYXJ0XCJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLWxpbmsgcC1idXR0b24tc20gcC1idXR0b24tZGFuZ2VyIHBsLTAgcHItMFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNFZGl0TW9kZSB8fCAhIWxvY2tlZFByb2R1Y3RJZCB8fCBoYXNUZXJtSW5Qcm9kdWN0c1wiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUFsbEhhbmRsZXIoKVwiXG4gICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj5FbXB0eSBDYXJ0PC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlIGNsb3NlLWljb25cIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLmhpZGUoKVwiPjwvaT5cbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+VGhlcmUgYXJlIG5vIHByb2R1Y3RzIGFkZGVkIHRvIHRoZSBTaG9wcGluZyBDYXJ0IHlldC48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cbiJdfQ==
|
@@ -291,7 +291,9 @@ export class FlowHeaderComponent {
|
|
291
291
|
!this.quoteDraftService.hasAssets);
|
292
292
|
}
|
293
293
|
isUpsellQuoteWithoutChanges() {
|
294
|
-
|
294
|
+
const noUpdates = this.quoteDraftService.activeCurrentState.every(lineItem => lineItem.actionCode === 'EXIST');
|
295
|
+
const sameNumberOfProducts = this.quoteDraftService.getInitialCurrentState().length === this.quoteDraftService.activeCurrentState.length;
|
296
|
+
return noUpdates && sameNumberOfProducts;
|
295
297
|
}
|
296
298
|
}
|
297
299
|
FlowHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowHeaderComponent, deps: [{ token: i1.ContextService }, { token: i1.QuoteDraftService }, { token: i2.QuoteApiService }, { token: i2.SalesforceApiService }, { token: i1.FlowConfigurationService }, { token: i3.FlowRouterService }, { token: i4.FlowDialogService }, { token: i5.IntegrationState }], target: i0.ɵɵFactoryTarget.Component });
|
@@ -305,4 +307,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
305
307
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
306
308
|
}]
|
307
309
|
}], ctorParameters: function () { return [{ type: i1.ContextService }, { type: i1.QuoteDraftService }, { type: i2.QuoteApiService }, { type: i2.SalesforceApiService }, { type: i1.FlowConfigurationService }, { type: i3.FlowRouterService }, { type: i4.FlowDialogService }, { type: i5.IntegrationState }]; } });
|
308
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQ0wsd0JBQXdCLEdBTXpCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBY2QsTUFBTSxPQUFPLG1CQUFtQjtJQW9COUIsWUFDVSxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsWUFBa0MsRUFDbEMsaUJBQTJDLEVBQzNDLGFBQWdDLEVBQ2hDLGFBQWdDLEVBQ2hDLGdCQUFrQztRQVBsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNo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QUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU8sY0FBYzs7UUFDcEIsT0FBTyxDQUNMLENBQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksTUFBSyx3QkFBd0IsQ0FBQyxPQUFPO1lBQy9GLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkI7UUFDakMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RyxDQUFDOztpSEFqWFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsc0RDMUNoQyxxa1BBc0xBOzRGRDVJYSxtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdW90ZUFwaVNlcnZpY2UsIFNhbGVzZm9yY2VBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICBDb250ZXh0UHJvcGVydGllcyxcbiAgTGluZUl0ZW0sXG4gIFByaWNlTGlzdCxcbiAgU2VhcmNoUmVxdWVzdCxcbiAgVmxXaW5kb3csXG59IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblN0YXRlLCBPcGVuRG9jR2VuQWN0aW9uIH0gZnJvbSAnQHZlbG9jZS9zZGsvY21zJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIGZpcnN0LFxuICBtYXAsXG4gIG5vb3AsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBGbG93Um91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhcnQtb3ZlcmxheS9jYXJ0LXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck9iamVjdERldGFpbHMsIEhlYWRlclByb2R1Y3QgfSBmcm9tICcuL2hlYWRlci50eXBlcyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtZmxvdy1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGbG93SGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgb2JqZWN0TmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIGNvbnRleHRQcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxDb250ZXh0UHJvcGVydGllcz47XG4gIHB1YmxpYyBhY3RpdmVQcmljZUxpc3QkOiBPYnNlcnZhYmxlPFByaWNlTGlzdCB8IG51bGw+O1xuICBwdWJsaWMgaXNSZWFkb25seU1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgc3RhdHVzJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwdWJsaWMgb2JqZWN0RGV0YWlscyQ6IE9ic2VydmFibGU8SGVhZGVyT2JqZWN0RGV0YWlscz47XG4gIHB1YmxpYyBwcm9kdWN0cyQ6IE9ic2VydmFibGU8SGVhZGVyUHJvZHVjdFtdPjtcbiAgcHVibGljIGlzQ29uZmlndXJhdGlvblJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2FydFJvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzQ2F0YWxvZ1JvdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzRWRpdE1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgaXNTYXZlSW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIGlzU3VibWl0SW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgYXNzZXRQcmljZUxpc3RzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJpY2VMaXN0W10+KFtdKTtcblxuICBwcml2YXRlIG1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWd1cmF0aW9uQ29udGV4dE1vZGU+KENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5URVNUKTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlQXBpU2VydmljZTogUXVvdGVBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2ZBcGlTZXJ2aWNlOiBTYWxlc2ZvcmNlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEZsb3dEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW50ZWdyYXRpb25TdGF0ZTogSW50ZWdyYXRpb25TdGF0ZSxcbiAgKSB7XG4gICAgdGhpcy5jb250ZXh0UHJvcGVydGllcyQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCkucGlwZShtYXAoY3R4ID0+IGN0eC5wcm9wZXJ0aWVzKSk7XG4gICAgdGhpcy5vYmplY3ROYW1lJCA9IHRoaXMubW9kZSQucGlwZShtYXAobW9kZSA9PiBtb2RlPy50b0xvY2FsZUxvd2VyQ2FzZSgpID8/ICcnKSk7XG5cbiAgICB0aGlzLmFjdGl2ZVByaWNlTGlzdCQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZVByaWNlTGlzdCQ7XG4gICAgdGhpcy5pc1JlYWRvbmx5TW9kZSQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc0Fzc2V0cyQucGlwZShtYXAoKCkgPT4gdGhpcy5pc1JlYWRvbmx5TW9kZSgpKSk7XG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpLnBpcGUobWFwKGNvbnRleHQgPT4gY29udGV4dC5wcm9wZXJ0aWVzLlN0YXR1cyA/PyAnJykpO1xuICAgIHRoaXMuaXNFZGl0TW9kZSQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzRWRpdE1vZGUkKCk7XG4gICAgdGhpcy5wcm9kdWN0cyQgPSB0aGlzLmZsb3dDb25maWd1cmF0aW9uLmdldCgpLnBpcGUobWFwKGxpbmVJdGVtcyA9PiB0aGlzLmdlbmVyYXRlUHJvZHVjdHMobGluZUl0ZW1zKSkpO1xuICAgIHRoaXMuaXNDb25maWd1cmF0aW9uUm91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ29uZmlndXJhdGlvblJvdXRlJCgpO1xuICAgIHRoaXMuaXNDYXJ0Um91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ2FydFJvdXRlJCgpO1xuICAgIHRoaXMuaXNDYXRhbG9nUm91dGUkID0gdGhpcy5yb3V0ZXJTZXJ2aWNlLmlzQ2F0YWxvZ1JvdXRlJCgpO1xuICAgIHRoaXMub2JqZWN0RGV0YWlscyQgPSB0aGlzLmdldE9iamVjdERldGFpbHMkKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXG4gICAgICAucmVzb2x2ZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLm1vZGUkLm5leHQoY3R4Lm1vZGUpKTtcblxuICAgIC8vIHVwZGF0ZSBhc3NldFByaWNlTGlzdHMgb24gcXVvdGVEcmFmdCBjaGFuZ2UgaW4gQUNDT1VOVCBtb2RlXG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0FjY291bnRNb2RlKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hc3NldFByaWNlTGlzdHMkLm5leHQodGhpcy5xdW90ZURyYWZ0U2VydmljZS5hc3NldFByaWNlTGlzdHMpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQWNjb3VudE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQudmFsdWUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1F1b3RlTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC52YWx1ZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0FjY291bnRNb2RlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC5waXBlKG1hcChtb2RlID0+IG1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUXVvdGVNb2RlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC5waXBlKG1hcChtb2RlID0+IG1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkpO1xuICB9XG5cbiAgcHVibGljIGdldFNwbGl0QnV0dG9uQWN0aW9ucyhpc0NhcnRSb3V0ZTogYm9vbGVhbik6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnU2F2ZSB0byBRdW90ZScsXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGUpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdTdWJtaXQgRm9yIEFwcHJvdmFsJyxcbiAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0QnV0dG9uQ2xpY2tIYW5kbGVyKGlzQ2FydFJvdXRlKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrKG9iamVjdElkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBvYmplY3RJZCA/PyB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKS5wcm9wZXJ0aWVzLklkO1xuXG4gICAgaWYgKHRhcmdldElkKSB7XG4gICAgICB3aW5kb3cuVkVMT19CQUNLX0ZOLmFwcGx5KG51bGwsIFt0YXJnZXRJZF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhvYmplY3RJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmplY3RJZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS8ke29iamVjdElkfWA7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpIHtcbiAgICBpZiAoIXRoaXMuaXNSZWFkb25seU1vZGUoKSkge1xuICAgICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9TaG9wcGluZ0NhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb0NhdGFsb2coKSB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZG9ubHlNb2RlKCkpIHtcbiAgICAgIHRoaXMucm91dGVyU2VydmljZS5uYXZpZ2F0ZVRvQ2F0YWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb2NHZW5CdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FjY291bnRNb2RlKSB7XG4gICAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50Tm9DaGFuZ2VzRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RvY2dlbkFjY291bnRVbnNhdmVkQ2hhbmdlc0RpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93RG9jZ2VuUmVhZG9ubHlEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQ2FydFJvdXRlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RvY2dlbk91dHNpZGVTaG9wcGluZ0NhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkT3BlbiQgPSBvZih0cnVlKTtcblxuICAgIGlmICh0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICBzaG91bGRPcGVuJCA9IHRoaXMuZGlhbG9nU2VydmljZS5zaG93RG9jZ2VuVW5zYXZlZENoYW5nZXNEaWFsb2coKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29uZmlybWVkID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZVF1b3RlJCh0cnVlKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG91bGRPcGVuJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIHRhcChzaG91bGRPcGVuID0+IHNob3VsZE9wZW4gJiYgdGhpcy5pbnRlZ3JhdGlvblN0YXRlLmRpc3BhdGNoKE9wZW5Eb2NHZW5BY3Rpb24oKSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNFZGl0TW9kZSgpKSB7XG4gICAgICBpZiAodGhpcy5pc1F1b3RlTW9kZSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1F1b3RlUmVhZG9ubHlNb2RlRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1JlYWRvbmx5TW9kZURpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVXBzZWxsUXVvdGVXaXRob3V0Q2hhbmdlcygpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FjY291bnROb0NoYW5nZXNEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0FjY291bnRNb2RlICYmICF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FjY291bnROb0NoYW5nZXNEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQ2FydFJvdXRlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1F1b3RlT3V0c2lkZVNob3BwaW5nQ2FydERpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVJdGVtcyA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZ2V0U25hcHNob3QoKTtcblxuICAgIGlmICghbGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFbXB0eUNhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmVRdW90ZSQoKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1F1b3RlTW9kZSAmJiAhdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UmVhZG9ubHlRdW90ZVN1Ym1pdEZhaWx1cmVEaWFsb2coKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Vwc2VsbFF1b3RlV2l0aG91dENoYW5nZXMoKSkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50Tm9DaGFuZ2VzRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBY2NvdW50TW9kZSkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50U3VibWl0RmFpbHVyZURpYWxvZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNDYXJ0Um91dGUpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93T3V0c2lkZVNob3BwaW5nQ2FydFF1b3RlU3VibWl0RmFpbHVyZURpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1N1Ym1pdEluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgLnN1Ym1pdFF1b3RlKHF1b3RlRHJhZnQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh7IHF1b3RlSWQgfSkgPT4ge1xuICAgICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmJhY2socXVvdGVJZCk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU3VibWl0SW5Qcm9ncmVzcyQubmV4dChmYWxzZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RQcmljZUxpc3QocHJpY2VMaXN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UudXBkYXRlQWN0aXZlUHJpY2VMaXN0KHByaWNlTGlzdElkKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDYXJ0T3ZlcmxheShjYXJ0OiBDYXJ0UHJldmlld0NvbXBvbmVudCwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZG9ubHlNb2RlKCkpIHtcbiAgICAgIGNhcnQ/Lm92ZXJsYXlQYW5lbC50b2dnbGUoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVF1b3RlJChzdGF5T25QYWdlID0gZmFsc2UpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Rm9yQWN0aXZlUHJpY2VMaXN0O1xuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmVJblByb2dyZXNzJC5uZXh0KHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMucXVvdGVBcGlTZXJ2aWNlLnVwc2VydFF1b3RlKHF1b3RlRHJhZnQpLnBpcGUoXG4gICAgICB0YXAoKHsgcXVvdGVJZCB9KSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXN0YXlPblBhZ2UpIHtcbiAgICAgICAgICB0aGlzLmJhY2socXVvdGVJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc1NhdmVJblByb2dyZXNzJC5uZXh0KGZhbHNlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeU5hbWUkKG9iamVjdE5hbWU6IHN0cmluZywgaWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBvZignJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoUmVxdWVzdDogU2VhcmNoUmVxdWVzdCA9IHtcbiAgICAgIGNvdW50OiAxLFxuICAgICAgcmF3Q29uZGl0aW9uOiBgSWQgPSAnJHtpZH0nYCxcbiAgICAgIGZpZWxkczogWydOYW1lJ10sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnNmQXBpU2VydmljZS5xdWVyeTxhbnk+KHNlYXJjaFJlcXVlc3QsIG9iamVjdE5hbWUpLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdFswXT8uTmFtZSA/PyAnJyksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPYmplY3REZXRhaWxzJCgpOiBPYnNlcnZhYmxlPEhlYWRlck9iamVjdERldGFpbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldkN0eCwgY3VyckN0eCkgPT4gcHJldkN0eC5wcm9wZXJ0aWVzLklkID09PSBjdXJyQ3R4LnByb3BlcnRpZXMuSWQpLFxuICAgICAgbWFwKGN0eCA9PiB7XG4gICAgICAgIGNvbnN0IGlzQWNjb3VudE1vZGUgPSBjdHgubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQ7XG4gICAgICAgIGNvbnN0IGlzUXVvdGVNb2RlID0gY3R4Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFjY291bnRJZDogaXNBY2NvdW50TW9kZSA/IGN0eC5wcm9wZXJ0aWVzLklkIDogY3R4LnByb3BlcnRpZXMuQWNjb3VudElkLFxuICAgICAgICAgIG9wcG9ydHVuaXR5SWQ6IGN0eC5wcm9wZXJ0aWVzLk9wcG9ydHVuaXR5SWQsXG4gICAgICAgICAgcXVvdGVJZDogaXNRdW90ZU1vZGUgPyBjdHgucHJvcGVydGllcy5JZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdW90ZU5hbWU6IGlzUXVvdGVNb2RlID8gY3R4LnByb3BlcnRpZXMuTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdW90ZU51bWJlcjogaXNRdW90ZU1vZGUgPyBjdHgucHJvcGVydGllcy5RdW90ZU51bWJlcj8ucmVwbGFjZSgvXjArLywgJycpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoZGV0YWlscyA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICBvZihkZXRhaWxzKSxcbiAgICAgICAgICB0aGlzLnF1ZXJ5TmFtZSQoJ0FjY291bnQnLCBkZXRhaWxzLmFjY291bnRJZCksXG4gICAgICAgICAgdGhpcy5xdWVyeU5hbWUkKCdPcHBvcnR1bml0eScsIGRldGFpbHMub3Bwb3J0dW5pdHlJZCksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIG1hcCgoW2RldGFpbHMsIGFjY291bnROYW1lLCBvcHBvcnR1bml0eU5hbWVdKSA9PiAoeyAuLi5kZXRhaWxzLCBhY2NvdW50TmFtZSwgb3Bwb3J0dW5pdHlOYW1lIH0pKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNZXRyaWModmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAodmFsdWUgPyBOdW1iZXIodmFsdWUpIDogMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9kdWN0cyhsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBIZWFkZXJQcm9kdWN0W10ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgbm93ID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdGVybVBhcmVudElkcyA9IGxpbmVJdGVtcy5tYXAobGkgPT4gbGkucmFtcEluc3RhbmNlSWQpLmZpbHRlcihCb29sZWFuKTtcblxuICAgIHJldHVybiBsaW5lSXRlbXMucmVkdWNlKChyZXN1bHQ6IEhlYWRlclByb2R1Y3RbXSwgbGkpID0+IHtcbiAgICAgIC8vIGZpbmQgbWFpbiB0ZXJtIGxpbmUgaXRlbVxuICAgICAgaWYgKGxpLnJhbXBJbnN0YW5jZUlkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgY3VycmVudCB0ZXJtIGxpbmUgaXRlbVxuICAgICAgbGV0IHRhcmdldDogTGluZUl0ZW0gfCB1bmRlZmluZWQgPSBsaTtcbiAgICAgIHdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0LmVuZERhdGUgJiYgbmV3IERhdGUodGFyZ2V0LmVuZERhdGUpLmdldFRpbWUoKSA8PSBub3cpIHtcbiAgICAgICAgdGFyZ2V0ID0gbGluZUl0ZW1zLmZpbmQoc3ViID0+IHN1Yi5yYW1wSW5zdGFuY2VJZCA9PT0gbGkuaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5wcm9kdWN0SWQpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IHRhcmdldC5pZCxcbiAgICAgICAgICAgIHByb2R1Y3RJZDogdGFyZ2V0LnByb2R1Y3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHRhcmdldC5uYW1lLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0YXJnZXQucHJvcGVydGllc1snI2NvbmZpZ3VyYWJsZSddID09PSAndHJ1ZScsXG4gICAgICAgICAgICBkZWxldGVkOiB0YXJnZXQuYWN0aW9uQ29kZSA9PT0gJ0RFTEVURScsXG4gICAgICAgICAgICBoYXNUZXJtOiB0ZXJtUGFyZW50SWRzLmluY2x1ZGVzKHRhcmdldC5pZCksXG4gICAgICAgICAgICBxdHk6IHRhcmdldC5xdHksXG4gICAgICAgICAgICBtcnI6IHRoaXMuZm9ybWF0TWV0cmljKHRhcmdldC5wcm9wZXJ0aWVzLlZETV9Ub3RhbF9NUlIpLFxuICAgICAgICAgICAgbnJyOiB0aGlzLmZvcm1hdE1ldHJpYyh0YXJnZXQucHJvcGVydGllcy5WRE1fVG90YWxfTlJSKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFkb25seU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UICYmXG4gICAgICAhdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Vwc2VsbFF1b3RlV2l0aG91dENoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuYWN0aXZlQ3VycmVudFN0YXRlLmV2ZXJ5KGxpbmVJdGVtID0+IGxpbmVJdGVtLmFjdGlvbkNvZGUgPT09ICdFWElTVCcpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dFByb3BlcnRpZXMkIHwgYXN5bmMgYXMgY29udGV4dFByb3BlcnRpZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9iamVjdERldGFpbHMkIHwgYXN5bmMgYXMgZGV0YWlsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbG93LWluZm9cIj5cbiAgICAgIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBuYXYtYmFja1wiIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJuYXYtaWNvbiB2bC1pY29uIHZsLWljb24tYXJyb3ctbGVmdFwiPjwvaT5cblxuICAgICAgICA8c3Bhbj4gQmFjayB0byB7eyBvYmplY3ROYW1lJCB8IGFzeW5jIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgPC9uYXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjY291bnRNb2RlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgICAgICA8bmF2IGNsYXNzPVwiYWNjb3VudC1uYW1lXCIgW3BUb29sdGlwXT1cImNvbnRleHRQcm9wZXJ0aWVzLk5hbWUgPz8gJydcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbc2hvd0RlbGF5XT1cIjEwMDBcIj5cbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhjb250ZXh0UHJvcGVydGllcy5JZClcIj57eyBjb250ZXh0UHJvcGVydGllcy5OYW1lIH19PC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNRdW90ZU1vZGUkIHwgYXN5bmNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3Qtc2VwYXJhdG9yXCI+PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuPlF1b3RlICN7eyBkZXRhaWxzLnF1b3RlTnVtYmVyIH19PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgICAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgc3RhdHVzJCB8IGFzeW5jIH19PC9zcGFuPlxuXG4gICAgICAgICAgPGkgKm5nSWY9XCIhcXVvdGVEZXRhaWxzLm92ZXJsYXlWaXNpYmxlXCIgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2hldnJvbi1kb3duIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgICAgPGkgKm5nSWY9XCJxdW90ZURldGFpbHMub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgIDwvbmF2PlxuXG4gICAgICAgIDxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwibmF2aWdhdGlvbi1zZXR0aW5ncy1vdmVybGF5IGZsb3ctaGVhZGVyLW92ZXJsYXkgY2VudGVyXCIgI3F1b3RlRGV0YWlscz5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5RdW90ZSBJbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cInF1b3RlRGV0YWlscy5oaWRlKClcIj48L2k+XG4gICAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaW5mby1saXN0XCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiaW5mby1saXN0X19yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPkFjY291bnQgTmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLmFjY291bnRJZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZGV0YWlscy5hY2NvdW50TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImluZm8tbGlzdF9fcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5PcHBvcnR1bml0eSBOYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIFtocmVmXT1cImdldFNhbGVzZm9yY2VPYmplY3RMaW5rKGRldGFpbHMub3Bwb3J0dW5pdHlJZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZGV0YWlscy5vcHBvcnR1bml0eU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+UXVvdGUgTmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLnF1b3RlSWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGRldGFpbHMucXVvdGVOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3Atb3ZlcmxheVBhbmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1uYXZpZ2F0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICp2bExldD1cImlzUmVhZG9ubHlNb2RlJCB8IGFzeW5jIGFzIGlzUmVhZG9ubHlNb2RlXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogKGlzQ2F0YWxvZ1JvdXRlJCB8IGFzeW5jKSwgZGlzYWJsZWQ6IGlzUmVhZG9ubHlNb2RlIH1cIlxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvQ2F0YWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENhdGFsb2dcbiAgICAgICAgPC9uYXY+XG4gICAgICAgIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpc0NvbmZpZ3VyYXRpb25Sb3V0ZSQgfCBhc3luYyB9XCI+Q29uZmlndXJhdG9yPC9uYXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwicHJvZHVjdHMkIHwgYXN5bmMgYXMgcHJvZHVjdHNcIj5cbiAgICAgICAgICA8bmF2XG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiAoaXNDYXJ0Um91dGUkIHwgYXN5bmMpLCBkaXNhYmxlZDogaXNSZWFkb25seU1vZGUgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTaG9wcGluZyBDYXJ0ICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pXG4gICAgICAgICAgPC9uYXY+XG5cbiAgICAgICAgICA8bmF2XG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1wb3BvdmVyLXRvZ2dsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogKGlzQ2FydFJvdXRlJCB8IGFzeW5jKSwgZGlzYWJsZWQ6IGlzUmVhZG9ubHlNb2RlIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhcnRPdmVybGF5KGNhcnQsICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiIWNhcnQ/Lm92ZXJsYXlQYW5lbD8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLWRvd24gaWNvbi13aXRoLW1hcmdpblwiPjwvaT5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FydD8ub3ZlcmxheVBhbmVsPy5vdmVybGF5VmlzaWJsZVwiIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNoZXZyb24tdXAgaWNvbi13aXRoLW1hcmdpblwiPjwvaT5cbiAgICAgICAgICA8L25hdj5cblxuICAgICAgICAgIDx2bC1jYXJ0LXByZXZpZXcgI2NhcnQgW3Byb2R1Y3RzXT1cInByb2R1Y3RzXCI+PC92bC1jYXJ0LXByZXZpZXc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1jb250cm9sc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc1JlYWRvbmx5TW9kZSQgfCBhc3luYykgPT09IGZhbHNlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiYWN0aXZlUHJpY2VMaXN0JCB8IGFzeW5jIGFzIHByaWNlTGlzdFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICp2bExldD1cImFzc2V0UHJpY2VMaXN0cyQgfCBhc3luYyBhcyBhc3NldFByaWNlTGlzdHNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0FjY291bnRNb2RlJCB8IGFzeW5jKSAmJiBhc3NldFByaWNlTGlzdHMubGVuZ3RoID4gMTsgZWxzZSBzaW5nbGVQcmljZUxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicHJpY2VMaXN0c092ZXJsYXk/LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcmljZUxpc3Q/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFwcmljZUxpc3RzT3ZlcmxheT8ub3ZlcmxheVZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLWRvd24gaWNvbi13aXRoLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJwcmljZUxpc3RzT3ZlcmxheT8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG5cbiAgICAgICAgICAgICAgICA8cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cInByaWNlLWxpc3Qtb3ZlcmxheVwiICNwcmljZUxpc3RzT3ZlcmxheT5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhc3NldFByaWNlTGlzdHNcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpY2UtbGlzdC1vcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicHJpY2VMaXN0Py5pZCA9PT0gb3B0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJpY2VMaXN0KG9wdGlvbi5pZCk7IHByaWNlTGlzdHNPdmVybGF5LmhpZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvcC1vdmVybGF5UGFuZWw+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlUHJpY2VMaXN0PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHByaWNlTGlzdD8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRleHRQcm9wZXJ0aWVzLlN0YXJ0RGF0ZVwiPnt7IGNvbnRleHRQcm9wZXJ0aWVzLlN0YXJ0RGF0ZSB8IGRhdGU6ICdNTS5kZC55eXl5JyB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dmwtbWV0cmljcz48L3ZsLW1ldHJpY3M+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiaXNDYXJ0Um91dGUkIHwgYXN5bmMgYXMgaXNDYXJ0Um91dGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc1JlYWRvbmx5TW9kZSQgfCBhc3luYyBhcyBpc1JlYWRvbmx5TW9kZVwiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJkb2MtZ2VuLWJ1dHRvblwiXG4gICAgICAgICAgICBpY29uPVwidmwtaWNvbiB2bC1pY29uLWRvYy1nZW5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHlNb2RlXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImRvY0dlbkJ1dHRvbkNsaWNrSGFuZGxlcihpc0NhcnRSb3V0ZSlcIlxuICAgICAgICAgID48L3AtYnV0dG9uPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc1NhdmVJblByb2dyZXNzJCB8IGFzeW5jIGFzIGlzU2F2ZUluUHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiaXNTdWJtaXRJblByb2dyZXNzJCB8IGFzeW5jIGFzIGlzU3VibWl0SW5Qcm9ncmVzc1wiPlxuICAgICAgICAgICAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzU2F2ZUluUHJvZ3Jlc3MgJiYgIWlzU3VibWl0SW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJTYXZlIHRvIFF1b3RlXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJzYXZlQnV0dG9uQ2xpY2tIYW5kbGVyKGlzQ2FydFJvdXRlKVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImdldFNwbGl0QnV0dG9uQWN0aW9ucyhpc0NhcnRSb3V0ZSlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5TW9kZVwiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3Atc3BsaXRCdXR0b24+XG5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1NhdmVJblByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiU2F2aW5nXCJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlN1Ym1pdHRpbmdcIlxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQ0wsd0JBQXdCLEdBTXpCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsR0FBRyxFQUNILElBQUksRUFFSixFQUFFLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBY2QsTUFBTSxPQUFPLG1CQUFtQjtJQW9COUIsWUFDVSxjQUE4QixFQUM5QixpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsWUFBa0MsRUFDbEMsaUJBQTJDLEVBQzNDLGFBQWdDLEVBQ2hDLGFBQWdDLEVBQ2hDLGdCQUFrQztRQVBsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNo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RCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU8sY0FBYzs7UUFDcEIsT0FBTyxDQUNMLENBQUEsTUFBQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksTUFBSyx3QkFBd0IsQ0FBQyxPQUFPO1lBQy9GLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkI7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDL0csTUFBTSxvQkFBb0IsR0FDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7UUFFOUcsT0FBTyxTQUFTLElBQUksb0JBQW9CLENBQUM7SUFDM0MsQ0FBQzs7aUhBclhVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHNEQzFDaEMscWtQQXNMQTs0RkQ1SWEsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVvdGVBcGlTZXJ2aWNlLCBTYWxlc2ZvcmNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSxcbiAgQ29udGV4dFByb3BlcnRpZXMsXG4gIExpbmVJdGVtLFxuICBQcmljZUxpc3QsXG4gIFNlYXJjaFJlcXVlc3QsXG4gIFZsV2luZG93LFxufSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25TdGF0ZSwgT3BlbkRvY0dlbkFjdGlvbiB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2Ntcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBmaXJzdCxcbiAgbWFwLFxuICBub29wLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbG93RGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhcnRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LW92ZXJsYXkvY2FydC1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJPYmplY3REZXRhaWxzLCBIZWFkZXJQcm9kdWN0IH0gZnJvbSAnLi9oZWFkZXIudHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWZsb3ctaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd0hlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIG9iamVjdE5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHB1YmxpYyBjb250ZXh0UHJvcGVydGllcyQ6IE9ic2VydmFibGU8Q29udGV4dFByb3BlcnRpZXM+O1xuICBwdWJsaWMgYWN0aXZlUHJpY2VMaXN0JDogT2JzZXJ2YWJsZTxQcmljZUxpc3QgfCBudWxsPjtcbiAgcHVibGljIGlzUmVhZG9ubHlNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIHN0YXR1cyQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIG9iamVjdERldGFpbHMkOiBPYnNlcnZhYmxlPEhlYWRlck9iamVjdERldGFpbHM+O1xuICBwdWJsaWMgcHJvZHVjdHMkOiBPYnNlcnZhYmxlPEhlYWRlclByb2R1Y3RbXT47XG4gIHB1YmxpYyBpc0NvbmZpZ3VyYXRpb25Sb3V0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc0NhcnRSb3V0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc0NhdGFsb2dSb3V0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyBpc0VkaXRNb2RlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIGlzU2F2ZUluUHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBpc1N1Ym1pdEluUHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIGFzc2V0UHJpY2VMaXN0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByaWNlTGlzdFtdPihbXSk7XG5cbiAgcHJpdmF0ZSBtb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJhdGlvbkNvbnRleHRNb2RlPihDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuVEVTVCk7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZUFwaVNlcnZpY2U6IFF1b3RlQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHNmQXBpU2VydmljZTogU2FsZXNmb3JjZUFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmbG93Q29uZmlndXJhdGlvbjogRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyU2VydmljZTogRmxvd1JvdXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBGbG93RGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIGludGVncmF0aW9uU3RhdGU6IEludGVncmF0aW9uU3RhdGUsXG4gICkge1xuICAgIHRoaXMuY29udGV4dFByb3BlcnRpZXMkID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpLnBpcGUobWFwKGN0eCA9PiBjdHgucHJvcGVydGllcykpO1xuICAgIHRoaXMub2JqZWN0TmFtZSQgPSB0aGlzLm1vZGUkLnBpcGUobWFwKG1vZGUgPT4gbW9kZT8udG9Mb2NhbGVMb3dlckNhc2UoKSA/PyAnJykpO1xuXG4gICAgdGhpcy5hY3RpdmVQcmljZUxpc3QkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVQcmljZUxpc3QkO1xuICAgIHRoaXMuaXNSZWFkb25seU1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHMkLnBpcGUobWFwKCgpID0+IHRoaXMuaXNSZWFkb25seU1vZGUoKSkpO1xuICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSQoKS5waXBlKG1hcChjb250ZXh0ID0+IGNvbnRleHQucHJvcGVydGllcy5TdGF0dXMgPz8gJycpKTtcbiAgICB0aGlzLmlzRWRpdE1vZGUkID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlJCgpO1xuICAgIHRoaXMucHJvZHVjdHMkID0gdGhpcy5mbG93Q29uZmlndXJhdGlvbi5nZXQoKS5waXBlKG1hcChsaW5lSXRlbXMgPT4gdGhpcy5nZW5lcmF0ZVByb2R1Y3RzKGxpbmVJdGVtcykpKTtcbiAgICB0aGlzLmlzQ29uZmlndXJhdGlvblJvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NvbmZpZ3VyYXRpb25Sb3V0ZSQoKTtcbiAgICB0aGlzLmlzQ2FydFJvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NhcnRSb3V0ZSQoKTtcbiAgICB0aGlzLmlzQ2F0YWxvZ1JvdXRlJCA9IHRoaXMucm91dGVyU2VydmljZS5pc0NhdGFsb2dSb3V0ZSQoKTtcbiAgICB0aGlzLm9iamVjdERldGFpbHMkID0gdGhpcy5nZXRPYmplY3REZXRhaWxzJCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2VcbiAgICAgIC5yZXNvbHZlJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMubW9kZSQubmV4dChjdHgubW9kZSkpO1xuXG4gICAgLy8gdXBkYXRlIGFzc2V0UHJpY2VMaXN0cyBvbiBxdW90ZURyYWZ0IGNoYW5nZSBpbiBBQ0NPVU5UIG1vZGVcbiAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzQWNjb3VudE1vZGUpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFzc2V0UHJpY2VMaXN0cyQubmV4dCh0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFzc2V0UHJpY2VMaXN0cykpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQWNjb3VudE1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQudmFsdWUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1F1b3RlTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC52YWx1ZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLlFVT1RFO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0FjY291bnRNb2RlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC5waXBlKG1hcChtb2RlID0+IG1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUXVvdGVNb2RlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC5waXBlKG1hcChtb2RlID0+IG1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URSkpO1xuICB9XG5cbiAgcHVibGljIGdldFNwbGl0QnV0dG9uQWN0aW9ucyhpc0NhcnRSb3V0ZTogYm9vbGVhbik6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnU2F2ZSB0byBRdW90ZScsXG4gICAgICAgIGNvbW1hbmQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGUpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdTdWJtaXQgRm9yIEFwcHJvdmFsJyxcbiAgICAgICAgY29tbWFuZDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0QnV0dG9uQ2xpY2tIYW5kbGVyKGlzQ2FydFJvdXRlKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrKG9iamVjdElkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBvYmplY3RJZCA/PyB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKS5wcm9wZXJ0aWVzLklkO1xuXG4gICAgaWYgKHRhcmdldElkKSB7XG4gICAgICB3aW5kb3cuVkVMT19CQUNLX0ZOLmFwcGx5KG51bGwsIFt0YXJnZXRJZF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhvYmplY3RJZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmplY3RJZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS8ke29iamVjdElkfWA7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZWFkb25seU1vZGUoKSkge1xuICAgICAgdGhpcy5yb3V0ZXJTZXJ2aWNlLm5hdmlnYXRlVG9TaG9wcGluZ0NhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb0NhdGFsb2coKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZG9ubHlNb2RlKCkpIHtcbiAgICAgIHRoaXMucm91dGVyU2VydmljZS5uYXZpZ2F0ZVRvQ2F0YWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb2NHZW5CdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FjY291bnRNb2RlKSB7XG4gICAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50Tm9DaGFuZ2VzRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RvY2dlbkFjY291bnRVbnNhdmVkQ2hhbmdlc0RpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93RG9jZ2VuUmVhZG9ubHlEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQ2FydFJvdXRlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RvY2dlbk91dHNpZGVTaG9wcGluZ0NhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2hvdWxkT3BlbiQgPSBvZih0cnVlKTtcblxuICAgIGlmICh0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICBzaG91bGRPcGVuJCA9IHRoaXMuZGlhbG9nU2VydmljZS5zaG93RG9jZ2VuVW5zYXZlZENoYW5nZXNEaWFsb2coKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29uZmlybWVkID0+IHtcbiAgICAgICAgICBpZiAoIWNvbmZpcm1lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZVF1b3RlJCh0cnVlKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG91bGRPcGVuJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIHRhcChzaG91bGRPcGVuID0+IHNob3VsZE9wZW4gJiYgdGhpcy5pbnRlZ3JhdGlvblN0YXRlLmRpc3BhdGNoKE9wZW5Eb2NHZW5BY3Rpb24oKSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNFZGl0TW9kZSgpKSB7XG4gICAgICBpZiAodGhpcy5pc1F1b3RlTW9kZSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1F1b3RlUmVhZG9ubHlNb2RlRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1JlYWRvbmx5TW9kZURpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVXBzZWxsUXVvdGVXaXRob3V0Q2hhbmdlcygpKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FjY291bnROb0NoYW5nZXNEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0FjY291bnRNb2RlICYmICF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0FjY291bnROb0NoYW5nZXNEaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQ2FydFJvdXRlKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1F1b3RlT3V0c2lkZVNob3BwaW5nQ2FydERpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbmVJdGVtcyA9IHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uZ2V0U25hcHNob3QoKTtcblxuICAgIGlmICghbGluZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFbXB0eUNhcnREaWFsb2coKS5zdWJzY3JpYmUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmVRdW90ZSQoKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRCdXR0b25DbGlja0hhbmRsZXIoaXNDYXJ0Um91dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1F1b3RlTW9kZSAmJiAhdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0VkaXRNb2RlKCkpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93UmVhZG9ubHlRdW90ZVN1Ym1pdEZhaWx1cmVEaWFsb2coKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1Vwc2VsbFF1b3RlV2l0aG91dENoYW5nZXMoKSkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50Tm9DaGFuZ2VzRGlhbG9nKCkuc3Vic2NyaWJlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBY2NvdW50TW9kZSkge1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dBY2NvdW50U3VibWl0RmFpbHVyZURpYWxvZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNDYXJ0Um91dGUpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93T3V0c2lkZVNob3BwaW5nQ2FydFF1b3RlU3VibWl0RmFpbHVyZURpYWxvZygpLnN1YnNjcmliZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgaWYgKCFxdW90ZURyYWZ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1N1Ym1pdEluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLnF1b3RlQXBpU2VydmljZVxuICAgICAgLnN1Ym1pdFF1b3RlKHF1b3RlRHJhZnQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh7IHF1b3RlSWQgfSkgPT4ge1xuICAgICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmJhY2socXVvdGVJZCk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU3VibWl0SW5Qcm9ncmVzcyQubmV4dChmYWxzZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RQcmljZUxpc3QocHJpY2VMaXN0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UudXBkYXRlQWN0aXZlUHJpY2VMaXN0KHByaWNlTGlzdElkKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDYXJ0T3ZlcmxheShjYXJ0OiBDYXJ0UHJldmlld0NvbXBvbmVudCwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZG9ubHlNb2RlKCkpIHtcbiAgICAgIGNhcnQ/Lm92ZXJsYXlQYW5lbC50b2dnbGUoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVF1b3RlJChzdGF5T25QYWdlID0gZmFsc2UpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Rm9yQWN0aXZlUHJpY2VMaXN0O1xuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1NhdmVJblByb2dyZXNzJC5uZXh0KHRydWUpO1xuXG4gICAgcmV0dXJuIHRoaXMucXVvdGVBcGlTZXJ2aWNlLnVwc2VydFF1b3RlKHF1b3RlRHJhZnQpLnBpcGUoXG4gICAgICB0YXAoKHsgcXVvdGVJZCB9KSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoIXN0YXlPblBhZ2UpIHtcbiAgICAgICAgICB0aGlzLmJhY2socXVvdGVJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc1NhdmVJblByb2dyZXNzJC5uZXh0KGZhbHNlKSksXG4gICAgICBtYXAobm9vcCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeU5hbWUkKG9iamVjdE5hbWU6IHN0cmluZywgaWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBvZignJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoUmVxdWVzdDogU2VhcmNoUmVxdWVzdCA9IHtcbiAgICAgIGNvdW50OiAxLFxuICAgICAgcmF3Q29uZGl0aW9uOiBgSWQgPSAnJHtpZH0nYCxcbiAgICAgIGZpZWxkczogWydOYW1lJ10sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnNmQXBpU2VydmljZS5xdWVyeTxhbnk+KHNlYXJjaFJlcXVlc3QsIG9iamVjdE5hbWUpLnBpcGUoXG4gICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdFswXT8uTmFtZSA/PyAnJyksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPYmplY3REZXRhaWxzJCgpOiBPYnNlcnZhYmxlPEhlYWRlck9iamVjdERldGFpbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldkN0eCwgY3VyckN0eCkgPT4gcHJldkN0eC5wcm9wZXJ0aWVzLklkID09PSBjdXJyQ3R4LnByb3BlcnRpZXMuSWQpLFxuICAgICAgbWFwKGN0eCA9PiB7XG4gICAgICAgIGNvbnN0IGlzQWNjb3VudE1vZGUgPSBjdHgubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQ7XG4gICAgICAgIGNvbnN0IGlzUXVvdGVNb2RlID0gY3R4Lm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5RVU9URTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFjY291bnRJZDogaXNBY2NvdW50TW9kZSA/IGN0eC5wcm9wZXJ0aWVzLklkIDogY3R4LnByb3BlcnRpZXMuQWNjb3VudElkLFxuICAgICAgICAgIG9wcG9ydHVuaXR5SWQ6IGN0eC5wcm9wZXJ0aWVzLk9wcG9ydHVuaXR5SWQsXG4gICAgICAgICAgcXVvdGVJZDogaXNRdW90ZU1vZGUgPyBjdHgucHJvcGVydGllcy5JZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdW90ZU5hbWU6IGlzUXVvdGVNb2RlID8gY3R4LnByb3BlcnRpZXMuTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdW90ZU51bWJlcjogaXNRdW90ZU1vZGUgPyBjdHgucHJvcGVydGllcy5RdW90ZU51bWJlcj8ucmVwbGFjZSgvXjArLywgJycpIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoZGV0YWlscyA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICBvZihkZXRhaWxzKSxcbiAgICAgICAgICB0aGlzLnF1ZXJ5TmFtZSQoJ0FjY291bnQnLCBkZXRhaWxzLmFjY291bnRJZCksXG4gICAgICAgICAgdGhpcy5xdWVyeU5hbWUkKCdPcHBvcnR1bml0eScsIGRldGFpbHMub3Bwb3J0dW5pdHlJZCksXG4gICAgICAgIF0pLFxuICAgICAgKSxcbiAgICAgIG1hcCgoW2RldGFpbHMsIGFjY291bnROYW1lLCBvcHBvcnR1bml0eU5hbWVdKSA9PiAoeyAuLi5kZXRhaWxzLCBhY2NvdW50TmFtZSwgb3Bwb3J0dW5pdHlOYW1lIH0pKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRNZXRyaWModmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAodmFsdWUgPyBOdW1iZXIodmFsdWUpIDogMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9kdWN0cyhsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBIZWFkZXJQcm9kdWN0W10ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgY29uc3Qgbm93ID0gZGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdGVybVBhcmVudElkcyA9IGxpbmVJdGVtcy5tYXAobGkgPT4gbGkucmFtcEluc3RhbmNlSWQpLmZpbHRlcihCb29sZWFuKTtcblxuICAgIHJldHVybiBsaW5lSXRlbXMucmVkdWNlKChyZXN1bHQ6IEhlYWRlclByb2R1Y3RbXSwgbGkpID0+IHtcbiAgICAgIC8vIGZpbmQgbWFpbiB0ZXJtIGxpbmUgaXRlbVxuICAgICAgaWYgKGxpLnJhbXBJbnN0YW5jZUlkKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGZpbmQgY3VycmVudCB0ZXJtIGxpbmUgaXRlbVxuICAgICAgbGV0IHRhcmdldDogTGluZUl0ZW0gfCB1bmRlZmluZWQgPSBsaTtcbiAgICAgIHdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0LmVuZERhdGUgJiYgbmV3IERhdGUodGFyZ2V0LmVuZERhdGUpLmdldFRpbWUoKSA8PSBub3cpIHtcbiAgICAgICAgdGFyZ2V0ID0gbGluZUl0ZW1zLmZpbmQoc3ViID0+IHN1Yi5yYW1wSW5zdGFuY2VJZCA9PT0gbGkuaWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFyZ2V0ICYmIHRhcmdldC5wcm9kdWN0SWQpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IHRhcmdldC5pZCxcbiAgICAgICAgICAgIHByb2R1Y3RJZDogdGFyZ2V0LnByb2R1Y3RJZCxcbiAgICAgICAgICAgIG5hbWU6IHRhcmdldC5uYW1lLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0YXJnZXQucHJvcGVydGllc1snI2NvbmZpZ3VyYWJsZSddID09PSAndHJ1ZScsXG4gICAgICAgICAgICBkZWxldGVkOiB0YXJnZXQuYWN0aW9uQ29kZSA9PT0gJ0RFTEVURScsXG4gICAgICAgICAgICBoYXNUZXJtOiB0ZXJtUGFyZW50SWRzLmluY2x1ZGVzKHRhcmdldC5pZCksXG4gICAgICAgICAgICBxdHk6IHRhcmdldC5xdHksXG4gICAgICAgICAgICBtcnI6IHRoaXMuZm9ybWF0TWV0cmljKHRhcmdldC5wcm9wZXJ0aWVzLlZETV9Ub3RhbF9NUlIpLFxuICAgICAgICAgICAgbnJyOiB0aGlzLmZvcm1hdE1ldHJpYyh0YXJnZXQucHJvcGVydGllcy5WRE1fVG90YWxfTlJSKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFkb25seU1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY29udGV4dC5wcm9wZXJ0aWVzLm1vZGUgPT09IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZS5BQ0NPVU5UICYmXG4gICAgICAhdGhpcy5xdW90ZURyYWZ0U2VydmljZS5oYXNBc3NldHNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Vwc2VsbFF1b3RlV2l0aG91dENoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9VcGRhdGVzID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVDdXJyZW50U3RhdGUuZXZlcnkobGluZUl0ZW0gPT4gbGluZUl0ZW0uYWN0aW9uQ29kZSA9PT0gJ0VYSVNUJyk7XG4gICAgY29uc3Qgc2FtZU51bWJlck9mUHJvZHVjdHMgPVxuICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5nZXRJbml0aWFsQ3VycmVudFN0YXRlKCkubGVuZ3RoID09PSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZUN1cnJlbnRTdGF0ZS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbm9VcGRhdGVzICYmIHNhbWVOdW1iZXJPZlByb2R1Y3RzO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dFByb3BlcnRpZXMkIHwgYXN5bmMgYXMgY29udGV4dFByb3BlcnRpZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9iamVjdERldGFpbHMkIHwgYXN5bmMgYXMgZGV0YWlsc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbG93LWluZm9cIj5cbiAgICAgIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBuYXYtYmFja1wiIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJuYXYtaWNvbiB2bC1pY29uIHZsLWljb24tYXJyb3ctbGVmdFwiPjwvaT5cblxuICAgICAgICA8c3Bhbj4gQmFjayB0byB7eyBvYmplY3ROYW1lJCB8IGFzeW5jIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxuICAgICAgPC9uYXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjY291bnRNb2RlJCB8IGFzeW5jXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgICAgICA8bmF2IGNsYXNzPVwiYWNjb3VudC1uYW1lXCIgW3BUb29sdGlwXT1cImNvbnRleHRQcm9wZXJ0aWVzLk5hbWUgPz8gJydcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbc2hvd0RlbGF5XT1cIjEwMDBcIj5cbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhjb250ZXh0UHJvcGVydGllcy5JZClcIj57eyBjb250ZXh0UHJvcGVydGllcy5OYW1lIH19PC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNRdW90ZU1vZGUkIHwgYXN5bmNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3Qtc2VwYXJhdG9yXCI+PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuPlF1b3RlICN7eyBkZXRhaWxzLnF1b3RlTnVtYmVyIH19PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90LXNlcGFyYXRvclwiPjwvc3Bhbj5cblxuICAgICAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicXVvdGVEZXRhaWxzLnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgc3RhdHVzJCB8IGFzeW5jIH19PC9zcGFuPlxuXG4gICAgICAgICAgPGkgKm5nSWY9XCIhcXVvdGVEZXRhaWxzLm92ZXJsYXlWaXNpYmxlXCIgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2hldnJvbi1kb3duIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgICAgPGkgKm5nSWY9XCJxdW90ZURldGFpbHMub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgIDwvbmF2PlxuXG4gICAgICAgIDxwLW92ZXJsYXlQYW5lbCBzdHlsZUNsYXNzPVwibmF2aWdhdGlvbi1zZXR0aW5ncy1vdmVybGF5IGZsb3ctaGVhZGVyLW92ZXJsYXkgY2VudGVyXCIgI3F1b3RlRGV0YWlscz5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb3ctaGVhZGVyLW92ZXJsYXlfX3dyYXBwZXJcIj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmxvdy1oZWFkZXItb3ZlcmxheV9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5RdW90ZSBJbmZvcm1hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZSBjbG9zZS1pY29uXCIgKGNsaWNrKT1cInF1b3RlRGV0YWlscy5oaWRlKClcIj48L2k+XG4gICAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaW5mby1saXN0XCI+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiaW5mby1saXN0X19yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPkFjY291bnQgTmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLmFjY291bnRJZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZGV0YWlscy5hY2NvdW50TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImluZm8tbGlzdF9fcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5PcHBvcnR1bml0eSBOYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIFtocmVmXT1cImdldFNhbGVzZm9yY2VPYmplY3RMaW5rKGRldGFpbHMub3Bwb3J0dW5pdHlJZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZGV0YWlscy5vcHBvcnR1bml0eU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJpbmZvLWxpc3RfX3Jvd1wiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+UXVvdGUgTmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRTYWxlc2ZvcmNlT2JqZWN0TGluayhkZXRhaWxzLnF1b3RlSWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGRldGFpbHMucXVvdGVOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3Atb3ZlcmxheVBhbmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1uYXZpZ2F0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICp2bExldD1cImlzUmVhZG9ubHlNb2RlJCB8IGFzeW5jIGFzIGlzUmVhZG9ubHlNb2RlXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogKGlzQ2F0YWxvZ1JvdXRlJCB8IGFzeW5jKSwgZGlzYWJsZWQ6IGlzUmVhZG9ubHlNb2RlIH1cIlxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvQ2F0YWxvZygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENhdGFsb2dcbiAgICAgICAgPC9uYXY+XG4gICAgICAgIDxuYXYgY2xhc3M9XCJuYXYtaXRlbSBkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpc0NvbmZpZ3VyYXRpb25Sb3V0ZSQgfCBhc3luYyB9XCI+Q29uZmlndXJhdG9yPC9uYXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwicHJvZHVjdHMkIHwgYXN5bmMgYXMgcHJvZHVjdHNcIj5cbiAgICAgICAgICA8bmF2XG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiAoaXNDYXJ0Um91dGUkIHwgYXN5bmMpLCBkaXNhYmxlZDogaXNSZWFkb25seU1vZGUgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1Nob3BwaW5nQ2FydCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTaG9wcGluZyBDYXJ0ICh7eyBwcm9kdWN0cy5sZW5ndGggfX0pXG4gICAgICAgICAgPC9uYXY+XG5cbiAgICAgICAgICA8bmF2XG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1wb3BvdmVyLXRvZ2dsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogKGlzQ2FydFJvdXRlJCB8IGFzeW5jKSwgZGlzYWJsZWQ6IGlzUmVhZG9ubHlNb2RlIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhcnRPdmVybGF5KGNhcnQsICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiIWNhcnQ/Lm92ZXJsYXlQYW5lbD8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLWRvd24gaWNvbi13aXRoLW1hcmdpblwiPjwvaT5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiY2FydD8ub3ZlcmxheVBhbmVsPy5vdmVybGF5VmlzaWJsZVwiIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNoZXZyb24tdXAgaWNvbi13aXRoLW1hcmdpblwiPjwvaT5cbiAgICAgICAgICA8L25hdj5cblxuICAgICAgICAgIDx2bC1jYXJ0LXByZXZpZXcgI2NhcnQgW3Byb2R1Y3RzXT1cInByb2R1Y3RzXCI+PC92bC1jYXJ0LXByZXZpZXc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxvdy1jb250cm9sc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc1JlYWRvbmx5TW9kZSQgfCBhc3luYykgPT09IGZhbHNlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiYWN0aXZlUHJpY2VMaXN0JCB8IGFzeW5jIGFzIHByaWNlTGlzdFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICp2bExldD1cImFzc2V0UHJpY2VMaXN0cyQgfCBhc3luYyBhcyBhc3NldFByaWNlTGlzdHNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc0FjY291bnRNb2RlJCB8IGFzeW5jKSAmJiBhc3NldFByaWNlTGlzdHMubGVuZ3RoID4gMTsgZWxzZSBzaW5nbGVQcmljZUxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmF2IGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwicHJpY2VMaXN0c092ZXJsYXk/LnRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcmljZUxpc3Q/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFwcmljZUxpc3RzT3ZlcmxheT8ub3ZlcmxheVZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLWRvd24gaWNvbi13aXRoLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJwcmljZUxpc3RzT3ZlcmxheT8ub3ZlcmxheVZpc2libGVcIiBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLXVwIGljb24td2l0aC1tYXJnaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG5cbiAgICAgICAgICAgICAgICA8cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cInByaWNlLWxpc3Qtb3ZlcmxheVwiICNwcmljZUxpc3RzT3ZlcmxheT5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhc3NldFByaWNlTGlzdHNcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJpY2UtbGlzdC1vcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicHJpY2VMaXN0Py5pZCA9PT0gb3B0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJpY2VMaXN0KG9wdGlvbi5pZCk7IHByaWNlTGlzdHNPdmVybGF5LmhpZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvcC1vdmVybGF5UGFuZWw+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlUHJpY2VMaXN0PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHByaWNlTGlzdD8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRleHRQcm9wZXJ0aWVzLlN0YXJ0RGF0ZVwiPnt7IGNvbnRleHRQcm9wZXJ0aWVzLlN0YXJ0RGF0ZSB8IGRhdGU6ICdNTS5kZC55eXl5JyB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dmwtbWV0cmljcz48L3ZsLW1ldHJpY3M+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiaXNDYXJ0Um91dGUkIHwgYXN5bmMgYXMgaXNDYXJ0Um91dGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc1JlYWRvbmx5TW9kZSQgfCBhc3luYyBhcyBpc1JlYWRvbmx5TW9kZVwiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJkb2MtZ2VuLWJ1dHRvblwiXG4gICAgICAgICAgICBpY29uPVwidmwtaWNvbiB2bC1pY29uLWRvYy1nZW5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHlNb2RlXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImRvY0dlbkJ1dHRvbkNsaWNrSGFuZGxlcihpc0NhcnRSb3V0ZSlcIlxuICAgICAgICAgID48L3AtYnV0dG9uPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqdmxMZXQ9XCJpc1NhdmVJblByb2dyZXNzJCB8IGFzeW5jIGFzIGlzU2F2ZUluUHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnZsTGV0PVwiaXNTdWJtaXRJblByb2dyZXNzJCB8IGFzeW5jIGFzIGlzU3VibWl0SW5Qcm9ncmVzc1wiPlxuICAgICAgICAgICAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzU2F2ZUluUHJvZ3Jlc3MgJiYgIWlzU3VibWl0SW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJTYXZlIHRvIFF1b3RlXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJzYXZlQnV0dG9uQ2xpY2tIYW5kbGVyKGlzQ2FydFJvdXRlKVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImdldFNwbGl0QnV0dG9uQWN0aW9ucyhpc0NhcnRSb3V0ZSlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5TW9kZVwiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3Atc3BsaXRCdXR0b24+XG5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1NhdmVJblByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiU2F2aW5nXCJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG5cbiAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlN1Ym1pdHRpbmdcIlxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
213
213
|
type: ViewChild,
|
214
214
|
args: [OverlayPanel]
|
215
215
|
}] } });
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvY29tcG9uZW50cy9oZWFkZXIvbWV0cmljcy9tZXRyaWNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9tZXRyaWNzL21ldHJpY3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHbEQsT0FBTyxFQUFFLFVBQVUsRUFBNEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakcsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzNCLDhCQUE4QixHQUMvQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVE1QixNQUFNLE9BQU8sZ0JBQWdCO0lBNkIzQixZQUNVLGdCQUFrQyxFQUNsQyxjQUE4QixF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SUFDekMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUF5QjtRQUN4QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7OEdBNU1VLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdHQUNoQixZQUFZLGdEQ3pCekIsd3NJQWlIQTs0RkR6RmEsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO29NQUUwQixZQUFZO3NCQUFwQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0FjdGlvbiwgSW50ZWdyYXRpb25TdGF0ZSwgTWV0cmljIH0gZnJvbSAnQHZlbG9jZS9zZGsvY21zJztcbmltcG9ydCB7IGRlZmF1bHRNZXRyaWNzLCBlZmZlY3RpdmVNZXRyaWNLZXlzLCBNRVRSSUNTX1NUT1JBR0VfS0VZIH0gZnJvbSAnLi9tZXRyaWNzLmRlZmluaXRpb25zJztcbmltcG9ydCB7XG4gIGludmFsaWRDaGFyYWN0ZXJzVmFsaWRhdG9yLFxuICByZXF1aXJlZFZhbGlkYXRvcixcbiAgcmVzZXJ2ZWRJZGVudGlmaWVyVmFsaWRhdG9yLFxuICBzdGFuZGFyZENoYXJTZXRXaXRoU3BhY2VSZWdFeHAsXG59IGZyb20gJ0B2ZWxvY2UvY29yZS9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLW1ldHJpY3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0cmljcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ldHJpY3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldHJpY3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvdmVybGF5UGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgcHVibGljIGVtcHR5U3RhdGVNZXRyaWNzID0gW1xuICAgIHsgbmFtZTogJ01SUicsIHZhbHVlOiAwIH0sXG4gICAgeyBuYW1lOiAnRS5NUlInLCB2YWx1ZTogMCB9LFxuICAgIHsgbmFtZTogJ05SUicsIHZhbHVlOiAwIH0sXG4gICAgeyBuYW1lOiAnRS5OUlInLCB2YWx1ZTogMCB9LFxuICBdO1xuICBwdWJsaWMgdmlzaWJsZVNlbGVjdGVkTWV0cmljczogTWV0cmljW10gPSBbXTtcbiAgcHVibGljIHJlc3RTZWxlY3RlZE1ldHJpY3M6IE1ldHJpY1tdID0gW107XG4gIHB1YmxpYyBtZXRyaWNzOiBNZXRyaWNbXSA9IFtdO1xuICBwdWJsaWMgZmlsdGVyZWRNZXRyaWNzOiBNZXRyaWNbXSA9IFtdO1xuICBwdWJsaWMgZWRpdGluZ01ldHJpYzogTWV0cmljIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgc2lkZWJhclZpc2libGUgPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaENvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgcHVibGljIG5hbWVDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1xuICAgIHJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIGludmFsaWRDaGFyYWN0ZXJzVmFsaWRhdG9yKHN0YW5kYXJkQ2hhclNldFdpdGhTcGFjZVJlZ0V4cCksXG4gICAgcmVzZXJ2ZWRJZGVudGlmaWVyVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDgwKSxcbiAgXSk7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0TWV0cmljczogTWV0cmljW10gPSBbXTtcbiAgcHJpdmF0ZSBzdG9yZWREZWZhdWx0TWV0cmljczogTWV0cmljW10gPSBbXTtcbiAgcHJpdmF0ZSBtZXRyaWNLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIGxhc3RTYXZlZE1ldHJpY3M6IE1ldHJpY1tdID0gW107XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnRlZ3JhdGlvblN0YXRlOiBJbnRlZ3JhdGlvblN0YXRlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcXVvdGVEcmFmdFNlcnZpY2U6IFF1b3RlRHJhZnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmN1cnJlbnRTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgICAgdGFwKGxpbmVJdGVtcyA9PiB7XG4gICAgICAgICAgdGhpcy5tZXRyaWNLZXlzID0gdGhpcy5jb2xsZWN0TWV0cmljS2V5cyhsaW5lSXRlbXMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICAgICAgICBpZiAoZWZmZWN0aXZlTWV0cmljS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGBFZmZlY3RpdmVfJHtrZXl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0sIFtdIGFzIHN0cmluZ1tdKTtcbiAgICAgICAgICB0aGlzLmNvbGxlY3RBdmFpbGFibGVNZXRyaWNzKCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5pbnRlZ3JhdGlvblN0YXRlXG4gICAgICAubGlzdGVuJChGbG93QWN0aW9uLlNFVF9ERUZBVUxUX01FVFJJQ1MpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh7IG1ldHJpY3MgfSkgPT4ge1xuICAgICAgICAgIGlmIChpc0VxdWFsKHRoaXMuc3RvcmVkRGVmYXVsdE1ldHJpY3MsIG1ldHJpY3MpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc3RvcmVkRGVmYXVsdE1ldHJpY3MgPSBtZXRyaWNzO1xuICAgICAgICAgIHRoaXMuY29sbGVjdEF2YWlsYWJsZU1ldHJpY3MoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLCBzdGFydFdpdGgoJycpKS5zdWJzY3JpYmUocXVlcnkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE1ldHJpY3MgPSB0aGlzLm1ldHJpY3MuZmlsdGVyKCh7IG5hbWUgfSkgPT4ge1xuICAgICAgICByZXR1cm4gKG5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnk/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlQYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VTaWRlYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLm1ldHJpY3MgPSBjbG9uZURlZXAodGhpcy5sYXN0U2F2ZWRNZXRyaWNzKTtcbiAgICB0aGlzLmVkaXRpbmdNZXRyaWMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXRyaWNWYWx1ZShrZXk6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnRWZmZWN0aXZlXycpKSB7XG4gICAgICBjb25zdCBjb3JyZWN0S2V5ID0ga2V5LnJlcGxhY2UoJ0VmZmVjdGl2ZV8nLCAnJyk7XG4gICAgICByZXR1cm4gdGhpcy50b051bWJlcihjb250ZXh0LnByb3BlcnRpZXNbY29ycmVjdEtleV0pIC0gdGhpcy50b051bWJlcihjb250ZXh0LnByb3BlcnRpZXNbYFByZXZpb3VzJHtjb3JyZWN0S2V5fWBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIoY29udGV4dC5wcm9wZXJ0aWVzW2tleV0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE1FVFJJQ1NfU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHRoaXMubWV0cmljcykpO1xuICAgIHRoaXMuc2V0TWV0cmljcygpO1xuICAgIHRoaXMubGFzdFNhdmVkTWV0cmljcyA9IGNsb25lRGVlcCh0aGlzLm1ldHJpY3MpO1xuICAgIHRoaXMuY2xvc2VTaWRlYmFyKCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlTWV0cmljT3JkZXIoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPik6IHZvaWQge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLm1ldHJpY3MsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5maWx0ZXJlZE1ldHJpY3MgPSB0aGlzLm1ldHJpY3M7XG4gIH1cblxuICBwdWJsaWMgZWRpdE1ldHJpYyhtZXRyaWM6IE1ldHJpYyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRpbmdNZXRyaWMgJiYgdGhpcy5uYW1lQ29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZWRpdGluZ01ldHJpYyA9IG1ldHJpYztcbiAgICB0aGlzLm5hbWVDb250cm9sLnNldFZhbHVlKG1ldHJpYy5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlTWV0cmljKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hbWVDb250cm9sLmludmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZWRpdGluZ01ldHJpYykge1xuICAgICAgdGhpcy5lZGl0aW5nTWV0cmljLm5hbWUgPSB0aGlzLm5hbWVDb250cm9sLnZhbHVlPy50cmltKCk7XG4gICAgfVxuICAgIHRoaXMuZWRpdGluZ01ldHJpYyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFRvRGVmYXVsdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxlY3RBdmFpbGFibGVNZXRyaWNzKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsZWN0TWV0cmljS2V5cyhsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICBsaW5lSXRlbXMuZm9yRWFjaChsaW5lSXRlbSA9PiB7XG4gICAgICBrZXlzLnB1c2goLi4uT2JqZWN0LmtleXMobGluZUl0ZW0udG90YWxNZXRyaWNzIHx8IHt9KSk7XG4gICAgICBrZXlzLnB1c2goLi4udGhpcy5jb2xsZWN0TWV0cmljS2V5cyhsaW5lSXRlbS5saW5lSXRlbXMpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdW5pcShrZXlzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TWV0cmljcygpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRyaWNzID0gY2xvbmVEZWVwKHRoaXMubWV0cmljcy5maWx0ZXIoKHsgdmlzaWJsZSB9KSA9PiB2aXNpYmxlKSk7XG5cbiAgICB0aGlzLnZpc2libGVTZWxlY3RlZE1ldHJpY3MgPSBtZXRyaWNzLnNsaWNlKDAsIDQpO1xuICAgIHRoaXMucmVzdFNlbGVjdGVkTWV0cmljcyA9IG1ldHJpY3Muc2xpY2UoNCk7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RBdmFpbGFibGVNZXRyaWNzKHJlc2V0VG9EZWZhdWx0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLm1ldHJpY3MgPSBbXTtcbiAgICB0aGlzLmRlZmF1bHRNZXRyaWNzID0gdGhpcy5zdG9yZWREZWZhdWx0TWV0cmljcy5sZW5ndGggPyB0aGlzLnN0b3JlZERlZmF1bHRNZXRyaWNzIDogZGVmYXVsdE1ldHJpY3M7XG4gICAgY29uc3Qgc3RvcmVkTWV0cmljczogTWV0cmljW10gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKE1FVFJJQ1NfU1RPUkFHRV9LRVkpIHx8ICdbXScpO1xuICAgIGNvbnN0IG1ldHJpY0tleXMgPSBbLi4udGhpcy5tZXRyaWNLZXlzXTtcbiAgICBpZiAoIXN0b3JlZE1ldHJpY3MubGVuZ3RoIHx8IHJlc2V0VG9EZWZhdWx0KSB7XG4gICAgICB0aGlzLmRlZmF1bHRNZXRyaWNzLmZvckVhY2goZGVmYXVsdE1ldHJpYyA9PiB7XG4gICAgICAgIGNvbnN0IG1ldHJpY0tleUluZGV4ID0gbWV0cmljS2V5cy5maW5kSW5kZXgoa2V5ID0+IGtleSA9PT0gZGVmYXVsdE1ldHJpYy5rZXkpO1xuXG4gICAgICAgIGNvbnN0IHN0b3JlZE1ldHJpYyA9IHN0b3JlZE1ldHJpY3MuZmluZCgoeyBrZXkgfSkgPT4ga2V5ID09PSBkZWZhdWx0TWV0cmljLmtleSk7XG4gICAgICAgIGlmIChzdG9yZWRNZXRyaWMgJiYgIXJlc2V0VG9EZWZhdWx0KSB7XG4gICAgICAgICAgdGhpcy5tZXRyaWNzLnB1c2goc3RvcmVkTWV0cmljKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm1ldHJpY3MucHVzaChkZWZhdWx0TWV0cmljKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWV0cmljS2V5SW5kZXggPj0gMCkge1xuICAgICAgICAgIG1ldHJpY0tleXMuc3BsaWNlKG1ldHJpY0tleUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0cmljcyA9IFtcbiAgICAgICAgLi4uc3RvcmVkTWV0cmljcy5yZWR1Y2UoKHJlc3VsdCwgbWV0cmljKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWV0cmljS2V5SW5kZXggPSBtZXRyaWNLZXlzLmZpbmRJbmRleChrZXkgPT4ga2V5ID09PSBtZXRyaWMua2V5KTtcblxuICAgICAgICAgIGlmIChtZXRyaWNLZXlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBtZXRyaWNLZXlzLnNwbGljZShtZXRyaWNLZXlJbmRleCwgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIFsuLi5yZXN1bHQsIG1ldHJpY107XG4gICAgICAgIH0sIFtdIGFzIE1ldHJpY1tdKSxcbiAgICAgIF07XG4gICAgfVxuICAgIHRoaXMubWV0cmljcyA9IFtcbiAgICAgIC4uLnRoaXMubWV0cmljcyxcbiAgICAgIC4uLm1ldHJpY0tleXMubWFwKG1ldHJpY0tleSA9PiB7XG4gICAgICAgIHJldHVybiB7IGtleTogbWV0cmljS2V5LCBuYW1lOiB0aGlzLmdldE1ldHJpY05hbWUobWV0cmljS2V5KSwgdmlzaWJsZTogZmFsc2UgfTtcbiAgICAgIH0pLFxuICAgIF07XG4gICAgdGhpcy5tZXRyaWNzID0gY2xvbmVEZWVwKHRoaXMubWV0cmljcyk7XG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICBpZiAoIXJlc2V0VG9EZWZhdWx0KSB7XG4gICAgICB0aGlzLmxhc3RTYXZlZE1ldHJpY3MgPSBjbG9uZURlZXAodGhpcy5tZXRyaWNzKTtcbiAgICAgIHRoaXMuc2V0TWV0cmljcygpO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWV0cmljTmFtZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGtleS5yZXBsYWNlKC9WRE1ffFRvdGFsXy9nLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIHRvTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICAgIHJldHVybiArKHZhbHVlIHx8IDApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaGVhZGVyLW1ldHJpY3NcIiAoY2xpY2spPVwib3ZlcmxheVBhbmVsLnRvZ2dsZSgkZXZlbnQpXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IG1ldHJpYyBvZiB2aXNpYmxlU2VsZWN0ZWRNZXRyaWNzXCIgY2xhc3M9XCJtZXRyaWNcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIiBbYXR0ci50aXRsZV09XCJtZXRyaWMubmFtZVwiPnt7IG1ldHJpYy5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZmlsbGVyXCI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj4ke3sgZ2V0TWV0cmljVmFsdWUobWV0cmljLmtleSkgfCBudW1iZXI6ICcxLjItMicgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmlzaWJsZVNlbGVjdGVkTWV0cmljcy5sZW5ndGhcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXRyaWMgb2YgZW1wdHlTdGF0ZU1ldHJpY3NcIiBjbGFzcz1cIm1ldHJpYyBlbXB0eS1zdGF0ZS1tZXRyaWNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiIFthdHRyLnRpdGxlXT1cIm1ldHJpYy5uYW1lXCI+e3sgbWV0cmljLm5hbWUgfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj4ke3sgbWV0cmljLnZhbHVlIHwgbnVtYmVyOiAnMS4yLTInIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWxcbiAgc3R5bGVDbGFzcz1cIm1ldHJpY3Mtb3ZlcmxheS1jb250YWluZXIgY2VudGVyIG5vLXBhZGRpbmdcIlxuICBzaG93VHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuICBoaWRlVHJhbnNpdGlvbk9wdGlvbnM9XCIwbXNcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LW1ldHJpY3NcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1ldHJpYyBvZiByZXN0U2VsZWN0ZWRNZXRyaWNzXCIgY2xhc3M9XCJtZXRyaWNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCIgW2F0dHIudGl0bGVdPVwibWV0cmljLm5hbWVcIj57eyBtZXRyaWMubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxsZXJcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj4ke3sgZ2V0TWV0cmljVmFsdWUobWV0cmljLmtleSkgfCBudW1iZXI6ICcxLjItMicgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiY29uZmlnXCIgKGNsaWNrKT1cIm9wZW5TaWRlYmFyKClcIj5cbiAgICAgIE1ldHJpY3MgQ29uZmlnXG4gICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGV2cm9uLWRvd25cIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuXG48cC1zaWRlYmFyXG4gIFt2aXNpYmxlXT1cInNpZGViYXJWaXNpYmxlXCJcbiAgKHZpc2libGVDaGFuZ2UpPVwiY2xvc2VTaWRlYmFyKClcIlxuICBwb3NpdGlvbj1cInJpZ2h0XCJcbiAgW2Jhc2VaSW5kZXhdPVwiMTAwMFwiXG4gIFtzdHlsZV09XCJ7IHdpZHRoOiAnMzYwcHgnIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgUXVvdGUgTWV0cmljcyBDb25maWdcbiAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlU2lkZWJhcigpXCI+PC9pPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBkYXRhLXRlc3QtaWQ9XCJzZWFyY2hcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIG1ldHJpY+KAplwiXG4gICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNpZGViYXItbWV0cmljc1wiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiY2hhbmdlTWV0cmljT3JkZXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IG1ldHJpYyBvZiBmaWx0ZXJlZE1ldHJpY3NcIlxuICAgICAgICAgIGNsYXNzPVwic2lkZWJhci1tZXRyaWNcIlxuICAgICAgICAgIFtjbGFzcy5lZGl0XT1cIm1ldHJpYy5rZXkgPT09IGVkaXRpbmdNZXRyaWM/LmtleVwiXG4gICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiISFzZWFyY2hDb250cm9sLnZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLXJlb3JkZXJcIiBjZGtEcmFnSGFuZGxlPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJtZXRyaWNUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBtZXRyaWM6IG1ldHJpYyB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiICpuZ0lmPVwiIWZpbHRlcmVkTWV0cmljcy5sZW5ndGhcIj5UaGVyZSBhcmUgbm8gaXRlbXMgbWF0Y2hpbmcgeW91ciBzZWFyY2ggY3JpdGVyaWE8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICA8cC1idXR0b25cbiAgICAgICAgbGFiZWw9XCJSZXNldCB0byBkZWZhdWx0XCJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkIHAtYnV0dG9uLXNtXCJcbiAgICAgICAgKG9uQ2xpY2spPVwicmVzZXRUb0RlZmF1bHQoKVwiXG4gICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIlNhdmVcIiBzdHlsZUNsYXNzPVwicC1idXR0b24gcC1idXR0b24tZmlsbGVkIHAtYnV0dG9uLXNtXCIgKG9uQ2xpY2spPVwic2F2ZSgpXCI+PC9wLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3Atc2lkZWJhcj5cblxuPG5nLXRlbXBsYXRlICNtZXRyaWNUZW1wbGF0ZSBsZXQtbWV0cmljPVwibWV0cmljXCI+XG4gIDxkaXYgKm5nSWY9XCJlZGl0aW5nTWV0cmljPy5rZXkgIT09IG1ldHJpYy5rZXlcIiBjbGFzcz1cInByZXZpZXctc3RhdGVcIj5cbiAgICA8cC1jaGVja2JveFxuICAgICAgW25nTW9kZWxdPVwibWV0cmljLnZpc2libGVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibWV0cmljLnZpc2libGUgPSAhbWV0cmljLnZpc2libGVcIlxuICAgICAgW2JpbmFyeV09XCJ0cnVlXCJcbiAgICAgIGNoZWNrYm94SWNvbj1cInZsLWljb24gdmwtaWNvbi1jaGVja21hcmtcIlxuICAgID48L3AtY2hlY2tib3g+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+e3sgbWV0cmljLm5hbWUgfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImVkaXRpbmdNZXRyaWM/LmtleSA9PT0gbWV0cmljLmtleVwiIGNsYXNzPVwiZWRpdC1zdGF0ZVwiPlxuICAgIDxpbnB1dCBkYXRhLXRlc3QtaWQ9XCJuYW1lXCIgW2Zvcm1Db250cm9sXT1cIm5hbWVDb250cm9sXCIgcElucHV0VGV4dCBwbGFjZWhvbGRlcj1cIk1ldHJpYyBuYW1lXCIgY2xhc3M9XCJ3LWZ1bGxcIiAvPlxuICAgIDx2bC1lcnJvci10b29sdGlwIFt0b29sdGlwXT1cIm5hbWVDb250cm9sIHwgZXJyb3I6ICduYW1lJ1wiIFt2aXNpYmxlXT1cIiEhbmFtZUNvbnRyb2wuZXJyb3JzXCI+PC92bC1lcnJvci10b29sdGlwPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVkaXRpbmdNZXRyaWM/LmtleSAhPT0gbWV0cmljLmtleVwiIChjbGljayk9XCJlZGl0TWV0cmljKG1ldHJpYylcIiBjbGFzcz1cImFjdGlvbiBlZGl0XCI+XG4gICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tZWRpdC1zbVwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJlZGl0aW5nTWV0cmljPy5rZXkgPT09IG1ldHJpYy5rZXlcIiAoY2xpY2spPVwic2F2ZU1ldHJpYygpXCIgY2xhc3M9XCJhY3Rpb24gc2F2ZVwiPlxuICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWNoZWNrbWFya1wiPjwvaT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvY29tcG9uZW50cy9oZWFkZXIvbWV0cmljcy9tZXRyaWNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9jb21wb25lbnRzL2hlYWRlci9tZXRyaWNzL21ldHJpY3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHbEQsT0FBTyxFQUFFLFVBQVUsRUFBNEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakcsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzNCLDhCQUE4QixHQUMvQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVE1QixNQUFNLE9BQU8sZ0JBQWdCO0lBNkIzQixZQUNVLGdCQUFrQyxFQUNsQyxjQUE4QixF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SUFDekMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUF5QjtRQUN4QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7OEdBNU1VLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdHQUNoQixZQUFZLGdEQ3pCekIsd3NJQWlIQTs0RkR6RmEsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO29NQUVpQyxZQUFZO3NCQUEzQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0FjdGlvbiwgSW50ZWdyYXRpb25TdGF0ZSwgTWV0cmljIH0gZnJvbSAnQHZlbG9jZS9zZGsvY21zJztcbmltcG9ydCB7IGRlZmF1bHRNZXRyaWNzLCBlZmZlY3RpdmVNZXRyaWNLZXlzLCBNRVRSSUNTX1NUT1JBR0VfS0VZIH0gZnJvbSAnLi9tZXRyaWNzLmRlZmluaXRpb25zJztcbmltcG9ydCB7XG4gIGludmFsaWRDaGFyYWN0ZXJzVmFsaWRhdG9yLFxuICByZXF1aXJlZFZhbGlkYXRvcixcbiAgcmVzZXJ2ZWRJZGVudGlmaWVyVmFsaWRhdG9yLFxuICBzdGFuZGFyZENoYXJTZXRXaXRoU3BhY2VSZWdFeHAsXG59IGZyb20gJ0B2ZWxvY2UvY29yZS9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLW1ldHJpY3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWV0cmljcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ldHJpY3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1ldHJpY3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBwdWJsaWMgb3ZlcmxheVBhbmVsITogT3ZlcmxheVBhbmVsO1xuXG4gIHB1YmxpYyBlbXB0eVN0YXRlTWV0cmljcyA9IFtcbiAgICB7IG5hbWU6ICdNUlInLCB2YWx1ZTogMCB9LFxuICAgIHsgbmFtZTogJ0UuTVJSJywgdmFsdWU6IDAgfSxcbiAgICB7IG5hbWU6ICdOUlInLCB2YWx1ZTogMCB9LFxuICAgIHsgbmFtZTogJ0UuTlJSJywgdmFsdWU6IDAgfSxcbiAgXTtcbiAgcHVibGljIHZpc2libGVTZWxlY3RlZE1ldHJpY3M6IE1ldHJpY1tdID0gW107XG4gIHB1YmxpYyByZXN0U2VsZWN0ZWRNZXRyaWNzOiBNZXRyaWNbXSA9IFtdO1xuICBwdWJsaWMgbWV0cmljczogTWV0cmljW10gPSBbXTtcbiAgcHVibGljIGZpbHRlcmVkTWV0cmljczogTWV0cmljW10gPSBbXTtcbiAgcHVibGljIGVkaXRpbmdNZXRyaWM6IE1ldHJpYyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHNpZGViYXJWaXNpYmxlID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIHB1YmxpYyBuYW1lQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICByZXF1aXJlZFZhbGlkYXRvcixcbiAgICBpbnZhbGlkQ2hhcmFjdGVyc1ZhbGlkYXRvcihzdGFuZGFyZENoYXJTZXRXaXRoU3BhY2VSZWdFeHApLFxuICAgIHJlc2VydmVkSWRlbnRpZmllclZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JzLm1heExlbmd0aCg4MCksXG4gIF0pO1xuXG4gIHByaXZhdGUgZGVmYXVsdE1ldHJpY3M6IE1ldHJpY1tdID0gW107XG4gIHByaXZhdGUgc3RvcmVkRGVmYXVsdE1ldHJpY3M6IE1ldHJpY1tdID0gW107XG4gIHByaXZhdGUgbWV0cmljS2V5czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBsYXN0U2F2ZWRNZXRyaWNzOiBNZXRyaWNbXSA9IFtdO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW50ZWdyYXRpb25TdGF0ZTogSW50ZWdyYXRpb25TdGF0ZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICAgIHRhcChsaW5lSXRlbXMgPT4ge1xuICAgICAgICAgIHRoaXMubWV0cmljS2V5cyA9IHRoaXMuY29sbGVjdE1ldHJpY0tleXMobGluZUl0ZW1zKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgICAgICAgICAgaWYgKGVmZmVjdGl2ZU1ldHJpY0tleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICByZXN1bHQucHVzaChgRWZmZWN0aXZlXyR7a2V5fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSk7XG4gICAgICAgICAgdGhpcy5jb2xsZWN0QXZhaWxhYmxlTWV0cmljcygpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQoRmxvd0FjdGlvbi5TRVRfREVGQVVMVF9NRVRSSUNTKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoeyBtZXRyaWNzIH0pID0+IHtcbiAgICAgICAgICBpZiAoaXNFcXVhbCh0aGlzLnN0b3JlZERlZmF1bHRNZXRyaWNzLCBtZXRyaWNzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnN0b3JlZERlZmF1bHRNZXRyaWNzID0gbWV0cmljcztcbiAgICAgICAgICB0aGlzLmNvbGxlY3RBdmFpbGFibGVNZXRyaWNzKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSwgc3RhcnRXaXRoKCcnKSkuc3Vic2NyaWJlKHF1ZXJ5ID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRNZXRyaWNzID0gdGhpcy5tZXRyaWNzLmZpbHRlcigoeyBuYW1lIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIChuYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5Py50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb3BlblNpZGViYXIoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5UGFuZWwuaGlkZSgpO1xuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNsb3NlU2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNpZGViYXJWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5tZXRyaWNzID0gY2xvbmVEZWVwKHRoaXMubGFzdFNhdmVkTWV0cmljcyk7XG4gICAgdGhpcy5lZGl0aW5nTWV0cmljID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWV0cmljVmFsdWUoa2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0VmZmVjdGl2ZV8nKSkge1xuICAgICAgY29uc3QgY29ycmVjdEtleSA9IGtleS5yZXBsYWNlKCdFZmZlY3RpdmVfJywgJycpO1xuICAgICAgcmV0dXJuIHRoaXMudG9OdW1iZXIoY29udGV4dC5wcm9wZXJ0aWVzW2NvcnJlY3RLZXldKSAtIHRoaXMudG9OdW1iZXIoY29udGV4dC5wcm9wZXJ0aWVzW2BQcmV2aW91cyR7Y29ycmVjdEtleX1gXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKGNvbnRleHQucHJvcGVydGllc1trZXldKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShNRVRSSUNTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeSh0aGlzLm1ldHJpY3MpKTtcbiAgICB0aGlzLnNldE1ldHJpY3MoKTtcbiAgICB0aGlzLmxhc3RTYXZlZE1ldHJpY3MgPSBjbG9uZURlZXAodGhpcy5tZXRyaWNzKTtcbiAgICB0aGlzLmNsb3NlU2lkZWJhcigpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZU1ldHJpY09yZGVyKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5tZXRyaWNzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZmlsdGVyZWRNZXRyaWNzID0gdGhpcy5tZXRyaWNzO1xuICB9XG5cbiAgcHVibGljIGVkaXRNZXRyaWMobWV0cmljOiBNZXRyaWMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZGl0aW5nTWV0cmljICYmIHRoaXMubmFtZUNvbnRyb2wuaW52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVkaXRpbmdNZXRyaWMgPSBtZXRyaWM7XG4gICAgdGhpcy5uYW1lQ29udHJvbC5zZXRWYWx1ZShtZXRyaWMubmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZU1ldHJpYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYW1lQ29udHJvbC5pbnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmVkaXRpbmdNZXRyaWMpIHtcbiAgICAgIHRoaXMuZWRpdGluZ01ldHJpYy5uYW1lID0gdGhpcy5uYW1lQ29udHJvbC52YWx1ZT8udHJpbSgpO1xuICAgIH1cbiAgICB0aGlzLmVkaXRpbmdNZXRyaWMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRUb0RlZmF1bHQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsZWN0QXZhaWxhYmxlTWV0cmljcyh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGVjdE1ldHJpY0tleXMobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgbGluZUl0ZW1zLmZvckVhY2gobGluZUl0ZW0gPT4ge1xuICAgICAga2V5cy5wdXNoKC4uLk9iamVjdC5rZXlzKGxpbmVJdGVtLnRvdGFsTWV0cmljcyB8fCB7fSkpO1xuICAgICAga2V5cy5wdXNoKC4uLnRoaXMuY29sbGVjdE1ldHJpY0tleXMobGluZUl0ZW0ubGluZUl0ZW1zKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHVuaXEoa2V5cyk7XG4gIH1cblxuICBwcml2YXRlIHNldE1ldHJpY3MoKTogdm9pZCB7XG4gICAgY29uc3QgbWV0cmljcyA9IGNsb25lRGVlcCh0aGlzLm1ldHJpY3MuZmlsdGVyKCh7IHZpc2libGUgfSkgPT4gdmlzaWJsZSkpO1xuXG4gICAgdGhpcy52aXNpYmxlU2VsZWN0ZWRNZXRyaWNzID0gbWV0cmljcy5zbGljZSgwLCA0KTtcbiAgICB0aGlzLnJlc3RTZWxlY3RlZE1ldHJpY3MgPSBtZXRyaWNzLnNsaWNlKDQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsZWN0QXZhaWxhYmxlTWV0cmljcyhyZXNldFRvRGVmYXVsdCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5tZXRyaWNzID0gW107XG4gICAgdGhpcy5kZWZhdWx0TWV0cmljcyA9IHRoaXMuc3RvcmVkRGVmYXVsdE1ldHJpY3MubGVuZ3RoID8gdGhpcy5zdG9yZWREZWZhdWx0TWV0cmljcyA6IGRlZmF1bHRNZXRyaWNzO1xuICAgIGNvbnN0IHN0b3JlZE1ldHJpY3M6IE1ldHJpY1tdID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShNRVRSSUNTX1NUT1JBR0VfS0VZKSB8fCAnW10nKTtcbiAgICBjb25zdCBtZXRyaWNLZXlzID0gWy4uLnRoaXMubWV0cmljS2V5c107XG4gICAgaWYgKCFzdG9yZWRNZXRyaWNzLmxlbmd0aCB8fCByZXNldFRvRGVmYXVsdCkge1xuICAgICAgdGhpcy5kZWZhdWx0TWV0cmljcy5mb3JFYWNoKGRlZmF1bHRNZXRyaWMgPT4ge1xuICAgICAgICBjb25zdCBtZXRyaWNLZXlJbmRleCA9IG1ldHJpY0tleXMuZmluZEluZGV4KGtleSA9PiBrZXkgPT09IGRlZmF1bHRNZXRyaWMua2V5KTtcblxuICAgICAgICBjb25zdCBzdG9yZWRNZXRyaWMgPSBzdG9yZWRNZXRyaWNzLmZpbmQoKHsga2V5IH0pID0+IGtleSA9PT0gZGVmYXVsdE1ldHJpYy5rZXkpO1xuICAgICAgICBpZiAoc3RvcmVkTWV0cmljICYmICFyZXNldFRvRGVmYXVsdCkge1xuICAgICAgICAgIHRoaXMubWV0cmljcy5wdXNoKHN0b3JlZE1ldHJpYyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tZXRyaWNzLnB1c2goZGVmYXVsdE1ldHJpYyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldHJpY0tleUluZGV4ID49IDApIHtcbiAgICAgICAgICBtZXRyaWNLZXlzLnNwbGljZShtZXRyaWNLZXlJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldHJpY3MgPSBbXG4gICAgICAgIC4uLnN0b3JlZE1ldHJpY3MucmVkdWNlKChyZXN1bHQsIG1ldHJpYykgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldHJpY0tleUluZGV4ID0gbWV0cmljS2V5cy5maW5kSW5kZXgoa2V5ID0+IGtleSA9PT0gbWV0cmljLmtleSk7XG5cbiAgICAgICAgICBpZiAobWV0cmljS2V5SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgbWV0cmljS2V5cy5zcGxpY2UobWV0cmljS2V5SW5kZXgsIDEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbLi4ucmVzdWx0LCBtZXRyaWNdO1xuICAgICAgICB9LCBbXSBhcyBNZXRyaWNbXSksXG4gICAgICBdO1xuICAgIH1cbiAgICB0aGlzLm1ldHJpY3MgPSBbXG4gICAgICAuLi50aGlzLm1ldHJpY3MsXG4gICAgICAuLi5tZXRyaWNLZXlzLm1hcChtZXRyaWNLZXkgPT4ge1xuICAgICAgICByZXR1cm4geyBrZXk6IG1ldHJpY0tleSwgbmFtZTogdGhpcy5nZXRNZXRyaWNOYW1lKG1ldHJpY0tleSksIHZpc2libGU6IGZhbHNlIH07XG4gICAgICB9KSxcbiAgICBdO1xuICAgIHRoaXMubWV0cmljcyA9IGNsb25lRGVlcCh0aGlzLm1ldHJpY3MpO1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgaWYgKCFyZXNldFRvRGVmYXVsdCkge1xuICAgICAgdGhpcy5sYXN0U2F2ZWRNZXRyaWNzID0gY2xvbmVEZWVwKHRoaXMubWV0cmljcyk7XG4gICAgICB0aGlzLnNldE1ldHJpY3MoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1ldHJpY05hbWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBrZXkucmVwbGFjZSgvVkRNX3xUb3RhbF8vZywgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b051bWJlcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKyh2YWx1ZSB8fCAwKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhlYWRlci1tZXRyaWNzXCIgKGNsaWNrKT1cIm92ZXJsYXlQYW5lbC50b2dnbGUoJGV2ZW50KVwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXRyaWMgb2YgdmlzaWJsZVNlbGVjdGVkTWV0cmljc1wiIGNsYXNzPVwibWV0cmljXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJuYW1lXCIgW2F0dHIudGl0bGVdPVwibWV0cmljLm5hbWVcIj57eyBtZXRyaWMubmFtZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+JHt7IGdldE1ldHJpY1ZhbHVlKG1ldHJpYy5rZXkpIHwgbnVtYmVyOiAnMS4yLTInIH19PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZpc2libGVTZWxlY3RlZE1ldHJpY3MubGVuZ3RoXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgbWV0cmljIG9mIGVtcHR5U3RhdGVNZXRyaWNzXCIgY2xhc3M9XCJtZXRyaWMgZW1wdHktc3RhdGUtbWV0cmljXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIiBbYXR0ci50aXRsZV09XCJtZXRyaWMubmFtZVwiPnt7IG1ldHJpYy5uYW1lIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxsZXJcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+JHt7IG1ldHJpYy52YWx1ZSB8IG51bWJlcjogJzEuMi0yJyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPHAtb3ZlcmxheVBhbmVsXG4gIHN0eWxlQ2xhc3M9XCJtZXRyaWNzLW92ZXJsYXktY29udGFpbmVyIGNlbnRlciBuby1wYWRkaW5nXCJcbiAgc2hvd1RyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbiAgaGlkZVRyYW5zaXRpb25PcHRpb25zPVwiMG1zXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1tZXRyaWNzXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXRyaWMgb2YgcmVzdFNlbGVjdGVkTWV0cmljc1wiIGNsYXNzPVwibWV0cmljXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiIFthdHRyLnRpdGxlXT1cIm1ldHJpYy5uYW1lXCI+e3sgbWV0cmljLm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsbGVyXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+JHt7IGdldE1ldHJpY1ZhbHVlKG1ldHJpYy5rZXkpIHwgbnVtYmVyOiAnMS4yLTInIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImNvbmZpZ1wiIChjbGljayk9XCJvcGVuU2lkZWJhcigpXCI+XG4gICAgICBNZXRyaWNzIENvbmZpZ1xuICAgICAgPGkgY2xhc3M9XCJ2bC1pY29uIHZsLWljb24tY2hldnJvbi1kb3duXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLW92ZXJsYXlQYW5lbD5cblxuPHAtc2lkZWJhclxuICBbdmlzaWJsZV09XCJzaWRlYmFyVmlzaWJsZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cImNsb3NlU2lkZWJhcigpXCJcbiAgcG9zaXRpb249XCJyaWdodFwiXG4gIFtiYXNlWkluZGV4XT1cIjEwMDBcIlxuICBbc3R5bGVdPVwieyB3aWR0aDogJzM2MHB4JyB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgIFF1b3RlIE1ldHJpY3MgQ29uZmlnXG4gICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jbG9zZVwiIChjbGljayk9XCJjbG9zZVNpZGViYXIoKVwiPjwvaT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgZGF0YS10ZXN0LWlkPVwic2VhcmNoXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIlxuICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBtZXRyaWPigKZcIlxuICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW1ldHJpY3NcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImNoYW5nZU1ldHJpY09yZGVyKCRldmVudClcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBtZXRyaWMgb2YgZmlsdGVyZWRNZXRyaWNzXCJcbiAgICAgICAgICBjbGFzcz1cInNpZGViYXItbWV0cmljXCJcbiAgICAgICAgICBbY2xhc3MuZWRpdF09XCJtZXRyaWMua2V5ID09PSBlZGl0aW5nTWV0cmljPy5rZXlcIlxuICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiEhc2VhcmNoQ29udHJvbC52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1pY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1yZW9yZGVyXCIgY2RrRHJhZ0hhbmRsZT48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibWV0cmljVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgbWV0cmljOiBtZXRyaWMgfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAqbmdJZj1cIiFmaWx0ZXJlZE1ldHJpY3MubGVuZ3RoXCI+VGhlcmUgYXJlIG5vIGl0ZW1zIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIGxhYmVsPVwiUmVzZXQgdG8gZGVmYXVsdFwiXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCBwLWJ1dHRvbi1zbVwiXG4gICAgICAgIChvbkNsaWNrKT1cInJlc2V0VG9EZWZhdWx0KClcIlxuICAgICAgPjwvcC1idXR0b24+XG4gICAgICA8cC1idXR0b24gbGFiZWw9XCJTYXZlXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uIHAtYnV0dG9uLWZpbGxlZCBwLWJ1dHRvbi1zbVwiIChvbkNsaWNrKT1cInNhdmUoKVwiPjwvcC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9wLXNpZGViYXI+XG5cbjxuZy10ZW1wbGF0ZSAjbWV0cmljVGVtcGxhdGUgbGV0LW1ldHJpYz1cIm1ldHJpY1wiPlxuICA8ZGl2ICpuZ0lmPVwiZWRpdGluZ01ldHJpYz8ua2V5ICE9PSBtZXRyaWMua2V5XCIgY2xhc3M9XCJwcmV2aWV3LXN0YXRlXCI+XG4gICAgPHAtY2hlY2tib3hcbiAgICAgIFtuZ01vZGVsXT1cIm1ldHJpYy52aXNpYmxlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1ldHJpYy52aXNpYmxlID0gIW1ldHJpYy52aXNpYmxlXCJcbiAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICBjaGVja2JveEljb249XCJ2bC1pY29uIHZsLWljb24tY2hlY2ttYXJrXCJcbiAgICA+PC9wLWNoZWNrYm94PlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7IG1ldHJpYy5uYW1lIH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJlZGl0aW5nTWV0cmljPy5rZXkgPT09IG1ldHJpYy5rZXlcIiBjbGFzcz1cImVkaXQtc3RhdGVcIj5cbiAgICA8aW5wdXQgZGF0YS10ZXN0LWlkPVwibmFtZVwiIFtmb3JtQ29udHJvbF09XCJuYW1lQ29udHJvbFwiIHBJbnB1dFRleHQgcGxhY2Vob2xkZXI9XCJNZXRyaWMgbmFtZVwiIGNsYXNzPVwidy1mdWxsXCIgLz5cbiAgICA8dmwtZXJyb3ItdG9vbHRpcCBbdG9vbHRpcF09XCJuYW1lQ29udHJvbCB8IGVycm9yOiAnbmFtZSdcIiBbdmlzaWJsZV09XCIhIW5hbWVDb250cm9sLmVycm9yc1wiPjwvdmwtZXJyb3ItdG9vbHRpcD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJlZGl0aW5nTWV0cmljPy5rZXkgIT09IG1ldHJpYy5rZXlcIiAoY2xpY2spPVwiZWRpdE1ldHJpYyhtZXRyaWMpXCIgY2xhc3M9XCJhY3Rpb24gZWRpdFwiPlxuICAgIDxpIGNsYXNzPVwidmwtaWNvbiB2bC1pY29uLWVkaXQtc21cIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZWRpdGluZ01ldHJpYz8ua2V5ID09PSBtZXRyaWMua2V5XCIgKGNsaWNrKT1cInNhdmVNZXRyaWMoKVwiIGNsYXNzPVwiYWN0aW9uIHNhdmVcIj5cbiAgICA8aSBjbGFzcz1cInZsLWljb24gdmwtaWNvbi1jaGVja21hcmtcIj48L2k+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|