stream-chat-angular 5.0.0-v5.21 → 5.0.0-v5.23

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 (33) hide show
  1. package/assets/version.d.ts +1 -1
  2. package/esm2020/assets/version.mjs +2 -2
  3. package/esm2020/lib/channel/channel.component.mjs +5 -6
  4. package/esm2020/lib/custom-templates.service.mjs +1 -10
  5. package/esm2020/lib/message/message.component.mjs +51 -21
  6. package/esm2020/lib/message-actions-box/message-actions-box.component.mjs +1 -1
  7. package/esm2020/lib/message-actions.service.mjs +22 -4
  8. package/esm2020/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.mjs +13 -1
  9. package/esm2020/lib/message-input/message-input.component.mjs +75 -23
  10. package/esm2020/lib/message-input/textarea/textarea.component.mjs +13 -1
  11. package/esm2020/lib/message-list/message-list.component.mjs +5 -3
  12. package/esm2020/lib/stream-chat.module.mjs +1 -6
  13. package/esm2020/lib/types.mjs +1 -1
  14. package/esm2020/public-api.mjs +1 -2
  15. package/fesm2015/stream-chat-angular.mjs +2028 -1989
  16. package/fesm2015/stream-chat-angular.mjs.map +1 -1
  17. package/fesm2020/stream-chat-angular.mjs +1669 -1631
  18. package/fesm2020/stream-chat-angular.mjs.map +1 -1
  19. package/lib/custom-templates.service.d.ts +1 -10
  20. package/lib/message/message.component.d.ts +11 -3
  21. package/lib/message-actions-box/message-actions-box.component.d.ts +1 -2
  22. package/lib/message-actions.service.d.ts +1 -0
  23. package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +1 -0
  24. package/lib/message-input/message-input.component.d.ts +19 -3
  25. package/lib/message-input/textarea/textarea.component.d.ts +1 -0
  26. package/lib/message-list/message-list.component.d.ts +2 -1
  27. package/lib/stream-chat.module.d.ts +9 -10
  28. package/lib/types.d.ts +1 -10
  29. package/package.json +1 -1
  30. package/public-api.d.ts +0 -1
  31. package/src/assets/version.ts +1 -1
  32. package/esm2020/lib/edit-message-form/edit-message-form.component.mjs +0 -83
  33. package/lib/edit-message-form/edit-message-form.component.d.ts +0 -31
@@ -1 +1 @@
1
- export declare const version = "5.0.0-v5.21";
1
+ export declare const version = "5.0.0-v5.23";
@@ -1,2 +1,2 @@
1
- export const version = '5.0.0-v5.21';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc1LjAuMC12NS4yMSc7XG4iXX0=
1
+ export const version = '5.0.0-v5.23';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2Fzc2V0cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdmVyc2lvbiA9ICc1LjAuMC12NS4yMyc7XG4iXX0=
@@ -8,9 +8,8 @@ import * as i3 from "../custom-templates.service";
8
8
  import * as i4 from "@angular/common";
9
9
  import * as i5 from "../icon/icon.component";
10
10
  import * as i6 from "../notification-list/notification-list.component";
11
- import * as i7 from "../edit-message-form/edit-message-form.component";
12
- import * as i8 from "../message-bounce-prompt/message-bounce-prompt.component";
13
- import * as i9 from "@ngx-translate/core";
11
+ import * as i7 from "../message-bounce-prompt/message-bounce-prompt.component";
12
+ import * as i8 from "@ngx-translate/core";
14
13
  /**
15
14
  * The `Channel` component is a container component that displays the [`ChannelHeader`](./ChannelHeaderComponent.mdx), [`MessageList`](./MessageListComponent.mdx), [`NotificationList`](./NotificationListComponent.mdx) and [`MessageInput`](./MessageInputComponent.mdx) components. You can also provide the [`Thread`](./ThreadComponent.mdx) component to use message [threads](https://getstream.io/chat/docs/javascript/threads/?language=javascript).
16
15
  */
@@ -38,9 +37,9 @@ export class ChannelComponent {
38
37
  }
39
38
  }
40
39
  ChannelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelComponent, deps: [{ token: i1.ChannelService }, { token: i2.ThemeService }, { token: i3.CustomTemplatesService }], target: i0.ɵɵFactoryTarget.Component });
