@hivegpt/hiveai-angular 0.0.397 → 0.0.399

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.
@@ -1,34 +1,20 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { ChatDrawerComponent } from '../chat-drawer/chat-drawer.component';
1
+ import { Component, Input } from '@angular/core';
3
2
  export class ChatBotComponent {
4
3
  constructor() {
5
4
  this.visible = false;
6
- this.isVoiceModalOpen = false;
7
- this.voiceModalConfig = null;
8
5
  }
9
6
  toggle() {
10
7
  this.visible = !this.visible;
11
8
  }
12
- onOpenVoiceModal(config) {
13
- this.voiceModalConfig = config;
14
- this.isVoiceModalOpen = true;
15
- }
16
- onVoiceModalClose() {
17
- var _a;
18
- this.isVoiceModalOpen = false;
19
- this.voiceModalConfig = null;
20
- (_a = this.chatDrawerRef) === null || _a === void 0 ? void 0 : _a.closeVoiceModal();
21
- }
22
9
  }
23
10
  ChatBotComponent.decorators = [
24
11
  { type: Component, args: [{
25
12
  selector: 'hivegpt-chatbot',
26
- template: "<button mat-icon-button class=\"chat-button\" color=\"primary\" (click)=\"toggle()\">\n <mat-icon>chat</mat-icon>\n</button>\n\n<!-- Voice modal rendered here so it's not clipped by the chat drawer -->\n<hivegpt-voice-agent-modal\n *ngIf=\"isVoiceModalOpen && voiceModalConfig\"\n [apiUrl]=\"voiceModalConfig.apiUrl\"\n [token]=\"voiceModalConfig.token\"\n [botId]=\"voiceModalConfig.botId\"\n [conversationId]=\"voiceModalConfig.conversationId\"\n [agentName]=\"voiceModalConfig.agentName\"\n [agentRole]=\"voiceModalConfig.agentRole\"\n [agentAvatar]=\"voiceModalConfig.agentAvatar\"\n (close)=\"onVoiceModalClose()\"\n></hivegpt-voice-agent-modal>\n\n<ng-container *ngIf=\"visible\">\n <hivegpt-chat-drawer-package\n (requestOpenVoiceModal)=\"onOpenVoiceModal($event)\"\n [apiKey]=\"apiKey\"\n [bgBubbleAi]=\"bgBubbleAi\"\n [bgBubbleUser]=\"bgBubbleUser\"\n [bgGradient]=\"bgGradient\"\n [botName]=\"botName\"\n [closeButtonbgColor]=\"closeButtonbgColor\"\n [closeButtonColor]=\"closeButtonColor\"\n [credentials]=\"credentials\"\n [dateTextColor]=\"dateTextColor\"\n [dateTimeColor]=\"dateTimeColor\"\n [eventId]=\"eventId\"\n [eventName]=\"eventName\"\n [formFieldBgColor]=\"formFieldBgColor\"\n [formFieldTextColor]=\"formFieldTextColor\"\n [fullView]=\"fullView\"\n [greeting]=\"greeting\"\n [gradientColors]=\"gradientColors\"\n [messageTextColorAi]=\"messageTextColorAi\"\n [messageTextColorUser]=\"messageTextColorUser\"\n [sendButtonColor]=\"sendButtonColor\"\n [sendButtonTextColor]=\"sendButtonTextColor\"\n [showClose]=\"showClose\"\n [thumbsDownMessages]=\"thumbsDownMessages\"\n [thumbsUpMessage]=\"thumbsUpMessage\"\n [unknownResponses]=\"unknownResponses\"\n [useOpenAi]=\"useOpenAi\"\n [userId]=\"userId\"\n [botId]=\"botId\"\n [s27Token]=\"s27Token\"\n [workspaceToken]=\"workspaceToken\"\n [isDev]=\"isDev\"\n >\n </hivegpt-chat-drawer-package>\n</ng-container>\n",
13
+ template: "<button mat-icon-button class=\"chat-button\" color=\"primary\" (click)=\"toggle()\">\n <mat-icon>chat</mat-icon>\n</button>\n\n<ng-container *ngIf=\"visible\">\n <hivegpt-chat-drawer-package\n [apiKey]=\"apiKey\"\n [bgBubbleAi]=\"bgBubbleAi\"\n [bgBubbleUser]=\"bgBubbleUser\"\n [bgGradient]=\"bgGradient\"\n [botName]=\"botName\"\n [closeButtonbgColor]=\"closeButtonbgColor\"\n [closeButtonColor]=\"closeButtonColor\"\n [credentials]=\"credentials\"\n [dateTextColor]=\"dateTextColor\"\n [dateTimeColor]=\"dateTimeColor\"\n [eventId]=\"eventId\"\n [eventName]=\"eventName\"\n [formFieldBgColor]=\"formFieldBgColor\"\n [formFieldTextColor]=\"formFieldTextColor\"\n [fullView]=\"fullView\"\n [greeting]=\"greeting\"\n [gradientColors]=\"gradientColors\"\n [messageTextColorAi]=\"messageTextColorAi\"\n [messageTextColorUser]=\"messageTextColorUser\"\n [sendButtonColor]=\"sendButtonColor\"\n [sendButtonTextColor]=\"sendButtonTextColor\"\n [showClose]=\"showClose\"\n [thumbsDownMessages]=\"thumbsDownMessages\"\n [thumbsUpMessage]=\"thumbsUpMessage\"\n [unknownResponses]=\"unknownResponses\"\n [useOpenAi]=\"useOpenAi\"\n [userId]=\"userId\"\n [botId]=\"botId\"\n [s27Token]=\"s27Token\"\n [workspaceToken]=\"workspaceToken\"\n [isDev]=\"isDev\"\n >\n </hivegpt-chat-drawer-package>\n</ng-container>\n",
27
14
  styles: ["::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#e5ccbc}.spinner{align-items:center;display:flex;gap:2px;justify-content:center}.spinner>div{animation:bouncedelay 1.4s ease-in-out infinite;animation-fill-mode:both;background-color:#173330;border-radius:100%;display:inline-block;height:5px;width:5px}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.chat-button{align-items:center;background:#17235b;border:#17235b;border-radius:50%;bottom:20px;color:#fff;display:inline-flex;font-size:24px;height:50px;justify-content:center;position:fixed;right:20px;width:50px}"]
28
15
  },] }
29
16
  ];
