valtech-components 4.0.227 → 4.0.228

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 (27) hide show
  1. package/esm2022/lib/components/molecules/chat-input/chat-input.component.mjs +9 -1
  2. package/esm2022/lib/components/molecules/message-bubble/message-bubble.component.mjs +191 -274
  3. package/esm2022/lib/components/molecules/typing-indicator/typing-indicator.component.mjs +12 -11
  4. package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +203 -216
  5. package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +10 -10
  6. package/esm2022/lib/services/chat/conversation.service.mjs +14 -37
  7. package/esm2022/lib/services/chat/types.mjs +1 -1
  8. package/esm2022/lib/services/i18n/default-content.mjs +1 -5
  9. package/esm2022/lib/shared/utils/datetime.mjs +1 -54
  10. package/esm2022/lib/version.mjs +2 -2
  11. package/esm2022/public-api.mjs +2 -4
  12. package/fesm2022/valtech-components.mjs +428 -1080
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/molecules/message-bubble/message-bubble.component.d.ts +32 -34
  15. package/lib/components/molecules/typing-indicator/typing-indicator.component.d.ts +4 -5
  16. package/lib/components/organisms/chat-window/chat-window.component.d.ts +56 -52
  17. package/lib/services/chat/conversation.service.d.ts +5 -12
  18. package/lib/services/chat/types.d.ts +52 -86
  19. package/lib/shared/utils/datetime.d.ts +0 -19
  20. package/lib/version.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/public-api.d.ts +1 -3
  23. package/src/lib/services/firebase/firebase-messaging-sw.js +125 -70
  24. package/esm2022/lib/components/molecules/chat-composer/chat-composer.component.mjs +0 -391
  25. package/esm2022/lib/components/molecules/conversation-list-item/conversation-list-item.component.mjs +0 -108
  26. package/lib/components/molecules/chat-composer/chat-composer.component.d.ts +0 -63
  27. package/lib/components/molecules/conversation-list-item/conversation-list-item.component.d.ts +0 -30
