@mediusinc/mng-commons 5.2.0-rc.0 → 5.2.0-rc.2

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.
Files changed (67) hide show
  1. package/core/components/notification/notification-wrapper.component.d.ts +3 -1
  2. package/core/error/error-helpers.d.ts +5 -0
  3. package/core/error/error.model.d.ts +6 -0
  4. package/core/helpers/route.d.ts +1 -1
  5. package/core/models/menu.model.d.ts +2 -1
  6. package/core/router/route-builder.d.ts +0 -1
  7. package/core/security/permission.service.d.ts +13 -5
  8. package/core/security/permissions.model.d.ts +27 -2
  9. package/esm2022/core/components/notification/notification-wrapper.component.mjs +6 -5
  10. package/esm2022/core/error/error-helpers.mjs +8 -1
  11. package/esm2022/core/error/error.model.mjs +2 -1
  12. package/esm2022/core/models/menu.model.mjs +1 -1
  13. package/esm2022/core/router/route-builder.mjs +1 -24
  14. package/esm2022/core/rxjs/map-data-list-result-operator.mjs +4 -1
  15. package/esm2022/core/security/permission.guard.mjs +2 -2
  16. package/esm2022/core/security/permission.service.mjs +65 -15
  17. package/esm2022/core/security/permissions.model.mjs +1 -1
  18. package/esm2022/form/components/date-range/date-range.component.mjs +9 -3
  19. package/esm2022/form/components/number-range/number-range.component.mjs +106 -0
  20. package/esm2022/form/index.mjs +2 -1
  21. package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
  22. package/esm2022/model/helpers/i18n.mjs +2 -2
  23. package/esm2022/table/api/descriptors/column.descriptor.mjs +8 -19
  24. package/esm2022/table/api/descriptors/table.descriptor.mjs +13 -9
  25. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +3 -2
  26. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +72 -10
  27. package/esm2022/table/helpers/notification.mjs +2 -2
  28. package/esm2022/tableview/action/components/action/action.component.mjs +6 -7
  29. package/esm2022/tableview/action/helpers/i18n.mjs +4 -4
  30. package/esm2022/tableview/action/services/action-executor.service.mjs +6 -3
  31. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +2 -2
  32. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +5 -4
  33. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +2 -3
  34. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +2 -3
  35. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +14 -7
  36. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +1 -1
  37. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +12 -4
  38. package/fesm2022/mediusinc-mng-commons-core.mjs +82 -42
  39. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  40. package/fesm2022/mediusinc-mng-commons-form.mjs +109 -3
  41. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  42. package/fesm2022/mediusinc-mng-commons-model.mjs +1 -1
  43. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  44. package/fesm2022/mediusinc-mng-commons-table-api.mjs +21 -27
  45. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  46. package/fesm2022/mediusinc-mng-commons-table.mjs +72 -10
  47. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  48. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +20 -13
  49. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  50. package/fesm2022/mediusinc-mng-commons-tableview.mjs +23 -14
  51. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  52. package/form/components/date-range/date-range.component.d.ts +4 -2
  53. package/form/components/number-range/number-range.component.d.ts +30 -0
  54. package/form/index.d.ts +1 -0
  55. package/i18n/en.json +1 -1
  56. package/i18n/sl.json +1 -1
  57. package/model/descriptors/enum.descriptor.d.ts +1 -1
  58. package/package.json +7 -7
  59. package/table/api/descriptors/column.descriptor.d.ts +4 -10
  60. package/table/api/descriptors/table.descriptor.d.ts +2 -1
  61. package/table/components/column-filter-full/column-filter-full.component.d.ts +3 -2
  62. package/tableview/action/components/action/action.component.d.ts +0 -1
  63. package/tableview/action/services/action-executor.service.d.ts +1 -0
  64. package/tableview/api/editor/descriptors/field.descriptor.d.ts +12 -7
  65. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +5 -5
  66. package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +1 -0
  67. package/version-info.json +6 -6
@@ -1,10 +1,12 @@
1
1
  import { Message } from 'primeng/api';
2
+ import { Nullable } from '../../helpers/type-helpers';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class NotificationWrapperComponent {
4
5
  readonly notificationCutoff = 70;
5
6
  isDialogNotificationVisible: import("@angular/core").Signal<boolean>;
6
7
  dialogNotification: import("@angular/core").WritableSignal<Message | null>;
7
- getNotificationIconClass(message: Message | null): string;
8
+ dialogNotificationIconClass: import("@angular/core").Signal<string>;
9
+ getMessageIcon(message: Nullable<Message>): string;
8
10
  onShowNotificationInDialog(message: Message): void;
9
11
  onDialogNotificationVisibilityChange(visible: boolean): void;
10
12
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationWrapperComponent, never>;
@@ -23,6 +23,11 @@ export declare function getHttpErrorResponse(error: any): HttpErrorResponse | nu
23
23
  * @param error Error.
24
24
  */
25
25
  export declare function getHttpErrorResponseStatus(error: any): number | null;
26
+ /**
27
+ * Gets HttpErrorResponse status text from error (Angular or Commons).
28
+ * @param error Error.
29
+ */
30
+ export declare function getHttpErrorResponseStatusText(error: any): string | null;
26
31
  /**
27
32
  * Get error log level. All is error, except if error is http error with status >=400 and <500.
28
33
  * @param error Error.
@@ -1,4 +1,5 @@
1
1
  import { HttpErrorResponse } from '@angular/common/http';
2
+ import { Message } from 'primeng/api/message';
2
3
  import { ActionParameters } from '../action/action-parameters.model';
3
4
  export type ErrorTypes = 'CommonsInternalError' | 'CommonsActionError' | 'CommonsHttpError';
4
5
  /**
@@ -12,6 +13,8 @@ export interface ICommonsError extends Error {
12
13
  details?: any;
13
14
  stack?: string;
14
15
  cause?: Error | unknown;
16
+ notification?: Message;
17
+ notificationEmitSource?: string;
15
18
  }
16
19
  export interface CommonsErrorBaseOptions {
17
20
  name?: string;
@@ -20,12 +23,15 @@ export interface CommonsErrorBaseOptions {
20
23
  cause?: Error;
21
24
  stack?: string;
22
25
  location?: string;
26
+ notification?: Message;
23
27
  }
24
28
  export declare abstract class ACommonsErrorBase extends Error implements ICommonsError {
25
29
  abstract readonly type: ErrorTypes;
26
30
  readonly messageCode?: number | string;
27
31
  readonly location?: string;
28
32
  readonly details?: any;
33
+ readonly notification?: Message;
34
+ readonly notificationEmitSource?: string;
29
35
  protected constructor(message: string, options?: CommonsErrorBaseOptions);
30
36
  }
31
37
  export declare class CommonsInternalError extends ACommonsErrorBase implements ICommonsError {
@@ -11,13 +11,13 @@ export declare function adjustRouteMenuLazyChildrenRouterLinks(rootMenuItem: Pri
11
11
  label?: string | undefined;
12
12
  icon?: string | undefined;
13
13
  items?: CommonsMenuItem[] | undefined;
14
- guards?: any[] | undefined;
15
14
  permissions?: import("@mediusinc/mng-commons/core").APermissions | undefined;
16
15
  separator?: boolean | undefined;
17
16
  className?: string | undefined;
18
17
  badge?: string | undefined;
19
18
  badgeClassName?: string | undefined;
20
19
  visible?: boolean | undefined;
20
+ isVisible?: ((menuItem: CommonsMenuItem) => boolean | import("rxjs").Observable<boolean>) | undefined;
21
21
  disabled?: boolean | undefined;
22
22
  routerLink?: string | string[] | null | undefined;
23
23
  href?: string | undefined;
@@ -1,4 +1,5 @@
1
1
  import { QueryParamsHandling } from '@angular/router';
2
+ import { Observable } from 'rxjs';
2
3
  import { APermissions } from '../security/permissions.model';
3
4
  export interface CommonsMenuItem {
4
5
  index?: number;
@@ -8,13 +9,13 @@ export interface CommonsMenuItem {
8
9
  label?: string;
9
10
  icon?: string;
10
11
  items?: Array<CommonsMenuItem>;
11
- guards?: Array<any>;
12
12
  permissions?: APermissions;
13
13
  separator?: boolean;
14
14
  className?: string;
15
15
  badge?: string;
16
16
  badgeClassName?: string;
17
17
  visible?: boolean;
18
+ isVisible?: (menuItem: CommonsMenuItem) => Observable<boolean> | boolean;
18
19
  disabled?: boolean;
19
20
  routerLink?: string | Array<string> | null;
20
21
  href?: string;
@@ -148,7 +148,6 @@ export declare class RouteBuilder {
148
148
  * @returns {Array<CommonsMenuItem>} - The built menu items.
149
149
  */
150
150
  private buildMenu;
151
- private findMenuItemGuards;
152
151
  protected findMenuItemPermissions(): APermissions | undefined;
153
152
  }
154
153
  /**
@@ -1,17 +1,25 @@
1
1
  import { ActivatedRouteSnapshot } from '@angular/router';
2
2
  import { Observable } from 'rxjs';
3
+ import { CommonsMenuItem } from '../models/menu.model';
3
4
  import { APermissions, IActionContextValidation } from './permissions.model';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class PermissionService {
6
- private readonly router;
7
7
  private readonly injector;
8
8
  private readonly commons;
9
9
  private readonly logger;
10
10
  private userRoles$;
11
- isPermitted(permissions: APermissions, route?: ActivatedRouteSnapshot, actionCtx?: IActionContextValidation<unknown, unknown>): Observable<boolean>;
12
- private isPermittedAll;
13
- private isPermittedAny;
14
- private isPermittedService;
11
+ canActivateRoute(permissions: APermissions, route?: ActivatedRouteSnapshot): Observable<boolean>;
12
+ private canActivateRouteAll;
13
+ private canActivateRouteAny;
14
+ private canActivateRouteService;
15
+ isMenuItemVisible(permissions: APermissions, menuItem: CommonsMenuItem): Observable<boolean>;
16
+ private isMenuItemVisibleAll;
17
+ private isMenuItemVisibleAny;
18
+ private isMenuItemVisibleService;
19
+ isActionVisible(permissions: APermissions, actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot): Observable<boolean>;
20
+ private isActionVisibleAll;
21
+ private isActionVisibleAny;
22
+ private isActionVisibleService;
15
23
  static ɵfac: i0.ɵɵFactoryDeclaration<PermissionService, never>;
16
24
  static ɵprov: i0.ɵɵInjectableDeclaration<PermissionService>;
17
25
  }
@@ -1,9 +1,10 @@
1
1
  import { Type } from '@angular/core';
2
- import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
2
+ import { ActivatedRouteSnapshot } from '@angular/router';
3
3
  import { Observable } from 'rxjs';
4
4
  import { ActionParameters } from '../action/action-parameters.model';
5
5
  import { IDataProvider } from '../data-providers/base.data-provider';
6
6
  import { IActionDescriptor } from '../descriptors/action.descriptor';
7
+ import { CommonsMenuItem } from '../models/menu.model';
7
8
  export declare enum PermissionTypeEnum {
8
9
  All = "ALL",
9
10
  Any = "ANY",
@@ -17,7 +18,31 @@ export interface IActionContextValidation<Item, Service = undefined> {
17
18
  dataProvider?: IDataProvider<Item, Service>;
18
19
  }
19
20
  export interface IPermissionService {
20
- isPermitted(route?: ActivatedRouteSnapshot, routerState?: RouterStateSnapshot, actionCtx?: IActionContextValidation<any, any>): Observable<boolean>;
21
+ /**
22
+ * Determines whether a route can be activated.
23
+ *
24
+ * @param {ActivatedRouteSnapshot} route - The route snapshot object representing the current route for activation.
25
+ *
26
+ * @returns {Observable<boolean>} - An observable that emits a boolean value indicating whether the route can be activated.
27
+ */
28
+ canActivateRoute(route?: ActivatedRouteSnapshot): Observable<boolean>;
29
+ /**
30
+ * Determines the visibility of menu item.
31
+ *
32
+ * @param {CommonsMenuItem} menuItem - The menu item to check.
33
+ * @return {Observable<boolean>} - An observable that emits a boolean indicating
34
+ * whether the menu item is visible or not.
35
+ */
36
+ isMenuitemVisible(menuItem: CommonsMenuItem): Observable<boolean>;
37
+ /**
38
+ * Determines if the specified action is visible based on the action context and route.
39
+ *
40
+ * @param {IActionContextValidation<any, any>} [actionCtx] - The action context object containing the necessary information for validation.
41
+ * @param {ActivatedRouteSnapshot} [route] - The current route snapshot containing the necessary information for validation.
42
+ *
43
+ * @return {Observable<boolean>} - An Observable that emits the visibility status of the action.
44
+ */
45
+ isActionVisible(actionCtx?: IActionContextValidation<any, any>, route?: ActivatedRouteSnapshot): Observable<boolean>;
21
46
  }