41
- ChannelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelComponent, selector: "stream-channel", ngImport: i0, template: "<div\n class=\"str-chat str-chat-channel messaging str-chat__channel str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false &&\n (isInitializing$ | async) === false &&\n (isActiveChannel$ | async) === true;\n else noChannel\n \"\n class=\"str-chat__container\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.editMessageFormTemplate$ | async) ||\n defaultEditMessageForm\n \"\n ></ng-container>\n <ng-template #defaultEditMessageForm>\n <stream-edit-message-form></stream-edit-message-form>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageBouncePromptTemplate$ | async) ||\n defaultMessageBouncePrompt\n \"\n ></ng-container>\n <ng-template #defaultMessageBouncePrompt>\n <stream-message-bounce-prompt></stream-message-bounce-prompt>\n </ng-template>\n <div class=\"str-chat__main-panel\">\n <ng-content></ng-content>\n </div>\n <ng-content\n *ngIf=\"isActiveThread$ | async\"\n select='[name=\"thread\"]'\n ></ng-content>\n </div>\n <ng-template #noChannel>\n <div\n *ngIf=\"\n (isInitializing$ | async) === false &&\n ((isError$ | async) === true || (isActiveChannel$ | async) === false)\n \"\n class=\"str-chat__empty-channel\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p class=\"str-chat__empty-channel-text\">\n {{ \"streamChat.No chats here yet\u2026\" | translate }}\n </p>\n <div class=\"str-chat__empty-channel-notifications\">\n <stream-notification-list></stream-notification-list>\n </div>\n </div>\n <div\n *ngIf=\"\n (isInitializing$ | async) === true &&\n (isError$ | async) === false &&\n (isActiveChannel$ | async) === false\n \"\n class=\"str-chat__loading-channel\"\n >\n <div class=\"str-chat__loading-channel-header\">\n <div class=\"str-chat__loading-channel-header-avatar\"></div>\n <div class=\"str-chat__loading-channel-header-end\">\n <div class=\"str-chat__loading-channel-header-name\"></div>\n <div class=\"str-chat__loading-channel-header-info\"></div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-list\">\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-input-row\">\n <div class=\"str-chat__loading-channel-message-input\"></div>\n <div class=\"str-chat__loading-channel-message-send\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IconComponent, selector: "stream-icon", inputs: ["icon"] }, { kind: "component", type: i6.NotificationListComponent, selector: "stream-notification-list" }, { kind: "component", type: i7.EditMessageFormComponent, selector: "stream-edit-message-form" }, { kind: "component", type: i8.MessageBouncePromptComponent, selector: "stream-message-bounce-prompt" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
40
+ ChannelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ChannelComponent, selector: "stream-channel", ngImport: i0, template: "<div\n class=\"str-chat str-chat-channel messaging str-chat__channel str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false &&\n (isInitializing$ | async) === false &&\n (isActiveChannel$ | async) === true;\n else noChannel\n \"\n class=\"str-chat__container\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageBouncePromptTemplate$ | async) ||\n defaultMessageBouncePrompt\n \"\n ></ng-container>\n <ng-template #defaultMessageBouncePrompt>\n <stream-message-bounce-prompt></stream-message-bounce-prompt>\n </ng-template>\n <div class=\"str-chat__main-panel\">\n <ng-content></ng-content>\n </div>\n <ng-content\n *ngIf=\"isActiveThread$ | async\"\n select='[name=\"thread\"]'\n ></ng-content>\n </div>\n <ng-template #noChannel>\n <div\n *ngIf=\"\n (isInitializing$ | async) === false &&\n ((isError$ | async) === true || (isActiveChannel$ | async) === false)\n \"\n class=\"str-chat__empty-channel\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p class=\"str-chat__empty-channel-text\">\n {{ \"streamChat.No chats here yet\u2026\" | translate }}\n </p>\n <div class=\"str-chat__empty-channel-notifications\">\n <stream-notification-list></stream-notification-list>\n </div>\n </div>\n <div\n *ngIf=\"\n (isInitializing$ | async) === true &&\n (isError$ | async) === false &&\n (isActiveChannel$ | async) === false\n \"\n class=\"str-chat__loading-channel\"\n >\n <div class=\"str-chat__loading-channel-header\">\n <div class=\"str-chat__loading-channel-header-avatar\"></div>\n <div class=\"str-chat__loading-channel-header-end\">\n <div class=\"str-chat__loading-channel-header-name\"></div>\n <div class=\"str-chat__loading-channel-header-info\"></div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-list\">\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-input-row\">\n <div class=\"str-chat__loading-channel-message-input\"></div>\n <div class=\"str-chat__loading-channel-message-send\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IconComponent, selector: "stream-icon", inputs: ["icon"] }, { kind: "component", type: i6.NotificationListComponent, selector: "stream-notification-list" }, { kind: "component", type: i7.MessageBouncePromptComponent, selector: "stream-message-bounce-prompt" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
42
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChannelComponent, decorators: [{
43
42
  type: Component,
44
- args: [{ selector: 'stream-channel', template: "<div\n class=\"str-chat str-chat-channel messaging str-chat__channel str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false &&\n (isInitializing$ | async) === false &&\n (isActiveChannel$ | async) === true;\n else noChannel\n \"\n class=\"str-chat__container\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.editMessageFormTemplate$ | async) ||\n defaultEditMessageForm\n \"\n ></ng-container>\n <ng-template #defaultEditMessageForm>\n <stream-edit-message-form></stream-edit-message-form>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageBouncePromptTemplate$ | async) ||\n defaultMessageBouncePrompt\n \"\n ></ng-container>\n <ng-template #defaultMessageBouncePrompt>\n <stream-message-bounce-prompt></stream-message-bounce-prompt>\n </ng-template>\n <div class=\"str-chat__main-panel\">\n <ng-content></ng-content>\n </div>\n <ng-content\n *ngIf=\"isActiveThread$ | async\"\n select='[name=\"thread\"]'\n ></ng-content>\n </div>\n <ng-template #noChannel>\n <div\n *ngIf=\"\n (isInitializing$ | async) === false &&\n ((isError$ | async) === true || (isActiveChannel$ | async) === false)\n \"\n class=\"str-chat__empty-channel\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p class=\"str-chat__empty-channel-text\">\n {{ \"streamChat.No chats here yet\u2026\" | translate }}\n </p>\n <div class=\"str-chat__empty-channel-notifications\">\n <stream-notification-list></stream-notification-list>\n </div>\n </div>\n <div\n *ngIf=\"\n (isInitializing$ | async) === true &&\n (isError$ | async) === false &&\n (isActiveChannel$ | async) === false\n \"\n class=\"str-chat__loading-channel\"\n >\n <div class=\"str-chat__loading-channel-header\">\n <div class=\"str-chat__loading-channel-header-avatar\"></div>\n <div class=\"str-chat__loading-channel-header-end\">\n <div class=\"str-chat__loading-channel-header-name\"></div>\n <div class=\"str-chat__loading-channel-header-info\"></div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-list\">\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-input-row\">\n <div class=\"str-chat__loading-channel-message-input\"></div>\n <div class=\"str-chat__loading-channel-message-send\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n" }]
43
+ args: [{ selector: 'stream-channel', template: "<div\n class=\"str-chat str-chat-channel messaging str-chat__channel str-chat__theme-{{\n theme$ | async\n }}\"\n>\n <div\n *ngIf=\"\n (isError$ | async) === false &&\n (isInitializing$ | async) === false &&\n (isActiveChannel$ | async) === true;\n else noChannel\n \"\n class=\"str-chat__container\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n (customTemplatesService.messageBouncePromptTemplate$ | async) ||\n defaultMessageBouncePrompt\n \"\n ></ng-container>\n <ng-template #defaultMessageBouncePrompt>\n <stream-message-bounce-prompt></stream-message-bounce-prompt>\n </ng-template>\n <div class=\"str-chat__main-panel\">\n <ng-content></ng-content>\n </div>\n <ng-content\n *ngIf=\"isActiveThread$ | async\"\n select='[name=\"thread\"]'\n ></ng-content>\n </div>\n <ng-template #noChannel>\n <div\n *ngIf=\"\n (isInitializing$ | async) === false &&\n ((isError$ | async) === true || (isActiveChannel$ | async) === false)\n \"\n class=\"str-chat__empty-channel\"\n >\n <stream-icon icon=\"chat-bubble\"></stream-icon>\n <p class=\"str-chat__empty-channel-text\">\n {{ \"streamChat.No chats here yet\u2026\" | translate }}\n </p>\n <div class=\"str-chat__empty-channel-notifications\">\n <stream-notification-list></stream-notification-list>\n </div>\n </div>\n <div\n *ngIf=\"\n (isInitializing$ | async) === true &&\n (isError$ | async) === false &&\n (isActiveChannel$ | async) === false\n \"\n class=\"str-chat__loading-channel\"\n >\n <div class=\"str-chat__loading-channel-header\">\n <div class=\"str-chat__loading-channel-header-avatar\"></div>\n <div class=\"str-chat__loading-channel-header-end\">\n <div class=\"str-chat__loading-channel-header-name\"></div>\n <div class=\"str-chat__loading-channel-header-info\"></div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-list\">\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message\">\n <div class=\"str-chat__loading-channel-message-avatar\"></div>\n <div class=\"str-chat__loading-channel-message-end\">\n <div class=\"str-chat__loading-channel-message-sender\"></div>\n <div class=\"str-chat__loading-channel-message-last-row\">\n <div class=\"str-chat__loading-channel-message-text\"></div>\n <div class=\"str-chat__loading-channel-message-date\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"str-chat__loading-channel-message-input-row\">\n <div class=\"str-chat__loading-channel-message-input\"></div>\n <div class=\"str-chat__loading-channel-message-send\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n" }]
45
44
  }], ctorParameters: function () { return [{ type: i1.ChannelService }, { type: i2.ThemeService }, { type: i3.CustomTemplatesService }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvY2hhbm5lbC9jaGFubmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsL2NoYW5uZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBS3JDOztHQUVHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQVEzQixZQUNVLGNBQThCLEVBQzlCLFlBQTBCLEVBQ3pCLHNCQUE4QztRQUYvQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQU56RCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFRakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUM7WUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0I7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO1NBQ25DLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUM3QixPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUssRUFBRSxLQUFLLEtBQUssT0FBTyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQjtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7U0FDbkMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxhQUFhLElBQUksS0FBSyxFQUFFLEtBQUssS0FBSyxhQUFhLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3BFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNsQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEIsQ0FBQztJQUNKLENBQUM7OzZHQXBDVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixzRENmN0IsNnVJQThHQTsyRkQvRmEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uL2NoYW5uZWwuc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuLi9jdXN0b20tdGVtcGxhdGVzLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSBgQ2hhbm5lbGAgY29tcG9uZW50IGlzIGEgY29udGFpbmVyIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHRoZSBbYENoYW5uZWxIZWFkZXJgXSguL0NoYW5uZWxIZWFkZXJDb21wb25lbnQubWR4KSwgW2BNZXNzYWdlTGlzdGBdKC4vTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KSwgW2BOb3RpZmljYXRpb25MaXN0YF0oLi9Ob3RpZmljYXRpb25MaXN0Q29tcG9uZW50Lm1keCkgYW5kIFtgTWVzc2FnZUlucHV0YF0oLi9NZXNzYWdlSW5wdXRDb21wb25lbnQubWR4KSBjb21wb25lbnRzLiBZb3UgY2FuIGFsc28gcHJvdmlkZSB0aGUgW2BUaHJlYWRgXSguL1RocmVhZENvbXBvbmVudC5tZHgpIGNvbXBvbmVudCB0byB1c2UgbWVzc2FnZSBbdGhyZWFkc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvdGhyZWFkcy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1jaGFubmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYW5uZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFubmVsQ29tcG9uZW50IHtcbiAgaXNFcnJvciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGlzSW5pdGlhbGl6aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNBY3RpdmVUaHJlYWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0FjdGl2ZUNoYW5uZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICB0aGVtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZSxcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGN1c3RvbVRlbXBsYXRlc1NlcnZpY2U6IEN1c3RvbVRlbXBsYXRlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pc0Vycm9yJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5jaGFubmVsUXVlcnlTdGF0ZSQsXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWwkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0ZSwgYWN0aXZlQ2hhbm5lbF0pID0+IHtcbiAgICAgICAgcmV0dXJuICFhY3RpdmVDaGFubmVsICYmIHN0YXRlPy5zdGF0ZSA9PT0gJ2Vycm9yJztcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6aW5nJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5jaGFubmVsUXVlcnlTdGF0ZSQsXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWwkLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0ZSwgYWN0aXZlQ2hhbm5lbF0pID0+IHtcbiAgICAgICAgcmV0dXJuICFhY3RpdmVDaGFubmVsICYmIHN0YXRlPy5zdGF0ZSA9PT0gJ2luLXByb2dyZXNzJztcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmlzQWN0aXZlVGhyZWFkJCA9IHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlUGFyZW50TWVzc2FnZUlkJC5waXBlKFxuICAgICAgbWFwKChpZCkgPT4gISFpZClcbiAgICApO1xuICAgIHRoaXMudGhlbWUkID0gdGhpcy50aGVtZVNlcnZpY2UudGhlbWUkO1xuICAgIHRoaXMuaXNBY3RpdmVDaGFubmVsJCA9IHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbCQucGlwZShcbiAgICAgIG1hcCgoYykgPT4gISFjKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzdHItY2hhdCBzdHItY2hhdC1jaGFubmVsIG1lc3NhZ2luZyBzdHItY2hhdF9fY2hhbm5lbCBzdHItY2hhdF9fdGhlbWUte3tcbiAgICB0aGVtZSQgfCBhc3luY1xuICB9fVwiXG4+XG4gIDxkaXZcbiAgICAqbmdJZj1cIlxuICAgICAgKGlzRXJyb3IkIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAoaXNJbml0aWFsaXppbmckIHwgYXN5bmMpID09PSBmYWxzZSAmJlxuICAgICAgICAoaXNBY3RpdmVDaGFubmVsJCB8IGFzeW5jKSA9PT0gdHJ1ZTtcbiAgICAgIGVsc2Ugbm9DaGFubmVsXG4gICAgXCJcbiAgICBjbGFzcz1cInN0ci1jaGF0X19jb250YWluZXJcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgKGN1c3RvbVRlbXBsYXRlc1NlcnZpY2UuZWRpdE1lc3NhZ2VGb3JtVGVtcGxhdGUkIHwgYXN5bmMpIHx8XG4gICAgICAgIGRlZmF1bHRFZGl0TWVzc2FnZUZvcm1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVkaXRNZXNzYWdlRm9ybT5cbiAgICAgIDxzdHJlYW0tZWRpdC1tZXNzYWdlLWZvcm0+PC9zdHJlYW0tZWRpdC1tZXNzYWdlLWZvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAoY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tZXNzYWdlQm91bmNlUHJvbXB0VGVtcGxhdGUkIHwgYXN5bmMpIHx8XG4gICAgICAgIGRlZmF1bHRNZXNzYWdlQm91bmNlUHJvbXB0XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRNZXNzYWdlQm91bmNlUHJvbXB0PlxuICAgICAgPHN0cmVhbS1tZXNzYWdlLWJvdW5jZS1wcm9tcHQ+PC9zdHJlYW0tbWVzc2FnZS1ib3VuY2UtcHJvbXB0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19tYWluLXBhbmVsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgICpuZ0lmPVwiaXNBY3RpdmVUaHJlYWQkIHwgYXN5bmNcIlxuICAgICAgc2VsZWN0PSdbbmFtZT1cInRocmVhZFwiXSdcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNub0NoYW5uZWw+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgKGlzSW5pdGlhbGl6aW5nJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgKChpc0Vycm9yJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCAoaXNBY3RpdmVDaGFubmVsJCB8IGFzeW5jKSA9PT0gZmFsc2UpXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJzdHItY2hhdF9fZW1wdHktY2hhbm5lbFwiXG4gICAgPlxuICAgICAgPHN0cmVhbS1pY29uIGljb249XCJjaGF0LWJ1YmJsZVwiPjwvc3RyZWFtLWljb24+XG4gICAgICA8cCBjbGFzcz1cInN0ci1jaGF0X19lbXB0eS1jaGFubmVsLXRleHRcIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0Lk5vIGNoYXRzIGhlcmUgeWV04oCmXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZW1wdHktY2hhbm5lbC1ub3RpZmljYXRpb25zXCI+XG4gICAgICAgIDxzdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+PC9zdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICAoaXNJbml0aWFsaXppbmckIHwgYXN5bmMpID09PSB0cnVlICYmXG4gICAgICAgIChpc0Vycm9yJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgKGlzQWN0aXZlQ2hhbm5lbCQgfCBhc3luYykgPT09IGZhbHNlXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtaGVhZGVyLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXItZW5kXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtaGVhZGVyLW5hbWVcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXItaW5mb1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtaW5wdXQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtaW5wdXRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1zZW5kXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvY2hhbm5lbC9jaGFubmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGFubmVsL2NoYW5uZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFLckM7O0dBRUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUTNCLFlBQ1UsY0FBOEIsRUFDOUIsWUFBMEIsRUFDekIsc0JBQThDO1FBRi9DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBTnpELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQVFqQyxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQjtZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7U0FDbkMsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxhQUFhLElBQUksS0FBSyxFQUFFLEtBQUssS0FBSyxPQUFPLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYztTQUNuQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLLEVBQUUsS0FBSyxLQUFLLGFBQWEsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ2xCLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNoQixDQUFDO0lBQ0osQ0FBQzs7NkdBcENVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHNEQ2Y3Qiw0N0hBcUdBOzJGRHRGYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4uL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBDaGFubmVsYCBjb21wb25lbnQgaXMgYSBjb250YWluZXIgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgdGhlIFtgQ2hhbm5lbEhlYWRlcmBdKC4vQ2hhbm5lbEhlYWRlckNvbXBvbmVudC5tZHgpLCBbYE1lc3NhZ2VMaXN0YF0oLi9NZXNzYWdlTGlzdENvbXBvbmVudC5tZHgpLCBbYE5vdGlmaWNhdGlvbkxpc3RgXSguL05vdGlmaWNhdGlvbkxpc3RDb21wb25lbnQubWR4KSBhbmQgW2BNZXNzYWdlSW5wdXRgXSguL01lc3NhZ2VJbnB1dENvbXBvbmVudC5tZHgpIGNvbXBvbmVudHMuIFlvdSBjYW4gYWxzbyBwcm92aWRlIHRoZSBbYFRocmVhZGBdKC4vVGhyZWFkQ29tcG9uZW50Lm1keCkgY29tcG9uZW50IHRvIHVzZSBtZXNzYWdlIFt0aHJlYWRzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC90aHJlYWRzLz9sYW5ndWFnZT1qYXZhc2NyaXB0KS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLWNoYW5uZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbm5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlczogW10sXG59KVxuZXhwb3J0IGNsYXNzIENoYW5uZWxDb21wb25lbnQge1xuICBpc0Vycm9yJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNJbml0aWFsaXppbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0FjdGl2ZVRocmVhZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGlzQWN0aXZlQ2hhbm5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHRoZW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UsXG4gICAgcmVhZG9ubHkgY3VzdG9tVGVtcGxhdGVzU2VydmljZTogQ3VzdG9tVGVtcGxhdGVzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmlzRXJyb3IkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmNoYW5uZWxRdWVyeVN0YXRlJCxcbiAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3N0YXRlLCBhY3RpdmVDaGFubmVsXSkgPT4ge1xuICAgICAgICByZXR1cm4gIWFjdGl2ZUNoYW5uZWwgJiYgc3RhdGU/LnN0YXRlID09PSAnZXJyb3InO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXNJbml0aWFsaXppbmckID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmNoYW5uZWxRdWVyeVN0YXRlJCxcbiAgICAgIHRoaXMuY2hhbm5lbFNlcnZpY2UuYWN0aXZlQ2hhbm5lbCQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3N0YXRlLCBhY3RpdmVDaGFubmVsXSkgPT4ge1xuICAgICAgICByZXR1cm4gIWFjdGl2ZUNoYW5uZWwgJiYgc3RhdGU/LnN0YXRlID09PSAnaW4tcHJvZ3Jlc3MnO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXNBY3RpdmVUaHJlYWQkID0gdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVQYXJlbnRNZXNzYWdlSWQkLnBpcGUoXG4gICAgICBtYXAoKGlkKSA9PiAhIWlkKVxuICAgICk7XG4gICAgdGhpcy50aGVtZSQgPSB0aGlzLnRoZW1lU2VydmljZS50aGVtZSQ7XG4gICAgdGhpcy5pc0FjdGl2ZUNoYW5uZWwkID0gdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5waXBlKFxuICAgICAgbWFwKChjKSA9PiAhIWMpXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInN0ci1jaGF0IHN0ci1jaGF0LWNoYW5uZWwgbWVzc2FnaW5nIHN0ci1jaGF0X19jaGFubmVsIHN0ci1jaGF0X190aGVtZS17e1xuICAgIHRoZW1lJCB8IGFzeW5jXG4gIH19XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICAoaXNFcnJvciQgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgIChpc0luaXRpYWxpemluZyQgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgIChpc0FjdGl2ZUNoYW5uZWwkIHwgYXN5bmMpID09PSB0cnVlO1xuICAgICAgZWxzZSBub0NoYW5uZWxcbiAgICBcIlxuICAgIGNsYXNzPVwic3RyLWNoYXRfX2NvbnRhaW5lclwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAoY3VzdG9tVGVtcGxhdGVzU2VydmljZS5tZXNzYWdlQm91bmNlUHJvbXB0VGVtcGxhdGUkIHwgYXN5bmMpIHx8XG4gICAgICAgIGRlZmF1bHRNZXNzYWdlQm91bmNlUHJvbXB0XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRNZXNzYWdlQm91bmNlUHJvbXB0PlxuICAgICAgPHN0cmVhbS1tZXNzYWdlLWJvdW5jZS1wcm9tcHQ+PC9zdHJlYW0tbWVzc2FnZS1ib3VuY2UtcHJvbXB0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19tYWluLXBhbmVsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgICpuZ0lmPVwiaXNBY3RpdmVUaHJlYWQkIHwgYXN5bmNcIlxuICAgICAgc2VsZWN0PSdbbmFtZT1cInRocmVhZFwiXSdcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNub0NoYW5uZWw+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgKGlzSW5pdGlhbGl6aW5nJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgKChpc0Vycm9yJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCAoaXNBY3RpdmVDaGFubmVsJCB8IGFzeW5jKSA9PT0gZmFsc2UpXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJzdHItY2hhdF9fZW1wdHktY2hhbm5lbFwiXG4gICAgPlxuICAgICAgPHN0cmVhbS1pY29uIGljb249XCJjaGF0LWJ1YmJsZVwiPjwvc3RyZWFtLWljb24+XG4gICAgICA8cCBjbGFzcz1cInN0ci1jaGF0X19lbXB0eS1jaGFubmVsLXRleHRcIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0Lk5vIGNoYXRzIGhlcmUgeWV04oCmXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZW1wdHktY2hhbm5lbC1ub3RpZmljYXRpb25zXCI+XG4gICAgICAgIDxzdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+PC9zdHJlYW0tbm90aWZpY2F0aW9uLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICAoaXNJbml0aWFsaXppbmckIHwgYXN5bmMpID09PSB0cnVlICYmXG4gICAgICAgIChpc0Vycm9yJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgICAgKGlzQWN0aXZlQ2hhbm5lbCQgfCBhc3luYykgPT09IGZhbHNlXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtaGVhZGVyLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXItZW5kXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtaGVhZGVyLW5hbWVcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1oZWFkZXItaW5mb1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLWF2YXRhclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXNlbmRlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1sYXN0LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2xvYWRpbmctY2hhbm5lbC1tZXNzYWdlLXRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1kYXRlXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtaW5wdXQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fbG9hZGluZy1jaGFubmVsLW1lc3NhZ2UtaW5wdXRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19sb2FkaW5nLWNoYW5uZWwtbWVzc2FnZS1zZW5kXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -23,11 +23,6 @@ export class CustomTemplatesService {
23
23
  *
24
24
  */
25
25
  this.channelPreviewTemplate$ = new BehaviorSubject(undefined);
26
- /**
27
- * The message input template used when editing a message (instead of the [default message input](../components/MessageInputComponent.mdx))
28
- *
29
- */
30
- this.messageInputTemplate$ = new BehaviorSubject(undefined);
31
26
  /**
32
27
  * The template used for displaying a [mention inside a message](../code-examples/mention-actions.mdx)
33
28
  *
@@ -205,10 +200,6 @@ export class CustomTemplatesService {
205
200
  * The template to show if the thread message list is empty
206
201
  */
207
202
  this.emptyThreadMessageListPlaceholder$ = new BehaviorSubject(undefined);
208
- /**
209
- * The template used to display the [edit message form](../components/EditMessageFormComponent.mdx)
210
- */
211
- this.editMessageFormTemplate$ = new BehaviorSubject(undefined);
212
203
  /**
213
204
  * The template used to display the [message bounce prompt](../components/MessageBouncePromptComponent.mdx)
214
205
  */
@@ -228,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
228
219
  providedIn: 'root',
229
220
  }]
230
221
  }], ctorParameters: function () { return []; } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBcUN2Qzs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBeVNqQztRQXRTQTs7V0FFRztRQUNILHFDQUFnQyxHQUFHLElBQUksZUFBZSxDQUVwRCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gscUNBQWdDLEdBQUcsSUFBSSxlQUFlLENBRXBELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBRXpDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBRXhDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBRTVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FB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O1FBQ2I7O1dBRUc7UUFDSCw2QkFBd0IsR0FBRyxJQUFJLGVBQWUsQ0FDNUMsU0FBUyxDQUNWLENBQUM7UUFDRjs7V0FFRztRQUNILGlDQUE0QixHQUFHLElBQUksZUFBZSxDQUVoRCxTQUFTLENBQUMsQ0FBQztRQUNiOzs7V0FHRztRQUNILGdDQUEyQixHQUFHLElBQUksZUFBZSxDQUUvQyxTQUFTLENBQUMsQ0FBQztJQUNFLENBQUM7O21IQXpTTCxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBdHRhY2htZW50Q29udGV4dCxcbiAgQXR0YWNobWVudExpc3RDb250ZXh0LFxuICBBdHRhY2htZW50UHJldmlld0xpc3RDb250ZXh0LFxuICBBdmF0YXJDb250ZXh0LFxuICBDaGFubmVsQWN0aW9uc0NvbnRleHQsXG4gIENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dCxcbiAgQ2hhbm5lbFByZXZpZXdDb250ZXh0LFxuICBDaGFubmVsUHJldmlld0luZm9Db250ZXh0LFxuICBDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0LFxuICBDdXN0b21BdHRhY2htZW50VXBsb2FkQ29udGV4dCxcbiAgQ3VzdG9tTWV0YWRhdGFDb250ZXh0LFxuICBEYXRlU2VwYXJhdG9yQ29udGV4dCxcbiAgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyxcbiAgRGVsaXZlcmVkU3RhdHVzQ29udGV4dCxcbiAgRW1vamlQaWNrZXJDb250ZXh0LFxuICBJY29uQ29udGV4dCxcbiAgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0LFxuICBNZW50aW9uVGVtcGxhdGVDb250ZXh0LFxuICBNZXNzYWdlQWN0aW9uQm94SXRlbUNvbnRleHQsXG4gIE1lc3NhZ2VBY3Rpb25zQm94Q29udGV4dCxcbiAgTWVzc2FnZUNvbnRleHQsXG4gIE1lc3NhZ2VJbnB1dENvbnRleHQsXG4gIE1lc3NhZ2VSZWFjdGlvbnNDb250ZXh0LFxuICBNZXNzYWdlUmVhY3Rpb25zU2VsZWN0b3JDb250ZXh0LFxuICBNb2RhbENvbnRleHQsXG4gIE5vdGlmaWNhdGlvbkNvbnRleHQsXG4gIFJlYWRTdGF0dXNDb250ZXh0LFxuICBTZW5kaW5nU3RhdHVzQ29udGV4dCxcbiAgU3lzdGVtTWVzc2FnZUNvbnRleHQsXG4gIFRocmVhZEhlYWRlckNvbnRleHQsXG4gIFR5cGluZ0luZGljYXRvckNvbnRleHQsXG4gIFVucmVhZE1lc3NhZ2VzSW5kaWNhdG9yQ29udGV4dCxcbiAgVW5yZWFkTWVzc2FnZXNOb3RpZmljYXRpb25Db250ZXh0LFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBIGNlbnRyYWwgbG9jYXRpb24gZm9yIHJlZ2lzdGVyaW5nIHlvdXIgY3VzdG9tIHRlbXBsYXRlcyB0byBvdmVycmlkZSBwYXJ0cyBvZiB0aGUgY2hhdCBhcHBsaWNhdGlvbi5cbiAqXG4gKiBGb3IgY29kZSBleGFtcGxlcyB0byB0aGUgZGlmZmVyZW50IGN1c3RvbWl6YXRpb25zIHNlZSBvdXIgW2N1c3RvbWl6YXRpb25zIGV4YW1wbGUgYXBwbGljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci90cmVlL21hc3Rlci9wcm9qZWN0cy9jdXN0b21pemF0aW9ucy1leGFtcGxlKSwgc3BlY2lmaWNhbGx5IHRoZSBbQXBwQ29tcG9uZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZS9zcmMvYXBwKSAoc2VlIFtSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtYW5ndWxhci9ibG9iL21hc3Rlci9SRUFETUUubWQjY3VzdG9taXphdGlvbi1leGFtcGxlcykgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gc3RhcnQgdGhlIGFwcGxpY2F0aW9uKS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgdGhlIHR5cGUgZGVmaW5pdGlvbnMgb2YgdGhlIGNvbnRleHQgdGhhdCBpcyBwcm92aWRlZCBmb3IgZWFjaCB0ZW1wbGF0ZSBbb24gR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndSlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiB7XG4gIC8qKlxuICAgKiBUaGUgYXV0b2NvbXBsZXRlIGxpc3QgaXRlbSB0ZW1wbGF0ZSBmb3IgbWVudGlvbmluZyB1c2VycyAodXNlZCBpbiB0aGUgW2BBdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudGBdKC4uL2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlVGV4dGFyZWFDb21wb25lbnQubWR4KSlcbiAgICovXG4gIG1lbnRpb25BdXRvY29tcGxldGVJdGVtVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSBhdXRvY29tcGxldGUgbGlzdCBpdGVtIHRlbXBsYXRlIGZvciBjb21tYW5kcyAodXNlZCBpbiB0aGUgW2BBdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudGBdKC4uL2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlVGV4dGFyZWFDb21wb25lbnQubWR4KSlcbiAgICovXG4gIGNvbW1hbmRBdXRvY29tcGxldGVJdGVtVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYW4gaXRlbSBpbiB0aGUgW2NoYW5uZWwgbGlzdF0oLi4vY29tcG9uZW50cy9DaGFubmVsTGlzdENvbXBvbmVudC5tZHgpIChpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFtjaGFubmFsIGxpc3QgaXRlbV0oLi4vY29tcG9uZW50cy9DaGFubmVsUHJldmlld0NvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgY2hhbm5lbFByZXZpZXdUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPENoYW5uZWxQcmV2aWV3Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgaW5wdXQgdGVtcGxhdGUgdXNlZCB3aGVuIGVkaXRpbmcgYSBtZXNzYWdlIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIGlucHV0XSguLi9jb21wb25lbnRzL01lc3NhZ2VJbnB1dENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbWVzc2FnZUlucHV0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlSW5wdXRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBhIFttZW50aW9uIGluc2lkZSBhIG1lc3NhZ2VdKC4uL2NvZGUtZXhhbXBsZXMvbWVudGlvbi1hY3Rpb25zLm1keClcbiAgICpcbiAgICovXG4gIG1lbnRpb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lbnRpb25UZW1wbGF0ZUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBmb3IgW2Vtb2ppIHBpY2tlcl0oLi4vY29kZS1leGFtcGxlcy9lbW9qaS1waWNrZXIubWR4KVxuICAgKlxuICAgKi9cbiAgZW1vamlQaWNrZXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEVtb2ppUGlja2VyQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHR5cGluZyBpbmRpY2F0b3IgdGVtcGxhdGUgdXNlZCBpbiB0aGUgW21lc3NhZ2UgbGlzdF0oLi4vY29tcG9uZW50cy9NZXNzYWdlTGlzdENvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqL1xuICB0eXBpbmdJbmRpY2F0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFR5cGluZ0luZGljYXRvckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYSBtZXNzYWdlIGluIHRoZSBbbWVzc2FnZSBsaXN0XSguLi9jb21wb25lbnRzL01lc3NhZ2VMaXN0Q29tcG9uZW50Lm1keCkgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIG1lc3NhZ2VUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNoYW5uZWwgYWN0aW9ucyBkaXNwbGF5ZWQgaW4gdGhlIFtjaGFubmVsIGhlYWRlcl0oLi4vY29tcG9uZW50cy9DaGFubmVsSGVhZGVyQ29tcG9uZW50Lm1keCkgKGJ5IGRlZmF1bHQgbm8gY2hhbm5lbCBhY3Rpb24gaXMgZGlzcGxheWVkKVxuICAgKlxuICAgKi9cbiAgY2hhbm5lbEFjdGlvbnNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPENoYW5uZWxBY3Rpb25zQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhdHRhY2htZW50cyBvZiBhIFttZXNzYWdlXSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keCkpXG4gICAqXG4gICAqL1xuICBhdHRhY2htZW50TGlzdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudExpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF0dGFjaG1lbnRzIGluIHRoZSBbbWVzc2FnZSBpbnB1dF0oLi4vY29tcG9uZW50cy9NZXNzYWdlSW5wdXRDb21wb25lbnQubWR4KSBjb21wb25lbnQgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGF0dGFjaG1lbnQgcHJldmlld10oLi4vY29tcG9uZW50cy9BdHRhY2htZW50UHJldmlld0xpc3RDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGF0dGFjaG1lbnRQcmV2aWV3TGlzdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhdmF0YXJzIGZvciBjaGFubmVscyBhbmQgdXNlcnMgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGF2YXRhcl0oLi4vY29tcG9uZW50cy9BdmF0YXJDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGF2YXRhclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8QXZhdGFyQ29udGV4dD4gfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgaWNvbnMgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGljb24gY29tcG9uZW50XSguLi9jb21wb25lbnRzL0ljb25Db21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGljb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPEljb25Db250ZXh0PiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyB0aGUgbG9hZGluZyBpbmRpY2F0b3IgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IGxvYWRpbmcgaW5kaWNhdG9yXSguLi9jb21wb25lbnRzL0xvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGxvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPHZvaWQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBtZXNzYWdlIGFjdGlvbnMgYm94IChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIGFjdGlvbnMgYm94XSguLi9jb21wb25lbnRzL01lc3NhZ2VBY3Rpb25zQm94Q29tcG9uZW50Lm1keCkpXG4gICAqXG4gICAqL1xuICBtZXNzYWdlQWN0aW9uc0JveFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVzc2FnZUFjdGlvbnNCb3hDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBhbiBpdGVtIGluIHRoZSBbbWVzc2FnZSBhY3Rpb25zIGJveF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQWN0aW9uc0JveENvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqL1xuICBtZXNzYWdlQWN0aW9uc0JveEl0ZW1UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VBY3Rpb25Cb3hJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgcmVhY3Rpb25zIG9mIGEgW21lc3NhZ2VdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpLCBhbmQgdGhlIHNlbGVjdG9yIHRvIGFkZCBhIHJlYWN0aW9uIHRvIGEgbWVzc2FnZSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSByZWFjdGlvbnMgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VSZWFjdGlvbnNDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIG1lc3NhZ2VSZWFjdGlvbnNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VSZWFjdGlvbnNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSByZWFjdGlvbnMgb2YgYSBbbWVzc2FnZV0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keCksIGFuZCB0aGUgc2VsZWN0b3IgdG8gYWRkIGEgcmVhY3Rpb24gdG8gYSBtZXNzYWdlIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIHJlYWN0aW9ucyBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZVJlYWN0aW9uc0NvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbWVzc2FnZVJlYWN0aW9uc1NlbGVjdG9yVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlUmVhY3Rpb25zU2VsZWN0b3JDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGEgbW9kYWwgd2luZG93IChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtb2RhbF0oLi4vY29tcG9uZW50cy9Nb2RhbENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbW9kYWxUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPE1vZGFsQ29udGV4dD4gfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIFtkZWZhdWx0IG5vdGlmaWNhdGlvbiBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uQ29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIG5vdGlmaWNhdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Tm90aWZpY2F0aW9uQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGhlYWRlciBvZiBhIFt0aHJlYWRdKC4uL2NvbXBvbmVudHMvVGhyZWFkQ29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIHRocmVhZEhlYWRlclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VGhyZWFkSGVhZGVyQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgdGhlIGRlbGl2ZXJlZCBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBpbnNpZGUgdGhlIFttZXNzYWdlIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keClcbiAgICpcbiAgICogRGlzcGxheWVkIGZvciB0aGUgbGFzdCBtZXNzYWdlIHNlbnQgYnkgdGhlIGN1cnJlbnQgdXNlciwgaWYgdGhlIG1lc3NhZ2UgaXNuJ3QgeWV0IHJlYWQgYnkgYW55b25lXG4gICAqXG4gICAqL1xuICBkZWxpdmVyZWRTdGF0dXNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPERlbGl2ZXJlZFN0YXR1c0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIHRoZSBzZW5kaW5nIHN0YXRlIG9mIHRoZSBtZXNzYWdlIGluc2lkZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KVxuICAgKlxuICAgKiBEaXNwbGF5ZWQgZm9yIHRoZSBsYXN0IG1lc3NhZ2Ugc2VudCBieSB0aGUgY3VycmVudCB1c2VyLCBpZiB0aGUgbWVzc2FnZSBpcyBjdXJyZW50bHkgYmVpbmcgc2VudFxuICAgKlxuICAgKi9cbiAgc2VuZGluZ1N0YXR1c1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8U2VuZGluZ1N0YXR1c0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIHRoZSBzZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGluc2lkZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KVxuICAgKlxuICAgKiBEaXNwbGF5ZWQgZm9yIHRoZSBsYXN0IG1lc3NhZ2Ugc2VudCBieSB0aGUgY3VycmVudCB1c2VyLCBpZiB0aGUgbWVzc2FnZSBpcyByZWFkIGF0IGxlYXN0IGJ5IG9uZSB1c2VyXG4gICAqXG4gICAqL1xuICByZWFkU3RhdHVzVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxSZWFkU3RhdHVzQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgdG8gZGlzcGxheSBjdXN0b20gbWV0YWRhdGEgaW5zaWRlIFttZXNzYWdlIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIGN1c3RvbU1lc3NhZ2VNZXRhZGF0YVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q3VzdG9tTWV0YWRhdGFDb250ZXh0PFQ+PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgYSBjaGFubmVsIHVuZGVyIHRoZSBjaGFubmVsIG5hbWUgaW5zaWRlIHRoZSBbY2hhbm5lbCBoZWFkZXIgY29tcG9uZW50XSguLi9jb21wb25lbnRzL0NoYW5uZWxIZWFkZXJDb21wb25lbnQubWR4KVxuICAgKlxuICAgKi9cbiAgY2hhbm5lbEhlYWRlckluZm9UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPENoYW5uZWxIZWFkZXJJbmZvQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgZmlsZSB1cGxvYWQvYXR0YWNobWVudCBzZWxlY3RvciBpbnNpZGUgdGhlIFttZXNzYWdlIGlucHV0XSguLi9jb21wb25lbnRzL01lc3NhZ2VJbnB1dENvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqL1xuICBjdXN0b21BdHRhY2htZW50VXBsb2FkVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDdXN0b21BdHRhY2htZW50VXBsb2FkQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGEgc2luZ2xlIGltYWdlIGF0dGFjaG1lbnQgaXMgZGlzcGxheWVkIGluc2lkZSB0aGUgW2F0dGFjaG1lbnQgbGlzdF0oLi4vY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC5tZHgpXG4gICAqL1xuICBpbWFnZUF0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSB2b2ljZSByZWNvcmRpbmcgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keCksIGJ5IGRlZmF1bHQgdGhlIFt2b2ljZSByZWNvcmRpbmcgY29tcG9uZW50XSguLi9jb21wb25lbnRzL1ZvaWNlUmVjb3JkaW5nQ29tcG9uZW50Lm1keCkgaXMgdXNlZFxuICAgKi9cbiAgdm9pY2VSZWNvcmRpbmdBdHRhY2htZW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGEgdmlkZW8gYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIHZpZGVvQXR0YWNobWVudFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGhvdyBpbWFnZSBnYWxsZXJ5IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC4uL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQubWR4KVxuICAgKi9cbiAgZ2FsbGVyeUF0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSBmaWxlIGF0dGFjaG1lbnQgaXMgZGlzcGxheWVkIGluc2lkZSB0aGUgW2F0dGFjaG1lbnQgbGlzdF0oLi4vY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC5tZHgpXG4gICAqL1xuICBmaWxlQXR0YWNobWVudFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGhvdyBhIGNhcmQgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIGNhcmRBdHRhY2htZW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGF0dGFjaG1lbnQgYWN0aW9ucyBhcmUgZGlzcGxheWVkIGluc2lkZSB0aGUgW2F0dGFjaG1lbnQgbGlzdF0oLi4vY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC5tZHgpXG4gICAqL1xuICBhdHRhY2htZW50QWN0aW9uc1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgW3N5c3RlbSBtZXNzYWdlc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvc2lsZW50X21lc3NhZ2VzLz9sYW5ndWFnZT1qYXZhc2NyaXB0JnE9c3lzdGVtKSBpbmRpc2UgdGhlIFttZXNzYWdlIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keClcbiAgICovXG4gIHN5c3RlbU1lc3NhZ2VUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFN5c3RlbU1lc3NhZ2VDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBkYXRlIHNlcGFyYXRvciBpbnNpZGUgdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KVxuICAgKi9cbiAgZGF0ZVNlcGFyYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8RGF0ZVNlcGFyYXRvckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdW5yZWFkIG1lc3NhZ2VzIGluZGljYXRvciBpbnNpZGUgdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KSB3aGVuIHRoZSBjaGFubmVsIGlzIG9wZW5lZFxuICAgKlxuICAgKiBUaGlzIFVJIGVsZW1lbnQgaXMgdXNlZCB0byBzZXBhcmF0ZSB1bnJlYWQgbWVzc2FnZXMgZnJvbSByZWFkIG1lc3NhZ2VzXG4gICAqL1xuICBuZXdNZXNzYWdlc0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VW5yZWFkTWVzc2FnZXNJbmRpY2F0b3JDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHVucmVhZCBtZXNzYWdlcyBub3RpZmljYXRpb24gaW5zaWRlIHRoZSBbbWVzc2FnZSBsaXN0XSguLi9jb21wb25lbnRzL01lc3NhZ2VMaXN0Q29tcG9uZW50Lm1keCkgd2hlbiB0aGUgY2hhbm5lbCBpcyBvcGVuZWRcbiAgICpcbiAgICogVXNlcnMgY2FuIHVzZSB0aGlzIG5vdGlmaWNhdGlvbiB0byBqdW1wIHRvIHRoZSBmaXJzdCB1bnJlYWQgbWVzc2FnZSB3aGVuIGl0J3MgY2xpY2tlZFxuICAgKi9cbiAgbmV3TWVzc2FnZXNOb3RpZmljYXRpb25UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFVucmVhZE1lc3NhZ2VzTm90aWZpY2F0aW9uQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRvIHNob3cgaWYgdGhlIG1haW4gbWVzc2FnZSBsaXN0IGlzIGVtcHR5XG4gICAqL1xuICBlbXB0eU1haW5NZXNzYWdlTGlzdFBsYWNlaG9sZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRvIHNob3cgaWYgdGhlIHRocmVhZCBtZXNzYWdlIGxpc3QgaXMgZW1wdHlcbiAgICovXG4gIGVtcHR5VGhyZWFkTWVzc2FnZUxpc3RQbGFjZWhvbGRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPHZvaWQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIFtlZGl0IG1lc3NhZ2UgZm9ybV0oLi4vY29tcG9uZW50cy9FZGl0TWVzc2FnZUZvcm1Db21wb25lbnQubWR4KVxuICAgKi9cbiAgZWRpdE1lc3NhZ2VGb3JtVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjx2b2lkPiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBbbWVzc2FnZSBib3VuY2UgcHJvbXB0XSguLi9jb21wb25lbnRzL01lc3NhZ2VCb3VuY2VQcm9tcHRDb21wb25lbnQubWR4KVxuICAgKi9cbiAgbWVzc2FnZUJvdW5jZVByb21wdFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSBjaGFubmVsIGluZm9ybWF0aW9uIGluc2lkZSB0aGUgW2NoYW5uZWwgbGlzdCBpdGVtXSguLi9jb21wb25lbnRzL0NoYW5uZWxQcmV2aWV3Q29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIGNoYW5uZWxQcmV2aWV3SW5mb1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q2hhbm5lbFByZXZpZXdJbmZvQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRlbXBsYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2N1c3RvbS10ZW1wbGF0ZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBb0N2Qzs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBNFJqQztRQXpSQTs7V0FFRztRQUNILHFDQUFnQyxHQUFHLElBQUksZUFBZSxDQUVwRCxTQUFTLENBQUMsQ0FBQztRQUNiOztXQUVHO1FBQ0gscUNBQWdDLEdBQUcsSUFBSSxlQUFlLENBRXBELFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBRXhDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNkJBQXdCLEdBQUcsSUFBSSxlQUFlLENBRTVDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBRXBDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBRTNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2I7OztXQUdHO1FBQ0gsbUNBQThCLEdBQUcsSUFBSSxlQUFlLENBRWxELFNBQVMsQ0FB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UUFDYjs7O1dBR0c7UUFDSCxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FFL0MsU0FBUyxDQUFDLENBQUM7SUFDRSxDQUFDOzttSEE1Ukwsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGckIsTUFBTTsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQXR0YWNobWVudENvbnRleHQsXG4gIEF0dGFjaG1lbnRMaXN0Q29udGV4dCxcbiAgQXR0YWNobWVudFByZXZpZXdMaXN0Q29udGV4dCxcbiAgQXZhdGFyQ29udGV4dCxcbiAgQ2hhbm5lbEFjdGlvbnNDb250ZXh0LFxuICBDaGFubmVsSGVhZGVySW5mb0NvbnRleHQsXG4gIENoYW5uZWxQcmV2aWV3Q29udGV4dCxcbiAgQ2hhbm5lbFByZXZpZXdJbmZvQ29udGV4dCxcbiAgQ29tbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtQ29udGV4dCxcbiAgQ3VzdG9tQXR0YWNobWVudFVwbG9hZENvbnRleHQsXG4gIEN1c3RvbU1ldGFkYXRhQ29udGV4dCxcbiAgRGF0ZVNlcGFyYXRvckNvbnRleHQsXG4gIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MsXG4gIERlbGl2ZXJlZFN0YXR1c0NvbnRleHQsXG4gIEVtb2ppUGlja2VyQ29udGV4dCxcbiAgSWNvbkNvbnRleHQsXG4gIE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dCxcbiAgTWVudGlvblRlbXBsYXRlQ29udGV4dCxcbiAgTWVzc2FnZUFjdGlvbkJveEl0ZW1Db250ZXh0LFxuICBNZXNzYWdlQWN0aW9uc0JveENvbnRleHQsXG4gIE1lc3NhZ2VDb250ZXh0LFxuICBNZXNzYWdlUmVhY3Rpb25zQ29udGV4dCxcbiAgTWVzc2FnZVJlYWN0aW9uc1NlbGVjdG9yQ29udGV4dCxcbiAgTW9kYWxDb250ZXh0LFxuICBOb3RpZmljYXRpb25Db250ZXh0LFxuICBSZWFkU3RhdHVzQ29udGV4dCxcbiAgU2VuZGluZ1N0YXR1c0NvbnRleHQsXG4gIFN5c3RlbU1lc3NhZ2VDb250ZXh0LFxuICBUaHJlYWRIZWFkZXJDb250ZXh0LFxuICBUeXBpbmdJbmRpY2F0b3JDb250ZXh0LFxuICBVbnJlYWRNZXNzYWdlc0luZGljYXRvckNvbnRleHQsXG4gIFVucmVhZE1lc3NhZ2VzTm90aWZpY2F0aW9uQ29udGV4dCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBjZW50cmFsIGxvY2F0aW9uIGZvciByZWdpc3RlcmluZyB5b3VyIGN1c3RvbSB0ZW1wbGF0ZXMgdG8gb3ZlcnJpZGUgcGFydHMgb2YgdGhlIGNoYXQgYXBwbGljYXRpb24uXG4gKlxuICogRm9yIGNvZGUgZXhhbXBsZXMgdG8gdGhlIGRpZmZlcmVudCBjdXN0b21pemF0aW9ucyBzZWUgb3VyIFtjdXN0b21pemF0aW9ucyBleGFtcGxlIGFwcGxpY2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvdHJlZS9tYXN0ZXIvcHJvamVjdHMvY3VzdG9taXphdGlvbnMtZXhhbXBsZSksIHNwZWNpZmljYWxseSB0aGUgW0FwcENvbXBvbmVudF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL3RyZWUvbWFzdGVyL3Byb2plY3RzL2N1c3RvbWl6YXRpb25zLWV4YW1wbGUvc3JjL2FwcCkgKHNlZSBbUkVBRE1FXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kI2N1c3RvbWl6YXRpb24tZXhhbXBsZXMpIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbikuXG4gKlxuICogWW91IGNhbiBmaW5kIHRoZSB0eXBlIGRlZmluaXRpb25zIG9mIHRoZSBjb250ZXh0IHRoYXQgaXMgcHJvdmlkZWQgZm9yIGVhY2ggdGVtcGxhdGUgW29uIEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL2Jsb2IvbWFzdGVyL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3UpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21UZW1wbGF0ZXNTZXJ2aWNlPFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4ge1xuICAvKipcbiAgICogVGhlIGF1dG9jb21wbGV0ZSBsaXN0IGl0ZW0gdGVtcGxhdGUgZm9yIG1lbnRpb25pbmcgdXNlcnMgKHVzZWQgaW4gdGhlIFtgQXV0b2NvbXBsZXRlVGV4dGFyZWFDb21wb25lbnRgXSguLi9jb21wb25lbnRzL0F1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50Lm1keCkpXG4gICAqL1xuICBtZW50aW9uQXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW1Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgYXV0b2NvbXBsZXRlIGxpc3QgaXRlbSB0ZW1wbGF0ZSBmb3IgY29tbWFuZHMgKHVzZWQgaW4gdGhlIFtgQXV0b2NvbXBsZXRlVGV4dGFyZWFDb21wb25lbnRgXSguLi9jb21wb25lbnRzL0F1dG9jb21wbGV0ZVRleHRhcmVhQ29tcG9uZW50Lm1keCkpXG4gICAqL1xuICBjb21tYW5kQXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q29tbWFuZEF1dG9jb21wbGV0ZUxpc3RJdGVtQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGFuIGl0ZW0gaW4gdGhlIFtjaGFubmVsIGxpc3RdKC4uL2NvbXBvbmVudHMvQ2hhbm5lbExpc3RDb21wb25lbnQubWR4KSAoaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBbY2hhbm5hbCBsaXN0IGl0ZW1dKC4uL2NvbXBvbmVudHMvQ2hhbm5lbFByZXZpZXdDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGNoYW5uZWxQcmV2aWV3VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDaGFubmVsUHJldmlld0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIGEgW21lbnRpb24gaW5zaWRlIGEgbWVzc2FnZV0oLi4vY29kZS1leGFtcGxlcy9tZW50aW9uLWFjdGlvbnMubWR4KVxuICAgKlxuICAgKi9cbiAgbWVudGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVudGlvblRlbXBsYXRlQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIGZvciBbZW1vamkgcGlja2VyXSguLi9jb2RlLWV4YW1wbGVzL2Vtb2ppLXBpY2tlci5tZHgpXG4gICAqXG4gICAqL1xuICBlbW9qaVBpY2tlclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8RW1vamlQaWNrZXJDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdHlwaW5nIGluZGljYXRvciB0ZW1wbGF0ZSB1c2VkIGluIHRoZSBbbWVzc2FnZSBsaXN0XSguLi9jb21wb25lbnRzL01lc3NhZ2VMaXN0Q29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIHR5cGluZ0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VHlwaW5nSW5kaWNhdG9yQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2UgaW4gdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KSAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbWVzc2FnZSBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbWVzc2FnZVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVzc2FnZUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBmb3IgY2hhbm5lbCBhY3Rpb25zIGRpc3BsYXllZCBpbiB0aGUgW2NoYW5uZWwgaGVhZGVyXSguLi9jb21wb25lbnRzL0NoYW5uZWxIZWFkZXJDb21wb25lbnQubWR4KSAoYnkgZGVmYXVsdCBubyBjaGFubmVsIGFjdGlvbiBpcyBkaXNwbGF5ZWQpXG4gICAqXG4gICAqL1xuICBjaGFubmVsQWN0aW9uc1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q2hhbm5lbEFjdGlvbnNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF0dGFjaG1lbnRzIG9mIGEgW21lc3NhZ2VdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBhdHRhY2htZW50IGxpc3RdKC4uL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIGF0dGFjaG1lbnRMaXN0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50TGlzdENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgaW4gdGhlIFttZXNzYWdlIGlucHV0XSguLi9jb21wb25lbnRzL01lc3NhZ2VJbnB1dENvbXBvbmVudC5tZHgpIGNvbXBvbmVudCAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgYXR0YWNobWVudCBwcmV2aWV3XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRQcmV2aWV3TGlzdENvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgYXR0YWNobWVudFByZXZpZXdMaXN0VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50UHJldmlld0xpc3RDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IGF2YXRhcnMgZm9yIGNoYW5uZWxzIGFuZCB1c2VycyAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgYXZhdGFyXSguLi9jb21wb25lbnRzL0F2YXRhckNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgYXZhdGFyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxBdmF0YXJDb250ZXh0PiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBpY29ucyAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgaWNvbiBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvSWNvbkNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgaWNvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8SWNvbkNvbnRleHQ+IHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBsb2FkaW5nIGluZGljYXRvciAoaW5zdGVhZCBvZiB0aGUgW2RlZmF1bHQgbG9hZGluZyBpbmRpY2F0b3JdKC4uL2NvbXBvbmVudHMvTG9hZGluZ0luZGljYXRvckNvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbG9hZGluZ0luZGljYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdGhlIG1lc3NhZ2UgYWN0aW9ucyBib3ggKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1lc3NhZ2UgYWN0aW9ucyBib3hdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUFjdGlvbnNCb3hDb21wb25lbnQubWR4KSlcbiAgICpcbiAgICovXG4gIG1lc3NhZ2VBY3Rpb25zQm94VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxNZXNzYWdlQWN0aW9uc0JveENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIGZvciBkaXNwbGF5aW5nIGFuIGl0ZW0gaW4gdGhlIFttZXNzYWdlIGFjdGlvbnMgYm94XSguLi9jb21wb25lbnRzL01lc3NhZ2VBY3Rpb25zQm94Q29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIG1lc3NhZ2VBY3Rpb25zQm94SXRlbVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVzc2FnZUFjdGlvbkJveEl0ZW1Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHRoZSByZWFjdGlvbnMgb2YgYSBbbWVzc2FnZV0oLi4vY29tcG9uZW50cy9NZXNzYWdlQ29tcG9uZW50Lm1keCksIGFuZCB0aGUgc2VsZWN0b3IgdG8gYWRkIGEgcmVhY3Rpb24gdG8gYSBtZXNzYWdlIChpbnN0ZWFkIG9mIHRoZSBbZGVmYXVsdCBtZXNzYWdlIHJlYWN0aW9ucyBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZVJlYWN0aW9uc0NvbXBvbmVudC5tZHgpKVxuICAgKlxuICAgKi9cbiAgbWVzc2FnZVJlYWN0aW9uc1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8TWVzc2FnZVJlYWN0aW9uc0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHJlYWN0aW9ucyBvZiBhIFttZXNzYWdlXSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KSwgYW5kIHRoZSBzZWxlY3RvciB0byBhZGQgYSByZWFjdGlvbiB0byBhIG1lc3NhZ2UgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1lc3NhZ2UgcmVhY3Rpb25zIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9NZXNzYWdlUmVhY3Rpb25zQ29tcG9uZW50Lm1keCkpXG4gICAqXG4gICAqL1xuICBtZXNzYWdlUmVhY3Rpb25zU2VsZWN0b3JUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPE1lc3NhZ2VSZWFjdGlvbnNTZWxlY3RvckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYSBtb2RhbCB3aW5kb3cgKGluc3RlYWQgb2YgdGhlIFtkZWZhdWx0IG1vZGFsXSguLi9jb21wb25lbnRzL01vZGFsQ29tcG9uZW50Lm1keCkpXG4gICAqXG4gICAqL1xuICBtb2RhbFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8TW9kYWxDb250ZXh0PiB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byBvdmVycmlkZSB0aGUgW2RlZmF1bHQgbm90aWZpY2F0aW9uIGNvbXBvbmVudF0oLi4vY29tcG9uZW50cy9Ob3RpZmljYXRpb25Db21wb25lbnQubWR4KVxuICAgKlxuICAgKi9cbiAgbm90aWZpY2F0aW9uVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxOb3RpZmljYXRpb25Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgaGVhZGVyIG9mIGEgW3RocmVhZF0oLi4vY29tcG9uZW50cy9UaHJlYWRDb21wb25lbnQubWR4KVxuICAgKlxuICAgKi9cbiAgdGhyZWFkSGVhZGVyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxUaHJlYWRIZWFkZXJDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyB0aGUgZGVsaXZlcmVkIHN0YXRlIG9mIHRoZSBtZXNzYWdlIGluc2lkZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KVxuICAgKlxuICAgKiBEaXNwbGF5ZWQgZm9yIHRoZSBsYXN0IG1lc3NhZ2Ugc2VudCBieSB0aGUgY3VycmVudCB1c2VyLCBpZiB0aGUgbWVzc2FnZSBpc24ndCB5ZXQgcmVhZCBieSBhbnlvbmVcbiAgICpcbiAgICovXG4gIGRlbGl2ZXJlZFN0YXR1c1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8RGVsaXZlcmVkU3RhdHVzQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgdGhlIHNlbmRpbmcgc3RhdGUgb2YgdGhlIG1lc3NhZ2UgaW5zaWRlIHRoZSBbbWVzc2FnZSBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqIERpc3BsYXllZCBmb3IgdGhlIGxhc3QgbWVzc2FnZSBzZW50IGJ5IHRoZSBjdXJyZW50IHVzZXIsIGlmIHRoZSBtZXNzYWdlIGlzIGN1cnJlbnRseSBiZWluZyBzZW50XG4gICAqXG4gICAqL1xuICBzZW5kaW5nU3RhdHVzVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxTZW5kaW5nU3RhdHVzQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgZm9yIGRpc3BsYXlpbmcgdGhlIHNlbnQgc3RhdGUgb2YgdGhlIG1lc3NhZ2UgaW5zaWRlIHRoZSBbbWVzc2FnZSBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUNvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqIERpc3BsYXllZCBmb3IgdGhlIGxhc3QgbWVzc2FnZSBzZW50IGJ5IHRoZSBjdXJyZW50IHVzZXIsIGlmIHRoZSBtZXNzYWdlIGlzIHJlYWQgYXQgbGVhc3QgYnkgb25lIHVzZXJcbiAgICpcbiAgICovXG4gIHJlYWRTdGF0dXNUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPFJlYWRTdGF0dXNDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBkaXNwbGF5IGN1c3RvbSBtZXRhZGF0YSBpbnNpZGUgW21lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KVxuICAgKlxuICAgKi9cbiAgY3VzdG9tTWVzc2FnZU1ldGFkYXRhVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxDdXN0b21NZXRhZGF0YUNvbnRleHQ8VD4+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5uZWwgdW5kZXIgdGhlIGNoYW5uZWwgbmFtZSBpbnNpZGUgdGhlIFtjaGFubmVsIGhlYWRlciBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvQ2hhbm5lbEhlYWRlckNvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqL1xuICBjaGFubmVsSGVhZGVySW5mb1RlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8Q2hhbm5lbEhlYWRlckluZm9Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBmaWxlIHVwbG9hZC9hdHRhY2htZW50IHNlbGVjdG9yIGluc2lkZSB0aGUgW21lc3NhZ2UgaW5wdXRdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUlucHV0Q29tcG9uZW50Lm1keClcbiAgICpcbiAgICovXG4gIGN1c3RvbUF0dGFjaG1lbnRVcGxvYWRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEN1c3RvbUF0dGFjaG1lbnRVcGxvYWRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSBzaW5nbGUgaW1hZ2UgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIGltYWdlQXR0YWNobWVudFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGhvdyBhIHZvaWNlIHJlY29yZGluZyBhdHRhY2htZW50IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC4uL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQubWR4KSwgYnkgZGVmYXVsdCB0aGUgW3ZvaWNlIHJlY29yZGluZyBjb21wb25lbnRdKC4uL2NvbXBvbmVudHMvVm9pY2VSZWNvcmRpbmdDb21wb25lbnQubWR4KSBpcyB1c2VkXG4gICAqL1xuICB2b2ljZVJlY29yZGluZ0F0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYSB2aWRlbyBhdHRhY2htZW50IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC4uL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQubWR4KVxuICAgKi9cbiAgdmlkZW9BdHRhY2htZW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGltYWdlIGdhbGxlcnkgaXMgZGlzcGxheWVkIGluc2lkZSB0aGUgW2F0dGFjaG1lbnQgbGlzdF0oLi4vY29tcG9uZW50cy9BdHRhY2htZW50TGlzdENvbXBvbmVudC5tZHgpXG4gICAqL1xuICBnYWxsZXJ5QXR0YWNobWVudFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8QXR0YWNobWVudENvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGhvdyBhIGZpbGUgYXR0YWNobWVudCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIGZpbGVBdHRhY2htZW50VGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgaG93IGEgY2FyZCBhdHRhY2htZW50IGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIFthdHRhY2htZW50IGxpc3RdKC4uL2NvbXBvbmVudHMvQXR0YWNobWVudExpc3RDb21wb25lbnQubWR4KVxuICAgKi9cbiAgY2FyZEF0dGFjaG1lbnRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPEF0dGFjaG1lbnRDb250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSBob3cgYXR0YWNobWVudCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBbYXR0YWNobWVudCBsaXN0XSguLi9jb21wb25lbnRzL0F0dGFjaG1lbnRMaXN0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIGF0dGFjaG1lbnRBY3Rpb25zVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxBdHRhY2htZW50Q29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSBbc3lzdGVtIG1lc3NhZ2VzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9zaWxlbnRfbWVzc2FnZXMvP2xhbmd1YWdlPWphdmFzY3JpcHQmcT1zeXN0ZW0pIGluZGlzZSB0aGUgW21lc3NhZ2UgY29tcG9uZW50XSguLi9jb21wb25lbnRzL01lc3NhZ2VDb21wb25lbnQubWR4KVxuICAgKi9cbiAgc3lzdGVtTWVzc2FnZVRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8U3lzdGVtTWVzc2FnZUNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRhdGUgc2VwYXJhdG9yIGluc2lkZSB0aGUgW21lc3NhZ2UgbGlzdF0oLi4vY29tcG9uZW50cy9NZXNzYWdlTGlzdENvbXBvbmVudC5tZHgpXG4gICAqL1xuICBkYXRlU2VwYXJhdG9yVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxEYXRlU2VwYXJhdG9yQ29udGV4dD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB1bnJlYWQgbWVzc2FnZXMgaW5kaWNhdG9yIGluc2lkZSB0aGUgW21lc3NhZ2UgbGlzdF0oLi4vY29tcG9uZW50cy9NZXNzYWdlTGlzdENvbXBvbmVudC5tZHgpIHdoZW4gdGhlIGNoYW5uZWwgaXMgb3BlbmVkXG4gICAqXG4gICAqIFRoaXMgVUkgZWxlbWVudCBpcyB1c2VkIHRvIHNlcGFyYXRlIHVucmVhZCBtZXNzYWdlcyBmcm9tIHJlYWQgbWVzc2FnZXNcbiAgICovXG4gIG5ld01lc3NhZ2VzSW5kaWNhdG9yVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjxVbnJlYWRNZXNzYWdlc0luZGljYXRvckNvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdW5yZWFkIG1lc3NhZ2VzIG5vdGlmaWNhdGlvbiBpbnNpZGUgdGhlIFttZXNzYWdlIGxpc3RdKC4uL2NvbXBvbmVudHMvTWVzc2FnZUxpc3RDb21wb25lbnQubWR4KSB3aGVuIHRoZSBjaGFubmVsIGlzIG9wZW5lZFxuICAgKlxuICAgKiBVc2VycyBjYW4gdXNlIHRoaXMgbm90aWZpY2F0aW9uIHRvIGp1bXAgdG8gdGhlIGZpcnN0IHVucmVhZCBtZXNzYWdlIHdoZW4gaXQncyBjbGlja2VkXG4gICAqL1xuICBuZXdNZXNzYWdlc05vdGlmaWNhdGlvblRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8VW5yZWFkTWVzc2FnZXNOb3RpZmljYXRpb25Db250ZXh0PiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdG8gc2hvdyBpZiB0aGUgbWFpbiBtZXNzYWdlIGxpc3QgaXMgZW1wdHlcbiAgICovXG4gIGVtcHR5TWFpbk1lc3NhZ2VMaXN0UGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBUZW1wbGF0ZVJlZjx2b2lkPiB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdG8gc2hvdyBpZiB0aGUgdGhyZWFkIG1lc3NhZ2UgbGlzdCBpcyBlbXB0eVxuICAgKi9cbiAgZW1wdHlUaHJlYWRNZXNzYWdlTGlzdFBsYWNlaG9sZGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgVGVtcGxhdGVSZWY8dm9pZD4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgW21lc3NhZ2UgYm91bmNlIHByb21wdF0oLi4vY29tcG9uZW50cy9NZXNzYWdlQm91bmNlUHJvbXB0Q29tcG9uZW50Lm1keClcbiAgICovXG4gIG1lc3NhZ2VCb3VuY2VQcm9tcHRUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPHZvaWQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgLyoqXG4gICAqIFRlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgY2hhbm5lbCBpbmZvcm1hdGlvbiBpbnNpZGUgdGhlIFtjaGFubmVsIGxpc3QgaXRlbV0oLi4vY29tcG9uZW50cy9DaGFubmVsUHJldmlld0NvbXBvbmVudC5tZHgpXG4gICAqXG4gICAqL1xuICBjaGFubmVsUHJldmlld0luZm9UZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFRlbXBsYXRlUmVmPENoYW5uZWxQcmV2aWV3SW5mb0NvbnRleHQ+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19