@@ -49,7 +49,7 @@ export class ThreadPanelComponent {
49
49
  this.conv = signal(null);
50
50
  this.messages = signal([]);
51
51
  this.typingUsers = signal([]);
52
- this.isConvOpen = computed(() => this.conv()?.settings?.isOpen === true);
52
+ this.isConvOpen = computed(() => this.conv()?.status === 'open');
53
53
  this.loadingText = computed(() => {
54
54
  this.i18n.lang();
55
55
  return this.i18n.t('loading', 'ThreadPanel');
@@ -87,10 +87,10 @@ export class ThreadPanelComponent {
87
87
  const appId = this.chatConfig?.appId ?? '';
88
88
  if (orgId && appId) {
89
89
  this.msgSub = this.conversationSvc
90
- .watchMessages(conversation.convId, orgId, appId)
90
+ .watchMessages(conversation.id, orgId, appId)
91
91
  .subscribe(msgs => this.messages.set(msgs));
92
92
  this.typingSub = this.conversationSvc
93
- .watchTyping(conversation.convId, orgId, appId)
93
+ .watchTyping(conversation.id, orgId, appId)
94
94
  .subscribe(users => this.typingUsers.set(users));
95
95
  }
96
96
  }
@@ -108,14 +108,14 @@ export class ThreadPanelComponent {
108
108
  const orgId = this.getOrgId();
109
109
  const appId = this.chatConfig?.appId ?? '';
110
110
  if (conv && orgId && appId && this.conversationSvc) {
111
- this.conversationSvc.stopTyping(conv.convId, orgId, appId);
111
+ this.conversationSvc.stopTyping(conv.id, orgId, appId);
112
112
  }
113
113
  }
114
114
  onSend(body) {
115
115
  const conv = this.conv();
116
116
  if (!conv || !this.conversationSvc)
117
117
  return;
118
- this.conversationSvc.sendMessage(conv.convId, body).subscribe();
118
+ this.conversationSvc.sendMessage(conv.id, body).subscribe();
119
119
  }
120
120
  onReactionClick(event) {
121
121
  // Reacciones se implementan a nivel de app consumer
@@ -125,7 +125,7 @@ export class ThreadPanelComponent {
125
125
  const conv = this.conv();
126
126
  if (!conv || !this.conversationSvc)
127
127
  return;
128
- this.conversationSvc.deleteMessage(conv.convId, msgId).subscribe();
128
+ this.conversationSvc.deleteMessage(conv.id, msgId).subscribe();
129
129
  }
130
130
  onReplyTo(_msgId) {
131
131
  // Implementacion futura: seleccionar mensaje de respuesta
@@ -150,7 +150,7 @@ export class ThreadPanelComponent {
150
150
  } @else {
151
151
  <div class="thread-chat">
152
152
  <val-chat-window
153
- [convId]="conv()?.convId ?? ''"
153
+ [convId]="conv()?.id ?? ''"
154
154
  [messages]="bubbleMessages()"
155
155
  [currentUserId]="currentUserId"
156
156
  [isOpen]="isConvOpen()"
@@ -164,7 +164,7 @@ export class ThreadPanelComponent {
164
164
  </div>
165
165
  }
166
166
  </div>
167
- `, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "attach", "voice"] }] }); }
167
+ `, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "participants", "currentUserId", "isOpen", "typingUsers", "isLoading"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo"] }] }); }
168
168
  }
169
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThreadPanelComponent, decorators: [{
170
170
  type: Component,
@@ -184,7 +184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
184
184
  } @else {
185
185
  <div class="thread-chat">
186
186
  <val-chat-window
187
- [convId]="conv()?.convId ?? ''"
187
+ [convId]="conv()?.id ?? ''"
188
188
  [messages]="bubbleMessages()"
189
189
  [currentUserId]="currentUserId"
190
190
  [isOpen]="isConvOpen()"
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
208
208
  }], title: [{
209
209
  type: Input
210
210
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGhyZWFkLXBhbmVsL3RocmVhZC1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFM0UsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRSxNQUFNO0tBQ2Y7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXNDSCxNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQjtRQWxCVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsTUFB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LEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDOytHQXBIVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3TEFqQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQsbXFCQS9CUyxZQUFZLCtCQUFFLFVBQVUseUdBQUUsbUJBQW1COzs0RkFrQzVDLG9CQUFvQjtrQkFyQ2hDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsWUFDOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVDt3REFTUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgaW5qZWN0LCBzaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IENvbnZlcnNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFZBTFRFQ0hfQ0hBVF9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGF0L2NvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnZlcnNhdGlvbiwgTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoYXQvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZUJ1YmJsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL3R5cGVzJztcbmltcG9ydCB7IENoYXRXaW5kb3dDb21wb25lbnQgfSBmcm9tICcuLi9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQnO1xuXG5jb25zdCBUSFJFQURfUEFORUxfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8gY29udmVyc2FjaW9uLi4uJyxcbiAgICB0aHJlYWQ6ICdIaWxvJyxcbiAgfSxcbiAgZW46IHtcbiAgICBsb2FkaW5nOiAnTG9hZGluZyBjb252ZXJzYXRpb24uLi4nLFxuICAgIHRocmVhZDogJ1RocmVhZCcsXG4gIH0sXG59O1xuXG4vKipcbiAqIHZhbC10aHJlYWQtcGFuZWxcbiAqXG4gKiBQYW5lbCBkZSBoaWxvIGRlIGNvbnZlcnNhY2lvbiBhc29jaWFkbyBhIHVuYSBlbnRpZGFkIChwb3N0LCByZXF1ZXN0LCBldGMuKS5cbiAqIEludGVybmFtZW50ZSB1c2EgQ29udmVyc2F0aW9uU2VydmljZS5nZXRPckNyZWF0ZUZvckVudGl0eSgpIHBhcmEgaW5pY2lhbGl6YXJcbiAqIGxhIGNvbnZlcnNhY2lvbiB5IGx1ZWdvIHdhdGNoTWVzc2FnZXMoKSBwYXJhIGVzY3VjaGFyIGVuIHRpZW1wbyByZWFsLlxuICogUmVuZGVyaXphIHZhbC1jaGF0LXdpbmRvdyBjb24gbG9zIG1lbnNhamVzIHlhIG1hcGVhZG9zLlxuICpcbiAqIFJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoQ2hhdCgpIHkgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIG1haW4udHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdGhyZWFkLXBhbmVsXG4gKiAgIGVudGl0eVR5cGU9XCJwb3N0XCJcbiAqICAgZW50aXR5SWQ9XCJwb3N0LWFiYzEyM1wiXG4gKiAgIGN1cnJlbnRVc2VySWQ9XCJ1c2VyLXh5elwiXG4gKiAgIHRpdGxlPVwiQ29tZW50YXJpb3NcIlxuICogLz5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRocmVhZC1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblNwaW5uZXIsIENoYXRXaW5kb3dDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aHJlYWQtcGFuZWxcIj5cbiAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRocmVhZC1oZWFkZXJcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRocmVhZC10aXRsZVwiPnt7IHRpdGxlIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRocmVhZC1sb2FkaW5nXCI+XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICA8c3Bhbj57eyBsb2FkaW5nVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWFkLWNoYXRcIj5cbiAgICAgICAgICA8dmFsLWNoYXQtd2luZG93XG4gICAgICAgICAgICBbY29udklkXT1cImNvbnYoKT8uY29udklkID8/ICcnXCJcbiAgICAgICAgICAgIFttZXNzYWdlc109XCJidWJibGVNZXNzYWdlcygpXCJcbiAgICAgICAgICAgIFtjdXJyZW50VXNlcklkXT1cImN1cnJlbnRVc2VySWRcIlxuICAgICAgICAgICAgW2lzT3Blbl09XCJpc0NvbnZPcGVuKClcIlxuICAgICAgICAgICAgW3R5cGluZ1VzZXJzXT1cInR5cGluZ1VzZXJzKClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJmYWxzZVwiXG4gICAgICAgICAgICAoc2VuZE1lc3NhZ2UpPVwib25TZW5kKCRldmVudClcIlxuICAgICAgICAgICAgKHJlYWN0aW9uQ2xpY2spPVwib25SZWFjdGlvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGRlbGV0ZU1lc3NhZ2UpPVwib25EZWxldGVNZXNzYWdlKCRldmVudClcIlxuICAgICAgICAgICAgKHJlcGx5VG8pPVwib25SZXBseVRvKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90aHJlYWQtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhyZWFkUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb252ZXJzYXRpb25TdmMgPSBpbmplY3QoQ29udmVyc2F0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjaGF0Q29uZmlnID0gaW5qZWN0KFZBTFRFQ0hfQ0hBVF9DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBASW5wdXQoKSBlbnRpdHlUeXBlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZW50aXR5SWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjdXJyZW50VXNlcklkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBjb252ID0gc2lnbmFsPENvbnZlcnNhdGlvbiB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgbWVzc2FnZXMgPSBzaWduYWw8TWVzc2FnZVtdPihbXSk7XG4gIHByb3RlY3RlZCB0eXBpbmdVc2VycyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gIHByaXZhdGUgbXNnU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHR5cGluZ1N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnVGhyZWFkUGFuZWwnLCBUSFJFQURfUEFORUxfSTE4Tik7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uU3ZjIHx8ICF0aGlzLmVudGl0eVR5cGUgfHwgIXRoaXMuZW50aXR5SWQpIHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5jb252ZXJzYXRpb25TdmMuZ2V0T3JDcmVhdGVGb3JFbnRpdHkodGhpcy5lbnRpdHlUeXBlLCB0aGlzLmVudGl0eUlkKVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udi5zZXQoY29udmVyc2F0aW9uKTtcblxuICAgICAgY29uc3Qgb3JnSWQgPSB0aGlzLmdldE9yZ0lkKCk7XG4gICAgICBjb25zdCBhcHBJZCA9IHRoaXMuY2hhdENvbmZpZz8uYXBwSWQgPz8gJyc7XG5cbiAgICAgIGlmIChvcmdJZCAmJiBhcHBJZCkge1xuICAgICAgICB0aGlzLm1zZ1N1YiA9IHRoaXMuY29udmVyc2F0aW9uU3ZjXG4gICAgICAgICAgLndhdGNoTWVzc2FnZXMoY29udmVyc2F0aW9uLmNvbnZJZCwgb3JnSWQsIGFwcElkKVxuICAgICAgICAgIC5zdWJzY3JpYmUobXNncyA9PiB0aGlzLm1lc3NhZ2VzLnNldChtc2dzKSk7XG5cbiAgICAgICAgdGhpcy50eXBpbmdTdWIgPSB0aGlzLmNvbnZlcnNhdGlvblN2Y1xuICAgICAgICAgIC53YXRjaFR5cGluZyhjb252ZXJzYXRpb24uY29udklkLCBvcmdJZCwgYXBwSWQpXG4gICAgICAgICAgLnN1YnNjcmliZSh1c2VycyA9PiB0aGlzLnR5cGluZ1VzZXJzLnNldCh1c2VycykpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW1RocmVhZFBhbmVsXSBFcnJvciBhbCBpbmljaWFsaXphciBjb252ZXJzYWNpb246JywgZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tc2dTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy50eXBpbmdTdWI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBjb25zdCBjb252ID0gdGhpcy5jb252KCk7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmdldE9yZ0lkKCk7XG4gICAgY29uc3QgYXBwSWQgPSB0aGlzLmNoYXRDb25maWc/LmFwcElkID8/ICcnO1xuICAgIGlmIChjb252ICYmIG9yZ0lkICYmIGFwcElkICYmIHRoaXMuY29udmVyc2F0aW9uU3ZjKSB7XG4gICAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5zdG9wVHlwaW5nKGNvbnYuY29udklkLCBvcmdJZCwgYXBwSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbnZPcGVuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb252KCk/LnNldHRpbmdzPy5pc09wZW4gPT09IHRydWUpO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbG9hZGluZycsICdUaHJlYWRQYW5lbCcpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgYnViYmxlTWVzc2FnZXMgPSBjb21wdXRlZCgoKTogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhW10gPT4ge1xuICAgIGNvbnN0IHVpZCA9IHRoaXMuY3VycmVudFVzZXJJZCB8fCB0aGlzLmF1dGg/LnVzZXIoKT8udXNlcklkIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzKCkubWFwKG1zZyA9PiAoe1xuICAgICAgbXNnSWQ6IG1zZy5pZCxcbiAgICAgIHNlbmRlcklkOiBtc2cuc2VuZGVySWQsXG4gICAgICBzZW5kZXJOYW1lOiBtc2cuc2VuZGVyTmFtZSxcbiAgICAgIHNlbmRlckF2YXRhcjogbXNnLnNlbmRlckF2YXRhcixcbiAgICAgIGJvZHk6IG1zZy5ib2R5LFxuICAgICAgdHlwZTogbXNnLnR5cGUsXG4gICAgICBjcmVhdGVkQXQ6IG1zZy5jcmVhdGVkQXQsXG4gICAgICBpc01pbmU6IG1zZy5zZW5kZXJJZCA9PT0gdWlkLFxuICAgICAgaXNEZWxldGVkOiBtc2cuaXNEZWxldGVkLFxuICAgICAgaXNFZGl0ZWQ6IG1zZy5pc0VkaXRlZCxcbiAgICAgIHJlcGx5VG86IG1zZy5yZXBseVRvLFxuICAgICAgYXR0YWNobWVudHM6IG1zZy5hdHRhY2htZW50cyxcbiAgICAgIHJlYWN0aW9uczogbXNnLnJlYWN0aW9ucyxcbiAgICAgIHN0YXR1czogbXNnLnN0YXR1cyxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNlbmQoYm9keTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGlmICghY29udiB8fCAhdGhpcy5jb252ZXJzYXRpb25TdmMpIHJldHVybjtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5zZW5kTWVzc2FnZShjb252LmNvbnZJZCwgYm9keSkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25SZWFjdGlvbkNsaWNrKGV2ZW50OiB7IG1zZ0lkOiBzdHJpbmc7IHRva2VuOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIC8vIFJlYWNjaW9uZXMgc2UgaW1wbGVtZW50YW4gYSBuaXZlbCBkZSBhcHAgY29uc3VtZXJcbiAgICBjb25zb2xlLmRlYnVnKCdbVGhyZWFkUGFuZWxdIHJlYWN0aW9uQ2xpY2snLCBldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EZWxldGVNZXNzYWdlKG1zZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjb252ID0gdGhpcy5jb252KCk7XG4gICAgaWYgKCFjb252IHx8ICF0aGlzLmNvbnZlcnNhdGlvblN2YykgcmV0dXJuO1xuICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLmRlbGV0ZU1lc3NhZ2UoY29udi5jb252SWQsIG1zZ0lkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlcGx5VG8oX21zZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBsZW1lbnRhY2lvbiBmdXR1cmE6IHNlbGVjY2lvbmFyIG1lbnNhamUgZGUgcmVzcHVlc3RhXG4gIH1cblxuICBwcml2YXRlIGdldE9yZ0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aD8udXNlcigpPy5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cbn1cbiJdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGhyZWFkLXBhbmVsL3RocmVhZC1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFM0UsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsMEJBQTBCO1FBQ25DLE1BQU0sRUFBRSxNQUFNO0tBQ2Y7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXNDSCxNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQjtRQWxCVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdELFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFOUMsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRzFCLFlBQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsU0FBSSxHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDekMsYUFBUSxHQUFHLE1BQU0sQ0FBWSxFQUFFLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLE1BQU0sQ0FBVyxFQUFFLENBQUMsQ0FBQztRQW9EbkMsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBRTVELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBRU8sbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBNEIsRUFBRTtZQUNoRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO2dCQUN0QixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7Z0JBQzFCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtnQkFDOUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2dCQUNkLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDZCxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0JBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUc7Z0JBQzVCLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztnQkFDeEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO2dCQUN0QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87Z0JBQ3BCLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVztnQkFDNUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO2dCQUN4QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07YUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQXZFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUMxRSxDQUFDO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUUzQyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZTtxQkFDL0IsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztxQkFDNUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZTtxQkFDbEMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztxQkFDMUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUU5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQTZCUyxNQUFNLENBQUMsSUFBWTtRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFUyxlQUFlLENBQUMsS0FBdUM7UUFDL0Qsb0RBQW9EO1FBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVTLGVBQWUsQ0FBQyxLQUFhO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxPQUFPO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVTLFNBQVMsQ0FBQyxNQUFjO1FBQ2hDLDBEQUEwRDtJQUM1RCxDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO0lBQzVDLENBQUM7K0dBcEhVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdMQWpDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVCxtcUJBL0JTLFlBQVksK0JBQUUsVUFBVSx5R0FBRSxtQkFBbUI7OzRGQWtDNUMsb0JBQW9CO2tCQXJDaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxZQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJUO3dEQVNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBpbmplY3QsIHNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoYXQvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9DSEFUX0NPTkZJRyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoYXQvY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uLCBNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhdFdpbmRvd0NvbXBvbmVudCB9IGZyb20gJy4uL2NoYXQtd2luZG93L2NoYXQtd2luZG93LmNvbXBvbmVudCc7XG5cbmNvbnN0IFRIUkVBRF9QQU5FTF9JMThOID0ge1xuICBlczoge1xuICAgIGxvYWRpbmc6ICdDYXJnYW5kbyBjb252ZXJzYWNpb24uLi4nLFxuICAgIHRocmVhZDogJ0hpbG8nLFxuICB9LFxuICBlbjoge1xuICAgIGxvYWRpbmc6ICdMb2FkaW5nIGNvbnZlcnNhdGlvbi4uLicsXG4gICAgdGhyZWFkOiAnVGhyZWFkJyxcbiAgfSxcbn07XG5cbi8qKlxuICogdmFsLXRocmVhZC1wYW5lbFxuICpcbiAqIFBhbmVsIGRlIGhpbG8gZGUgY29udmVyc2FjaW9uIGFzb2NpYWRvIGEgdW5hIGVudGlkYWQgKHBvc3QsIHJlcXVlc3QsIGV0Yy4pLlxuICogSW50ZXJuYW1lbnRlIHVzYSBDb252ZXJzYXRpb25TZXJ2aWNlLmdldE9yQ3JlYXRlRm9yRW50aXR5KCkgcGFyYSBpbmljaWFsaXphclxuICogbGEgY29udmVyc2FjaW9uIHkgbHVlZ28gd2F0Y2hNZXNzYWdlcygpIHBhcmEgZXNjdWNoYXIgZW4gdGllbXBvIHJlYWwuXG4gKiBSZW5kZXJpemEgdmFsLWNoYXQtd2luZG93IGNvbiBsb3MgbWVuc2FqZXMgeWEgbWFwZWFkb3MuXG4gKlxuICogUmVxdWllcmUgcHJvdmlkZVZhbHRlY2hDaGF0KCkgeSBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkgZW4gbWFpbi50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC10aHJlYWQtcGFuZWxcbiAqICAgZW50aXR5VHlwZT1cInBvc3RcIlxuICogICBlbnRpdHlJZD1cInBvc3QtYWJjMTIzXCJcbiAqICAgY3VycmVudFVzZXJJZD1cInVzZXIteHl6XCJcbiAqICAgdGl0bGU9XCJDb21lbnRhcmlvc1wiXG4gKiAvPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdGhyZWFkLXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uU3Bpbm5lciwgQ2hhdFdpbmRvd0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInRocmVhZC1wYW5lbFwiPlxuICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWFkLWhlYWRlclwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwidGhyZWFkLXRpdGxlXCI+e3sgdGl0bGUgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGhyZWFkLWxvYWRpbmdcIj5cbiAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgIDxzcGFuPnt7IGxvYWRpbmdUZXh0KCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aHJlYWQtY2hhdFwiPlxuICAgICAgICAgIDx2YWwtY2hhdC13aW5kb3dcbiAgICAgICAgICAgIFtjb252SWRdPVwiY29udigpPy5pZCA/PyAnJ1wiXG4gICAgICAgICAgICBbbWVzc2FnZXNdPVwiYnViYmxlTWVzc2FnZXMoKVwiXG4gICAgICAgICAgICBbY3VycmVudFVzZXJJZF09XCJjdXJyZW50VXNlcklkXCJcbiAgICAgICAgICAgIFtpc09wZW5dPVwiaXNDb252T3BlbigpXCJcbiAgICAgICAgICAgIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgKHNlbmRNZXNzYWdlKT1cIm9uU2VuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZWFjdGlvbkNsaWNrKT1cIm9uUmVhY3Rpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChkZWxldGVNZXNzYWdlKT1cIm9uRGVsZXRlTWVzc2FnZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZXBseVRvKT1cIm9uUmVwbHlUbygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGhyZWFkLXBhbmVsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZFBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uU3ZjID0gaW5qZWN0KENvbnZlcnNhdGlvblNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgY2hhdENvbmZpZyA9IGluamVjdChWQUxURUNIX0NIQVRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGVudGl0eUlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VycmVudFVzZXJJZDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgY29udiA9IHNpZ25hbDxDb252ZXJzYXRpb24gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIG1lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuICBwcm90ZWN0ZWQgdHlwaW5nVXNlcnMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcblxuICBwcml2YXRlIG1zZ1N1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSB0eXBpbmdTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RocmVhZFBhbmVsJywgVEhSRUFEX1BBTkVMX0kxOE4pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbnZlcnNhdGlvblN2YyB8fCAhdGhpcy5lbnRpdHlUeXBlIHx8ICF0aGlzLmVudGl0eUlkKSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udmVyc2F0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLmdldE9yQ3JlYXRlRm9yRW50aXR5KHRoaXMuZW50aXR5VHlwZSwgdGhpcy5lbnRpdHlJZClcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbnYuc2V0KGNvbnZlcnNhdGlvbik7XG5cbiAgICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5nZXRPcmdJZCgpO1xuICAgICAgY29uc3QgYXBwSWQgPSB0aGlzLmNoYXRDb25maWc/LmFwcElkID8/ICcnO1xuXG4gICAgICBpZiAob3JnSWQgJiYgYXBwSWQpIHtcbiAgICAgICAgdGhpcy5tc2dTdWIgPSB0aGlzLmNvbnZlcnNhdGlvblN2Y1xuICAgICAgICAgIC53YXRjaE1lc3NhZ2VzKGNvbnZlcnNhdGlvbi5pZCwgb3JnSWQsIGFwcElkKVxuICAgICAgICAgIC5zdWJzY3JpYmUobXNncyA9PiB0aGlzLm1lc3NhZ2VzLnNldChtc2dzKSk7XG5cbiAgICAgICAgdGhpcy50eXBpbmdTdWIgPSB0aGlzLmNvbnZlcnNhdGlvblN2Y1xuICAgICAgICAgIC53YXRjaFR5cGluZyhjb252ZXJzYXRpb24uaWQsIG9yZ0lkLCBhcHBJZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHVzZXJzID0+IHRoaXMudHlwaW5nVXNlcnMuc2V0KHVzZXJzKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbVGhyZWFkUGFuZWxdIEVycm9yIGFsIGluaWNpYWxpemFyIGNvbnZlcnNhY2lvbjonLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm1zZ1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnR5cGluZ1N1Yj8udW5zdWJzY3JpYmUoKTtcblxuICAgIGNvbnN0IGNvbnYgPSB0aGlzLmNvbnYoKTtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuZ2V0T3JnSWQoKTtcbiAgICBjb25zdCBhcHBJZCA9IHRoaXMuY2hhdENvbmZpZz8uYXBwSWQgPz8gJyc7XG4gICAgaWYgKGNvbnYgJiYgb3JnSWQgJiYgYXBwSWQgJiYgdGhpcy5jb252ZXJzYXRpb25TdmMpIHtcbiAgICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLnN0b3BUeXBpbmcoY29udi5pZCwgb3JnSWQsIGFwcElkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb252T3BlbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29udigpPy5zdGF0dXMgPT09ICdvcGVuJyk7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmdUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdsb2FkaW5nJywgJ1RocmVhZFBhbmVsJyk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBidWJibGVNZXNzYWdlcyA9IGNvbXB1dGVkKCgpOiBNZXNzYWdlQnViYmxlTWV0YWRhdGFbXSA9PiB7XG4gICAgY29uc3QgdWlkID0gdGhpcy5jdXJyZW50VXNlcklkIHx8IHRoaXMuYXV0aD8udXNlcigpPy51c2VySWQgfHwgJyc7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXMoKS5tYXAobXNnID0+ICh7XG4gICAgICBtc2dJZDogbXNnLmlkLFxuICAgICAgc2VuZGVySWQ6IG1zZy5zZW5kZXJJZCxcbiAgICAgIHNlbmRlck5hbWU6IG1zZy5zZW5kZXJOYW1lLFxuICAgICAgc2VuZGVyQXZhdGFyOiBtc2cuc2VuZGVyQXZhdGFyLFxuICAgICAgYm9keTogbXNnLmJvZHksXG4gICAgICB0eXBlOiBtc2cudHlwZSxcbiAgICAgIGNyZWF0ZWRBdDogbXNnLmNyZWF0ZWRBdCxcbiAgICAgIGlzTWluZTogbXNnLnNlbmRlcklkID09PSB1aWQsXG4gICAgICBpc0RlbGV0ZWQ6IG1zZy5pc0RlbGV0ZWQsXG4gICAgICBpc0VkaXRlZDogbXNnLmlzRWRpdGVkLFxuICAgICAgcmVwbHlUbzogbXNnLnJlcGx5VG8sXG4gICAgICBhdHRhY2htZW50czogbXNnLmF0dGFjaG1lbnRzLFxuICAgICAgcmVhY3Rpb25zOiBtc2cucmVhY3Rpb25zLFxuICAgICAgc3RhdHVzOiBtc2cuc3RhdHVzLFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG9uU2VuZChib2R5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjb252ID0gdGhpcy5jb252KCk7XG4gICAgaWYgKCFjb252IHx8ICF0aGlzLmNvbnZlcnNhdGlvblN2YykgcmV0dXJuO1xuICAgIHRoaXMuY29udmVyc2F0aW9uU3ZjLnNlbmRNZXNzYWdlKGNvbnYuaWQsIGJvZHkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uUmVhY3Rpb25DbGljayhldmVudDogeyBtc2dJZDogc3RyaW5nOyB0b2tlbjogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAvLyBSZWFjY2lvbmVzIHNlIGltcGxlbWVudGFuIGEgbml2ZWwgZGUgYXBwIGNvbnN1bWVyXG4gICAgY29uc29sZS5kZWJ1ZygnW1RocmVhZFBhbmVsXSByZWFjdGlvbkNsaWNrJywgZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGVsZXRlTWVzc2FnZShtc2dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29udiA9IHRoaXMuY29udigpO1xuICAgIGlmICghY29udiB8fCAhdGhpcy5jb252ZXJzYXRpb25TdmMpIHJldHVybjtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblN2Yy5kZWxldGVNZXNzYWdlKGNvbnYuaWQsIG1zZ0lkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlcGx5VG8oX21zZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBsZW1lbnRhY2lvbiBmdXR1cmE6IHNlbGVjY2lvbmFyIG1lbnNhamUgZGUgcmVzcHVlc3RhXG4gIH1cblxuICBwcml2YXRlIGdldE9yZ0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aD8udXNlcigpPy5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cbn1cbiJdfQ==
@@ -48,29 +48,21 @@ export class ConversationService {
48
48
  }
49
49
  /**
50
50
  * Crea una nueva conversacion.
51
- * El backend responde con un envelope { operationId, conversation } — lo
52
- * desenvolvemos para devolver la Conversation directa.
53
51
  */
54
52
  createConversation(req) {
55
- return this.http
56
- .post(`${this.baseUrl}/conversations`, req)
57
- .pipe(map(r => r.conversation));
53
+ return this.http.post(`${this.baseUrl}/conversations`, req);
58
54
  }
59
55
  /**
60
- * Obtiene o crea una conversacion asociada a una entidad (post, request, org, etc.).
56
+ * Obtiene o crea una conversacion asociada a una entidad (post, request, etc.).
61
57
  * Usa el patron upsert del backend: si ya existe una conversacion para esa entidad,
62
58
  * la devuelve; si no, la crea.
63
- *
64
- * El backend espera { entityRef: { type, id }, type } y responde con un envelope
65
- * { operationId, conversation, created }.
66
59
  */
67
- getOrCreateForEntity(entityType, entityId, type = 'thread') {
68
- return this.http
69
- .post(`${this.baseUrl}/entity-conversations`, {
70
- entityRef: { type: entityType, id: entityId },
60
+ getOrCreateForEntity(entityType, entityId, type = 'entity') {
61
+ return this.http.post(`${this.baseUrl}/conversations/entity-conversations`, {
62
+ entityType,
63
+ entityId,
71
64
  type,
72
- })
73
- .pipe(map(r => r.conversation));
65
+ });
74
66
  }
75
67
  /**
76
68
  * Lista las conversaciones del usuario autenticado.
@@ -85,17 +77,13 @@ export class ConversationService {
85
77
  * Obtiene una conversacion por ID.
86
78
  */
87
79
  getConversation(convId) {
88
- return this.http
89
- .get(`${this.baseUrl}/conversations/${convId}`)
90
- .pipe(map(r => r.conversation));
80
+ return this.http.get(`${this.baseUrl}/conversations/${convId}`);
91
81
  }
92
82
  /**
93
- * Actualiza el nombre o settings de una conversacion.
83
+ * Actualiza el titulo o estado de una conversacion.
94
84
  */
95
85
  updateConversation(convId, req) {
96
- return this.http
97
- .patch(`${this.baseUrl}/conversations/${convId}`, req)
98
- .pipe(map(r => r.conversation));
86
+ return this.http.patch(`${this.baseUrl}/conversations/${convId}`, req);
99
87
  }
100
88
  /**
101
89
  * Abre una conversacion cerrada.
@@ -122,21 +110,10 @@ export class ConversationService {
122
110
  return this.http.delete(`${this.baseUrl}/conversations/${convId}/participants/${userId}`);
123
111
  }
124
112
  /**
125
- * Envia un mensaje a una conversacion, opcionalmente con adjuntos.
126
- * El backend espera `attachments: { url, type, name, size }[]` (key `type` = MIME),
127
- * mientras que el front usa `mimeType` — se mapea aqui.
113
+ * Envia un mensaje a una conversacion.
128
114
  */
129
- sendMessage(convId, body, attachments) {
130
- const payload = { body };
131
- if (attachments?.length) {
132
- payload['attachments'] = attachments.map(a => ({
133
- url: a.url,
134
- type: a.mimeType,
135
- name: a.name,
136
- size: a.size ?? 0,
137
- }));
138
- }
139
- return this.http.post(`${this.baseUrl}/conversations/${convId}/messages`, payload);
115
+ sendMessage(convId, body) {
116
+ return this.http.post(`${this.baseUrl}/conversations/${convId}/messages`, { body });
140
117
  }
141
118
  /**
142
119
  * Elimina (marca como eliminado) un mensaje.
@@ -294,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
294
271
  type: Injectable,
295
272
  args: [{ providedIn: 'root' }]
296
273
  }], ctorParameters: () => [] });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NoYXQvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVkvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCO1FBTFEsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lB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QUN0Qix5RUFBeUU7UUFDekUsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUUsSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBblRVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7NEZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2VydmVyVGltZXN0YW1wLCBkZWxldGVEb2MsIGRvYywgc2V0RG9jLCB1cGRhdGVEb2MgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5cbmltcG9ydCB7IFZBTFRFQ0hfQ0hBVF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBDb252ZXJzYXRpb24sXG4gIENvbnZlcnNhdGlvblJlc3BvbnNlLFxuICBDb252ZXJzYXRpb25UeXBlLFxuICBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0LFxuICBMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlLFxuICBNZXNzYWdlLFxuICBNZXNzYWdlQXR0YWNobWVudCxcbiAgVXBkYXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgVHlwaW5nRG9jdW1lbnQsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlU2VydmljZSB9IGZyb20gJy4uL2ZpcmViYXNlL2ZpcmVzdG9yZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb252ZXJzYXRpb25TZXJ2aWNlXG4gKlxuICogR2VzdGlvbmEgY29udmVyc2FjaW9uZXMgeSBtZW5zYWplcyBkZWwgY2hhdC5cbiAqXG4gKiBEb3MgY2FwYXM6XG4gKiAgIC0gSFRUUCAodmlhIGJhY2tlbmQgL3YyL2NoYXQvKik6IG9wZXJhY2lvbmVzIGRlIGVzY3JpdHVyYSB5IGNvbnN1bHRhLlxuICogICAtIEZpcmVzdG9yZSByZWFsLXRpbWUgKGRpcmVjdGEpOiBlc2N1Y2hhIG1lbnNhamVzIHkgZXN0YWRvIGRlIGVzY3JpdHVyYS5cbiAqXG4gKiBQYXRocyBGaXJlc3RvcmU6XG4gKiAgIC9hcHBzL3thcHBJZH0vb3Jncy97b3JnSWR9L2NvbnZlcnNhdGlvbnMve2NvbnZJZH0vbWVzc2FnZXMve21zZ0lkfVxuICogICAvYXBwcy97YXBwSWR9L29yZ3Mve29yZ0lkfS9jb252ZXJzYXRpb25zL3tjb252SWR9L3R5cGluZy97dXNlcklkfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFbnZpYXIgeSBlc2N1Y2hhciBtZW5zYWplc1xuICogY29uc3Qgc3ZjID0gaW5qZWN0KENvbnZlcnNhdGlvblNlcnZpY2UpO1xuICpcbiAqIC8vIEVudmlhciAoSFRUUClcbiAqIHN2Yy5zZW5kTWVzc2FnZShjb252SWQsICdIb2xhIScpLnN1YnNjcmliZSgpO1xuICpcbiAqIC8vIEVzY3VjaGFyIGVuIHRpZW1wbyByZWFsIChGaXJlc3RvcmUpXG4gKiBzdmMud2F0Y2hNZXNzYWdlcyhjb252SWQsIG9yZ0lkLCBhcHBJZCkuc3Vic2NyaWJlKG1zZ3MgPT4gdGhpcy5tZXNzYWdlcy5zZXQobXNncykpO1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENvbnZlcnNhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChWQUxURUNIX0NIQVRfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgZmlyZXN0b3JlU2VydmljZSA9IGluamVjdChGaXJlc3RvcmVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGZpcmVzdG9yZSA9IGluamVjdChGaXJlc3RvcmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnW3ZhbHRlY2gtY29tcG9uZW50c10gQ29udmVyc2F0aW9uU2VydmljZTogcHJvdmlkZVZhbHRlY2hDaGF0KCkgbm8gZXN0YSBlbiBtYWluLnRzLiAnICtcbiAgICAgICAgICAnRWwgY2hhdCBubyBmdW5jaW9uYXJhLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEhUVFAg4oCUIG9wZXJhY2lvbmVzIGRlIGVzY3JpdHVyYSB5IGNvbnN1bHRhIGFsIGJhY2tlbmRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSBnZXQgYmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfSR7dGhpcy5jb25maWc/LmNoYXRQcmVmaXggPz8gJy92Mi9jaGF0J31gO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWEgdW5hIG51ZXZhIGNvbnZlcnNhY2lvbi5cbiAgICogRWwgYmFja2VuZCByZXNwb25kZSBjb24gdW4gZW52ZWxvcGUgeyBvcGVyYXRpb25JZCwgY29udmVyc2F0aW9uIH0g4oCUIGxvXG4gICAqIGRlc2Vudm9sdmVtb3MgcGFyYSBkZXZvbHZlciBsYSBDb252ZXJzYXRpb24gZGlyZWN0YS5cbiAgICovXG4gIGNyZWF0ZUNvbnZlcnNhdGlvbihyZXE6IENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbnZlcnNhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PENvbnZlcnNhdGlvblJlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnNgLCByZXEpXG4gICAgICAucGlwZShtYXAociA9PiByLmNvbnZlcnNhdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbyBjcmVhIHVuYSBjb252ZXJzYWNpb24gYXNvY2lhZGEgYSB1bmEgZW50aWRhZCAocG9zdCwgcmVxdWVzdCwgb3JnLCBldGMuKS5cbiAgICogVXNhIGVsIHBhdHJvbiB1cHNlcnQgZGVsIGJhY2tlbmQ6IHNpIHlhIGV4aXN0ZSB1bmEgY29udmVyc2FjaW9uIHBhcmEgZXNhIGVudGlkYWQsXG4gICAqIGxhIGRldnVlbHZlOyBzaSBubywgbGEgY3JlYS5cbiAgICpcbiAgICogRWwgYmFja2VuZCBlc3BlcmEgeyBlbnRpdHlSZWY6IHsgdHlwZSwgaWQgfSwgdHlwZSB9IHkgcmVzcG9uZGUgY29uIHVuIGVudmVsb3BlXG4gICAqIHsgb3BlcmF0aW9uSWQsIGNvbnZlcnNhdGlvbiwgY3JlYXRlZCB9LlxuICAgKi9cbiAgZ2V0T3JDcmVhdGVGb3JFbnRpdHkoXG4gICAgZW50aXR5VHlwZTogc3RyaW5nLFxuICAgIGVudGl0eUlkOiBzdHJpbmcsXG4gICAgdHlwZTogQ29udmVyc2F0aW9uVHlwZSA9ICd0aHJlYWQnXG4gICk6IE9ic2VydmFibGU8Q29udmVyc2F0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8Q29udmVyc2F0aW9uUmVzcG9uc2U+KGAke3RoaXMuYmFzZVVybH0vZW50aXR5LWNvbnZlcnNhdGlvbnNgLCB7XG4gICAgICAgIGVudGl0eVJlZjogeyB0eXBlOiBlbnRpdHlUeXBlLCBpZDogZW50aXR5SWQgfSxcbiAgICAgICAgdHlwZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAociA9PiByLmNvbnZlcnNhdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIGxhcyBjb252ZXJzYWNpb25lcyBkZWwgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGxpc3RDb252ZXJzYXRpb25zKGN1cnNvcj86IHN0cmluZyk6IE9ic2VydmFibGU8TGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGlmIChjdXJzb3IpIHBhcmFtc1snY3Vyc29yJ10gPSBjdXJzb3I7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zYCwgeyBwYXJhbXMgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB1bmEgY29udmVyc2FjaW9uIHBvciBJRC5cbiAgICovXG4gIGdldENvbnZlcnNhdGlvbihjb252SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29udmVyc2F0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxDb252ZXJzYXRpb25SZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfWApXG4gICAgICAucGlwZShtYXAociA9PiByLmNvbnZlcnNhdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBlbCBub21icmUgbyBzZXR0aW5ncyBkZSB1bmEgY29udmVyc2FjaW9uLlxuICAgKi9cbiAgdXBkYXRlQ29udmVyc2F0aW9uKGNvbnZJZDogc3RyaW5nLCByZXE6IFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbnZlcnNhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaDxDb252ZXJzYXRpb25SZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfWAsIHJlcSlcbiAgICAgIC5waXBlKG1hcChyID0+IHIuY29udmVyc2F0aW9uKSk7XG4gIH1cblxuICAvKipcbiAgICogQWJyZSB1bmEgY29udmVyc2FjaW9uIGNlcnJhZGEuXG4gICAqL1xuICBvcGVuQ29udmVyc2F0aW9uKGNvbnZJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KGAke3RoaXMuYmFzZVVybH0vY29udmVyc2F0aW9ucy8ke2NvbnZJZH0vb3BlbmAsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaWVycmEgdW5hIGNvbnZlcnNhY2lvbi5cbiAgICovXG4gIGNsb3NlQ29udmVyc2F0aW9uKGNvbnZJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KGAke3RoaXMuYmFzZVVybH0vY29udmVyc2F0aW9ucy8ke2NvbnZJZH0vY2xvc2VgLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogQWdyZWdhIHVuIHBhcnRpY2lwYW50ZSBhIGxhIGNvbnZlcnNhY2lvbi5cbiAgICovXG4gIGFkZFBhcnRpY2lwYW50KGNvbnZJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnMvJHtjb252SWR9L3BhcnRpY2lwYW50c2AsIHsgdXNlcklkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmEgdW4gcGFydGljaXBhbnRlIGRlIGxhIGNvbnZlcnNhY2lvbi5cbiAgICovXG4gIHJlbW92ZVBhcnRpY2lwYW50KGNvbnZJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KGAke3RoaXMuYmFzZVVybH0vY29udmVyc2F0aW9ucy8ke2NvbnZJZH0vcGFydGljaXBhbnRzLyR7dXNlcklkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudmlhIHVuIG1lbnNhamUgYSB1bmEgY29udmVyc2FjaW9uLCBvcGNpb25hbG1lbnRlIGNvbiBhZGp1bnRvcy5cbiAgICogRWwgYmFja2VuZCBlc3BlcmEgYGF0dGFjaG1lbnRzOiB7IHVybCwgdHlwZSwgbmFtZSwgc2l6ZSB9W11gIChrZXkgYHR5cGVgID0gTUlNRSksXG4gICAqIG1pZW50cmFzIHF1ZSBlbCBmcm9udCB1c2EgYG1pbWVUeXBlYCDigJQgc2UgbWFwZWEgYXF1aS5cbiAgICovXG4gIHNlbmRNZXNzYWdlKFxuICAgIGNvbnZJZDogc3RyaW5nLFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IE1lc3NhZ2VBdHRhY2htZW50W11cbiAgKTogT2JzZXJ2YWJsZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IGJvZHkgfTtcbiAgICBpZiAoYXR0YWNobWVudHM/Lmxlbmd0aCkge1xuICAgICAgcGF5bG9hZFsnYXR0YWNobWVudHMnXSA9IGF0dGFjaG1lbnRzLm1hcChhID0+ICh7XG4gICAgICAgIHVybDogYS51cmwsXG4gICAgICAgIHR5cGU6IGEubWltZVR5cGUsXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgc2l6ZTogYS5zaXplID8/IDAsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxNZXNzYWdlPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnMvJHtjb252SWR9L21lc3NhZ2VzYCwgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSAobWFyY2EgY29tbyBlbGltaW5hZG8pIHVuIG1lbnNhamUuXG4gICAqL1xuICBkZWxldGVNZXNzYWdlKGNvbnZJZDogc3RyaW5nLCBtc2dJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9tZXNzYWdlcy8ke21zZ0lkfWApO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEZpcmVzdG9yZSDigJQgZXNjdWNoYSBlbiB0aWVtcG8gcmVhbCAoc2luIHBhc2FyIHBvciBlbCBiYWNrZW5kKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQ29uc3RydXllIGVsIHBhdGggYmFzZSBwYXJhIGxvcyBkYXRvcyBkZSB1bmEgY29udmVyc2FjaW9uLlxuICAgKiBOb3RhOiB1c2Ftb3MgZWwgcGF0aCBjb21wbGV0byBjb24gc2tpcFByZWZpeCBwb3JxdWUgZWwgcGF0aCB5YSBpbmNsdXllXG4gICAqIGFwcHMve2FwcElkfS9vcmdzL3tvcmdJZH0gcXVlIGVsIEZpcmVzdG9yZVNlcnZpY2UgcHJlZmlqYXJpYSBkZSBudWV2by5cbiAgICogRW4gY2FtYmlvIGFybWFtb3MgZWwgcGF0aCBjb21vIHN1Yi1jb2xlY2Npb24gZGlyZWN0YW1lbnRlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb252TWVzc2FnZXNQYXRoKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9tZXNzYWdlc2A7XG4gIH1cblxuICBwcml2YXRlIGNvbnZUeXBpbmdQYXRoKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS90eXBpbmdgO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzY3VjaGEgbG9zIG1lbnNhamVzIGRlIHVuYSBjb252ZXJzYWNpb24gZW4gdGllbXBvIHJlYWwuXG4gICAqXG4gICAqIEBwYXJhbSBjb252SWQgLSBJRCBkZSBsYSBjb252ZXJzYWNpb25cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICogQHBhcmFtIGxpbWl0IC0gQ2FudGlkYWQgbWF4aW1hIGRlIG1lbnNhamVzIGEgY2FyZ2FyIChkZWZhdWx0IDUwKVxuICAgKi9cbiAgd2F0Y2hNZXNzYWdlcyhcbiAgICBjb252SWQ6IHN0cmluZyxcbiAgICBvcmdJZDogc3RyaW5nLFxuICAgIGFwcElkOiBzdHJpbmcsXG4gICAgbGltaXQ6IG51bWJlciA9IDUwXG4gICk6IE9ic2VydmFibGU8TWVzc2FnZVtdPiB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZVNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1tDb252ZXJzYXRpb25TZXJ2aWNlXSBGaXJlc3RvcmVTZXJ2aWNlIG5vIGRpc3BvbmlibGUuIEFzZWd1cmF0ZSBkZSBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVc2Ftb3MgQUJTX1BBVEhfU0VOVElORUwgcGFyYSBldml0YXIgcXVlIEZpcmVzdG9yZVNlcnZpY2UgYW50ZXBvbmdhIGVsIHByZWZpam9cbiAgICAvLyBwb3JxdWUgZWwgcGF0aCB5YSBjb250aWVuZSBsYSBydXRhIGNvbXBsZXRhIGNvbiBhcHBJZC9vcmdJZC5cbiAgICBjb25zdCB7IEFCU19QQVRIX1NFTlRJTkVMIH0gPSB0aGlzLmdldEFic1BhdGhTZW50aW5lbCgpO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25QYXRoID0gYCR7QUJTX1BBVEhfU0VOVElORUx9JHt0aGlzLmNvbnZNZXNzYWdlc1BhdGgoY29udklkLCBvcmdJZCwgYXBwSWQpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmVTZXJ2aWNlLmNvbGxlY3Rpb25DaGFuZ2VzPE1lc3NhZ2U+KGNvbGxlY3Rpb25QYXRoLCB7XG4gICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2FzYycgfV0sXG4gICAgICBsaW1pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFc2N1Y2hhIGxvcyB1c3VhcmlvcyBxdWUgZXN0YW4gZXNjcmliaWVuZG8gZW4gdW5hIGNvbnZlcnNhY2lvbi5cbiAgICogRGV2dWVsdmUgdW4gYXJyYXkgZGUgZGlzcGxheU5hbWVzLlxuICAgKlxuICAgKiBAcGFyYW0gY29udklkIC0gSUQgZGUgbGEgY29udmVyc2FjaW9uXG4gICAqIEBwYXJhbSBvcmdJZCAtIElEIGRlIGxhIG9yZ2FuaXphY2lvblxuICAgKiBAcGFyYW0gYXBwSWQgLSBJRCBkZSBsYSBhcGxpY2FjaW9uXG4gICAqL1xuICB3YXRjaFR5cGluZyhjb252SWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgYXBwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuZmlyZXN0b3JlU2VydmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW0NvbnZlcnNhdGlvblNlcnZpY2VdIEZpcmVzdG9yZVNlcnZpY2Ugbm8gZGlzcG9uaWJsZS4gQXNlZ3VyYXRlIGRlIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgQUJTX1BBVEhfU0VOVElORUwgfSA9IHRoaXMuZ2V0QWJzUGF0aFNlbnRpbmVsKCk7XG4gICAgY29uc3QgY29sbGVjdGlvblBhdGggPSBgJHtBQlNfUEFUSF9TRU5USU5FTH0ke3RoaXMuY29udlR5cGluZ1BhdGgoY29udklkLCBvcmdJZCwgYXBwSWQpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmVTZXJ2aWNlXG4gICAgICAuY29sbGVjdGlvbkNoYW5nZXM8VHlwaW5nRG9jdW1lbnQ+KGNvbGxlY3Rpb25QYXRoKVxuICAgICAgLnBpcGUobWFwKGRvY3MgPT4gZG9jcy5tYXAoZCA9PiBkLmRpc3BsYXlOYW1lKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIHF1ZSBlbCB1c3VhcmlvIGFjdHVhbCBlc3RhIGVzY3JpYmllbmRvLlxuICAgKiBFbCBkb2N1bWVudG8gc2Ugc29icmVlc2NyaWJlIHBhcmEgYWN0dWFsaXphciBlbCB0aW1lc3RhbXAuXG4gICAqIERlYmUgbGxhbWFyc2UgY29uIHVuIFRUTC9jbGVhbnVwICh2ZXIgc3RvcFR5cGluZykuXG4gICAqXG4gICAqIEBwYXJhbSBjb252SWQgLSBJRCBkZSBsYSBjb252ZXJzYWNpb25cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICogQHBhcmFtIGRpc3BsYXlOYW1lIC0gTm9tYnJlIHZpc2libGUgZGVsIHVzdWFyaW9cbiAgICovXG4gIHN0YXJ0VHlwaW5nKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nLCBkaXNwbGF5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXNlcklkID0gdGhpcy5nZXRDdXJyZW50VXNlcklkKCk7XG4gICAgaWYgKCF1c2VySWQpIHJldHVybjtcblxuICAgIGNvbnN0IHBhdGggPSBgJHt0aGlzLmNvbnZUeXBpbmdQYXRoKGNvbnZJZCwgb3JnSWQsIGFwcElkKX0vJHt1c2VySWR9YDtcbiAgICBjb25zdCBkb2NSZWYgPSBkb2ModGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuXG4gICAgdm9pZCBzZXREb2MoZG9jUmVmLCB7XG4gICAgICBkaXNwbGF5TmFtZSxcbiAgICAgIHVwZGF0ZWRBdDogc2VydmVyVGltZXN0YW1wKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSBlbCBkb2N1bWVudG8gZGUgXCJlc2NyaWJpZW5kb1wiIGRlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnZJZCAtIElEIGRlIGxhIGNvbnZlcnNhY2lvblxuICAgKiBAcGFyYW0gb3JnSWQgLSBJRCBkZSBsYSBvcmdhbml6YWNpb25cbiAgICogQHBhcmFtIGFwcElkIC0gSUQgZGUgbGEgYXBsaWNhY2lvblxuICAgKi9cbiAgc3RvcFR5cGluZyhjb252SWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgYXBwSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5maXJlc3RvcmUpIHJldHVybjtcblxuICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuZ2V0Q3VycmVudFVzZXJJZCgpO1xuICAgIGlmICghdXNlcklkKSByZXR1cm47XG5cbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb252VHlwaW5nUGF0aChjb252SWQsIG9yZ0lkLCBhcHBJZCl9LyR7dXNlcklkfWA7XG4gICAgY29uc3QgZG9jUmVmID0gZG9jKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcblxuICAgIHZvaWQgZGVsZXRlRG9jKGRvY1JlZik7XG4gIH1cblxuICAvKipcbiAgICogTWFyY2EgdW4gbWVuc2FqZSBjb21vIGxlaWRvIHBvciBlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICogRXNjcmliZSBkaXJlY3RhbWVudGUgZW4gRmlyZXN0b3JlIHNpbiBwYXNhciBwb3IgZWwgYmFja2VuZC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnZJZCAtIElEIGRlIGxhIGNvbnZlcnNhY2lvblxuICAgKiBAcGFyYW0gbXNnSWQgLSBJRCBkZWwgdWx0aW1vIG1lbnNhamUgbGVpZG9cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICovXG4gIG1hcmtSZWFkKGNvbnZJZDogc3RyaW5nLCBtc2dJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXNlcklkID0gdGhpcy5nZXRDdXJyZW50VXNlcklkKCk7XG4gICAgaWYgKCF1c2VySWQpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbnZQYXRoID0gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfWA7XG4gICAgY29uc3QgY29udlJlZiA9IGRvYyh0aGlzLmZpcmVzdG9yZSwgY29udlBhdGgpO1xuXG4gICAgLy8gVXNhIGRvdC1ub3RhdGlvbiBkZSBGaXJlc3RvcmUgcGFyYSBhY3R1YWxpemFyIHNvbG8gZWwgY2FtcG8gZGVsIHVzdWFyaW9cbiAgICBjb25zdCB1cGRhdGVEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFtgcGFydGljaXBhbnRzX3JlYWRNYXAuJHt1c2VySWR9YF06IG1zZ0lkLFxuICAgICAgdXBkYXRlZEF0OiBzZXJ2ZXJUaW1lc3RhbXAoKSxcbiAgICB9O1xuXG4gICAgdm9pZCB1cGRhdGVEb2MoY29udlJlZiwgdXBkYXRlRGF0YSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSGVscGVycyBwcml2YWRvc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogSW1wb3J0YSBBQlNfUEFUSF9TRU5USU5FTCBkZSBmb3JtYSBsYXp5IHBhcmEgZXZpdGFyIGRlcGVuZGVuY2lhcyBjaXJjdWxhcmVzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBYnNQYXRoU2VudGluZWwoKTogeyBBQlNfUEFUSF9TRU5USU5FTDogc3RyaW5nIH0ge1xuICAgIC8vIExhIHNlbnRpbmVsIHNlIGRlZmluZSBlbiBmaXJlc3RvcmUuc2VydmljZS50cyDigJQgcmVwbGljYW1vcyBlbCB2YWxvciBhcXVpXG4gICAgLy8gcGFyYSBubyBjcmVhciB1bmEgZGVwZW5kZW5jaWEgY2lyY3VsYXIgZW4gZWwgaW1wb3J0IGVzdGF0aWNvLlxuICAgIHJldHVybiB7IEFCU19QQVRIX1NFTlRJTkVMOiAnX19hYnNfXzonIH07XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCB1c2VySWQgZGVsIHVzdWFyaW8gYWN0dWFsIGRlc2RlIHNlc3Npb25TdG9yYWdlIC8gbG9jYWxTdG9yYWdlXG4gICAqIGNvbW8gZmFsbGJhY2sgbm8tREkgcGFyYSBlbCBjb250ZXh0byBkZSBlc2NyaXR1cmEgZGUgRmlyZXN0b3JlLlxuICAgKiBFbiBwcm9kLCBlbCBBdXRoU2VydmljZSBhY3R1YWxpemEgZWwgdXNlcklkIGVuIGVsIGNvbnRleHRvIGRlIGxhIGFwcC5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFVzZXJJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAvLyBJbnRlbnRhciBvYnRlbmVybG8gZGVzZGUgc2Vzc2lvblN0b3JhZ2UgKGVsIEF1dGhTZXJ2aWNlIGxvIGd1YXJkYSBhaGkpXG4gICAgaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHVpZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VpZCcpID8/IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpO1xuICAgICAgaWYgKHVpZCkgcmV0dXJuIHVpZDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NoYXQvY29udmVyc2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVUvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCO1FBTFEsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lB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QWUsRUFBRTtTQUM3QixDQUFDO1FBRUYsS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsbUJBQW1CO0lBQ25CLDhFQUE4RTtJQUU5RTs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QiwyRUFBMkU7UUFDM0UsZ0VBQWdFO1FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQjtRQUN0Qix5RUFBeUU7UUFDekUsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUUsSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBeFJVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7NEZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2VydmVyVGltZXN0YW1wLCBkZWxldGVEb2MsIGRvYywgc2V0RG9jLCB1cGRhdGVEb2MgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5cbmltcG9ydCB7IFZBTFRFQ0hfQ0hBVF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQge1xuICBDb252ZXJzYXRpb24sXG4gIENvbnZlcnNhdGlvblR5cGUsXG4gIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gIExpc3RDb252ZXJzYXRpb25zUmVzcG9uc2UsXG4gIE1lc3NhZ2UsXG4gIFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3QsXG4gIFR5cGluZ0RvY3VtZW50LFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9maXJlc3RvcmUuc2VydmljZSc7XG5cbi8qKlxuICogQ29udmVyc2F0aW9uU2VydmljZVxuICpcbiAqIEdlc3Rpb25hIGNvbnZlcnNhY2lvbmVzIHkgbWVuc2FqZXMgZGVsIGNoYXQuXG4gKlxuICogRG9zIGNhcGFzOlxuICogICAtIEhUVFAgKHZpYSBiYWNrZW5kIC92Mi9jaGF0LyopOiBvcGVyYWNpb25lcyBkZSBlc2NyaXR1cmEgeSBjb25zdWx0YS5cbiAqICAgLSBGaXJlc3RvcmUgcmVhbC10aW1lIChkaXJlY3RhKTogZXNjdWNoYSBtZW5zYWplcyB5IGVzdGFkbyBkZSBlc2NyaXR1cmEuXG4gKlxuICogUGF0aHMgRmlyZXN0b3JlOlxuICogICAvYXBwcy97YXBwSWR9L29yZ3Mve29yZ0lkfS9jb252ZXJzYXRpb25zL3tjb252SWR9L21lc3NhZ2VzL3ttc2dJZH1cbiAqICAgL2FwcHMve2FwcElkfS9vcmdzL3tvcmdJZH0vY29udmVyc2F0aW9ucy97Y29udklkfS90eXBpbmcve3VzZXJJZH1cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRW52aWFyIHkgZXNjdWNoYXIgbWVuc2FqZXNcbiAqIGNvbnN0IHN2YyA9IGluamVjdChDb252ZXJzYXRpb25TZXJ2aWNlKTtcbiAqXG4gKiAvLyBFbnZpYXIgKEhUVFApXG4gKiBzdmMuc2VuZE1lc3NhZ2UoY29udklkLCAnSG9sYSEnKS5zdWJzY3JpYmUoKTtcbiAqXG4gKiAvLyBFc2N1Y2hhciBlbiB0aWVtcG8gcmVhbCAoRmlyZXN0b3JlKVxuICogc3ZjLndhdGNoTWVzc2FnZXMoY29udklkLCBvcmdJZCwgYXBwSWQpLnN1YnNjcmliZShtc2dzID0+IHRoaXMubWVzc2FnZXMuc2V0KG1zZ3MpKTtcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb252ZXJzYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVkFMVEVDSF9DSEFUX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIGZpcmVzdG9yZVNlcnZpY2UgPSBpbmplY3QoRmlyZXN0b3JlU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBmaXJlc3RvcmUgPSBpbmplY3QoRmlyZXN0b3JlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5jb25maWcgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1t2YWx0ZWNoLWNvbXBvbmVudHNdIENvbnZlcnNhdGlvblNlcnZpY2U6IHByb3ZpZGVWYWx0ZWNoQ2hhdCgpIG5vIGVzdGEgZW4gbWFpbi50cy4gJyArXG4gICAgICAgICAgJ0VsIGNoYXQgbm8gZnVuY2lvbmFyYS4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBIVFRQIOKAlCBvcGVyYWNpb25lcyBkZSBlc2NyaXR1cmEgeSBjb25zdWx0YSBhbCBiYWNrZW5kXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZ2V0IGJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb25maWc/LmFwaVVybH0ke3RoaXMuY29uZmlnPy5jaGF0UHJlZml4ID8/ICcvdjIvY2hhdCd9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhIHVuYSBudWV2YSBjb252ZXJzYWNpb24uXG4gICAqL1xuICBjcmVhdGVDb252ZXJzYXRpb24ocmVxOiBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0KTogT2JzZXJ2YWJsZTxDb252ZXJzYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udmVyc2F0aW9uPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnNgLCByZXEpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbyBjcmVhIHVuYSBjb252ZXJzYWNpb24gYXNvY2lhZGEgYSB1bmEgZW50aWRhZCAocG9zdCwgcmVxdWVzdCwgZXRjLikuXG4gICAqIFVzYSBlbCBwYXRyb24gdXBzZXJ0IGRlbCBiYWNrZW5kOiBzaSB5YSBleGlzdGUgdW5hIGNvbnZlcnNhY2lvbiBwYXJhIGVzYSBlbnRpZGFkLFxuICAgKiBsYSBkZXZ1ZWx2ZTsgc2kgbm8sIGxhIGNyZWEuXG4gICAqL1xuICBnZXRPckNyZWF0ZUZvckVudGl0eShcbiAgICBlbnRpdHlUeXBlOiBzdHJpbmcsXG4gICAgZW50aXR5SWQ6IHN0cmluZyxcbiAgICB0eXBlOiBDb252ZXJzYXRpb25UeXBlID0gJ2VudGl0eSdcbiAgKTogT2JzZXJ2YWJsZTxDb252ZXJzYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udmVyc2F0aW9uPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnMvZW50aXR5LWNvbnZlcnNhdGlvbnNgLCB7XG4gICAgICBlbnRpdHlUeXBlLFxuICAgICAgZW50aXR5SWQsXG4gICAgICB0eXBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RhIGxhcyBjb252ZXJzYWNpb25lcyBkZWwgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGxpc3RDb252ZXJzYXRpb25zKGN1cnNvcj86IHN0cmluZyk6IE9ic2VydmFibGU8TGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGlmIChjdXJzb3IpIHBhcmFtc1snY3Vyc29yJ10gPSBjdXJzb3I7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zYCwgeyBwYXJhbXMgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB1bmEgY29udmVyc2FjaW9uIHBvciBJRC5cbiAgICovXG4gIGdldENvbnZlcnNhdGlvbihjb252SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29udmVyc2F0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udmVyc2F0aW9uPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnMvJHtjb252SWR9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHRpdHVsbyBvIGVzdGFkbyBkZSB1bmEgY29udmVyc2FjaW9uLlxuICAgKi9cbiAgdXBkYXRlQ29udmVyc2F0aW9uKGNvbnZJZDogc3RyaW5nLCByZXE6IFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3QpOiBPYnNlcnZhYmxlPENvbnZlcnNhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8Q29udmVyc2F0aW9uPihgJHt0aGlzLmJhc2VVcmx9L2NvbnZlcnNhdGlvbnMvJHtjb252SWR9YCwgcmVxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBYnJlIHVuYSBjb252ZXJzYWNpb24gY2VycmFkYS5cbiAgICovXG4gIG9wZW5Db252ZXJzYXRpb24oY29udklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9vcGVuYCwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIENpZXJyYSB1bmEgY29udmVyc2FjaW9uLlxuICAgKi9cbiAgY2xvc2VDb252ZXJzYXRpb24oY29udklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9jbG9zZWAsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ3JlZ2EgdW4gcGFydGljaXBhbnRlIGEgbGEgY29udmVyc2FjaW9uLlxuICAgKi9cbiAgYWRkUGFydGljaXBhbnQoY29udklkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KGAke3RoaXMuYmFzZVVybH0vY29udmVyc2F0aW9ucy8ke2NvbnZJZH0vcGFydGljaXBhbnRzYCwgeyB1c2VySWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSB1biBwYXJ0aWNpcGFudGUgZGUgbGEgY29udmVyc2FjaW9uLlxuICAgKi9cbiAgcmVtb3ZlUGFydGljaXBhbnQoY29udklkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9wYXJ0aWNpcGFudHMvJHt1c2VySWR9YCk7XG4gIH1cblxuICAvKipcbiAgICogRW52aWEgdW4gbWVuc2FqZSBhIHVuYSBjb252ZXJzYWNpb24uXG4gICAqL1xuICBzZW5kTWVzc2FnZShjb252SWQ6IHN0cmluZywgYm9keTogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE1lc3NhZ2U+KGAke3RoaXMuYmFzZVVybH0vY29udmVyc2F0aW9ucy8ke2NvbnZJZH0vbWVzc2FnZXNgLCB7IGJvZHkgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSAobWFyY2EgY29tbyBlbGltaW5hZG8pIHVuIG1lbnNhamUuXG4gICAqL1xuICBkZWxldGVNZXNzYWdlKGNvbnZJZDogc3RyaW5nLCBtc2dJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9tZXNzYWdlcy8ke21zZ0lkfWApO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEZpcmVzdG9yZSDigJQgZXNjdWNoYSBlbiB0aWVtcG8gcmVhbCAoc2luIHBhc2FyIHBvciBlbCBiYWNrZW5kKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQ29uc3RydXllIGVsIHBhdGggYmFzZSBwYXJhIGxvcyBkYXRvcyBkZSB1bmEgY29udmVyc2FjaW9uLlxuICAgKiBOb3RhOiB1c2Ftb3MgZWwgcGF0aCBjb21wbGV0byBjb24gc2tpcFByZWZpeCBwb3JxdWUgZWwgcGF0aCB5YSBpbmNsdXllXG4gICAqIGFwcHMve2FwcElkfS9vcmdzL3tvcmdJZH0gcXVlIGVsIEZpcmVzdG9yZVNlcnZpY2UgcHJlZmlqYXJpYSBkZSBudWV2by5cbiAgICogRW4gY2FtYmlvIGFybWFtb3MgZWwgcGF0aCBjb21vIHN1Yi1jb2xlY2Npb24gZGlyZWN0YW1lbnRlLlxuICAgKi9cbiAgcHJpdmF0ZSBjb252TWVzc2FnZXNQYXRoKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS9tZXNzYWdlc2A7XG4gIH1cblxuICBwcml2YXRlIGNvbnZUeXBpbmdQYXRoKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfS90eXBpbmdgO1xuICB9XG5cbiAgLyoqXG4gICAqIEVzY3VjaGEgbG9zIG1lbnNhamVzIGRlIHVuYSBjb252ZXJzYWNpb24gZW4gdGllbXBvIHJlYWwuXG4gICAqXG4gICAqIEBwYXJhbSBjb252SWQgLSBJRCBkZSBsYSBjb252ZXJzYWNpb25cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICogQHBhcmFtIGxpbWl0IC0gQ2FudGlkYWQgbWF4aW1hIGRlIG1lbnNhamVzIGEgY2FyZ2FyIChkZWZhdWx0IDUwKVxuICAgKi9cbiAgd2F0Y2hNZXNzYWdlcyhcbiAgICBjb252SWQ6IHN0cmluZyxcbiAgICBvcmdJZDogc3RyaW5nLFxuICAgIGFwcElkOiBzdHJpbmcsXG4gICAgbGltaXQ6IG51bWJlciA9IDUwXG4gICk6IE9ic2VydmFibGU8TWVzc2FnZVtdPiB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZVNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1tDb252ZXJzYXRpb25TZXJ2aWNlXSBGaXJlc3RvcmVTZXJ2aWNlIG5vIGRpc3BvbmlibGUuIEFzZWd1cmF0ZSBkZSBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBVc2Ftb3MgQUJTX1BBVEhfU0VOVElORUwgcGFyYSBldml0YXIgcXVlIEZpcmVzdG9yZVNlcnZpY2UgYW50ZXBvbmdhIGVsIHByZWZpam9cbiAgICAvLyBwb3JxdWUgZWwgcGF0aCB5YSBjb250aWVuZSBsYSBydXRhIGNvbXBsZXRhIGNvbiBhcHBJZC9vcmdJZC5cbiAgICBjb25zdCB7IEFCU19QQVRIX1NFTlRJTkVMIH0gPSB0aGlzLmdldEFic1BhdGhTZW50aW5lbCgpO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25QYXRoID0gYCR7QUJTX1BBVEhfU0VOVElORUx9JHt0aGlzLmNvbnZNZXNzYWdlc1BhdGgoY29udklkLCBvcmdJZCwgYXBwSWQpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmVTZXJ2aWNlLmNvbGxlY3Rpb25DaGFuZ2VzPE1lc3NhZ2U+KGNvbGxlY3Rpb25QYXRoLCB7XG4gICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2FzYycgfV0sXG4gICAgICBsaW1pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFc2N1Y2hhIGxvcyB1c3VhcmlvcyBxdWUgZXN0YW4gZXNjcmliaWVuZG8gZW4gdW5hIGNvbnZlcnNhY2lvbi5cbiAgICogRGV2dWVsdmUgdW4gYXJyYXkgZGUgZGlzcGxheU5hbWVzLlxuICAgKlxuICAgKiBAcGFyYW0gY29udklkIC0gSUQgZGUgbGEgY29udmVyc2FjaW9uXG4gICAqIEBwYXJhbSBvcmdJZCAtIElEIGRlIGxhIG9yZ2FuaXphY2lvblxuICAgKiBAcGFyYW0gYXBwSWQgLSBJRCBkZSBsYSBhcGxpY2FjaW9uXG4gICAqL1xuICB3YXRjaFR5cGluZyhjb252SWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgYXBwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuZmlyZXN0b3JlU2VydmljZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnW0NvbnZlcnNhdGlvblNlcnZpY2VdIEZpcmVzdG9yZVNlcnZpY2Ugbm8gZGlzcG9uaWJsZS4gQXNlZ3VyYXRlIGRlIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgQUJTX1BBVEhfU0VOVElORUwgfSA9IHRoaXMuZ2V0QWJzUGF0aFNlbnRpbmVsKCk7XG4gICAgY29uc3QgY29sbGVjdGlvblBhdGggPSBgJHtBQlNfUEFUSF9TRU5USU5FTH0ke3RoaXMuY29udlR5cGluZ1BhdGgoY29udklkLCBvcmdJZCwgYXBwSWQpfWA7XG5cbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmVTZXJ2aWNlXG4gICAgICAuY29sbGVjdGlvbkNoYW5nZXM8VHlwaW5nRG9jdW1lbnQ+KGNvbGxlY3Rpb25QYXRoKVxuICAgICAgLnBpcGUobWFwKGRvY3MgPT4gZG9jcy5tYXAoZCA9PiBkLmRpc3BsYXlOYW1lKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdHJhIHF1ZSBlbCB1c3VhcmlvIGFjdHVhbCBlc3RhIGVzY3JpYmllbmRvLlxuICAgKiBFbCBkb2N1bWVudG8gc2Ugc29icmVlc2NyaWJlIHBhcmEgYWN0dWFsaXphciBlbCB0aW1lc3RhbXAuXG4gICAqIERlYmUgbGxhbWFyc2UgY29uIHVuIFRUTC9jbGVhbnVwICh2ZXIgc3RvcFR5cGluZykuXG4gICAqXG4gICAqIEBwYXJhbSBjb252SWQgLSBJRCBkZSBsYSBjb252ZXJzYWNpb25cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICogQHBhcmFtIGRpc3BsYXlOYW1lIC0gTm9tYnJlIHZpc2libGUgZGVsIHVzdWFyaW9cbiAgICovXG4gIHN0YXJ0VHlwaW5nKGNvbnZJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nLCBkaXNwbGF5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXNlcklkID0gdGhpcy5nZXRDdXJyZW50VXNlcklkKCk7XG4gICAgaWYgKCF1c2VySWQpIHJldHVybjtcblxuICAgIGNvbnN0IHBhdGggPSBgJHt0aGlzLmNvbnZUeXBpbmdQYXRoKGNvbnZJZCwgb3JnSWQsIGFwcElkKX0vJHt1c2VySWR9YDtcbiAgICBjb25zdCBkb2NSZWYgPSBkb2ModGhpcy5maXJlc3RvcmUsIHBhdGgpO1xuXG4gICAgdm9pZCBzZXREb2MoZG9jUmVmLCB7XG4gICAgICBkaXNwbGF5TmFtZSxcbiAgICAgIHVwZGF0ZWRBdDogc2VydmVyVGltZXN0YW1wKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSBlbCBkb2N1bWVudG8gZGUgXCJlc2NyaWJpZW5kb1wiIGRlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnZJZCAtIElEIGRlIGxhIGNvbnZlcnNhY2lvblxuICAgKiBAcGFyYW0gb3JnSWQgLSBJRCBkZSBsYSBvcmdhbml6YWNpb25cbiAgICogQHBhcmFtIGFwcElkIC0gSUQgZGUgbGEgYXBsaWNhY2lvblxuICAgKi9cbiAgc3RvcFR5cGluZyhjb252SWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgYXBwSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5maXJlc3RvcmUpIHJldHVybjtcblxuICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuZ2V0Q3VycmVudFVzZXJJZCgpO1xuICAgIGlmICghdXNlcklkKSByZXR1cm47XG5cbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5jb252VHlwaW5nUGF0aChjb252SWQsIG9yZ0lkLCBhcHBJZCl9LyR7dXNlcklkfWA7XG4gICAgY29uc3QgZG9jUmVmID0gZG9jKHRoaXMuZmlyZXN0b3JlLCBwYXRoKTtcblxuICAgIHZvaWQgZGVsZXRlRG9jKGRvY1JlZik7XG4gIH1cblxuICAvKipcbiAgICogTWFyY2EgdW4gbWVuc2FqZSBjb21vIGxlaWRvIHBvciBlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICogRXNjcmliZSBkaXJlY3RhbWVudGUgZW4gRmlyZXN0b3JlIHNpbiBwYXNhciBwb3IgZWwgYmFja2VuZC5cbiAgICpcbiAgICogQHBhcmFtIGNvbnZJZCAtIElEIGRlIGxhIGNvbnZlcnNhY2lvblxuICAgKiBAcGFyYW0gbXNnSWQgLSBJRCBkZWwgdWx0aW1vIG1lbnNhamUgbGVpZG9cbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjaW9uXG4gICAqIEBwYXJhbSBhcHBJZCAtIElEIGRlIGxhIGFwbGljYWNpb25cbiAgICovXG4gIG1hcmtSZWFkKGNvbnZJZDogc3RyaW5nLCBtc2dJZDogc3RyaW5nLCBvcmdJZDogc3RyaW5nLCBhcHBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpcmVzdG9yZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdXNlcklkID0gdGhpcy5nZXRDdXJyZW50VXNlcklkKCk7XG4gICAgaWYgKCF1c2VySWQpIHJldHVybjtcblxuICAgIGNvbnN0IGNvbnZQYXRoID0gYGFwcHMvJHthcHBJZH0vb3Jncy8ke29yZ0lkfS9jb252ZXJzYXRpb25zLyR7Y29udklkfWA7XG4gICAgY29uc3QgY29udlJlZiA9IGRvYyh0aGlzLmZpcmVzdG9yZSwgY29udlBhdGgpO1xuXG4gICAgLy8gVXNhIGRvdC1ub3RhdGlvbiBkZSBGaXJlc3RvcmUgcGFyYSBhY3R1YWxpemFyIHNvbG8gZWwgY2FtcG8gZGVsIHVzdWFyaW9cbiAgICBjb25zdCB1cGRhdGVEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFtgcGFydGljaXBhbnRzX3JlYWRNYXAuJHt1c2VySWR9YF06IG1zZ0lkLFxuICAgICAgdXBkYXRlZEF0OiBzZXJ2ZXJUaW1lc3RhbXAoKSxcbiAgICB9O1xuXG4gICAgdm9pZCB1cGRhdGVEb2MoY29udlJlZiwgdXBkYXRlRGF0YSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gSGVscGVycyBwcml2YWRvc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogSW1wb3J0YSBBQlNfUEFUSF9TRU5USU5FTCBkZSBmb3JtYSBsYXp5IHBhcmEgZXZpdGFyIGRlcGVuZGVuY2lhcyBjaXJjdWxhcmVzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBYnNQYXRoU2VudGluZWwoKTogeyBBQlNfUEFUSF9TRU5USU5FTDogc3RyaW5nIH0ge1xuICAgIC8vIExhIHNlbnRpbmVsIHNlIGRlZmluZSBlbiBmaXJlc3RvcmUuc2VydmljZS50cyDigJQgcmVwbGljYW1vcyBlbCB2YWxvciBhcXVpXG4gICAgLy8gcGFyYSBubyBjcmVhciB1bmEgZGVwZW5kZW5jaWEgY2lyY3VsYXIgZW4gZWwgaW1wb3J0IGVzdGF0aWNvLlxuICAgIHJldHVybiB7IEFCU19QQVRIX1NFTlRJTkVMOiAnX19hYnNfXzonIH07XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCB1c2VySWQgZGVsIHVzdWFyaW8gYWN0dWFsIGRlc2RlIHNlc3Npb25TdG9yYWdlIC8gbG9jYWxTdG9yYWdlXG4gICAqIGNvbW8gZmFsbGJhY2sgbm8tREkgcGFyYSBlbCBjb250ZXh0byBkZSBlc2NyaXR1cmEgZGUgRmlyZXN0b3JlLlxuICAgKiBFbiBwcm9kLCBlbCBBdXRoU2VydmljZSBhY3R1YWxpemEgZWwgdXNlcklkIGVuIGVsIGNvbnRleHRvIGRlIGxhIGFwcC5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudFVzZXJJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAvLyBJbnRlbnRhciBvYnRlbmVybG8gZGVzZGUgc2Vzc2lvblN0b3JhZ2UgKGVsIEF1dGhTZXJ2aWNlIGxvIGd1YXJkYSBhaGkpXG4gICAgaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHVpZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VpZCcpID8/IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpO1xuICAgICAgaWYgKHVpZCkgcmV0dXJuIHVpZDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -7,4 +7,4 @@
7
7
  * /apps/{appId}/orgs/{orgId}/conversations/{convId}/typing/{userId}
8
8
  */
9
9
  export {};
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NoYXQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hhdCBTZXJ2aWNlIFR5cGVzXG4gKlxuICogVGlwb3MgY29tcGFydGlkb3MgcGFyYSBlbCBzaXN0ZW1hIGRlIGNoYXQgZW4gdGllbXBvIHJlYWwuXG4gKiBGaXJlc3RvcmUgcGF0aHM6XG4gKiAgIC9hcHBzL3thcHBJZH0vb3Jncy97b3JnSWR9L2NvbnZlcnNhdGlvbnMve2NvbnZJZH0vbWVzc2FnZXMve21zZ0lkfVxuICogICAvYXBwcy97YXBwSWR9L29yZ3Mve29yZ0lkfS9jb252ZXJzYXRpb25zL3tjb252SWR9L3R5cGluZy97dXNlcklkfVxuICovXG5cbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi4vZmlyZWJhc2UvdHlwZXMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnZlcnNhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogVGlwbyBkZSBjb252ZXJzYWNpb24uIERlYmUgY29pbmNpZGlyIGNvbiBlbCBiYWNrZW5kIChzZXJ2aWNlcy9jb252ZXJzYXRpb24pOlxuICogICB0aHJlYWQgPSBjb21lbnRhcmlvcyBlbiBlbnRpZGFkIMK3IGdyb3VwID0gY2FuYWwgZ3J1cGFsIMK3IGRtID0gMToxIGRpcmVjdG8uXG4gKi9cbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvblR5cGUgPSAndGhyZWFkJyB8ICdncm91cCcgfCAnZG0nO1xuXG4vKiogVmlzaWJpbGlkYWQgZGUgdW5hIGNvbnZlcnNhY2lvbiAocXVpZW4gcHVlZGUgdW5pcnNlKS4gKi9cbmV4cG9ydCB0eXBlIENvbnZWaXNpYmlsaXR5ID0gJ29yZycgfCAncHJpdmF0ZScgfCAncHVibGljJyB8ICcnO1xuXG4vKiogVmluY3VsbyBkZSBsYSBjb252ZXJzYWNpb24gY29uIHVuYSBlbnRpZGFkIGRlbCBkb21pbmlvLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlSZWYge1xuICAvKiogVGlwbyBkZSBlbnRpZGFkICgncG9zdCcgfCAncmVxdWVzdCcgfCAnb3JnJyB8ICdjdXN0b20nLCBldGMuKS4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogSUQgZGUgbGEgZW50aWRhZC4gKi9cbiAgaWQ6IHN0cmluZztcbn1cblxuLyoqIENvbmZpZ3VyYWNpb24gZGUgbGEgY29udmVyc2FjaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb252U2V0dGluZ3Mge1xuICAvKiogU2kgbGEgY29udmVyc2FjaW9uIGVzdGEgYWJpZXJ0YSBwYXJhIGVudmlhciBtZW5zYWplcy4gKi9cbiAgaXNPcGVuOiBib29sZWFuO1xuICAvKiogUXVpZW4gcHVlZGUgdW5pcnNlLiAqL1xuICB2aXNpYmlsaXR5OiBDb252VmlzaWJpbGl0eTtcbiAgLyoqIFNpIGFkbWl0ZSBwYXJ0aWNpcGFudGVzIGFub25pbW9zLiAqL1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgLyoqIFNpIHJlcXVpZXJlIG1lbWJyZXNpYSBkZSBsYSBvcmcuICovXG4gIHJlcXVpcmVNZW1iZXJzaGlwOiBib29sZWFuO1xuICAvKiogTWF4aW1vIGRlIHBhcnRpY2lwYW50ZXMgKDAgPSBzaW4gbGltaXRlKS4gKi9cbiAgbWF4UGFydGljaXBhbnRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogRG9jdW1lbnRvIGRlIGNvbnZlcnNhY2lvbi4gUmVmbGVqYSBlbCBjb250cmF0byBkZWwgYmFja2VuZFxuICogKHNlcnZpY2VzL2NvbnZlcnNhdGlvbi90eXBlcy5nbykg4oCUIGxhIGZ1ZW50ZSBkZSB2ZXJkYWQgZXMgRHluYW1vREIgeSBlbCBkb2Mgc2VcbiAqIHByb3llY3RhIGEgRmlyZXN0b3JlIHBhcmEgbGFzIHJlZ2xhcyBkZSBtZW1icmVzaWEuIFBvciBlc28gbG9zIGNhbXBvcyBzb25cbiAqIGBjb252SWRgL2BuYW1lYC9gcGFydGljaXBhbnRzOiBzdHJpbmdbXWAgeSBOTyBlbCBzaGFwZSBhbnRpZ3VvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbiB7XG4gIC8qKiBJRCBkZSBsYSBjb252ZXJzYWNpb24uICovXG4gIGNvbnZJZDogc3RyaW5nO1xuICAvKiogVGlwbyBkZSBjb252ZXJzYWNpb24uICovXG4gIHR5cGU6IENvbnZlcnNhdGlvblR5cGU7XG4gIC8qKiBJRCBkZSBsYSBhcHAuICovXG4gIGFwcElkOiBzdHJpbmc7XG4gIC8qKiBJRCBkZSBsYSBvcmcuICovXG4gIG9yZ0lkOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGUgbGEgY29udmVyc2FjaW9uIChwYXJhIGdydXBvcykuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBFbnRpZGFkIGFzb2NpYWRhIChwYXJhIHRpcG8gdGhyZWFkKS4gKi9cbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogSURzIGRlIGxvcyBwYXJ0aWNpcGFudGVzLiAqL1xuICBwYXJ0aWNpcGFudHM6IHN0cmluZ1tdO1xuICAvKiogQ29uZmlndXJhY2lvbi4gKi9cbiAgc2V0dGluZ3M6IENvbnZTZXR0aW5ncztcbiAgLyoqIElEIGRlbCB1c3VhcmlvIHF1ZSBsYSBjcmVvLiAqL1xuICBjcmVhdGVkQnk6IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGNyZWFjaW9uIChJU08gc3RyaW5nKS4gKi9cbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBkZSB1bHRpbWEgYWN0dWFsaXphY2lvbiAoSVNPIHN0cmluZykuICovXG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICAvKiogRmVjaGEgZGVsIHVsdGltbyBtZW5zYWplIChJU08gc3RyaW5nKS4gKi9cbiAgbGFzdE1zZ0F0Pzogc3RyaW5nO1xuICAvKiogUHJldmlldyBkZWwgdWx0aW1vIG1lbnNhamUuICovXG4gIGxhc3RNc2dQcmV2aWV3Pzogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1lc3NhZ2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogVGlwbyBkZSBtZW5zYWplLiAqL1xuZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSAndGV4dCcgfCAnaW1hZ2UnIHwgJ2ZpbGUnIHwgJ3N5c3RlbSc7XG5cbi8qKlxuICogRXN0YWRvIGRlIGVudmlvL2VudHJlZ2EgZGUgdW4gbWVuc2FqZSAocGFyYSByZWFkIHJlY2VpcHRzIGVzdGlsbyBXaGF0c0FwcCk6XG4gKiAgIHNlbmRpbmcg4oaSIHJlbG9qIMK3IHNlbnQg4oaSIOKckyDCtyBkZWxpdmVyZWQg4oaSIOKck+KckyBncmlzIMK3IHJlYWQg4oaSIOKck+KckyBwcmltYXJ5IMK3IGZhaWxlZCDihpIgYWxlcnRhLlxuICogRWwgYmFja2VuZCBob3kgc29sbyBlbWl0ZSBoYXN0YSBgc2VudGA7IGxvcyBkZW1hcyBlc3RhbiBzb3BvcnRhZG9zIHBhcmEgZWwgZnV0dXJvLlxuICovXG5leHBvcnQgdHlwZSBNZXNzYWdlU3RhdHVzID0gJ3NlbmRpbmcnIHwgJ3NlbnQnIHwgJ2RlbGl2ZXJlZCcgfCAncmVhZCcgfCAnZmFpbGVkJztcblxuLyoqIEFyY2hpdm8gYWRqdW50byBlbiB1biBtZW5zYWplLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQXR0YWNobWVudCB7XG4gIC8qKiBOb21icmUgZGVsIGFyY2hpdm8uICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFVSTCBkZSBkZXNjYXJnYS4gKi9cbiAgdXJsOiBzdHJpbmc7XG4gIC8qKiBUaXBvIE1JTUUuICovXG4gIG1pbWVUeXBlOiBzdHJpbmc7XG4gIC8qKiBUYW1hbm8gZW4gYnl0ZXMuICovXG4gIHNpemU/OiBudW1iZXI7XG59XG5cbi8qKiBSZWFjY2lvbiBhIHVuIG1lbnNhamUuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VSZWFjdGlvbiB7XG4gIC8qKiBUb2tlbiBkZWwgZW1vamkgKGVqOiAnbGlrZScsICdoZWFydCcpLiAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogQ2FudGlkYWQgZGUgdXN1YXJpb3MgcXVlIHJlYWNjaW9uYXJvbiBjb24gZXN0ZSBlbW9qaS4gKi9cbiAgY291bnQ6IG51bWJlcjtcbiAgLyoqIFNpIGVsIHVzdWFyaW8gYWN0dWFsIHRpZW5lIGFjdGl2YSBlc3RhIHJlYWNjaW9uLiAqL1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKiBSZWZlcmVuY2lhIGFsIG1lbnNhamUgYWwgcXVlIHNlIHJlc3BvbmRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUmVwbHlUbyB7XG4gIC8qKiBJRCBkZWwgbWVuc2FqZSBvcmlnaW5hbC4gKi9cbiAgbXNnSWQ6IHN0cmluZztcbiAgLyoqIE5vbWJyZSBkZWwgZW1pc29yIGRlbCBtZW5zYWplIG9yaWdpbmFsLiAqL1xuICBzZW5kZXJOYW1lOiBzdHJpbmc7XG4gIC8qKiBUZXh0byBkZWwgbWVuc2FqZSBvcmlnaW5hbCAocHJldmlldykuICovXG4gIGJvZHk6IHN0cmluZztcbn1cblxuLyoqIERvY3VtZW50byBkZSBtZW5zYWplIGVuIEZpcmVzdG9yZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50IHtcbiAgLyoqIElEIGRlbCBlbWlzb3IuICovXG4gIHNlbmRlcklkOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgdmlzaWJsZSBkZWwgZW1pc29yLiAqL1xuICBzZW5kZXJOYW1lOiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBkZWwgZW1pc29yIChvcGNpb25hbCkuICovXG4gIHNlbmRlckF2YXRhcj86IHN0cmluZztcbiAgLyoqIEN1ZXJwbyBkZWwgbWVuc2FqZS4gKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKiogVGlwbyBkZSBtZW5zYWplLiAqL1xuICB0eXBlOiBNZXNzYWdlVHlwZTtcbiAgLyoqIEZlY2hhIGRlIGNyZWFjaW9uIGRlbCBtZW5zYWplLiAqL1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIC8qKiBTaSBlbCBtZW5zYWplIGZ1ZSBlbGltaW5hZG8uICovXG4gIGlzRGVsZXRlZD86IGJvb2xlYW47XG4gIC8qKiBTaSBlbCBtZW5zYWplIGZ1ZSBlZGl0YWRvLiAqL1xuICBpc0VkaXRlZD86IGJvb2xlYW47XG4gIC8qKiBNZW5zYWplIGFsIHF1ZSBzZSByZXNwb25kZS4gKi9cbiAgcmVwbHlUbz86IE1lc3NhZ2VSZXBseVRvO1xuICAvKiogQXJjaGl2b3MgYWRqdW50b3MuICovXG4gIGF0dGFjaG1lbnRzPzogTWVzc2FnZUF0dGFjaG1lbnRbXTtcbiAgLyoqIFJlYWNjaW9uZXMgZGVsIG1lbnNhamUuICovXG4gIHJlYWN0aW9ucz86IE1lc3NhZ2VSZWFjdGlvbltdO1xuICAvKiogRXN0YWRvIGRlIGVudmlvIChwYXJhIG1lbnNhamVzIG9wdGltaXN0YXMgZGVsIGxhZG8gZGVsIGNsaWVudGUpLiAqL1xuICBzdGF0dXM/OiBNZXNzYWdlU3RhdHVzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGluZyBpbmRpY2F0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogRG9jdW1lbnRvIGRlIFwiZXNjcmliaWVuZG9cIiBlbiBGaXJlc3RvcmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGluZ0RvY3VtZW50IGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICAvKiogTm9tYnJlIHZpc2libGUgZGVsIHVzdWFyaW8gcXVlIGVzdGEgZXNjcmliaWVuZG8uICovXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgZGUgbGEgdWx0aW1hIGFjdHVhbGl6YWNpb24uICovXG4gIHVwZGF0ZWRBdDogRGF0ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIVFRQIFJlcXVlc3QgLyBSZXNwb25zZSB0eXBlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBSZXF1ZXN0IHBhcmEgY3JlYXIgdW5hIGNvbnZlcnNhY2lvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCB7XG4gIC8qKiBUaXBvIGRlIGNvbnZlcnNhY2lvbi4gKi9cbiAgdHlwZTogQ29udmVyc2F0aW9uVHlwZTtcbiAgLyoqIE5vbWJyZSAocGFyYSBncnVwb3MpLiAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRW50aWRhZCBhc29jaWFkYSAocGFyYSB0aXBvIHRocmVhZCkuICovXG4gIGVudGl0eVJlZj86IEVudGl0eVJlZjtcbiAgLyoqIElEcyBkZSBsb3MgcGFydGljaXBhbnRlcyBpbmljaWFsZXMgKGFkZW1hcyBkZWwgY3JlYWRvcikuICovXG4gIHBhcnRpY2lwYW50cz86IHN0cmluZ1tdO1xuICAvKiogQ29uZmlndXJhY2lvbiBpbmljaWFsLiAqL1xuICBzZXR0aW5ncz86IFBhcnRpYWw8Q29udlNldHRpbmdzPjtcbn1cblxuLyoqIFJlcXVlc3QgcGFyYSBhY3R1YWxpemFyIHVuYSBjb252ZXJzYWNpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3Qge1xuICAvKiogTnVldm8gbm9tYnJlIChvcGNpb25hbCkuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBOdWV2YSBjb25maWd1cmFjaW9uIChvcGNpb25hbCkuICovXG4gIHNldHRpbmdzPzogUGFydGlhbDxDb252U2V0dGluZ3M+O1xufVxuXG4vKiogUmVzcG9uc2UgcXVlIGVudnVlbHZlIHVuYSBzb2xhIGNvbnZlcnNhY2lvbiAoY3JlYXRlIC8gZ2V0IC8gdXBkYXRlIC8gZ2V0LW9yLWNyZWF0ZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvblJlc3BvbnNlIHtcbiAgLyoqIElEIGRlIG9wZXJhY2lvbiBwYXJhIHRyYWNpbmcuICovXG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBMYSBjb252ZXJzYWNpb24uICovXG4gIGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uO1xuICAvKiogU2kgZnVlIGNyZWFkYSBlbiBlc3RhIGxsYW1hZGEgKHNvbG8gZ2V0LW9yLWNyZWF0ZSkuICovXG4gIGNyZWF0ZWQ/OiBib29sZWFuO1xufVxuXG4vKiogUmVzcG9uc2UgZGUgbGlzdGFkbyBkZSBjb252ZXJzYWNpb25lcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdENvbnZlcnNhdGlvbnNSZXNwb25zZSB7XG4gIC8qKiBJRCBkZSBvcGVyYWNpb24gcGFyYSB0cmFjaW5nLiAqL1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICAvKiogTGlzdGEgZGUgY29udmVyc2FjaW9uZXMuICovXG4gIGNvbnZlcnNhdGlvbnM6IENvbnZlcnNhdGlvbltdO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hY2lvbi4gKi9cbiAgbmV4dEN1cnNvcj86IHN0cmluZztcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NoYXQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hhdCBTZXJ2aWNlIFR5cGVzXG4gKlxuICogVGlwb3MgY29tcGFydGlkb3MgcGFyYSBlbCBzaXN0ZW1hIGRlIGNoYXQgZW4gdGllbXBvIHJlYWwuXG4gKiBGaXJlc3RvcmUgcGF0aHM6XG4gKiAgIC9hcHBzL3thcHBJZH0vb3Jncy97b3JnSWR9L2NvbnZlcnNhdGlvbnMve2NvbnZJZH0vbWVzc2FnZXMve21zZ0lkfVxuICogICAvYXBwcy97YXBwSWR9L29yZ3Mve29yZ0lkfS9jb252ZXJzYXRpb25zL3tjb252SWR9L3R5cGluZy97dXNlcklkfVxuICovXG5cbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi4vZmlyZWJhc2UvdHlwZXMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnZlcnNhdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBUaXBvIGRlIGNvbnZlcnNhY2lvbi4gKi9cbmV4cG9ydCB0eXBlIENvbnZlcnNhdGlvblR5cGUgPSAnZGlyZWN0JyB8ICdncm91cCcgfCAnZW50aXR5JztcblxuLyoqIEVzdGFkbyBkZSB1bmEgY29udmVyc2FjaW9uLiAqL1xuZXhwb3J0IHR5cGUgQ29udmVyc2F0aW9uU3RhdHVzID0gJ29wZW4nIHwgJ2Nsb3NlZCc7XG5cbi8qKiBQYXJ0aWNpcGFudGUgZGUgdW5hIGNvbnZlcnNhY2lvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uUGFydGljaXBhbnQge1xuICAvKiogSUQgZGVsIHVzdWFyaW8uICovXG4gIHVzZXJJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIHZpc2libGUgZGVsIHVzdWFyaW8uICovXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBkZWwgdXN1YXJpbyAob3BjaW9uYWwpLiAqL1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIC8qKiBGZWNoYSBlbiBxdWUgc2UgdW5pbyBhIGxhIGNvbnZlcnNhY2lvbi4gKi9cbiAgam9pbmVkQXQ6IERhdGU7XG4gIC8qKiBVbHRpbW8gbWVuc2FqZSBsZWlkbyBwb3IgZXN0ZSBwYXJ0aWNpcGFudGUuICovXG4gIGxhc3RSZWFkTXNnSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBEb2N1bWVudG8gZGUgY29udmVyc2FjaW9uIGVuIEZpcmVzdG9yZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVyc2F0aW9uIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICAvKiogVGlwbyBkZSBjb252ZXJzYWNpb24uICovXG4gIHR5cGU6IENvbnZlcnNhdGlvblR5cGU7XG4gIC8qKiBFc3RhZG8gZGUgbGEgY29udmVyc2FjaW9uLiAqL1xuICBzdGF0dXM6IENvbnZlcnNhdGlvblN0YXR1cztcbiAgLyoqIFBhcnRpY2lwYW50ZXMuICovXG4gIHBhcnRpY2lwYW50czogQ29udmVyc2F0aW9uUGFydGljaXBhbnRbXTtcbiAgLyoqIFRpcG8gZGUgZW50aWRhZCBhc29jaWFkYSAocGFyYSB0aXBvIGVudGl0eSkuICovXG4gIGVudGl0eVR5cGU/OiBzdHJpbmc7XG4gIC8qKiBJRCBkZSBsYSBlbnRpZGFkIGFzb2NpYWRhLiAqL1xuICBlbnRpdHlJZD86IHN0cmluZztcbiAgLyoqIFRpdHVsbyBkZSBsYSBjb252ZXJzYWNpb24gKHBhcmEgZ3J1cG9zKS4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBJRCBkZWwgdWx0aW1vIG1lbnNhamUuICovXG4gIGxhc3RNc2dJZD86IHN0cmluZztcbiAgLyoqIFRleHRvIGRlbCB1bHRpbW8gbWVuc2FqZSAocHJldmlldykuICovXG4gIGxhc3RNc2dCb2R5Pzogc3RyaW5nO1xuICAvKiogRmVjaGEgZGVsIHVsdGltbyBtZW5zYWplLiAqL1xuICBsYXN0TXNnQXQ/OiBEYXRlO1xuICAvKiogQ29udGVvIGRlIG1lbnNhamVzIG5vIGxlaWRvcyBwb3IgdXNlcklkLiAqL1xuICB1bnJlYWRDb3VudD86IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWVzc2FnZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBUaXBvIGRlIG1lbnNhamUuICovXG5leHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9ICd0ZXh0JyB8ICdpbWFnZScgfCAnZmlsZScgfCAnc3lzdGVtJztcblxuLyoqIEVzdGFkbyBkZSBlbnZpbyBkZWwgbWVuc2FqZS4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2VTdGF0dXMgPSAnc2VuZGluZycgfCAnc2VudCcgfCAnZmFpbGVkJztcblxuLyoqIEFyY2hpdm8gYWRqdW50byBlbiB1biBtZW5zYWplLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQXR0YWNobWVudCB7XG4gIC8qKiBOb21icmUgZGVsIGFyY2hpdm8uICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFVSTCBkZSBkZXNjYXJnYS4gKi9cbiAgdXJsOiBzdHJpbmc7XG4gIC8qKiBUaXBvIE1JTUUuICovXG4gIG1pbWVUeXBlOiBzdHJpbmc7XG4gIC8qKiBUYW1hbm8gZW4gYnl0ZXMuICovXG4gIHNpemU/OiBudW1iZXI7XG59XG5cbi8qKiBSZWFjY2lvbiBhIHVuIG1lbnNhamUuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VSZWFjdGlvbiB7XG4gIC8qKiBUb2tlbiBkZWwgZW1vamkgKGVqOiAnbGlrZScsICdoZWFydCcpLiAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogQ2FudGlkYWQgZGUgdXN1YXJpb3MgcXVlIHJlYWNjaW9uYXJvbiBjb24gZXN0ZSBlbW9qaS4gKi9cbiAgY291bnQ6IG51bWJlcjtcbiAgLyoqIFNpIGVsIHVzdWFyaW8gYWN0dWFsIHRpZW5lIGFjdGl2YSBlc3RhIHJlYWNjaW9uLiAqL1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKiBSZWZlcmVuY2lhIGFsIG1lbnNhamUgYWwgcXVlIHNlIHJlc3BvbmRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUmVwbHlUbyB7XG4gIC8qKiBJRCBkZWwgbWVuc2FqZSBvcmlnaW5hbC4gKi9cbiAgbXNnSWQ6IHN0cmluZztcbiAgLyoqIE5vbWJyZSBkZWwgZW1pc29yIGRlbCBtZW5zYWplIG9yaWdpbmFsLiAqL1xuICBzZW5kZXJOYW1lOiBzdHJpbmc7XG4gIC8qKiBUZXh0byBkZWwgbWVuc2FqZSBvcmlnaW5hbCAocHJldmlldykuICovXG4gIGJvZHk6IHN0cmluZztcbn1cblxuLyoqIERvY3VtZW50byBkZSBtZW5zYWplIGVuIEZpcmVzdG9yZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50IHtcbiAgLyoqIElEIGRlbCBlbWlzb3IuICovXG4gIHNlbmRlcklkOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgdmlzaWJsZSBkZWwgZW1pc29yLiAqL1xuICBzZW5kZXJOYW1lOiBzdHJpbmc7XG4gIC8qKiBVUkwgZGVsIGF2YXRhciBkZWwgZW1pc29yIChvcGNpb25hbCkuICovXG4gIHNlbmRlckF2YXRhcj86IHN0cmluZztcbiAgLyoqIEN1ZXJwbyBkZWwgbWVuc2FqZS4gKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKiogVGlwbyBkZSBtZW5zYWplLiAqL1xuICB0eXBlOiBNZXNzYWdlVHlwZTtcbiAgLyoqIEZlY2hhIGRlIGNyZWFjaW9uIGRlbCBtZW5zYWplLiAqL1xuICBjcmVhdGVkQXQ6IERhdGU7XG4gIC8qKiBTaSBlbCBtZW5zYWplIGZ1ZSBlbGltaW5hZG8uICovXG4gIGlzRGVsZXRlZD86IGJvb2xlYW47XG4gIC8qKiBTaSBlbCBtZW5zYWplIGZ1ZSBlZGl0YWRvLiAqL1xuICBpc0VkaXRlZD86IGJvb2xlYW47XG4gIC8qKiBNZW5zYWplIGFsIHF1ZSBzZSByZXNwb25kZS4gKi9cbiAgcmVwbHlUbz86IE1lc3NhZ2VSZXBseVRvO1xuICAvKiogQXJjaGl2b3MgYWRqdW50b3MuICovXG4gIGF0dGFjaG1lbnRzPzogTWVzc2FnZUF0dGFjaG1lbnRbXTtcbiAgLyoqIFJlYWNjaW9uZXMgZGVsIG1lbnNhamUuICovXG4gIHJlYWN0aW9ucz86IE1lc3NhZ2VSZWFjdGlvbltdO1xuICAvKiogRXN0YWRvIGRlIGVudmlvIChwYXJhIG1lbnNhamVzIG9wdGltaXN0YXMgZGVsIGxhZG8gZGVsIGNsaWVudGUpLiAqL1xuICBzdGF0dXM/OiBNZXNzYWdlU3RhdHVzO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGluZyBpbmRpY2F0b3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogRG9jdW1lbnRvIGRlIFwiZXNjcmliaWVuZG9cIiBlbiBGaXJlc3RvcmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGluZ0RvY3VtZW50IGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICAvKiogTm9tYnJlIHZpc2libGUgZGVsIHVzdWFyaW8gcXVlIGVzdGEgZXNjcmliaWVuZG8uICovXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgZGUgbGEgdWx0aW1hIGFjdHVhbGl6YWNpb24uICovXG4gIHVwZGF0ZWRBdDogRGF0ZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIVFRQIFJlcXVlc3QgLyBSZXNwb25zZSB0eXBlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBSZXF1ZXN0IHBhcmEgY3JlYXIgdW5hIGNvbnZlcnNhY2lvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCB7XG4gIC8qKiBUaXBvIGRlIGNvbnZlcnNhY2lvbi4gKi9cbiAgdHlwZTogQ29udmVyc2F0aW9uVHlwZTtcbiAgLyoqIElEcyBkZSBsb3MgcGFydGljaXBhbnRlcyBpbmljaWFsZXMuICovXG4gIHBhcnRpY2lwYW50SWRzPzogc3RyaW5nW107XG4gIC8qKiBQYXJhIHRpcG8gZW50aXR5OiB0aXBvIGRlIGxhIGVudGlkYWQuICovXG4gIGVudGl0eVR5cGU/OiBzdHJpbmc7XG4gIC8qKiBQYXJhIHRpcG8gZW50aXR5OiBJRCBkZSBsYSBlbnRpZGFkLiAqL1xuICBlbnRpdHlJZD86IHN0cmluZztcbiAgLyoqIFRpdHVsbyAocGFyYSBncnVwb3MpLiAqL1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuLyoqIFJlcXVlc3QgcGFyYSBhY3R1YWxpemFyIHVuYSBjb252ZXJzYWNpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnZlcnNhdGlvblJlcXVlc3Qge1xuICAvKiogTnVldm8gdGl0dWxvIChvcGNpb25hbCkuICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogTnVldm8gZXN0YWRvIChvcGNpb25hbCkuICovXG4gIHN0YXR1cz86IENvbnZlcnNhdGlvblN0YXR1cztcbn1cblxuLyoqIFJlc3BvbnNlIGRlIGxpc3RhZG8gZGUgY29udmVyc2FjaW9uZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDb252ZXJzYXRpb25zUmVzcG9uc2Uge1xuICAvKiogTGlzdGEgZGUgY29udmVyc2FjaW9uZXMuICovXG4gIGNvbnZlcnNhdGlvbnM6IENvbnZlcnNhdGlvbltdO1xuICAvKiogQ3Vyc29yIHBhcmEgcGFnaW5hY2lvbi4gKi9cbiAgbmV4dEN1cnNvcj86IHN0cmluZztcbiAgLyoqIFNpIGhheSBtYXMgcGFnaW5hcy4gKi9cbiAgaGFzTW9yZTogYm9vbGVhbjtcbn1cbiJdfQ==