30
17
  ChatBotComponent.propDecorators = {
31
- chatDrawerRef: [{ type: ViewChild, args: [ChatDrawerComponent,] }],
32
18
  userId: [{ type: Input }],
33
19
  apiKey: [{ type: Input }],
34
20
  botName: [{ type: Input }],
@@ -64,4 +50,4 @@ ChatBotComponent.propDecorators = {
64
50
  workspaceToken: [{ type: Input }],
65
51
  isDev: [{ type: Input }]
66
52
  };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3JvaGl0dGhha3VyL2hpdmUtZ3B0L0hpdmVBSS1QYWNrYWdlcy9Bbmd1bGFyL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhdGJvdC9jaGF0Ym90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixNQUFNLHNDQUFzQyxDQUFDO0FBTzdGLE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUEwQ0UsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIscUJBQWdCLEdBQTRCLElBQUksQ0FBQztJQWdCbkQsQ0FBQztJQWRDLE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBd0I7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUI7O1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7O1lBM0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixxNURBQXVDOzthQUV4Qzs7OzRCQUVFLFNBQVMsU0FBQyxtQkFBbUI7cUJBRTdCLEtBQUs7cUJBQ0wsS0FBSztzQkFDTCxLQUFLO3dCQUNMLEtBQUs7b0JBQ0wsS0FBSzsrQkFDTCxLQUFLOzZCQUNMLEtBQUs7dUJBQ0wsS0FBSzs4QkFDTCxLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO2tDQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7aUNBQ0wsS0FBSztpQ0FDTCxLQUFLO21DQUNMLEtBQUs7NEJBQ0wsS0FBSzs0QkFDTCxLQUFLOytCQUNMLEtBQUs7aUNBQ0wsS0FBSzs4QkFDTCxLQUFLO2lDQUNMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7K0JBQ0wsS0FBSztvQkFDTCxLQUFLO3NCQUNMLEtBQUs7dUJBQ0wsS0FBSzs2QkFDTCxLQUFLO29CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYXREcmF3ZXJDb21wb25lbnQsIFZvaWNlTW9kYWxDb25maWcgfSBmcm9tICcuLi9jaGF0LWRyYXdlci9jaGF0LWRyYXdlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoaXZlZ3B0LWNoYXRib3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdGJvdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXRib3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdEJvdENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQ2hhdERyYXdlckNvbXBvbmVudCkgY2hhdERyYXdlclJlZj86IENoYXREcmF3ZXJDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgdXNlcklkITogc3RyaW5nO1xuICBASW5wdXQoKSBhcGlLZXkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvdE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvdFNraWxscyE6IHN0cmluZztcbiAgQElucHV0KCkgYm90SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uQ29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdyYWRpZW50Q29sb3JzITogc3RyaW5nW107XG4gIEBJbnB1dCgpIGdyZWV0aW5nITogc3RyaW5nO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQ29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVzZU9wZW5BaSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dDbG9zZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGJnR3JhZGllbnQhOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgc2VuZEJ1dHRvblRleHRDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZnVsbFZpZXchOiBib29sZWFuO1xuICBASW5wdXQoKSBiZ0J1YmJsZUFpITogc3RyaW5nO1xuICBASW5wdXQoKSBiZ0J1YmJsZVVzZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uYmdDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgbWVzc2FnZVRleHRDb2xvckFpITogc3RyaW5nO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dENvbG9yVXNlciE6IHN0cmluZztcbiAgQElucHV0KCkgZGF0ZVRpbWVDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZGF0ZVRleHRDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZm9ybUZpZWxkQmdDb2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZm9ybUZpZWxkVGV4dENvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSB0aHVtYnNVcE1lc3NhZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRodW1ic0Rvd25NZXNzYWdlcyE6IHN0cmluZ1tdO1xuICBASW5wdXQoKSB0aW1lem9uZSE6IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnROYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjcmVkZW50aWFscyE6IFtdO1xuICBASW5wdXQoKSB1bmtub3duUmVzcG9uc2VzITogW107XG4gIEBJbnB1dCgpIHJ1bGVzITogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudElkITogc3RyaW5nO1xuICBASW5wdXQoKSBzMjdUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgd29ya3NwYWNlVG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzRGV2ITogYm9vbGVhbjtcbiAgdmlzaWJsZSA9IGZhbHNlO1xuICBpc1ZvaWNlTW9kYWxPcGVuID0gZmFsc2U7XG4gIHZvaWNlTW9kYWxDb25maWc6IFZvaWNlTW9kYWxDb25maWcgfCBudWxsID0gbnVsbDtcblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgfVxuXG4gIG9uT3BlblZvaWNlTW9kYWwoY29uZmlnOiBWb2ljZU1vZGFsQ29uZmlnKSB7XG4gICAgdGhpcy52b2ljZU1vZGFsQ29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaXNWb2ljZU1vZGFsT3BlbiA9IHRydWU7XG4gIH1cblxuICBvblZvaWNlTW9kYWxDbG9zZSgpIHtcbiAgICB0aGlzLmlzVm9pY2VNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnZvaWNlTW9kYWxDb25maWcgPSBudWxsO1xuICAgIHRoaXMuY2hhdERyYXdlclJlZj8uY2xvc2VWb2ljZU1vZGFsKCk7XG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3JvaGl0dGhha3VyL2hpdmUtZ3B0L0hpdmVBSS1QYWNrYWdlcy9Bbmd1bGFyL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhdGJvdC9jaGF0Ym90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9qRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBd0NFLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFLbEIsQ0FBQztJQUhDLE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDOzs7WUE1Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHMwQ0FBdUM7O2FBRXhDOzs7cUJBRUUsS0FBSztxQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSztvQkFDTCxLQUFLOytCQUNMLEtBQUs7NkJBQ0wsS0FBSzt1QkFDTCxLQUFLOzhCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7a0NBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSztpQ0FDTCxLQUFLO2lDQUNMLEtBQUs7bUNBQ0wsS0FBSzs0QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSztpQ0FDTCxLQUFLOzhCQUNMLEtBQUs7aUNBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzsrQkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLOzZCQUNMLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGl2ZWdwdC1jaGF0Ym90JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXRib3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGF0Ym90LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENoYXRCb3RDb21wb25lbnQge1xuICBASW5wdXQoKSB1c2VySWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwaUtleSE6IHN0cmluZztcbiAgQElucHV0KCkgYm90TmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgYm90U2tpbGxzITogc3RyaW5nO1xuICBASW5wdXQoKSBib3RJZCE6IHN0cmluZztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25Db2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgZ3JhZGllbnRDb2xvcnMhOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgZ3JlZXRpbmchOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbmRCdXR0b25Db2xvciE6IHN0cmluZztcbiAgQElucHV0KCkgdXNlT3BlbkFpITogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd0Nsb3NlITogYm9vbGVhbjtcbiAgQElucHV0KCkgYmdHcmFkaWVudCE6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uVGV4dENvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBmdWxsVmlldyE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGJnQnViYmxlQWkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJnQnViYmxlVXNlciE6IHN0cmluZztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25iZ0NvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBtZXNzYWdlVGV4dENvbG9yQWkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1lc3NhZ2VUZXh0Q29sb3JVc2VyITogc3RyaW5nO1xuICBASW5wdXQoKSBkYXRlVGltZUNvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBkYXRlVGV4dENvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBmb3JtRmllbGRCZ0NvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBmb3JtRmllbGRUZXh0Q29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRodW1ic1VwTWVzc2FnZSE6IHN0cmluZztcbiAgQElucHV0KCkgdGh1bWJzRG93bk1lc3NhZ2VzITogc3RyaW5nW107XG4gIEBJbnB1dCgpIHRpbWV6b25lITogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWRlbnRpYWxzITogW107XG4gIEBJbnB1dCgpIHVua25vd25SZXNwb25zZXMhOiBbXTtcbiAgQElucHV0KCkgcnVsZXMhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV2ZW50SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHMyN1Rva2VuITogc3RyaW5nO1xuICBASW5wdXQoKSB3b3Jrc3BhY2VUb2tlbiE6IHN0cmluZztcbiAgQElucHV0KCkgaXNEZXYhOiBib29sZWFuO1xuICB2aXNpYmxlID0gZmFsc2U7XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gIH1cbn1cbiJdfQ==