22
47
  export declare abstract class APermissions {
23
48
  private readonly _authorizationType;
@@ -14,14 +14,15 @@ export class NotificationWrapperComponent {
14
14
  this.notificationCutoff = 70;
15
15
  this.isDialogNotificationVisible = computed(() => this.dialogNotification() !== null);
16
16
  this.dialogNotification = signal(null);
17
+ this.dialogNotificationIconClass = computed(() => this.getMessageIcon(this.dialogNotification()));
17
18
  }
18
- getNotificationIconClass(message) {
19
+ getMessageIcon(message) {
19
20
  if (message?.icon)
20
21
  return message.icon;
21
22
  switch (message?.severity) {
22
23
  case 'info':
23
24
  return 'pi-info-circle';
24
- case 'warning':
25
+ case 'warn':
25
26
  return 'pi-exclamation-triangle';
26
27
  case 'error':
27
28
  return 'pi-times-circle';
@@ -40,10 +41,10 @@ export class NotificationWrapperComponent {
40
41
  }
41
42
  }
42
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NotificationWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: NotificationWrapperComponent, isStandalone: true, selector: "mng-notification-wrapper", ngImport: i0, template: "<ng-content></ng-content>\n<p-confirmDialog appendTo=\"body\" [baseZIndex]=\"50\"></p-confirmDialog>\n\n<p-toast [baseZIndex]=\"50\">\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getNotificationIconClass(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n @if (message.detail) {\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n @if (message.detail.length > notificationCutoff) {\n <div (click)=\"onShowNotificationInDialog(message)\" class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n }\n }\n </div>\n </ng-template>\n</p-toast>\n\n<p-dialog\n [visible]=\"isDialogNotificationVisible()\"\n (visibleChange)=\"onDialogNotificationVisibilityChange($event)\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification()?.severity ?? '')\">\n <ng-template pTemplate=\"header\" mngDialogKeydownHandler>\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + getNotificationIconClass(dialogNotification())\"></span>\n {{ dialogNotification()?.summary ?? '' }}\n </span>\n </ng-template>\n <div>\n {{ dialogNotification()?.detail ?? '' }}\n </div>\n</p-dialog>\n", dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type: i1.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i3.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: NotificationWrapperComponent, isStandalone: true, selector: "mng-notification-wrapper", ngImport: i0, template: "<ng-content></ng-content>\n<p-confirmDialog appendTo=\"body\" [baseZIndex]=\"50\"></p-confirmDialog>\n\n<p-toast [baseZIndex]=\"50\">\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getMessageIcon(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n @if (message.detail) {\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n @if (message.detail.length > notificationCutoff) {\n <div (click)=\"onShowNotificationInDialog(message)\" class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n }\n }\n </div>\n </ng-template>\n</p-toast>\n\n<p-dialog\n [visible]=\"isDialogNotificationVisible()\"\n (visibleChange)=\"onDialogNotificationVisibilityChange($event)\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification()?.severity ?? '')\"\n appendTo=\"body\"\n draggable=\"false\"\n modal=\"true\">\n <ng-template pTemplate=\"header\" mngDialogKeydownHandler>\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + dialogNotificationIconClass()\"></span>\n {{ dialogNotification()?.summary ?? '' }}\n </span>\n </ng-template>\n <div class=\"mng-notification-details\">\n {{ dialogNotification()?.detail ?? '' }}\n </div>\n</p-dialog>\n", styles: [".mng-notification-details{white-space:pre-wrap;word-wrap:break-word}\n"], dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type: i1.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i3.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
45
  }
45
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: NotificationWrapperComponent, decorators: [{
46
47
  type: Component,
47
- args: [{ selector: 'mng-notification-wrapper', standalone: true, imports: [ToastModule, ConfirmDialogModule, TranslateModule, DialogModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<p-confirmDialog appendTo=\"body\" [baseZIndex]=\"50\"></p-confirmDialog>\n\n<p-toast [baseZIndex]=\"50\">\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getNotificationIconClass(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n @if (message.detail) {\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n @if (message.detail.length > notificationCutoff) {\n <div (click)=\"onShowNotificationInDialog(message)\" class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n }\n }\n </div>\n </ng-template>\n</p-toast>\n\n<p-dialog\n [visible]=\"isDialogNotificationVisible()\"\n (visibleChange)=\"onDialogNotificationVisibilityChange($event)\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification()?.severity ?? '')\">\n <ng-template pTemplate=\"header\" mngDialogKeydownHandler>\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + getNotificationIconClass(dialogNotification())\"></span>\n {{ dialogNotification()?.summary ?? '' }}\n </span>\n </ng-template>\n <div>\n {{ dialogNotification()?.detail ?? '' }}\n </div>\n</p-dialog>\n" }]
48
+ args: [{ selector: 'mng-notification-wrapper', standalone: true, imports: [ToastModule, ConfirmDialogModule, TranslateModule, DialogModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<p-confirmDialog appendTo=\"body\" [baseZIndex]=\"50\"></p-confirmDialog>\n\n<p-toast [baseZIndex]=\"50\">\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getMessageIcon(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n @if (message.detail) {\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n @if (message.detail.length > notificationCutoff) {\n <div (click)=\"onShowNotificationInDialog(message)\" class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n }\n }\n </div>\n </ng-template>\n</p-toast>\n\n<p-dialog\n [visible]=\"isDialogNotificationVisible()\"\n (visibleChange)=\"onDialogNotificationVisibilityChange($event)\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification()?.severity ?? '')\"\n appendTo=\"body\"\n draggable=\"false\"\n modal=\"true\">\n <ng-template pTemplate=\"header\" mngDialogKeydownHandler>\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + dialogNotificationIconClass()\"></span>\n {{ dialogNotification()?.summary ?? '' }}\n </span>\n </ng-template>\n <div class=\"mng-notification-details\">\n {{ dialogNotification()?.detail ?? '' }}\n </div>\n</p-dialog>\n", styles: [".mng-notification-details{white-space:pre-wrap;word-wrap:break-word}\n"] }]
48
49
  }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMxQyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBUW9CLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxnQ0FBMkIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDakYsdUJBQWtCLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztLQTRCNUQ7SUExQlUsd0JBQXdCLENBQUMsT0FBdUI7UUFDbkQsSUFBSSxPQUFPLEVBQUUsSUFBSTtZQUFFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztRQUV2QyxRQUFRLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN4QixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxnQkFBZ0IsQ0FBQztZQUM1QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyx5QkFBeUIsQ0FBQztZQUNyQyxLQUFLLE9BQU87Z0JBQ1IsT0FBTyxpQkFBaUIsQ0FBQztZQUM3QixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxVQUFVLENBQUM7WUFDdEI7Z0JBQ0ksT0FBTyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxPQUFnQjtRQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxvQ0FBb0MsQ0FBQyxPQUFnQjtRQUN4RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDOzhHQTlCUSw0QkFBNEI7a0dBQTVCLDRCQUE0QixvRkNmekMscXNEQWtDQSwyQ0R0QmMsV0FBVyw4Y0FBRSxtQkFBbUIsb21CQUFFLGVBQWUsMkZBQUUsWUFBWTs7MkZBR2hFLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUVQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsbUJBQ3pELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7Q29uZmlybURpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctbm90aWZpY2F0aW9uLXdyYXBwZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICdub3RpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1RvYXN0TW9kdWxlLCBDb25maXJtRGlhbG9nTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERpYWxvZ01vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uV3JhcHBlckNvbXBvbmVudCB7XG4gICAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkN1dG9mZiA9IDcwO1xuICAgIHB1YmxpYyBpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRpYWxvZ05vdGlmaWNhdGlvbigpICE9PSBudWxsKTtcbiAgICBwdWJsaWMgZGlhbG9nTm90aWZpY2F0aW9uID0gc2lnbmFsPE1lc3NhZ2UgfCBudWxsPihudWxsKTtcblxuICAgIHB1YmxpYyBnZXROb3RpZmljYXRpb25JY29uQ2xhc3MobWVzc2FnZTogTWVzc2FnZSB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICBpZiAobWVzc2FnZT8uaWNvbikgcmV0dXJuIG1lc3NhZ2UuaWNvbjtcblxuICAgICAgICBzd2l0Y2ggKG1lc3NhZ2U/LnNldmVyaXR5KSB7XG4gICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BpLWluZm8tY2lyY2xlJztcbiAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnO1xuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktdGltZXMtY2lyY2xlJztcbiAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktY2hlY2snO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25TaG93Tm90aWZpY2F0aW9uSW5EaWFsb2cobWVzc2FnZTogTWVzc2FnZSkge1xuICAgICAgICB0aGlzLmRpYWxvZ05vdGlmaWNhdGlvbi5zZXQobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGlhbG9nTm90aWZpY2F0aW9uVmlzaWJpbGl0eUNoYW5nZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dOb3RpZmljYXRpb24uc2V0KG51bGwpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPHAtY29uZmlybURpYWxvZyBhcHBlbmRUbz1cImJvZHlcIiBbYmFzZVpJbmRleF09XCI1MFwiPjwvcC1jb25maXJtRGlhbG9nPlxuXG48cC10b2FzdCBbYmFzZVpJbmRleF09XCI1MFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIFtjbGFzc109XCIncC10b2FzdC1tZXNzYWdlLWljb24gcGkgJyArIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhtZXNzYWdlKVwiPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtdG9hc3QtbWVzc2FnZS10ZXh0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IH19PC9kaXY+XG4gICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdG9hc3QtZGV0YWlsXCI+e3sgbWVzc2FnZS5kZXRhaWwuc2xpY2UoMCwgbm90aWZpY2F0aW9uQ3V0b2ZmKSArIChtZXNzYWdlLmRldGFpbC5sZW5ndGggPiBub3RpZmljYXRpb25DdXRvZmYgPyAnLi4uJyA6ICcnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5kZXRhaWwubGVuZ3RoID4gbm90aWZpY2F0aW9uQ3V0b2ZmKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9uU2hvd05vdGlmaWNhdGlvbkluRGlhbG9nKG1lc3NhZ2UpXCIgY2xhc3M9XCJwLWxpbmsgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG10LTIgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2hldnJvbi1kb3duIG1yLTFcIj48L2k+e3sgJ25vdGlmaWNhdGlvbi5kZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtdG9hc3Q+XG5cbjxwLWRpYWxvZ1xuICAgIFt2aXNpYmxlXT1cImlzRGlhbG9nTm90aWZpY2F0aW9uVmlzaWJsZSgpXCJcbiAgICAodmlzaWJsZUNoYW5nZSk9XCJvbkRpYWxvZ05vdGlmaWNhdGlvblZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3N0eWxlQ2xhc3NdPVwiJ3AtZmx1aWQgbW5nLWRpYWxvZyBtbmctZGlhbG9nLXhzICcgKyAnbW5nLW1lc3NhZ2UtZGV0YWlsLWRpYWxvZyBtbmctbWVzc2FnZS1kZXRhaWwtZGlhbG9nLScgKyAoZGlhbG9nTm90aWZpY2F0aW9uKCk/LnNldmVyaXR5ID8/ICcnKVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBtbmdEaWFsb2dLZXlkb3duSGFuZGxlcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWRpYWxvZy10aXRsZSBmb250LWJvbGQgbW5nLWRpYWxvZy1zdWNjZXNzXCI+XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ21yLTIgcGkgJyArIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhkaWFsb2dOb3RpZmljYXRpb24oKSlcIj48L3NwYW4+XG4gICAgICAgICAgICB7eyBkaWFsb2dOb3RpZmljYXRpb24oKT8uc3VtbWFyeSA/PyAnJyB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2PlxuICAgICAgICB7eyBkaWFsb2dOb3RpZmljYXRpb24oKT8uZGV0YWlsID8/ICcnIH19XG4gICAgPC9kaXY+XG48L3AtZGlhbG9nPlxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9zcmMvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVkxQyxNQUFNLE9BQU8sNEJBQTRCO0lBUnpDO1FBU29CLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUNqQyxnQ0FBMkIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDakYsdUJBQWtCLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztRQUNsRCxnQ0FBMkIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0E0QnZHO0lBMUJVLGNBQWMsQ0FBQyxPQUEwQjtRQUM1QyxJQUFJLE9BQU8sRUFBRSxJQUFJO1lBQUUsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRXZDLFFBQVEsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTTtnQkFDUCxPQUFPLGdCQUFnQixDQUFDO1lBQzVCLEtBQUssTUFBTTtnQkFDUCxPQUFPLHlCQUF5QixDQUFDO1lBQ3JDLEtBQUssT0FBTztnQkFDUixPQUFPLGlCQUFpQixDQUFDO1lBQzdCLEtBQUssU0FBUztnQkFDVixPQUFPLFVBQVUsQ0FBQztZQUN0QjtnQkFDSSxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUVNLDBCQUEwQixDQUFDLE9BQWdCO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLG9DQUFvQyxDQUFDLE9BQWdCO1FBQ3hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7OEdBL0JRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG9GQ2xCekMsaXhEQXFDQSwrSER0QmMsV0FBVyw4Y0FBRSxtQkFBbUIsb21CQUFFLGVBQWUsMkZBQUUsWUFBWTs7MkZBR2hFLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUdQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUMsbUJBQ3pELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7Q29uZmlybURpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcblxuaW1wb3J0IHtOdWxsYWJsZX0gZnJvbSAnLi4vLi4vaGVscGVycy90eXBlLWhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1ub3RpZmljYXRpb24td3JhcHBlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJ25vdGlmaWNhdGlvbi13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnbm90aWZpY2F0aW9uLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbVG9hc3RNb2R1bGUsIENvbmZpcm1EaWFsb2dNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRGlhbG9nTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25XcmFwcGVyQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uQ3V0b2ZmID0gNzA7XG4gICAgcHVibGljIGlzRGlhbG9nTm90aWZpY2F0aW9uVmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGlhbG9nTm90aWZpY2F0aW9uKCkgIT09IG51bGwpO1xuICAgIHB1YmxpYyBkaWFsb2dOb3RpZmljYXRpb24gPSBzaWduYWw8TWVzc2FnZSB8IG51bGw+KG51bGwpO1xuICAgIHB1YmxpYyBkaWFsb2dOb3RpZmljYXRpb25JY29uQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldE1lc3NhZ2VJY29uKHRoaXMuZGlhbG9nTm90aWZpY2F0aW9uKCkpKTtcblxuICAgIHB1YmxpYyBnZXRNZXNzYWdlSWNvbihtZXNzYWdlOiBOdWxsYWJsZTxNZXNzYWdlPik6IHN0cmluZyB7XG4gICAgICAgIGlmIChtZXNzYWdlPy5pY29uKSByZXR1cm4gbWVzc2FnZS5pY29uO1xuXG4gICAgICAgIHN3aXRjaCAobWVzc2FnZT8uc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktaW5mby1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnd2Fybic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS10aW1lcy1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1jaGVjayc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblNob3dOb3RpZmljYXRpb25JbkRpYWxvZyhtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nTm90aWZpY2F0aW9uLnNldChtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EaWFsb2dOb3RpZmljYXRpb25WaXNpYmlsaXR5Q2hhbmdlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ05vdGlmaWNhdGlvbi5zZXQobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48cC1jb25maXJtRGlhbG9nIGFwcGVuZFRvPVwiYm9keVwiIFtiYXNlWkluZGV4XT1cIjUwXCI+PC9wLWNvbmZpcm1EaWFsb2c+XG5cbjxwLXRvYXN0IFtiYXNlWkluZGV4XT1cIjUwXCI+XG4gICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidwLXRvYXN0LW1lc3NhZ2UtaWNvbiBwaSAnICsgZ2V0TWVzc2FnZUljb24obWVzc2FnZSlcIj48L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLXRvYXN0LW1lc3NhZ2UtdGV4dFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdG9hc3Qtc3VtbWFyeVwiPnt7IG1lc3NhZ2Uuc3VtbWFyeSB9fTwvZGl2PlxuICAgICAgICAgICAgQGlmIChtZXNzYWdlLmRldGFpbCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRvYXN0LWRldGFpbFwiPnt7IG1lc3NhZ2UuZGV0YWlsLnNsaWNlKDAsIG5vdGlmaWNhdGlvbkN1dG9mZikgKyAobWVzc2FnZS5kZXRhaWwubGVuZ3RoID4gbm90aWZpY2F0aW9uQ3V0b2ZmID8gJy4uLicgOiAnJykgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZGV0YWlsLmxlbmd0aCA+IG5vdGlmaWNhdGlvbkN1dG9mZikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJvblNob3dOb3RpZmljYXRpb25JbkRpYWxvZyhtZXNzYWdlKVwiIGNsYXNzPVwicC1saW5rIGZvbnQtc2VtaWJvbGQgdGV4dC1zbSBtdC0yIGZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNoZXZyb24tZG93biBtci0xXCI+PC9pPnt7ICdub3RpZmljYXRpb24uZGV0YWlscycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wLXRvYXN0PlxuXG48cC1kaWFsb2dcbiAgICBbdmlzaWJsZV09XCJpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGUoKVwiXG4gICAgKHZpc2libGVDaGFuZ2UpPVwib25EaWFsb2dOb3RpZmljYXRpb25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxuICAgIFtzdHlsZUNsYXNzXT1cIidwLWZsdWlkIG1uZy1kaWFsb2cgbW5nLWRpYWxvZy14cyAnICsgJ21uZy1tZXNzYWdlLWRldGFpbC1kaWFsb2cgbW5nLW1lc3NhZ2UtZGV0YWlsLWRpYWxvZy0nICsgKGRpYWxvZ05vdGlmaWNhdGlvbigpPy5zZXZlcml0eSA/PyAnJylcIlxuICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgIG1vZGFsPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBtbmdEaWFsb2dLZXlkb3duSGFuZGxlcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWRpYWxvZy10aXRsZSBmb250LWJvbGQgbW5nLWRpYWxvZy1zdWNjZXNzXCI+XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ21yLTIgcGkgJyArIGRpYWxvZ05vdGlmaWNhdGlvbkljb25DbGFzcygpXCI+PC9zcGFuPlxuICAgICAgICAgICAge3sgZGlhbG9nTm90aWZpY2F0aW9uKCk/LnN1bW1hcnkgPz8gJycgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm1uZy1ub3RpZmljYXRpb24tZGV0YWlsc1wiPlxuICAgICAgICB7eyBkaWFsb2dOb3RpZmljYXRpb24oKT8uZGV0YWlsID8/ICcnIH19XG4gICAgPC9kaXY+XG48L3AtZGlhbG9nPlxuIl19
@@ -54,6 +54,13 @@ export function getHttpErrorResponse(error) {
54
54
  export function getHttpErrorResponseStatus(error) {
55
55
  return getHttpErrorResponse(error)?.status ?? null;
56
56
  }
57
+ /**
58
+ * Gets HttpErrorResponse status text from error (Angular or Commons).
59
+ * @param error Error.
60
+ */
61
+ export function getHttpErrorResponseStatusText(error) {
62
+ return getHttpErrorResponse(error)?.statusText ?? null;
63
+ }
57
64
  /**
58
65
  * Get error log level. All is error, except if error is http error with status >=400 and <500.
59
66
  * @param error Error.
@@ -263,4 +270,4 @@ export function errorCauseToString(error, opts) {
263
270
  export function throwError(errorMessage, options) {
264
271
  throw new CommonsInternalError(errorMessage, options);
265
272
  }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Vycm9yL2Vycm9yLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLGdCQUFnQixFQUFFLG9CQUFvQixFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUV0STs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBYSxFQUFFLE9BQWE7SUFDdkUsTUFBTSxJQUFJLEdBQTRCO1FBQ2xDLElBQUk7UUFDSixPQUFPO1FBQ1AsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUNuQyxDQUFDO0lBRUYsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFVO0lBQzFDLE9BQU8sS0FBSyxZQUFZLGlCQUFpQixJQUFJLEtBQUssWUFBWSxnQkFBZ0IsSUFBSyxLQUF5QyxFQUFFLFNBQVMsWUFBWSxpQkFBaUIsQ0FB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QztRQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDMUQsT0FBTyxDQUNILGFBQWE7Z0JBQ2IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQU0sS0FBSyxDQUFDLEtBQWUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDM0osQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxZQUFvQixFQUFFLE9BQWlDO0lBQzlFLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJy4uL2hlbHBlcnMvc3RyaW5nJztcbmltcG9ydCB7TG9nTGV2ZWxFbnVtfSBmcm9tICcuLi9sb2cvbG9nLm1vZGVsJztcbmltcG9ydCB7QUNvbW1vbnNFcnJvckJhc2UsIENvbW1vbnNFcnJvckJhc2VPcHRpb25zLCBDb21tb25zSHR0cEVycm9yLCBDb21tb25zSW50ZXJuYWxFcnJvciwgSUNvbW1vbnNBY3Rpb25FcnJvcn0gZnJvbSAnLi9lcnJvci5tb2RlbCc7XG5cbi8qKlxuICogQ29udmVydHMgUnhKUyBzdWJzY3JpcHRpb24gZXJyb3IgdG8gQ29tbW9uc0Vycm9yLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgbmFtZSB0byB3cml0ZSBpbiBjb21tb25zIGVycm9yLlxuICogQHBhcmFtIGRldGFpbHMgT3B0aW9uYWwgZGV0YWlscyBvZiBlcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21TdWJzY3JpYmVFcnJvcihlcnJvcjogYW55LCBuYW1lPzogc3RyaW5nLCBkZXRhaWxzPzogYW55KTogQUNvbW1vbnNFcnJvckJhc2Uge1xuICAgIGNvbnN0IG9wdHM6IENvbW1vbnNFcnJvckJhc2VPcHRpb25zID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkZXRhaWxzLFxuICAgICAgICBsb2NhdGlvbjogd2luZG93Py5sb2NhdGlvbj8uaHJlZlxuICAgIH07XG5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1vbnNIdHRwRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSHR0cCBFcnJvciBvY2N1cnJlZCcsIGVycm9yLCBvcHRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvcHRzLmNhdXNlID0gZXJyb3I7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSW50ZXJuYWwgRXJyb3Igb2NjdXJyZWQnLCBvcHRzKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGVycm9yIGlzIEh0dHAgZXJyb3IgKEFuZ3VsYXIgb3IgQ29tbW9ucykuXG4gKiBAcGFyYW0gZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSHR0cEVycm9yUmVzcG9uc2UoZXJyb3I6IGFueSkge1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlIHx8IGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvciB8fCAoZXJyb3IgYXMgSUNvbW1vbnNBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCk/Lmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlO1xufVxuXG4vKipcbiAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2UgZnJvbSBlcnJvciAoQW5ndWxhciBvciBDb21tb25zKS5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpOiBIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvcikge1xuICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgIH0gZWxzZSBpZiAoKGVycm9yIGFzIElDb21tb25zQWN0aW9uRXJyb3IgfCB1bmRlZmluZWQpPy5odHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLyoqXG4gKiBHZXRzIEh0dHBFcnJvclJlc3BvbnNlIHN0YXR1cyBmcm9tIGVycm9yIChBbmd1bGFyIG9yIENvbW1vbnMpLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHR0cEVycm9yUmVzcG9uc2VTdGF0dXMoZXJyb3I6IGFueSk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiBnZXRIdHRwRXJyb3JSZXNwb25zZShlcnJvcik/LnN0YXR1cyA/PyBudWxsO1xufVxuXG4vKipcbiAqIEdldCBlcnJvciBsb2cgbGV2ZWwuIEFsbCBpcyBlcnJvciwgZXhjZXB0IGlmIGVycm9yIGlzIGh0dHAgZXJyb3Igd2l0aCBzdGF0dXMgPj00MDAgYW5kIDw1MDAuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvckxvZ0xldmVsKGVycm9yOiBhbnkpOiBMb2dMZXZlbEVudW0ge1xuICAgIGlmIChpc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yKSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBnZXRIdHRwRXJyb3JSZXNwb25zZVN0YXR1cyhlcnJvcik7XG4gICAgICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApIHtcbiAgICAgICAgICAgIHJldHVybiBMb2dMZXZlbEVudW0uV2FybmluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gTG9nTGV2ZWxFbnVtLkVycm9yO1xufVxuXG4vKipcbiAqIEdldCBlcnJvciBuYW1lIChwcm90b3R5cGUgbmFtZSBvciB0eXBlIGZyb20gY29tbW9ucyBlcnJvciBpZiBuYW1lIGlzIG5vdCBwcm92aWRlZCkuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck5hbWUoZXJyb3I6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQUNvbW1vbnNFcnJvckJhc2UpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yLm5hbWUgPz8gZXJyb3IudHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZXJyb3IubmFtZTtcbiAgICB9XG59XG5cbi8qKlxuICogV3JpdGVzIGh0dHAgZXJyb3IgdG8gc3RyaW5nIHdpdGggYWxsIGhlYWRlcnMgYW5kIGJvZHkuXG4gKiBAcGFyYW0gZXJyb3IgSHR0cCByZXNwb25zZSBlcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqICAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IgKG1lc3NhZ2UgaW5jbHVkZSB1cmwsIHN0YXR1cyBhbmQgc3RhdHVzIHRleHQhKS5cbiAqICAtIGhpZGVIZWFkZXJzIEhpZGVzIGhlYWRlcnMuXG4gKiAgLSBoaWRlQm9keSBIaWRlcyBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGJvZHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgb3B0cz86IEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IHN0ciA9IG9wdHM/LmhpZGVNZXNzYWdlID8gJycgOiBgJHtlcnJvci5tZXNzYWdlfVxcbmA7IC8vIG1lc3NhZ2Ugc2hvdWxkIGFscmVhZHkgaW5jbHVkZSB1cmwsIHN0YXR1cywgZXRjLlxuICAgIGlmICghb3B0cz8uaGlkZUhlYWRlcnMpIHtcbiAgICAgICAgc3RyICs9IGBIdHRwIFJlc3BvbnNlIEhlYWRlcnM6ICR7ZXJyb3IuaGVhZGVycy5rZXlzKCkucmVkdWNlKChhY2MsIGtleSkgPT4gYCR7YWNjfVske2tleX06ICR7ZXJyb3IuaGVhZGVycy5nZXQoa2V5KX1dYCwgJycpfWA7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZUJvZHkpIHtcbiAgICAgICAgc3RyICs9IGBcXG5IdHRwIFJlc3BvbnNlIEJvZHk6ICR7c3RyaW5naWZ5KGVycm9yLmVycm9yKX1gO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIEVycm9yIHRvIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvci5cbiAqIC0gaGlkZU5hbWUgSGlkZXMgZXJyb3IgbmFtZS5cbiAqIC0gaGlkZUNhdXNlIEhpZGVzIGNhdXNlIG9mIGFuIGVycm9yIChpZiBwcmVzZW50LCBzZWUgQGxpbmsoZXJyb3JDYXVzZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gKiAtIGhpZGVTdGFjayBIaWRlcyBzdGFjayBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVEZXRhaWxzIEhpZGVzIEpTT04gZGV0YWlsJ3MgcmVwcmVzZW50YXRpb24gb2YgZXJyb3IgKGlmIHByZXNlbnQpLlxuICogLSBoaWRlTG9jYXRpb24gSGlkZXMgbG9jYXRpb24gKFVSTCkgd2hlcmUgZXJyb3Igd2FzIHRocm93bi5cbiAqIC0gaGlkZUh0dHAgSGlkZXMgaHR0cCBlcnJvciBwb3J0aW9uIG9mIGVycm9yIGlmIGh0dHAgZXJyb3IgcmVzcG9uc2UgKHNlZSBAbGluayhodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclRvU3RyaW5nKGVycm9yOiBFcnJvciwgb3B0cz86IEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQUNvbW1vbnNFcnJvckJhc2UpIHtcbiAgICAgICAgcmV0dXJuIGNvbW1vbnNFcnJvclRvU3RyaW5nKGVycm9yLCBvcHRzKTtcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ckJsb2Nrczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoIW9wdHM/LmhpZGVNZXNzYWdlKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoZXJyb3IubmFtZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgRXJyb3IgbmFtZTogJHtlcnJvci5uYW1lfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVDYXVzZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBDb21tb25zIGVycm9yIHRvIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBDb21tb25zIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICogLSBoaWRlQ2F1c2UgSGlkZXMgY2F1c2Ugb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQsIHNlZSBAbGluayhlcnJvckNhdXNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVMb2NhdGlvbiBIaWRlcyBsb2NhdGlvbiAoVVJMKSB3aGVyZSBlcnJvciB3YXMgdGhyb3duLlxuICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIGluZm9ybWF0aW9uIChodHRwIGJvZHksIGFjdGlvbiBjb250ZXh0IGRhdGEpLlxuICogLSBoaWRlQWN0aW9uRGF0YSBTZWUgQGxpbmsoY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKSBmb3IgYWRkaXRpb25hbCBpbmZvLlxuICogLSBoaWRlUXVlcnlQYXJhbXMgU2VlIEBsaW5rKGNvbW1vbnNBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZykgZm9yIGFkZGl0aW9uYWwgaW5mby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1vbnNFcnJvclRvU3RyaW5nKGVycm9yOiBBQ29tbW9uc0Vycm9yQmFzZSwgb3B0cz86IEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RyQmxvY2tzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYCR7ZXJyb3IubWVzc2FnZX0ke2Vycm9yLm1lc3NhZ2VDb2RlID8gYCAoY29kZTogJHtlcnJvci5tZXNzYWdlQ29kZX0pYCA6ICcnfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVOYW1lKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWUgPz8gZXJyb3IudHlwZX0gJHtlcnJvci5uYW1lID8gYCgke2Vycm9yLnR5cGV9KWAgOiAnJ31gKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlTG9jYXRpb24gJiYgZXJyb3IubG9jYXRpb24pIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYExvY2F0aW9uOiAke2Vycm9yLmxvY2F0aW9ufWApO1xuICAgIH1cblxuICAgIGxldCBpc0h0dHAgPSBmYWxzZTtcbiAgICBpZiAoIW9wdHM/LmhpZGVIdHRwICYmIGVycm9yIGluc3RhbmNlb2YgQ29tbW9uc0h0dHBFcnJvcikge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChcbiAgICAgICAgICAgIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IuaHR0cEVycm9yLCB7XG4gICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICBoaWRlSGVhZGVyczogb3B0cz8uaGlkZUhlYWRlcnMsXG4gICAgICAgICAgICAgICAgaGlkZU1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UuaW5kZXhPZihlcnJvci5odHRwRXJyb3IubWVzc2FnZSkgPj0gMFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaXNIdHRwID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGVycm9yLnR5cGUgPT09ICdDb21tb25zQWN0aW9uRXJyb3InKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkVycm9yID0gZXJyb3IgYXMgdW5rbm93biBhcyBJQ29tbW9uc0FjdGlvbkVycm9yO1xuICAgICAgICBpZiAoYWN0aW9uRXJyb3IuYWN0aW9uQ29udGV4dCkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKGFjdGlvbkVycm9yLCBvcHRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSHR0cCAmJiBhY3Rpb25FcnJvci5odHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhhY3Rpb25FcnJvci5odHRwRXJyb3IsIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICAgICAgaGlkZUhlYWRlcnM6IG9wdHM/LmhpZGVIZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICBoaWRlTWVzc2FnZTogZXJyb3IubWVzc2FnZS5pbmRleE9mKGFjdGlvbkVycm9yLmh0dHBFcnJvci5tZXNzYWdlKSA+PSAwXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpc0h0dHAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFvcHRzPy5oaWRlRGV0YWlscyAmJiBlcnJvci5kZXRhaWxzKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBEZXRhaWxzOiAke3N0cmluZ2lmeShlcnJvci5kZXRhaWxzKX1gKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlQ2F1c2UgJiYgKCFpc0h0dHAgfHwgIShlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSkpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yLCBvcHRzKSk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZVN0YWNrICYmIGVycm9yLnN0YWNrKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBTdGFjayB0cmFjZTpcXG4ke2Vycm9yLnN0YWNrfWApO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJCbG9ja3MuZmlsdGVyKHMgPT4gcy50cmltKCkubGVuZ3RoID4gMCkuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogV3JpdGVzIGNvbW1vbnMgYWN0aW9uIGVycm9yIGluZm8gZnJvbSBjb250ZXh0IGFzIHN0cmluZy5cbiAqIEBwYXJhbSBlcnJvciBDb21tb25zIGFjdGlvbiBlcnJvci5cbiAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIHJlbGF0ZWQgaW5mb3JtYXRpb24gKGl0ZW0sIGZvcm0gaXRlbSwgc3VibWl0IGl0ZW0sIC4uLikuXG4gKiAtIGhpZGVBY3Rpb25EYXRhIEhpZGVzIGFjdGlvbiBkYXRhLlxuICogLSBoaWRlUXVlcnlQYXJhbXMgSGlkZXMgcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKGVycm9yOiBJQ29tbW9uc0FjdGlvbkVycm9yLCBvcHRzPzogQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IHBhcmFtc01lc3NhZ2UgPSAnJztcbiAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycykge1xuICAgICAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5pdGVtSWQpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtpdGVtSWQ6ICR7ZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLml0ZW1JZH1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLml0ZW0pIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtpdGVtOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbSl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQWN0aW9uRGF0YSAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gT2JqZWN0LmVudHJpZXMoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5hY3Rpb25EYXRhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiBgJHthY2N9W2FjdGlvbkRhdGEgJHtrZXl9OiAke3N0cmluZ2lmeSh2YWx1ZSl9XWAsICcnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVRdWVyeVBhcmFtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZGF0YUxpc3RQYXJhbXM6ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5kYXRhTGlzdFBhcmFtcyl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5mb3JtSXRlbSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2Zvcm1JdGVtOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuZm9ybUl0ZW0pfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuc3VibWl0UmVzdWx0KSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZm9ybUl0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5zdWJtaXRSZXN1bHQpfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2xvY2FsZTogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmxvY2FsZSl9XWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zTWVzc2FnZTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgY2F1c2Ugb2YgYW4gZXJyb3IgYXMgc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBjYXVzZU9uRXJyb3JPbmx5IFByaW50cyBvbmx5IGlmIGNhdXNlIGlzIGluc3RhbmNlIG9mIGVycm9yLlxuICogLSBjYXVzZUFzSnNvbiBQcmludCBlcnJvciBjYXVzZSBhcyBhIEpTT04gKGJ5IGRlZmF1bHQsIGlmIGVycm9yIG9ubHkgbWVzc2FnZSBhbmQgbmFtZSB3aWxsIGJlIHByaW50ZWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yOiBFcnJvciwgb3B0cz86IEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICAvLyBpZiBhbHJlYWR5IGxvZ2dlZCBhcyBodHRwIGVycm9yLCBjaGVjayB0aGF0IGNhdXNlIGlzIG5vdCBhbHNvIGh0dHAgZXJyb3IgKGNhdXNlIGl0IGlzIHVzdWFsbHkgZHVwbGljYXRlZClcbiAgICBpZiAoZXJyb3IuY2F1c2UgJiYgKCFvcHRzPy5jYXVzZU9uRXJyb3JPbmx5IHx8IGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IG5lZWRzU3RyaW5naWZ5ID0gb3B0cz8uY2F1c2VBc0pzb24gfHwgIShlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKTtcbiAgICAgICAgaWYgKCFvcHRzPy5jYXVzZU9uRXJyb3JPbmx5IHx8IGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgJ0NhdXNlZCBieTogJyArXG4gICAgICAgICAgICAgICAgKG5lZWRzU3RyaW5naWZ5ID8gc3RyaW5naWZ5KGVycm9yLmNhdXNlKSA6IGAkeyhlcnJvci5jYXVzZSBhcyBFcnJvcikubWVzc2FnZX0keyhlcnJvci5jYXVzZSBhcyBFcnJvcikubmFtZSA/IGAgKCR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5uYW1lfSlgIDogJyd9YClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBlcnJvciB3aXRoIHRoZSBwcm92aWRlZCBlcnJvciBtZXNzYWdlLlxuICogVGhlIGludGVuZGVkIHVzYWdlIGlzIGZvciBpbi1saW5lIHRocm93aW5nIG9mIGFuIGVycm9yIHdpdGggVFMgdHlwZSBuYXJyb3dpbmcuXG4gKiA8YnI+XG4gKiA8aT5FeGFtcGxlPC9pPjpcbiAqIDxwcmU+XG4gKiAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgfCBudWxsID0gZ2V0VmFsdWUoXCJcIik7XG4gKiAgIGNvbnN0IG5vbk51bGxWYWx1ZTogc3RyaW5nID0gZ2V0VmFsdWUoXCJcIikgPz8gdGhyb3dFcnJvcihcInZhbHVlIG1pc3NpbmdcIik7XG4gKiA8L3ByZT5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXJyb3JNZXNzYWdlIC0gVGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgdGhyb3duLlxuICogQHBhcmFtIHtDb21tb25zRXJyb3JCYXNlT3B0aW9uc30gW29wdGlvbnNdIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgdGhyb3duIGVycm9yLlxuICogQHRocm93cyB7RXJyb3J9IC0gVGhlIGVycm9yIG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCBlcnJvciBtZXNzYWdlLlxuICogQHJldHVybnMge25ldmVyfSAtIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKiBAc2VlIENvbW1vbnNFcnJvckJhc2VPcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGVycm9yTWVzc2FnZSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIEVycm9yVG9TdHJpbmdPcHRpb25zVHlwZSA9IEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUgJlxuICAgIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSAmXG4gICAgRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9uc1R5cGUgJiB7XG4gICAgICAgIGhpZGVEZXRhaWxzPzogYm9vbGVhbjtcbiAgICAgICAgaGlkZUxvY2F0aW9uPzogYm9vbGVhbjtcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZVR5cGUge1xuICAgIGhpZGVOYW1lPzogYm9vbGVhbjtcbiAgICBoaWRlU3RhY2s/OiBib29sZWFuO1xuICAgIGhpZGVDYXVzZT86IGJvb2xlYW47XG4gICAgaGlkZUh0dHA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZU1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBoaWRlQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgaGlkZUl0ZW1zPzogYm9vbGVhbjtcbiAgICBoaWRlQWN0aW9uRGF0YT86IGJvb2xlYW47XG4gICAgaGlkZVF1ZXJ5UGFyYW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zVHlwZSB7XG4gICAgY2F1c2VPbkVycm9yT25seT86IGJvb2xlYW47XG4gICAgY2F1c2VBc0pzb24/OiBib29sZWFuO1xufVxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL2Vycm9yL2Vycm9yLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLGdCQUFnQixFQUFFLG9CQUFvQixFQUFzQixNQUFNLGVBQWUsQ0FBQztBQUV0STs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBYSxFQUFFLE9BQWE7SUFDdkUsTUFBTSxJQUFJLEdBQTRCO1FBQ2xDLElBQUk7UUFDSixPQUFPO1FBQ1AsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUNuQyxDQUFDO0lBRUYsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztRQUNyQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFVO0lBQzFDLE9BQU8sS0FBSyxZQUFZLGlCQUFpQixJQUFJLEtBQUssWUFBWSxnQkFBZ0IsSUFBSyxLQUF5QyxFQUFFLFNBQVMsWUFBWSxpQkFBaUIsQ0FB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QUFLLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxNQUFNLGNBQWMsR0FBRyxJQUFJLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUMxRCxPQUFPLENBQ0gsYUFBYTtnQkFDYixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxLQUFLLENBQUMsS0FBZSxDQUFDLE9BQU8sR0FBSSxLQUFLLENBQUMsS0FBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBTSxLQUFLLENBQUMsS0FBZSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUMzSixDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLFlBQW9CLEVBQUUsT0FBaUM7SUFDOUUsTUFBTSxJQUFJLG9CQUFvQixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge3N0cmluZ2lmeX0gZnJvbSAnLi4vaGVscGVycy9zdHJpbmcnO1xuaW1wb3J0IHtMb2dMZXZlbEVudW19IGZyb20gJy4uL2xvZy9sb2cubW9kZWwnO1xuaW1wb3J0IHtBQ29tbW9uc0Vycm9yQmFzZSwgQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMsIENvbW1vbnNIdHRwRXJyb3IsIENvbW1vbnNJbnRlcm5hbEVycm9yLCBJQ29tbW9uc0FjdGlvbkVycm9yfSBmcm9tICcuL2Vycm9yLm1vZGVsJztcblxuLyoqXG4gKiBDb252ZXJ0cyBSeEpTIHN1YnNjcmlwdGlvbiBlcnJvciB0byBDb21tb25zRXJyb3IuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKiBAcGFyYW0gbmFtZSBPcHRpb25hbCBuYW1lIHRvIHdyaXRlIGluIGNvbW1vbnMgZXJyb3IuXG4gKiBAcGFyYW0gZGV0YWlscyBPcHRpb25hbCBkZXRhaWxzIG9mIGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVN1YnNjcmliZUVycm9yKGVycm9yOiBhbnksIG5hbWU/OiBzdHJpbmcsIGRldGFpbHM/OiBhbnkpOiBBQ29tbW9uc0Vycm9yQmFzZSB7XG4gICAgY29uc3Qgb3B0czogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMgPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRldGFpbHMsXG4gICAgICAgIGxvY2F0aW9uOiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmXG4gICAgfTtcblxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbW9uc0h0dHBFcnJvcihlcnJvci5tZXNzYWdlID8/ICdIdHRwIEVycm9yIG9jY3VycmVkJywgZXJyb3IsIG9wdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdHMuY2F1c2UgPSBlcnJvcjtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihlcnJvci5tZXNzYWdlID8/ICdJbnRlcm5hbCBFcnJvciBvY2N1cnJlZCcsIG9wdHMpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgZXJyb3IgaXMgSHR0cCBlcnJvciAoQW5ndWxhciBvciBDb21tb25zKS5cbiAqIEBwYXJhbSBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIdHRwRXJyb3JSZXNwb25zZShlcnJvcjogYW55KSB7XG4gICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgfHwgZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yIHx8IChlcnJvciBhcyBJQ29tbW9uc0FjdGlvbkVycm9yIHwgdW5kZWZpbmVkKT8uaHR0cEVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2U7XG59XG5cbi8qKlxuICogR2V0cyBIdHRwRXJyb3JSZXNwb25zZSBmcm9tIGVycm9yIChBbmd1bGFyIG9yIENvbW1vbnMpLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHR0cEVycm9yUmVzcG9uc2UoZXJyb3I6IGFueSk6IEh0dHBFcnJvclJlc3BvbnNlIHwgbnVsbCB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3I7XG4gICAgfSBlbHNlIGlmICgoZXJyb3IgYXMgSUNvbW1vbnNBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCk/Lmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKipcbiAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2Ugc3RhdHVzIGZyb20gZXJyb3IgKEFuZ3VsYXIgb3IgQ29tbW9ucykuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIdHRwRXJyb3JSZXNwb25zZVN0YXR1cyhlcnJvcjogYW55KTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yKT8uc3RhdHVzID8/IG51bGw7XG59XG5cbi8qKlxuICogR2V0cyBIdHRwRXJyb3JSZXNwb25zZSBzdGF0dXMgdGV4dCBmcm9tIGVycm9yIChBbmd1bGFyIG9yIENvbW1vbnMpLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHR0cEVycm9yUmVzcG9uc2VTdGF0dXNUZXh0KGVycm9yOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gZ2V0SHR0cEVycm9yUmVzcG9uc2UoZXJyb3IpPy5zdGF0dXNUZXh0ID8/IG51bGw7XG59XG5cbi8qKlxuICogR2V0IGVycm9yIGxvZyBsZXZlbC4gQWxsIGlzIGVycm9yLCBleGNlcHQgaWYgZXJyb3IgaXMgaHR0cCBlcnJvciB3aXRoIHN0YXR1cyA+PTQwMCBhbmQgPDUwMC5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTG9nTGV2ZWwoZXJyb3I6IGFueSk6IExvZ0xldmVsRW51bSB7XG4gICAgaWYgKGlzSHR0cEVycm9yUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yKTtcbiAgICAgICAgaWYgKHN0YXR1cyAmJiBzdGF0dXMgPj0gNDAwICYmIHN0YXR1cyA8IDUwMCkge1xuICAgICAgICAgICAgcmV0dXJuIExvZ0xldmVsRW51bS5XYXJuaW5nO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBMb2dMZXZlbEVudW0uRXJyb3I7XG59XG5cbi8qKlxuICogR2V0IGVycm9yIG5hbWUgKHByb3RvdHlwZSBuYW1lIG9yIHR5cGUgZnJvbSBjb21tb25zIGVycm9yIGlmIG5hbWUgaXMgbm90IHByb3ZpZGVkKS5cbiAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTmFtZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBQ29tbW9uc0Vycm9yQmFzZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IubmFtZSA/PyBlcnJvci50eXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlcnJvci5uYW1lO1xuICAgIH1cbn1cblxuLyoqXG4gKiBXcml0ZXMgaHR0cCBlcnJvciB0byBzdHJpbmcgd2l0aCBhbGwgaGVhZGVycyBhbmQgYm9keS5cbiAqIEBwYXJhbSBlcnJvciBIdHRwIHJlc3BvbnNlIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvciAobWVzc2FnZSBpbmNsdWRlIHVybCwgc3RhdHVzIGFuZCBzdGF0dXMgdGV4dCEpLlxuICogIC0gaGlkZUhlYWRlcnMgSGlkZXMgaGVhZGVycy5cbiAqICAtIGhpZGVCb2R5IEhpZGVzIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYm9keS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBvcHRzPzogSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgc3RyID0gb3B0cz8uaGlkZU1lc3NhZ2UgPyAnJyA6IGAke2Vycm9yLm1lc3NhZ2V9XFxuYDsgLy8gbWVzc2FnZSBzaG91bGQgYWxyZWFkeSBpbmNsdWRlIHVybCwgc3RhdHVzLCBldGMuXG4gICAgaWYgKCFvcHRzPy5oaWRlSGVhZGVycykge1xuICAgICAgICBzdHIgKz0gYEh0dHAgUmVzcG9uc2UgSGVhZGVyczogJHtlcnJvci5oZWFkZXJzLmtleXMoKS5yZWR1Y2UoKGFjYywga2V5KSA9PiBgJHthY2N9WyR7a2V5fTogJHtlcnJvci5oZWFkZXJzLmdldChrZXkpfV1gLCAnJyl9YDtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlQm9keSkge1xuICAgICAgICBzdHIgKz0gYFxcbkh0dHAgUmVzcG9uc2UgQm9keTogJHtzdHJpbmdpZnkoZXJyb3IuZXJyb3IpfWA7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogRXJyb3IgdG8gc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIEVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICogLSBoaWRlQ2F1c2UgSGlkZXMgY2F1c2Ugb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQsIHNlZSBAbGluayhlcnJvckNhdXNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gKiAtIGhpZGVMb2NhdGlvbiBIaWRlcyBsb2NhdGlvbiAoVVJMKSB3aGVyZSBlcnJvciB3YXMgdGhyb3duLlxuICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVycm9yVG9TdHJpbmcoZXJyb3I6IEVycm9yLCBvcHRzPzogRXJyb3JUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBQ29tbW9uc0Vycm9yQmFzZSkge1xuICAgICAgICByZXR1cm4gY29tbW9uc0Vycm9yVG9TdHJpbmcoZXJyb3IsIG9wdHMpO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvciwgb3B0cyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyQmxvY2tzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChlcnJvci5uYW1lKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWV9YCk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZUNhdXNlKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKGVycm9yQ2F1c2VUb1N0cmluZyhlcnJvciwgb3B0cykpO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVTdGFjayAmJiBlcnJvci5zdGFjaykge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgU3RhY2sgdHJhY2U6XFxuJHtlcnJvci5zdGFja31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyQmxvY2tzLmZpbHRlcihzID0+IHMudHJpbSgpLmxlbmd0aCA+IDApLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIENvbW1vbnMgZXJyb3IgdG8gc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIENvbW1vbnMgZXJyb3IuXG4gKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gKiAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IuXG4gKiAtIGhpZGVOYW1lIEhpZGVzIGVycm9yIG5hbWUuXG4gKiAtIGhpZGVDYXVzZSBIaWRlcyBjYXVzZSBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCwgc2VlIEBsaW5rKGVycm9yQ2F1c2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICogLSBoaWRlU3RhY2sgSGlkZXMgc3RhY2sgb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQpLlxuICogLSBoaWRlRGV0YWlscyBIaWRlcyBKU09OIGRldGFpbCdzIHJlcHJlc2VudGF0aW9uIG9mIGVycm9yIChpZiBwcmVzZW50KS5cbiAqIC0gaGlkZUxvY2F0aW9uIEhpZGVzIGxvY2F0aW9uIChVUkwpIHdoZXJlIGVycm9yIHdhcyB0aHJvd24uXG4gKiAtIGhpZGVIdHRwIEhpZGVzIGh0dHAgZXJyb3IgcG9ydGlvbiBvZiBlcnJvciBpZiBodHRwIGVycm9yIHJlc3BvbnNlIChzZWUgQGxpbmsoaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICogLSBoaWRlSXRlbXMgSGlkZXMgYWxsIGl0ZW0gaW5mb3JtYXRpb24gKGh0dHAgYm9keSwgYWN0aW9uIGNvbnRleHQgZGF0YSkuXG4gKiAtIGhpZGVBY3Rpb25EYXRhIFNlZSBAbGluayhjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcpIGZvciBhZGRpdGlvbmFsIGluZm8uXG4gKiAtIGhpZGVRdWVyeVBhcmFtcyBTZWUgQGxpbmsoY29tbW9uc0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nKSBmb3IgYWRkaXRpb25hbCBpbmZvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbW9uc0Vycm9yVG9TdHJpbmcoZXJyb3I6IEFDb21tb25zRXJyb3JCYXNlLCBvcHRzPzogRXJyb3JUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdHJCbG9ja3M6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRzPy5oaWRlTWVzc2FnZSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgJHtlcnJvci5tZXNzYWdlfSR7ZXJyb3IubWVzc2FnZUNvZGUgPyBgIChjb2RlOiAke2Vycm9yLm1lc3NhZ2VDb2RlfSlgIDogJyd9YCk7XG4gICAgfVxuICAgIGlmICghb3B0cz8uaGlkZU5hbWUpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYEVycm9yIG5hbWU6ICR7ZXJyb3IubmFtZSA/PyBlcnJvci50eXBlfSAke2Vycm9yLm5hbWUgPyBgKCR7ZXJyb3IudHlwZX0pYCA6ICcnfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVMb2NhdGlvbiAmJiBlcnJvci5sb2NhdGlvbikge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChgTG9jYXRpb246ICR7ZXJyb3IubG9jYXRpb259YCk7XG4gICAgfVxuXG4gICAgbGV0IGlzSHR0cCA9IGZhbHNlO1xuICAgIGlmICghb3B0cz8uaGlkZUh0dHAgJiYgZXJyb3IgaW5zdGFuY2VvZiBDb21tb25zSHR0cEVycm9yKSB7XG4gICAgICAgIHN0ckJsb2Nrcy5wdXNoKFxuICAgICAgICAgICAgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvci5odHRwRXJyb3IsIHtcbiAgICAgICAgICAgICAgICBoaWRlQm9keTogb3B0cz8uaGlkZUl0ZW1zIHx8IG9wdHM/LmhpZGVCb2R5LFxuICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICBoaWRlTWVzc2FnZTogZXJyb3IubWVzc2FnZS5pbmRleE9mKGVycm9yLmh0dHBFcnJvci5tZXNzYWdlKSA+PSAwXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpc0h0dHAgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoZXJyb3IudHlwZSA9PT0gJ0NvbW1vbnNBY3Rpb25FcnJvcicpIHtcbiAgICAgICAgY29uc3QgYWN0aW9uRXJyb3IgPSBlcnJvciBhcyB1bmtub3duIGFzIElDb21tb25zQWN0aW9uRXJyb3I7XG4gICAgICAgIGlmIChhY3Rpb25FcnJvci5hY3Rpb25Db250ZXh0KSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoYWN0aW9uRXJyb3IsIG9wdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVIdHRwICYmIGFjdGlvbkVycm9yLmh0dHBFcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChcbiAgICAgICAgICAgICAgICBodHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGFjdGlvbkVycm9yLmh0dHBFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQm9keTogb3B0cz8uaGlkZUl0ZW1zIHx8IG9wdHM/LmhpZGVCb2R5LFxuICAgICAgICAgICAgICAgICAgICBoaWRlSGVhZGVyczogb3B0cz8uaGlkZUhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIGhpZGVNZXNzYWdlOiBlcnJvci5tZXNzYWdlLmluZGV4T2YoYWN0aW9uRXJyb3IuaHR0cEVycm9yLm1lc3NhZ2UpID49IDBcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlzSHR0cCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIW9wdHM/LmhpZGVEZXRhaWxzICYmIGVycm9yLmRldGFpbHMpIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYERldGFpbHM6ICR7c3RyaW5naWZ5KGVycm9yLmRldGFpbHMpfWApO1xuICAgIH1cbiAgICBpZiAoIW9wdHM/LmhpZGVDYXVzZSAmJiAoIWlzSHR0cCB8fCAhKGVycm9yLmNhdXNlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpKSkge1xuICAgICAgICBzdHJCbG9ja3MucHVzaChlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICB9XG4gICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgY29tbW9ucyBhY3Rpb24gZXJyb3IgaW5mbyBmcm9tIGNvbnRleHQgYXMgc3RyaW5nLlxuICogQHBhcmFtIGVycm9yIENvbW1vbnMgYWN0aW9uIGVycm9yLlxuICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICogLSBoaWRlSXRlbXMgSGlkZXMgYWxsIGl0ZW0gcmVsYXRlZCBpbmZvcm1hdGlvbiAoaXRlbSwgZm9ybSBpdGVtLCBzdWJtaXQgaXRlbSwgLi4uKS5cbiAqIC0gaGlkZUFjdGlvbkRhdGEgSGlkZXMgYWN0aW9uIGRhdGEuXG4gKiAtIGhpZGVRdWVyeVBhcmFtcyBIaWRlcyBxdWVyeSBwYXJhbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tb25zQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoZXJyb3I6IElDb21tb25zQWN0aW9uRXJyb3IsIG9wdHM/OiBBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnNUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgcGFyYW1zTWVzc2FnZSA9ICcnO1xuICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzKSB7XG4gICAgICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLml0ZW1JZCkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW1JZDogJHtlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbUlkfV1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5pdGVtKX1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVBY3Rpb25EYXRhICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuYWN0aW9uRGF0YSkge1xuICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBPYmplY3QuZW50cmllcyhlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IGAke2FjY31bYWN0aW9uRGF0YSAke2tleX06ICR7c3RyaW5naWZ5KHZhbHVlKX1dYCwgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZVF1ZXJ5UGFyYW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuZGF0YUxpc3RQYXJhbXMpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtkYXRhTGlzdFBhcmFtczogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKX1dYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmZvcm1JdGVtKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZm9ybUl0ZW06ICR7c3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5mb3JtSXRlbSl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5zdWJtaXRSZXN1bHQpIHtcbiAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtmb3JtSXRlbTogJHtzdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLnN1Ym1pdFJlc3VsdCl9XWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMubG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbbG9jYWxlOiAke3N0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMubG9jYWxlKX1dYDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXNNZXNzYWdlO1xufVxuXG4vKipcbiAqIFdyaXRlcyBjYXVzZSBvZiBhbiBlcnJvciBhcyBzdHJpbmcuXG4gKiBAcGFyYW0gZXJyb3IgRXJyb3IuXG4gKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gKiAtIGNhdXNlT25FcnJvck9ubHkgUHJpbnRzIG9ubHkgaWYgY2F1c2UgaXMgaW5zdGFuY2Ugb2YgZXJyb3IuXG4gKiAtIGNhdXNlQXNKc29uIFByaW50IGVycm9yIGNhdXNlIGFzIGEgSlNPTiAoYnkgZGVmYXVsdCwgaWYgZXJyb3Igb25seSBtZXNzYWdlIGFuZCBuYW1lIHdpbGwgYmUgcHJpbnRlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvckNhdXNlVG9TdHJpbmcoZXJyb3I6IEVycm9yLCBvcHRzPzogRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9uc1R5cGUpOiBzdHJpbmcge1xuICAgIC8vIGlmIGFscmVhZHkgbG9nZ2VkIGFzIGh0dHAgZXJyb3IsIGNoZWNrIHRoYXQgY2F1c2UgaXMgbm90IGFsc28gaHR0cCBlcnJvciAoY2F1c2UgaXQgaXMgdXN1YWxseSBkdXBsaWNhdGVkKVxuICAgIGlmIChlcnJvci5jYXVzZSAmJiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgY29uc3QgbmVlZHNTdHJpbmdpZnkgPSBvcHRzPy5jYXVzZUFzSnNvbiB8fCAhKGVycm9yLmNhdXNlIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgICAgICBpZiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAnQ2F1c2VkIGJ5OiAnICtcbiAgICAgICAgICAgICAgICAobmVlZHNTdHJpbmdpZnkgPyBzdHJpbmdpZnkoZXJyb3IuY2F1c2UpIDogYCR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5tZXNzYWdlfSR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5uYW1lID8gYCAoJHsoZXJyb3IuY2F1c2UgYXMgRXJyb3IpLm5hbWV9KWAgOiAnJ31gKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogVGhyb3dzIGFuIGVycm9yIHdpdGggdGhlIHByb3ZpZGVkIGVycm9yIG1lc3NhZ2UuXG4gKiBUaGUgaW50ZW5kZWQgdXNhZ2UgaXMgZm9yIGluLWxpbmUgdGhyb3dpbmcgb2YgYW4gZXJyb3Igd2l0aCBUUyB0eXBlIG5hcnJvd2luZy5cbiAqIDxicj5cbiAqIDxpPkV4YW1wbGU8L2k+OlxuICogPHByZT5cbiAqICAgY29uc3QgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBnZXRWYWx1ZShcIlwiKTtcbiAqICAgY29uc3Qgbm9uTnVsbFZhbHVlOiBzdHJpbmcgPSBnZXRWYWx1ZShcIlwiKSA/PyB0aHJvd0Vycm9yKFwidmFsdWUgbWlzc2luZ1wiKTtcbiAqIDwvcHJlPlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBlcnJvck1lc3NhZ2UgLSBUaGUgZXJyb3IgbWVzc2FnZSB0byBiZSB0aHJvd24uXG4gKiBAcGFyYW0ge0NvbW1vbnNFcnJvckJhc2VPcHRpb25zfSBbb3B0aW9uc10gLSBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB0aHJvd24gZXJyb3IuXG4gKiBAdGhyb3dzIHtFcnJvcn0gLSBUaGUgZXJyb3Igb2JqZWN0IHdpdGggdGhlIHByb3ZpZGVkIGVycm9yIG1lc3NhZ2UuXG4gKiBAcmV0dXJucyB7bmV2ZXJ9IC0gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYSB2YWx1ZS5cbiAqIEBzZWUgQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93RXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBDb21tb25zRXJyb3JCYXNlT3B0aW9ucyk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoZXJyb3JNZXNzYWdlLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JUb1N0cmluZ09wdGlvbnNUeXBlID0gRXJyb3JUb1N0cmluZ09wdGlvbnNCYXNlVHlwZSAmXG4gICAgSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnNUeXBlICZcbiAgICBBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnNUeXBlICZcbiAgICBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zVHlwZSAmIHtcbiAgICAgICAgaGlkZURldGFpbHM/OiBib29sZWFuO1xuICAgICAgICBoaWRlTG9jYXRpb24/OiBib29sZWFuO1xuICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JUb1N0cmluZ09wdGlvbnNCYXNlVHlwZSB7XG4gICAgaGlkZU5hbWU/OiBib29sZWFuO1xuICAgIGhpZGVTdGFjaz86IGJvb2xlYW47XG4gICAgaGlkZUNhdXNlPzogYm9vbGVhbjtcbiAgICBoaWRlSHR0cD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnNUeXBlIHtcbiAgICBoaWRlTWVzc2FnZT86IGJvb2xlYW47XG4gICAgaGlkZUhlYWRlcnM/OiBib29sZWFuO1xuICAgIGhpZGVCb2R5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnNUeXBlIHtcbiAgICBoaWRlSXRlbXM/OiBib29sZWFuO1xuICAgIGhpZGVBY3Rpb25EYXRhPzogYm9vbGVhbjtcbiAgICBoaWRlUXVlcnlQYXJhbXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnNUeXBlIHtcbiAgICBjYXVzZU9uRXJyb3JPbmx5PzogYm9vbGVhbjtcbiAgICBjYXVzZUFzSnNvbj86IGJvb2xlYW47XG59XG4iXX0=
@@ -7,6 +7,7 @@ export class ACommonsErrorBase extends Error {
7
7
  this.cause = options?.cause;
8
8
  this.stack = options?.stack ?? (options?.cause ? options.cause.stack : new Error(message).stack);
9
9
  this.details = options?.details;
10
+ this.notification = options?.notification;
10
11
  }
11
12
  }
12
13
  export class CommonsInternalError extends ACommonsErrorBase {
@@ -29,4 +30,4 @@ export class CommonsHttpError extends ACommonsErrorBase {
29
30
  this.httpError = httpError;
30
31
  }
31
32
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9lcnJvci9lcnJvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0QkEsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxLQUFLO0lBT2pELFlBQXNCLE9BQWUsRUFBRSxPQUFpQztRQUNwRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksVUFBVSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxRQUFRLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGlCQUFpQjtJQUd2RCxZQUFZLE9BQWUsRUFBRSxPQUFpQztRQUMxRCxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ1gsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixHQUFHLE9BQU87U0FDYixDQUFDLENBQUM7UUFOUyxTQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFPOUMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGlCQUFpQjtJQUtuRCxZQUFZLE9BQWUsRUFBRSxTQUE0QixFQUFFLE9BQWlDO1FBQ3hGLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDWCxJQUFJLEVBQUUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLEdBQUc7WUFDekMsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxPQUFPO1NBQ2IsQ0FBQyxDQUFDO1FBVFMsU0FBSSxHQUFHLGtCQUFrQixDQUFDO1FBVXRDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtBY3Rpb25QYXJhbWV0ZXJzfSBmcm9tICcuLi9hY3Rpb24vYWN0aW9uLXBhcmFtZXRlcnMubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBFcnJvclR5cGVzID0gJ0NvbW1vbnNJbnRlcm5hbEVycm9yJyB8ICdDb21tb25zQWN0aW9uRXJyb3InIHwgJ0NvbW1vbnNIdHRwRXJyb3InO1xuXG4vKipcbiAqIE1haW4gdXNlIGZvciBjb21tb25zIGVycm9yIGZyb20gYWN0aW9uIGV4ZWN1dGlvbi5cbiAqIElmIGh0dHAgZXJyb3IgaXMgdGhyb3duLCBhZGQgaXQgaW4gY2F1c2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1vbnNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICB0eXBlOiBFcnJvclR5cGVzO1xuICAgIG1lc3NhZ2VDb2RlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBkZXRhaWxzPzogYW55O1xuICAgIHN0YWNrPzogc3RyaW5nO1xuICAgIGNhdXNlPzogRXJyb3IgfCB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vbnNFcnJvckJhc2VPcHRpb25zIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIG1lc3NhZ2VDb2RlPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGRldGFpbHM/OiBhbnk7XG4gICAgY2F1c2U/OiBFcnJvcjtcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBsb2NhdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFDb21tb25zRXJyb3JCYXNlIGV4dGVuZHMgRXJyb3IgaW1wbGVtZW50cyBJQ29tbW9uc0Vycm9yIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogRXJyb3JUeXBlcztcblxuICAgIHB1YmxpYyByZWFkb25seSBtZXNzYWdlQ29kZT86IG51bWJlciB8IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGRldGFpbHM/OiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG5cbiAgICAgICAgdGhpcy5uYW1lID0gb3B0aW9ucz8ubmFtZSA/PyAnTW5nRXJyb3InO1xuICAgICAgICB0aGlzLm1lc3NhZ2VDb2RlID0gb3B0aW9ucz8ubWVzc2FnZUNvZGU7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSBvcHRpb25zPy5sb2NhdGlvbiA/PyB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmO1xuICAgICAgICB0aGlzLmNhdXNlID0gb3B0aW9ucz8uY2F1c2U7XG4gICAgICAgIHRoaXMuc3RhY2sgPSBvcHRpb25zPy5zdGFjayA/PyAob3B0aW9ucz8uY2F1c2UgPyBvcHRpb25zLmNhdXNlLnN0YWNrIDogbmV3IEVycm9yKG1lc3NhZ2UpLnN0YWNrKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzID0gb3B0aW9ucz8uZGV0YWlscztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tb25zSW50ZXJuYWxFcnJvciBleHRlbmRzIEFDb21tb25zRXJyb3JCYXNlIGltcGxlbWVudHMgSUNvbW1vbnNFcnJvciB7XG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnQ29tbW9uc0ludGVybmFsRXJyb3InO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1vbnNJbnRlcm5hbEVycm9yJyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tbW9uc0h0dHBFcnJvciBleHRlbmRzIEFDb21tb25zRXJyb3JCYXNlIGltcGxlbWVudHMgSUNvbW1vbnNFcnJvciB7XG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnQ29tbW9uc0h0dHBFcnJvcic7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcblxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgb3B0aW9ucz86IENvbW1vbnNFcnJvckJhc2VPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UsIHtcbiAgICAgICAgICAgIG5hbWU6ICdDb21tb25zSHR0cEVycm9yXycgKyBodHRwRXJyb3IudXJsLFxuICAgICAgICAgICAgY2F1c2U6IGh0dHBFcnJvcixcbiAgICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaHR0cEVycm9yID0gaHR0cEVycm9yO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uc0FjdGlvbkVycm9yIGV4dGVuZHMgSUNvbW1vbnNFcnJvciB7XG4gICAgdHlwZTogJ0NvbW1vbnNBY3Rpb25FcnJvcic7XG4gICAgaHR0cEVycm9yPzogSHR0cEVycm9yUmVzcG9uc2U7XG4gICAgYWN0aW9uQ29udGV4dD86IElDb21tb25zQWN0aW9uRXJyb3JDb250ZXh0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21tb25zQWN0aW9uRXJyb3JDb250ZXh0IHtcbiAgICBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPGFueT47XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9lcnJvci9lcnJvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ0EsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxLQUFLO0lBU2pELFlBQXNCLE9BQWUsRUFBRSxPQUFpQztRQUNwRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksVUFBVSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxRQUFRLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQzlDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxpQkFBaUI7SUFHdkQsWUFBWSxPQUFlLEVBQUUsT0FBaUM7UUFDMUQsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsR0FBRyxPQUFPO1NBQ2IsQ0FBQyxDQUFDO1FBTlMsU0FBSSxHQUFHLHNCQUFzQixDQUFDO0lBTzlDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUFLbkQsWUFBWSxPQUFlLEVBQUUsU0FBNEIsRUFBRSxPQUFpQztRQUN4RixLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ1gsSUFBSSxFQUFFLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxHQUFHO1lBQ3pDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsT0FBTztTQUNiLENBQUMsQ0FBQztRQVRTLFNBQUksR0FBRyxrQkFBa0IsQ0FBQztRQVV0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7TWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGkvbWVzc2FnZSc7XG5cbmltcG9ydCB7QWN0aW9uUGFyYW1ldGVyc30gZnJvbSAnLi4vYWN0aW9uL2FjdGlvbi1wYXJhbWV0ZXJzLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgRXJyb3JUeXBlcyA9ICdDb21tb25zSW50ZXJuYWxFcnJvcicgfCAnQ29tbW9uc0FjdGlvbkVycm9yJyB8ICdDb21tb25zSHR0cEVycm9yJztcblxuLyoqXG4gKiBNYWluIHVzZSBmb3IgY29tbW9ucyBlcnJvciBmcm9tIGFjdGlvbiBleGVjdXRpb24uXG4gKiBJZiBodHRwIGVycm9yIGlzIHRocm93biwgYWRkIGl0IGluIGNhdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21tb25zRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgdHlwZTogRXJyb3JUeXBlcztcbiAgICBtZXNzYWdlQ29kZT86IG51bWJlciB8IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IEVycm9yIHwgdW5rbm93bjtcbiAgICBub3RpZmljYXRpb24/OiBNZXNzYWdlO1xuICAgIG5vdGlmaWNhdGlvbkVtaXRTb3VyY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgbWVzc2FnZUNvZGU/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgICBjYXVzZT86IEVycm9yO1xuICAgIHN0YWNrPzogc3RyaW5nO1xuICAgIGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIG5vdGlmaWNhdGlvbj86IE1lc3NhZ2U7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc0Vycm9yQmFzZSBleHRlbmRzIEVycm9yIGltcGxlbWVudHMgSUNvbW1vbnNFcnJvciB7XG4gICAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHR5cGU6IEVycm9yVHlwZXM7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZUNvZGU/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBkZXRhaWxzPzogYW55O1xuICAgIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb24/OiBNZXNzYWdlO1xuICAgIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25FbWl0U291cmNlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IENvbW1vbnNFcnJvckJhc2VPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuXG4gICAgICAgIHRoaXMubmFtZSA9IG9wdGlvbnM/Lm5hbWUgPz8gJ01uZ0Vycm9yJztcbiAgICAgICAgdGhpcy5tZXNzYWdlQ29kZSA9IG9wdGlvbnM/Lm1lc3NhZ2VDb2RlO1xuICAgICAgICB0aGlzLmxvY2F0aW9uID0gb3B0aW9ucz8ubG9jYXRpb24gPz8gd2luZG93Py5sb2NhdGlvbj8uaHJlZjtcbiAgICAgICAgdGhpcy5jYXVzZSA9IG9wdGlvbnM/LmNhdXNlO1xuICAgICAgICB0aGlzLnN0YWNrID0gb3B0aW9ucz8uc3RhY2sgPz8gKG9wdGlvbnM/LmNhdXNlID8gb3B0aW9ucy5jYXVzZS5zdGFjayA6IG5ldyBFcnJvcihtZXNzYWdlKS5zdGFjayk7XG4gICAgICAgIHRoaXMuZGV0YWlscyA9IG9wdGlvbnM/LmRldGFpbHM7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gb3B0aW9ucz8ubm90aWZpY2F0aW9uO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1vbnNJbnRlcm5hbEVycm9yIGV4dGVuZHMgQUNvbW1vbnNFcnJvckJhc2UgaW1wbGVtZW50cyBJQ29tbW9uc0Vycm9yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdDb21tb25zSW50ZXJuYWxFcnJvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBDb21tb25zRXJyb3JCYXNlT3B0aW9ucykge1xuICAgICAgICBzdXBlcihtZXNzYWdlLCB7XG4gICAgICAgICAgICBuYW1lOiAnQ29tbW9uc0ludGVybmFsRXJyb3InLFxuICAgICAgICAgICAgLi4ub3B0aW9uc1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tb25zSHR0cEVycm9yIGV4dGVuZHMgQUNvbW1vbnNFcnJvckJhc2UgaW1wbGVtZW50cyBJQ29tbW9uc0Vycm9yIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9ICdDb21tb25zSHR0cEVycm9yJztcblxuICAgIHB1YmxpYyByZWFkb25seSBodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlO1xuXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCBvcHRpb25zPzogQ29tbW9uc0Vycm9yQmFzZU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSwge1xuICAgICAgICAgICAgbmFtZTogJ0NvbW1vbnNIdHRwRXJyb3JfJyArIGh0dHBFcnJvci51cmwsXG4gICAgICAgICAgICBjYXVzZTogaHR0cEVycm9yLFxuICAgICAgICAgICAgLi4ub3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5odHRwRXJyb3IgPSBodHRwRXJyb3I7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb21tb25zQWN0aW9uRXJyb3IgZXh0ZW5kcyBJQ29tbW9uc0Vycm9yIHtcbiAgICB0eXBlOiAnQ29tbW9uc0FjdGlvbkVycm9yJztcbiAgICBodHRwRXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZTtcbiAgICBhY3Rpb25Db250ZXh0PzogSUNvbW1vbnNBY3Rpb25FcnJvckNvbnRleHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1vbnNBY3Rpb25FcnJvckNvbnRleHQge1xuICAgIHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8YW55Pjtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL21vZGVscy9tZW51Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1F1ZXJ5UGFyYW1zSGFuZGxpbmd9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7QVBlcm1pc3Npb25zfSBmcm9tICcuLi9zZWN1cml0eS9wZXJtaXNzaW9ucy5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uc01lbnVJdGVtIHtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgcG9zaXRpb25JbmRleD86IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogQXJyYXk8Q29tbW9uc01lbnVJdGVtPjtcbiAgICBndWFyZHM/OiBBcnJheTxhbnk+O1xuICAgIHBlcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuICAgIHNlcGFyYXRvcj86IGJvb2xlYW47XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIGJhZGdlPzogc3RyaW5nO1xuICAgIGJhZGdlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIHZpc2libGU/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiB8IG51bGw7XG4gICAgaHJlZj86IHN0cmluZztcbiAgICB0YXJnZXQ/OiBzdHJpbmc7XG4gICAgcXVlcnlQYXJhbXM/OiB7XG4gICAgICAgIFtrOiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgICBmcmFnbWVudD86IHN0cmluZztcbiAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZztcbiAgICBwcmVzZXJ2ZUZyYWdtZW50PzogYm9vbGVhbjtcbiAgICBza2lwTG9jYXRpb25DaGFuZ2U/OiBib29sZWFuO1xuICAgIHJlcGxhY2VVcmw/OiBib29sZWFuO1xuICAgIHVwZGF0ZWQ/OiBib29sZWFuO1xuICAgIGxhenlDaGlsZHJlbj86IGJvb2xlYW47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL21vZGVscy9tZW51Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1F1ZXJ5UGFyYW1zSGFuZGxpbmd9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7QVBlcm1pc3Npb25zfSBmcm9tICcuLi9zZWN1cml0eS9wZXJtaXNzaW9ucy5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uc01lbnVJdGVtIHtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgcG9zaXRpb25JbmRleD86IG51bWJlcjtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGl0ZW1zPzogQXJyYXk8Q29tbW9uc01lbnVJdGVtPjtcbiAgICBwZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucztcbiAgICBzZXBhcmF0b3I/OiBib29sZWFuO1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICBiYWRnZT86IHN0cmluZztcbiAgICBiYWRnZUNsYXNzTmFtZT86IHN0cmluZztcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICBpc1Zpc2libGU/OiAobWVudUl0ZW06IENvbW1vbnNNZW51SXRlbSkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPiB8IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHJvdXRlckxpbms/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IHwgbnVsbDtcbiAgICBocmVmPzogc3RyaW5nO1xuICAgIHRhcmdldD86IHN0cmluZztcbiAgICBxdWVyeVBhcmFtcz86IHtcbiAgICAgICAgW2s6IHN0cmluZ106IGFueTtcbiAgICB9O1xuICAgIGZyYWdtZW50Pzogc3RyaW5nO1xuICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc/OiBRdWVyeVBhcmFtc0hhbmRsaW5nO1xuICAgIHByZXNlcnZlRnJhZ21lbnQ/OiBib29sZWFuO1xuICAgIHNraXBMb2NhdGlvbkNoYW5nZT86IGJvb2xlYW47XG4gICAgcmVwbGFjZVVybD86IGJvb2xlYW47XG4gICAgdXBkYXRlZD86IGJvb2xlYW47XG4gICAgbGF6eUNoaWxkcmVuPzogYm9vbGVhbjtcbn1cbiJdfQ==