fmode-ng 0.0.204 → 0.0.205
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +3 -3
- package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +2 -2
- package/esm2022/lib/core/parse/fmode.query.mjs +3 -3
- package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +12 -11
- package/esm2022/lib/user/account/account.service.mjs +8 -2
- package/esm2022/lib/user/login/auth.service.mjs +139 -53
- package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +3 -8
- package/fesm2022/fmode-ng.mjs +488 -401
- package/fesm2022/fmode-ng.mjs.map +1 -1
- package/lib/aigc/story/fm-story-list/story-preview.d.ts +1 -1
- package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
- package/lib/social/wechat/wechat-jssdk.service.d.ts +2 -3
- package/lib/user/login/auth.service.d.ts +9 -5
- package/package.json +1 -1
|
@@ -5,11 +5,11 @@ import { CompAvatarRoleImageComponent } from '../../avatar';
|
|
|
5
5
|
import { CompAvatarRoleVideoComponent } from '../../avatar';
|
|
6
6
|
import { FmodeChat } from '../../service-fmai/service-chat';
|
|
7
7
|
import { addIcons } from 'ionicons';
|
|
8
|
-
import { chevronBackOutline, ellipsisHorizontalOutline } from 'ionicons/icons';
|
|
8
|
+
import { chevronBackOutline, ellipsisHorizontalOutline, resizeOutline } from 'ionicons/icons';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@ionic/angular/standalone";
|
|
11
11
|
import * as i2 from "@angular/common";
|
|
12
|
-
addIcons({ chevronBackOutline, ellipsisHorizontalOutline });
|
|
12
|
+
addIcons({ chevronBackOutline, ellipsisHorizontalOutline, resizeOutline });
|
|
13
13
|
export class FmChatHeaderArea {
|
|
14
14
|
constructor(navCtrl) {
|
|
15
15
|
this.navCtrl = navCtrl;
|
|
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
46
46
|
}], goBack: [{
|
|
47
47
|
type: Input
|
|
48
48
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcC1oZWFkZXItYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY2hhdC9jaGF0LWhlYWRlci1hcmVhL2NvbXAtaGVhZGVyLWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1oZWFkZXItYXJlYS9jb21wLWhlYWRlci1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdMLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLHlCQUF5QixFQUFFLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBQzNGLFFBQVEsQ0FBQyxFQUFDLGtCQUFrQixFQUFDLHlCQUF5QixFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7QUFpQnRFLE1BQU0sT0FBTyxnQkFBZ0I7SUFJM0IsWUFDVSxPQUFxQjtRQUFyQixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBSC9CLGdCQUFXLEdBQVcsS0FBSyxDQUFBO1FBZTNCLFdBQU0sR0FBRyxHQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQTtJQWJDLENBQUM7SUFFSCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQztZQUNyQixJQUFJLFdBQVcsR0FBSSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN0RCxJQUFHLENBQUMsV0FBVztnQkFBRSxPQUFNO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzsrR0FkVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQiwySEMxQjdCLCt3SEFpRmMsMmJEL0RWLFlBQVksbUlBQUMsVUFBVSxtRkFBQyxVQUFVLDhFQUFDLFNBQVMsb1BBQUMsT0FBTywySkFDcEQsUUFBUSxzREFDUixRQUFRLGlGQUFDLFNBQVMsb0dBQUMsT0FBTyx5RkFBQyxPQUFPLDBOQUFDLE9BQU8seUxBQUMsUUFBUSw2RkFBQyxPQUFPO2dCQUMzRCxHQUFHO2dCQUNILDRCQUE0QixnR0FDNUIsNEJBQTRCOzs0RkFHbkIsZ0JBQWdCO2tCQWQ1QixTQUFTOytCQUNFLHFCQUFxQixjQUdwQixJQUFJLFdBQ1A7d0JBQ04sWUFBWSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE9BQU87d0JBQ3BELFFBQVEsRUFBQyxTQUFTO3dCQUNsQixRQUFRLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPO3dCQUMzRCxHQUFHO3dCQUNILDRCQUE0Qjt3QkFDNUIsNEJBQTRCO3FCQUM3QjtrRkFHUSxJQUFJO3NCQUFaLEtBQUs7Z0JBZ0JOLE1BQU07c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW9uQnV0dG9ucywgSW9uQ2FyZCwgSW9uSGVhZGVyLCBJb25JY29uLElvbkJ1dHRvbiwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIElvbk5vdGUsIElvblRpdGxlLCBJb25Ub29sYmFyLCBJb25Nb2RhbCwgTmF2Q29udHJvbGxlciwgSW9uQXZhdGFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XHJcbmltcG9ydCB7IENvbXBBdmF0YXJSb2xlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdmF0YXInO1xyXG5pbXBvcnQgeyBDb21wQXZhdGFyUm9sZVZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXZhdGFyJztcclxuaW1wb3J0IHsgRm1vZGVDaGF0IH0gZnJvbSAnLi4vLi4vc2VydmljZS1mbWFpL3NlcnZpY2UtY2hhdCc7XHJcblxyXG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcclxuaW1wb3J0IHtjaGV2cm9uQmFja091dGxpbmUsZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSwgcmVzaXplT3V0bGluZX0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xyXG5hZGRJY29ucyh7Y2hldnJvbkJhY2tPdXRsaW5lLGVsbGlwc2lzSG9yaXpvbnRhbE91dGxpbmUscmVzaXplT3V0bGluZX0pXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmbS1jaGF0LWhlYWRlci1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcC1oZWFkZXItYXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29tcC1oZWFkZXItYXJlYS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6dHJ1ZSxcclxuICBpbXBvcnRzOltcclxuICAgIENvbW1vbk1vZHVsZSxJb25Ub29sYmFyLElvbkJ1dHRvbnMsSW9uQnV0dG9uLElvbkljb24sXHJcbiAgICBJb25Nb2RhbCxJb25BdmF0YXIsXHJcbiAgICBJb25UaXRsZSxJb25IZWFkZXIsSW9uTGlzdCxJb25JdGVtLElvbkNhcmQsSW9uTGFiZWwsSW9uTm90ZSxcclxuICAgIC8vIFxyXG4gICAgQ29tcEF2YXRhclJvbGVJbWFnZUNvbXBvbmVudCxcclxuICAgIENvbXBBdmF0YXJSb2xlVmlkZW9Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbUNoYXRIZWFkZXJBcmVhIHtcclxuICBASW5wdXQoKSBjaGF0OkZtb2RlQ2hhdFxyXG4gIGlzTW9kYWxPcGVuOmJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmF2Q3RybDpOYXZDb250cm9sbGVyXHJcbiAgKXt9XHJcblxyXG4gIGFzeW5jIGJhY2soKXtcclxuICAgIGlmKHRoaXMuY2hhdD8ub25DbG9zZSl7XHJcbiAgICAgIGxldCBjbG9zZVJlc3VsdCA9ICBhd2FpdCB0aGlzLmNoYXQ/Lm9uQ2xvc2UodGhpcy5jaGF0KVxyXG4gICAgICBpZighY2xvc2VSZXN1bHQpIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy5nb0JhY2soKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ29CYWNrID0gKCk9PntcclxuICAgIHRoaXMubmF2Q3RybC5iYWNrKCk7XHJcbiAgfVxyXG59IFxyXG4iLCI8aW9uLXRvb2xiYXIgKm5nSWY9XCJjaGF0Py5pc0F2YXRhclNob3c9PWZhbHNlXCI+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImJhY2soKVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8aW9uLXRpdGxlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtYXZhdGFyLWFyZWFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWltZ1wiIChjbGljayk9XCJjaGF0LnNob3dBdmF0YXIoKVwiPlxyXG4gICAgICAgICAgPGltZyAqbmdJZj1cImNoYXQ/LnJvbGU/LmdldCgnYXZhdGFyJyl8fGNoYXQ/LnJvbGU/LmdldCgndGh1bWInKVwiIFtzcmNdPVwiY2hhdD8ucm9sZT8uZ2V0KCdhdmF0YXInKXx8Y2hhdD8ucm9sZT8uZ2V0KCd0aHVtYicpXCIgLz5cclxuICAgICAgICAgIDxpb24taWNvbiAqbmdJZj1cImNoYXQ/LnJvbGU/LmdldCgnYXZhdGFyQ29uZmlnJylcIiBuYW1lPVwicmVzaXplLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIChjbGljayk9XCJjaGF0LnNob3dBdmF0YXIoKVwiPlxyXG4gICAgICAgICAge3tjaGF0Py5yb2xlPy5nZXQoXCJuYW1lXCIpfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9pb24tdGl0bGU+XHJcblxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiaXNNb2RhbE9wZW49dHJ1ZVwiPiA8aW9uLWljb24gbmFtZT1cImVsbGlwc2lzLWhvcml6b250YWwtb3V0bGluZVwiPjwvaW9uLWljb24+IDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvaW9uLWJ1dHRvbnM+XHJcbjwvaW9uLXRvb2xiYXI+XHJcblxyXG48ZGl2IGNsYXNzPVwiYXZhdGFyLWFyZWFcIiAqbmdJZj1cImNoYXQ/LmlzQXZhdGFyU2hvdz09dHJ1ZVwiPlxyXG4gIDxmbS1hdmF0YXItcm9sZS1pbWFnZSAqbmdJZj1cImNoYXQ/LmF2YXRhck1vZGU9PSdpbWFnZSdcIiBbZm1vZGVDaGF0XT1cImNoYXRcIiBbcm9sZV09XCJhdmF0YXJSb2xlXCI+PC9mbS1hdmF0YXItcm9sZS1pbWFnZT5cclxuICA8Zm0tYXZhdGFyLXJvbGUtdmlkZW8gW2dvQmFja109XCJnb0JhY2tcIiAqbmdJZj1cImNoYXQ/LmF2YXRhck1vZGU9PSd2aWRlbydcIiBbZm1vZGVDaGF0XT1cImNoYXRcIiBbcm9sZV09XCJhdmF0YXJSb2xlXCI+PC9mbS1hdmF0YXItcm9sZS12aWRlbz5cclxuPC9kaXY+XHJcblxyXG5cclxuPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzTW9kYWxPcGVuXCIgKHdpbGxEaXNtaXNzKT1cImlzTW9kYWxPcGVuPWZhbHNlXCI+XHJcbiAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgIDxpb24taGVhZGVyPlxyXG4gICAgICAgIDxpb24tdG9vbGJhcj5cclxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImlzTW9kYWxPcGVuPWZhbHNlXCI+6L+U5ZuePC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgICAgICAgIDxpb24tdGl0bGU+566A5LuLPC9pb24tdGl0bGU+XHJcbiAgICAgICAgPC9pb24tdG9vbGJhcj5cclxuICAgICAgPC9pb24taGVhZGVyPlxyXG4gICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG5cclxuICAgICAgICA8aW9uLWNhcmQgc3R5bGU9XCJtYXJnaW46IDBweDtcIj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJ3aWR0aDoxMDAlXCIgW3NyY109XCJjaGF0Py5yb2xlPy5nZXQoJ3RodW1iJylcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZT57e2NoYXQ/LnJvbGU/LmdldCgndGFncycpfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGU+e3tjaGF0Py5yb2xlPy5nZXQoXCJuYW1lXCIpfX08L2lvbi1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAge3tjaGF0Py5yb2xlPy5nZXQoXCJkZXNjXCIpfX1cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPGlvbi1saXN0IFtpbnNldF09XCJ0cnVlXCIgc3R5bGU9XCJtYXJnaW46MHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxpb24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWF2YXRhciAqbmdJZj1cImNoYXQ/LnJvbGU/LmdldCgndGh1bWInKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNoYXQ/LnJvbGU/LmdldCgndGh1bWInKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tjaGF0Py5yb2xlPy5nZXQoXCJuYW1lXCIpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiAqbmdJZj1cImNoYXQ/LnJvbGU/LmdldCgnYWdlJylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLW5vdGUgc2xvdD1cInN0YXJ0XCI+5bm06b6EPC9pb24tbm90ZT5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7Y2hhdD8ucm9sZT8uZ2V0KFwiYWdlXCIpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiICpuZ0lmPVwiY2hhdD8ucm9sZT8uZ2V0KCdnZW5kZXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbm90ZSBzbG90PVwic3RhcnRcIj7mgKfliKs8L2lvbi1ub3RlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tjaGF0Py5yb2xlPy5nZXQoXCJnZW5kZXJcIil9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1ub3RlIHNsb3Q9XCJzdGFydFwiPuensOWPtzwvaW9uLW5vdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbD57e2NoYXQ/LnJvbGU/LmdldChcInRpdGxlXCIpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLW5vdGUgc2xvdD1cInN0YXJ0XCI+5pOF6ZW/PC9pb24tbm90ZT5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7Y2hhdD8ucm9sZT8uZ2V0KFwidGFnc1wiKT8uam9pbignLCcpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9pb24tY2FyZD5cclxuICAgICAgPC9pb24tY29udGVudD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9pb24tbW9kYWw+Il19
|
|
@@ -86,7 +86,7 @@ export class FmChatModalInput {
|
|
|
86
86
|
let that = this;
|
|
87
87
|
this.chat.focusUserInput = () => {
|
|
88
88
|
that.chat.isVoiceInputMode = false;
|
|
89
|
-
that.userInputComp
|
|
89
|
+
that.userInputComp?.setFocus();
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
// ngAfterViewInit(): void {
|
|
@@ -329,4 +329,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
329
329
|
}], role: [{
|
|
330
330
|
type: Input
|
|
331
331
|
}] } });
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1tb2RhbC1pbnB1dC9tb2RhbC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY2hhdC9jaGF0LW1vZGFsLWlucHV0L21vZGFsLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBMkIsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCwwQ0FBMEM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxXQUFXLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFB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ZnRlclZpZXdJbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgTmF2Q29udHJvbGxlciwgUGxhdGZvcm0sIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRm1vZGVDaGF0IH0gZnJvbSAnLi4vLi4vc2VydmljZS1mbWFpL3NlcnZpY2UtY2hhdCc7XHJcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS1mbWFpL3NlcnZpY2UtY2hhdCc7XHJcblxyXG4vLyBpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ2Ztb2RlLW5nJztcclxuaW1wb3J0IHtGbW9kZVBhcnNlLEZtb2RlT2JqZWN0LEZtb2RlUXVlcnksRm1vZGVVc2VyfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9wYXJzZVwiO2NvbnN0IFBhcnNlID0gRm1vZGVQYXJzZS53aXRoKFwibm92YVwiKTtcclxuaW1wb3J0IHsgSW1hZ2luZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLWZtYWkvc2VydmljZS1pbWFnaW5lL2ltYWdpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQ29udGVudCwgSW9uSWNvbiwgSW9uSW5wdXQsIElvbkl0ZW0sIElvbkxpc3QsIElvbk1vZGFsLCBJb25Qb3BvdmVyLCBJb25UZXh0YXJlYSwgSW9uVG9vbGJhciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxBdWRpb01lc3NhZ2VDb21wb25lbnQgfSBmcm9tIFwiLi9tb2RhbC1hdWRpby1tZXNzYWdlL21vZGFsLWF1ZGlvLW1lc3NhZ2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZtQ2hhdE1lc3NhZ2VDYXJkIH0gZnJvbSAnLi4vY2hhdC1tZXNzYWdlLWNhcmQvY29tcC1tZXNzYWdlLWNhcmQuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xyXG5pbXBvcnQge2ltYWdlT3V0bGluZSxjaGV2cm9uQmFja091dGxpbmUsZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSxjaGV2cm9uRG93bk91dGxpbmUsY2hhdGJveEVsbGlwc2VzT3V0bGluZSxtaWNPdXRsaW5lLHBhcGVyUGxhbmVPdXRsaW5lLHNoYXJlU29jaWFsT3V0bGluZSxzZXR0aW5nc091dGxpbmUsIGFsZXJ0T3V0bGluZSwgY29sb3JXYW5kT3V0bGluZSwgcGVvcGxlT3V0bGluZX0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VzZXIvYWNjb3VudC9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGbW9kZUNoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hZ2VudC9jaGF0L2ludGVyZmFjZSc7XHJcbmFkZEljb25zKHtjb2xvcldhbmRPdXRsaW5lLHBlb3BsZU91dGxpbmUsYWxlcnRPdXRsaW5lLGltYWdlT3V0bGluZSxjaGV2cm9uQmFja091dGxpbmUsZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSxjaGV2cm9uRG93bk91dGxpbmUsY2hhdGJveEVsbGlwc2VzT3V0bGluZSxtaWNPdXRsaW5lLHBhcGVyUGxhbmVPdXRsaW5lLHNoYXJlU29jaWFsT3V0bGluZSxzZXR0aW5nc091dGxpbmV9KVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmbS1jaGF0LW1vZGFsLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTp0cnVlLFxyXG4gIGltcG9ydHM6W1xyXG4gICAgQ29tbW9uTW9kdWxlLEZvcm1zTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJb25Ub29sYmFyLElvbkl0ZW0sSW9uQnV0dG9uLElvbkxpc3QsSW9uTW9kYWwsXHJcbiAgICBJb25JbnB1dCxJb25JY29uLElvblRleHRhcmVhLElvblBvcG92ZXIsSW9uQ29udGVudCxcclxuICAgIC8vIFxyXG4gICAgRm1DaGF0TWVzc2FnZUNhcmQsXHJcbiAgICBNb2RhbEF1ZGlvTWVzc2FnZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZtQ2hhdE1vZGFsSW5wdXQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQFZpZXdDaGlsZChNb2RhbEF1ZGlvTWVzc2FnZUNvbXBvbmVudCkgYXVkaW9Db21wOk1vZGFsQXVkaW9NZXNzYWdlQ29tcG9uZW50XHJcbiAgQFZpZXdDaGlsZChcInVzZXJJbnB1dFwiKSB1c2VySW5wdXRDb21wOklvblRleHRhcmVhXHJcblxyXG5cclxuICBASW5wdXQoKSBjaGF0OkZtb2RlQ2hhdDtcclxuICBASW5wdXQoKSBtZXNzYWdlOkZtb2RlQ2hhdE1lc3NhZ2VcclxuICBASW5wdXQoKSByb2xlOkZtb2RlT2JqZWN0XHJcbiAgdXNlcjpGbW9kZVVzZXJcclxuICBlcnJvclRleHQ6c3RyaW5nID0gYGBcclxuXHJcbiAgLy8g6K+t6Z+z6L6T5YWl5o6n5Yi2XHJcbiAgaXNBdWRpb01vZGFsOmJvb2xlYW4gPSBmYWxzZTtcclxuICBjbG9zZUF1ZGlvKCl7XHJcbiAgICB0aGlzLmF1ZGlvQ29tcD8uY2FuY2VsKCk7XHJcbiAgICB0aGlzLmlzQXVkaW9Nb2RhbD1mYWxzZTtcclxuICB9XHJcbiAgYXVkaW9Nb2RhbEhlaWdodFBvaW50ID0gMC4zNTtcclxuICBhc3luYyBzdGFydFRhbGsoKXtcclxuICAgIC8vIENoZWNrIGlmIGFscmVhZHkgc2VuZGluZ1xyXG4gICAgaWYgKHRoaXMuaXNTZW5kaW5nKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgfHwgOTYwO1xyXG4gICAgdGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnQgPSBOdW1iZXIoKDE2NS9oZWlnaHQpLnRvRml4ZWQoMikpXHJcblxyXG4gICAgdGhpcy5jaGF0LnN0b3BQbGF5aW5nVm9pY2UoKTtcclxuXHJcbiAgICAgIC8vIOW8ueWHuuiupOivgee7hOS7tlxyXG4gICAgbGV0IG1vZGFsOmFueSBcclxuICAgIG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtcclxuICAgICAgY29tcG9uZW50Ok1vZGFsQXVkaW9NZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgICBjb21wb25lbnRQcm9wczp7XHJcbiAgICAgICAgY2hhdDp0aGlzLmNoYXQsXHJcbiAgICAgICAgbW9kYWw6bW9kYWwsXHJcbiAgICAgICAgb25CcmVha1BvaW50U2V0OigpPT57XHJcbiAgICAgICAgICBtb2RhbD8uc2V0Q3VycmVudEJyZWFrcG9pbnQodGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnQpXHJcbiAgICAgIH19LFxyXG4gICAgICBicmVha3BvaW50czpbdGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnRdLFxyXG4gICAgICBpbml0aWFsQnJlYWtwb2ludDp0aGlzLmF1ZGlvTW9kYWxIZWlnaHRQb2ludCxcclxuICAgIH0pXHJcbiAgICBtb2RhbC5wcmVzZW50KClcclxuICAgIC8vIHRoaXMuaXNBdWRpb01vZGFsPXRydWU7XHJcbiAgfVxyXG4gIC8vIGFjY291bnQ6YW55O1xyXG4gIGF1dGhTZXJ2OmFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG9hc3RDdHJsOlRvYXN0Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgYWxlcnRDdHJsOkFsZXJ0Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgbW9kYWxDdHJsOk1vZGFsQ29udHJvbGxlcixcclxuICAgIHByaXZhdGUgcm91dGVyOlJvdXRlcixcclxuICAgIHByaXZhdGUgaW1hZ2luZVNlcnY6SW1hZ2luZVNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGF1dGhTZXJ2OkF1dGhTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNoYXRTZXJ2OkNoYXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY2NvdW50OkFjY291bnRTZXJ2aWNlLFxyXG4gICl7XHJcbiAgICAvLyB0aGlzLmNoYXRTZXJ2LmdldENoYXRTZXNzaW9uKCkudGhlbigoKT0+e1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmNoYXRTZXJ2LmNoYXRMaXN0KTtcclxuICAgIC8vIH0pXHJcbiAgICB0aGlzLnVzZXIgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKTtcclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmxvYWRNb2RlbCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jaGF0KTtcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHRoaXMuY2hhdC5mb2N1c1VzZXJJbnB1dCA9ICgpPT57XHJcbiAgICAgIHRoYXQuY2hhdC5pc1ZvaWNlSW5wdXRNb2RlID0gZmFsc2U7XHJcbiAgICAgIHRoYXQudXNlcklucHV0Q29tcC5zZXRGb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIC8vICAgY29uc29sZS5sb2codGhpcy5jaGF0KVxyXG4gIC8vIH1cclxuXHJcbiAgYXN5bmMgbG9hZE1vZGVsKCl7XHJcbiAgICBsZXQgbW9kZWwgPSB0aGlzLmNoYXQ/LnJvbGU/LmdldChcIm1vZGVsXCIpXHJcbiAgICBhd2FpdCB0aGlzLmNoYXQubG9hZE1vZGVsTGlzdChtb2RlbClcclxuICB9XHJcbiAgXHJcbiAgYXN5bmMgc2V0TWVzc2FnZUltYWdlKCl7XHJcbiAgICAvLyBsZXQgdXJsID0gYGh0dHBzOi8vZmlsZS1jbG91ZC5mbW9kZS5jbi9TdmVobDZGY2VMLzIwMjQwNTE1LzA2MTUwMzY3MS5qcGVnYDtcclxuICAgIGxldCB1cmwgPSBhd2FpdCB0aGlzLmltYWdpbmVTZXJ2LmdldGltZygpO1xyXG4gICAgdGhpcy5jaGF0LnVzZXJJbWFnZSA9IHVybDtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY2hhdD8udXNlckltYWdlKTtcclxuICAgIC8vIGNvbnRlbnTmmK/mlbDnu4TvvIzmt7vliqBcclxuICAgIC8vIGNvbnRlbnTpnZ7mlbDnu4TvvIzph43nu4RcclxuICB9XHJcbiBcclxuICBvbklucHV0Rm9jdXMoKXtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwib25JbnB1dEZvY3VzXCIsdGhpcy5jaGF0LnNjcm9sbFRvQm90dG9tKVxyXG4gICAgdGhpcy5jaGF0LmlzVGV4dGluZz10cnVlO1xyXG4gICAgdGhpcy5jaGF0LnNjcm9sbFRvQm90dG9tJiZ0aGlzLmNoYXQuc2Nyb2xsVG9Cb3R0b20oKTtcclxuICB9XHJcbiAgXHJcbiAgb25LZXlEb3duKGV2ZW50OktleWJvYXJkRXZlbnQpe1xyXG4gICAgLy8g5qOA5p+l5piv5ZCm5oyJ5LiL5LqGQ3RybOmUruWSjEVudGVy6ZSuXHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgLy8g5omn6KGM55u45bqU55qE6YC76L6RXHJcbiAgICAgIGNvbnNvbGUubG9nKCdDdHJsK0VudGVyIOiiq+aMieS4iycpO1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDlj5HpgIHmtojmga8g6Ziy5oqW5py65Yi2XHJcbiAgaXNTZW5kaW5nID0gZmFsc2U7XHJcbiAgbGFzdE1lc3NhZ2VUaW1lb3V0OiBhbnk7XHJcbiAgbGFzdE1lc3NhZ2VUaW1lc3RhbXA6IG51bWJlciA9IDA7XHJcbiAgcmVwbHlUaW1lb3V0ID0gMTUwMDA7IC8vIDE1IHNlY29uZHMgdGltZW91dFxyXG4gIGFzeW5jIHNlbmRNZXNzYWdlKCl7XHJcbiAgICAvLyBDaGVjayBpZiBhbHJlYWR5IHNlbmRpbmdcclxuICAgIGlmICh0aGlzLmlzU2VuZGluZykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAgLy8gQ2hlY2sgaWYgd2FpdGluZyBmb3IgcHJldmlvdXMgcmVwbHlcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBpZiAodGhpcy5sYXN0TWVzc2FnZVRpbWVzdGFtcCA+IDAgJiYgKG5vdyAtIHRoaXMubGFzdE1lc3NhZ2VUaW1lc3RhbXApIDwgdGhpcy5yZXBseVRpbWVvdXQpIHtcclxuICAgICAgdGhpcy5lcnJvclRleHQgPSBg6K+3562J5b6F5LiK5LiA5p2h5raI5oGv55qE5Zue5aSN5oiW56iN5ZCO5YaN6K+VYDtcclxuICAgICAgbGV0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdEN0cmwuY3JlYXRlKHtcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmVycm9yVGV4dCxcclxuICAgICAgICBwb3NpdGlvbjogXCJ0b3BcIixcclxuICAgICAgICBpY29uOiAnYWxlcnQnLFxyXG4gICAgICAgIGNvbG9yOiBcIndhcm5pbmdcIixcclxuICAgICAgICBkdXJhdGlvbjogMTAwMFxyXG4gICAgICB9KTtcclxuICAgICAgdG9hc3QucHJlc2VudCgpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1NlbmRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5sYXN0TWVzc2FnZVRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcblxyXG4gICAgLy8g5qOA5rWL55So5oi355m75b2V5oOF5Ya1XHJcbiAgICAvLyBsZXQgaXNMb2dpbkxvY2sgPSBhd2FpdCB0aGlzLmF1dGhTZXJ2LmNoZWNrTG9naW5Mb2NrKClcclxuICAgIC8vIGlmKCFpc0xvZ2luTG9jaykgcmV0dXJuIGZhbHNlXHJcblxyXG4gICAgLy8g5qOA5rWL5L2Z6aKd5Y+K5qih5Z6L5LuY6LS56ZmQ5Yi2XHJcbiAgICBsZXQgcGF5Q2hlY2sgPSBhd2FpdCB0aGlzLmNoZWNrQmFsYW5jZSgpXHJcbiAgICBpZighcGF5Q2hlY2spIHtcclxuICAgICAgdGhpcy5pc1NlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLy8g5qOA5rWL55So5oi36L6T5YWl5YaF5a6556m65YC8XHJcbiAgICBpZighdGhpcy5jaGF0LnVzZXJJbnB1dCl7XHJcbiAgICAgIHRoaXMuZXJyb3JUZXh0ID0gYOWGheWuueS4jeiDveS4uuepumBcclxuICAgICAgbGV0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdEN0cmwuY3JlYXRlKHtcclxuICAgICAgICBtZXNzYWdlOnRoaXMuZXJyb3JUZXh0LFxyXG4gICAgICAgIHBvc2l0aW9uOlwidG9wXCIsXHJcbiAgICAgICAgaWNvbjonYWxlcnQnLFxyXG4gICAgICAgIGNvbG9yOlwid2FybmluZy1jaXJjbGVcIixcclxuICAgICAgICBkdXJhdGlvbjoxMDAwXHJcbiAgICAgIH0pXHJcbiAgICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICAgICAgdGhpcy5pc1NlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgIC8vIENsZWFyIGFueSBleGlzdGluZyB0aW1lb3V0XHJcbiAgICBpZiAodGhpcy5sYXN0TWVzc2FnZVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdE1lc3NhZ2VUaW1lb3V0KTtcclxuICAgIH1cclxuICAgIC8vIFNldCB0aW1lb3V0IHRvIHJlc2V0IHNlbmRpbmcgc3RhdGUgaWYgbm8gcmVwbHlcclxuICAgIHRoaXMubGFzdE1lc3NhZ2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNTZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubGFzdE1lc3NhZ2VUaW1lc3RhbXAgPSAwO1xyXG4gICAgfSwgdGhpcy5yZXBseVRpbWVvdXQpO1xyXG5cclxuICAgIC8vIOato+W4uOWPkemAgea2iOaBr1xyXG4gICAgLy8gdGhpcy5jaGF0LmlzVGFsa01vZGU9dHJ1ZTsgLy8g5byA5ZCv6K+06K+d5qih5byPXHJcbiAgICB0aGlzLmNoYXQ/LnNlbmRNZXNzYWdlKHRoaXMuY2hhdD8udXNlcklucHV0LHRoaXMuY2hhdD8udXNlckltYWdlLChtc2cpPT57fSx7XHJcbiAgICAgIG9uTWVzc2FnZVN0YXJ0OihtZXNzYWdlOmFueSk9PntcclxuICAgICAgICAgLy8gV2hlbiByZXBseSBjb21lcywgY2xlYXIgdGltZW91dCBhbmQgcmVzZXQgc3RhdGVcclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0TWVzc2FnZVRpbWVvdXQpO1xyXG4gICAgICAgIHRoaXMuaXNTZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sYXN0TWVzc2FnZVRpbWVzdGFtcCA9IDA7XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uU1NNTENvbXBsZXRlOih2b2ljZTphbnkpPT57XHJcbiAgICAgICAgY29uc29sZS5sb2codm9pY2UpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGF0LnVzZXJJbnB1dCA9IGBgXHJcbiAgICB0aGlzLmNoYXQudXNlckltYWdlID0gYGBcclxuICB9XHJcbiAgYXN5bmMgY2hlY2tCYWxhbmNlKCl7XHJcbiAgICBsZXQgcHJpY2UgPSAxMDtcclxuICAgIFxyXG4gICAgLy8g5qCh6aqM6LSm5oi35L2Z6aKdXHJcbiAgICBsZXQgYmlsbGluZyA9IGF3YWl0IHRoaXMuYWNjb3VudC5nZXRCaWxsaW5nKCk7XHJcbiAgICBpZiAoYmlsbGluZz8uY3JlZGl0Py5iYWxhbmNlID49IHByaWNlKSB7XHJcbiAgICAgIHRoaXMuY2hhdC5pc0RpcmVjdCA9IHRydWU7IC8vIOS9memineWFhei2s++8jOS4jemZkOmAn1xyXG4gICAgfVxyXG5cclxuICAgICAvLyDmqKHlnovmmK/lkKblvIDlkK/ku5jotLnpmZDliLZcclxuICAgICBpZighdGhpcy5jaGF0Py5jdXJyZW50TW9kZWw/LmdldD8uKFwicGF5TGltaXRcIikpIHtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuXHJcbiAgICAvLyBsZXQgcHJpY2UgPSBhd2FpdCB0aGlzLmNhbGNQcmljZSgpXHJcbiAgICBpZiAoYmlsbGluZz8uY3JlZGl0Py5iYWxhbmNlIDwgcHJpY2UpIHtcclxuICAgICAgbGV0IGFsZXJ0ID0gYXdhaXQgdGhpcy5hbGVydEN0cmwuY3JlYXRlKHtcclxuICAgICAgICBoZWFkZXI6XCLms6jmhI9cIixcclxuICAgICAgICBzdWJIZWFkZXI6XCLmgqjnmoTkvZnpop3kuI3otrPvvIzor7flhYXlgLzlkI7op6PplIHpq5jnuqfmqKHlnotcIixcclxuICAgICAgICBidXR0b25zOltcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcm9sZTpcImNhbmNlbFwiLFxyXG4gICAgICAgICAgICB0ZXh0Olwi5Y+W5raIXCJcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6XCJkZXN0cnVjdGl2ZVwiLFxyXG4gICAgICAgICAgICB0ZXh0Olwi5YWF5YC8XCIsXHJcbiAgICAgICAgICAgIGhhbmRsZXI6KCk9PntcclxuICAgICAgICAgICAgICAvLyDlvoXmm7TmjaLmiJDljp/lnLDlvLnnqpfvvIzljp/lnLDku5jotLnvvIzpgb/lhY3pobXpnaLot7PovaxcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFwiL2FjY291bnQvYmlsbGluZ1wiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9KVxyXG4gICAgICBhbGVydC5wcmVzZW50KClcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgLy/mn6Xor6Lpl67nrZTlhoXlrrnliIbkuqvmlbDmja7ooajvvJpDaGF0U2hhcmVcclxuICBhc3luYyBnZXRDaGF0U2hhcmUoKXtcclxuICAgIHRoaXMudXNlciA9IFBhcnNlLlVzZXIuY3VycmVudCgpO1xyXG4gICAgbGV0IHF1ZXJ5ID0gbmV3IFBhcnNlLlF1ZXJ5KCdDaGF0U2hhcmUnKTtcclxuICAgIHF1ZXJ5LmVxdWFsVG8oJ3VzZXInLCBQYXJzZS5Vc2VyLmN1cnJlbnQoKS5pZCk7XHJcbiAgICBxdWVyeS5lcXVhbFRvKCdzZXNzaW9uJywgdGhpcy5jaGF0Py5zZXNzaW9uSWQpXHJcbiAgICBsZXQgY2hhdFNoYXJlID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxyXG4gICAgLy8gY29uc29sZS5sb2coY2hhdFNoYXJlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHRvZ2dsZUNoYXRTaGFyZSgpIHtcclxuICAgIC8v6I635Y+WQ2hhdFNoYXJl5pWw5o2u6KGoXHJcbiAgICBsZXQgcXVlcnkgPSBuZXcgUGFyc2UuUXVlcnkoJ0NoYXRTaGFyZScpO1xyXG4gICAgcXVlcnkuZXF1YWxUbygndXNlcicsIFBhcnNlLlVzZXIuY3VycmVudCgpLmlkKTtcclxuICAgIHF1ZXJ5LmVxdWFsVG8oJ3JvbGUnLCB0aGlzLmNoYXQ/LnJvbGUuaWQpO1xyXG4gICAgcXVlcnkuZXF1YWxUbygnc2Vzc2lvbicsIHRoaXMuY2hhdD8uc2Vzc2lvbklkKTtcclxuICAgIC8vIHF1ZXJ5LmVxdWFsVG8oJ21lc3NhZ2VMaXN0JywgdGhpcy5jaGF0Py5tZXNzYWdlTGlzdCk7XHJcbiAgICBxdWVyeS5zZWxlY3QoJ29iamVjdElkJylcclxuICAgIGxldCBzaGFyZSA9IGF3YWl0IHF1ZXJ5LmZpcnN0KCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhzaGFyZSk7XHJcblxyXG4gICAgLy/lpoLmnpxpZOS4jeWtmOWcqO+8jOWcqOaVsOaNruihqOWGheWIm+W7uuaWsOeahOiusOW9lVxyXG4gICAgaWYoIXNoYXJlPy5pZCl7XHJcbiAgICAgIGxldCBvYmogPSBQYXJzZS5PYmplY3QuZXh0ZW5kKCdDaGF0U2hhcmUnKVxyXG4gICAgICBzaGFyZSA9IG5ldyBvYmooKVxyXG4gICAgICBzaGFyZS5zZXQoJ3VzZXInLCB7XHJcbiAgICAgICAgXCJfX3R5cGVcIjogXCJQb2ludGVyXCIsXHJcbiAgICAgICAgXCJjbGFzc05hbWVcIjogXCJfVXNlclwiLFxyXG4gICAgICAgIFwib2JqZWN0SWRcIjogIFBhcnNlLlVzZXIuY3VycmVudCgpPy5pZFxyXG4gICAgICB9KVxyXG4gICAgICBzaGFyZS5zZXQoJ3Nlc3Npb24nLCB7XHJcbiAgICAgICAgXCJfX3R5cGVcIjogXCJQb2ludGVyXCIsXHJcbiAgICAgICAgXCJjbGFzc05hbWVcIjogXCJDaGF0U2Vzc2lvblwiLFxyXG4gICAgICAgIFwib2JqZWN0SWRcIjogdGhpcy5jaGF0Py5zZXNzaW9uSWRcclxuICAgICAgfSlcclxuICAgICAgc2hhcmUuc2V0KCdyb2xlJywge1xyXG4gICAgICAgIFwiX190eXBlXCI6IFwiUG9pbnRlclwiLFxyXG4gICAgICAgIFwiY2xhc3NOYW1lXCI6IFwiQXZhdGFyUm9sZVwiLFxyXG4gICAgICAgIFwib2JqZWN0SWRcIjogdGhpcy5jaGF0Py5yb2xlLmlkXHJcbiAgICAgIH0pXHJcbiAgICAgIHNoYXJlLnNldCgnY29tcGFueScsIHtcclxuICAgICAgICBcIl9fdHlwZVwiOiBcIlBvaW50ZXJcIixcclxuICAgICAgICBcImNsYXNzTmFtZVwiOiBcIkNvbXBhbnlcIixcclxuICAgICAgICBcIm9iamVjdElkXCI6IFwiRTRLcEd2VEV0b1wiXHJcbiAgICAgIH0pXHJcbiAgICAgIHNoYXJlLnNldCgnbWVzc2FnZUxpc3QnLCB0aGlzLmNoYXQ/Lm1lc3NhZ2VMaXN0KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9pZOWtmOWcqO+8jOeCueWHu+WIhuS6q+aMiemSruaJp+ihjOabtOaWsG1lc3NhZ2VMaXN05pWw5o2u55qE5pON5L2cXHJcbiAgICAgIHNoYXJlLnNldCgnbWVzc2FnZUxpc3QnLCB0aGlzLmNoYXQ/Lm1lc3NhZ2VMaXN0KVxyXG4gICAgfVxyXG4gICAgYXdhaXQgc2hhcmUuc2F2ZSgpO1xyXG4gICAgdGhpcy5nZXRDaGF0U2hhcmUoKTtcclxufVxyXG5cclxuYXN5bmMgY2hhdFNoYXJlU3VjY2Vzc01lc3NhZ2UoKSB7XHJcbiAgICBsZXQgdG9hc3QgPSBhd2FpdCB0aGlzLnRvYXN0Q3RybC5jcmVhdGUoe1xyXG4gICAgICBkdXJhdGlvbjoxMDAwLFxyXG4gICAgICBtZXNzYWdlOlwi5YiG5Lqr5oiQ5YqfXCIsXHJcbiAgICAgIGNvbG9yOidwcmltYXJ5JyxcclxuICAgICAgaWNvbjpcImluZm9ybWF0aW9uLWNpcmNsZVwiLFxyXG4gICAgICBwb3NpdGlvbjpcInRvcFwiXHJcbiAgICB9KVxyXG4gICAgdG9hc3QucHJlc2VudCgpO1xyXG4gICAgcmV0dXJuXHJcbn1cclxuXHJcbiAgLy/liIbkuqvlvLnmoYbnu4Tku7ZcclxuICBpc1NoYXJlID0gZmFsc2U7XHJcblxyXG4gIHNob3dTaGFyZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTaGFyZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPa1NoYXJlKCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jaGF0KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY2hhdD8uc2Vzc2lvbklkKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY2hhdD8ubWVzc2FnZUxpc3QpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jaGF0Py5yb2xlLmlkKTtcclxuICAgIHRoaXMudG9nZ2xlQ2hhdFNoYXJlKCk7XHJcbiAgICB0aGlzLmNoYXRTaGFyZVN1Y2Nlc3NNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmlzU2hhcmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNhbmNlbFNoYXJlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1NoYXJlID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24tdG9vbGJhcj5cclxuICAgIDxpb24taXRlbSBjbGFzcz1cImJ1dHRvbi1pdGVtXCIgbGluZXM9XCJub25lXCI+XHJcbiAgICAgICAgPCEtLSDorr7nva4gLS0+XHJcbiAgICAgICAgPCEtLSA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNldHRpbmdzLW91dGxpbmVcIj48L2lvbi1pY29uPiBcclxuICAgICAgICA8L2lvbi1idXR0b24+IC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjaGF0Py5sZWZ0QnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc3R5bGU9XCItLXBhZGRpbmctc3RhcnQ6MTBweDstLXBhZGRpbmctZW5kOjEwcHg7XCJcclxuICAgICAgICAgICBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJidXR0b24/LnNob3cmJmJ1dHRvbj8uc2hvdygpXCIgZmlsbD1cIm91dGxpbmVcIiBbdGl0bGVdPVwiYnV0dG9uPy50aXRsZVwiIHNsb3Q9XCJzdGFydFwiIChjbGljayk9XCJidXR0b24ub25DbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJidXR0b24/Lmljb25cIiBbc2xvdF09XCJidXR0b24/LnNob3dUaXRsZT8nc3RhcnQnOidpY29uLW9ubHknXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAge3tidXR0b24/LnNob3dUaXRsZSYmYnV0dG9uPy50aXRsZX19XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjaGF0Py5yb2xlPy5nZXQoJ2J1dHRvbnMnKVwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImNoYXRTZXJ2LmRvQnV0dG9uQWN0aW9uKGJ1dHRvbilcIiBmaWxsPVwib3V0bGluZVwiICBzbG90PVwic3RhcnRcIj5cclxuICAgICAgICAgICAgICAgIHt7YnV0dG9uPy5uYW1lfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0t5YiG5Lqr5oyJ6ZKuLS0+XHJcbiAgICAgICAgQGlmKCFjaGF0Py5oaWRlU2hhcmUpe1xyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwiY2hhdD8ubWVzc2FnZUxpc3Q/Lmxlbmd0aD4xXCIgKGNsaWNrKT1cInNob3dTaGFyZSgpXCIgZmlsbD1cIm91dGxpbmVcIiB0aXRsZT1cIuWIhuS6q1wiIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1zb2NpYWwtb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzU2hhcmVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxpb24taGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPGlvbi10b29sYmFyPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImhhbmRsZUNhbmNlbFNoYXJlKClcIj7lj5bmtog8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tdGl0bGU+5a+56K+d5YiG5LqrPC9pb24tdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImhhbmRsZU9rU2hhcmUoKVwiPuWIhuS6qzwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgPC9pb24taGVhZGVyPlxyXG4gICAgICAgICAgICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIGNoYXQ/Lm1lc3NhZ2VMaXN0O2xldCBpbmRleD1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIOWGheWuueagvOW8j+WMluWMuuWfnyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8Zm0tY2hhdC1tZXNzYWdlLWNhcmQgW2NoYXRdPVwiY2hhdFwiICpuZ0lmPVwiIW1lc3NhZ2U/LmhpZGRlblwiIFtpbmRleF09XCJpbmRleFwiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIiBbcm9sZV09XCJjaGF0Py5yb2xlXCI+PC9mbS1jaGF0LW1lc3NhZ2UtY2FyZD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmYWxzZVwiIGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIGNoYXQ/Lm1lc3NhZ2VMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSDlpLTlg48gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tcm93IHVzZXJcIiAqbmdJZj1cIm1lc3NhZ2U/LnJvbGUhPSdzeXN0ZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiYXZhdGFyXCIgKm5nSWY9XCJtZXNzYWdlPy5yb2xlIT0ndXNlcidcIiBbc3JjXT1cIihjaGF0Py5yb2xlPy5nZXQoJ2F2YXRhcicpIHx8IGNoYXQ/LnJvbGU/LmdldCgndGh1bWInKSB8fCAnaHR0cHM6Ly9maWxlLWNsb3VkLmZtb2RlLmNuL0U0S3BHdlRFdG8vMjAyMzA5MzAvbDQxM2U2MDkwNzMxODU0LnBuZycpKyc/JysneC1pbWFnZS1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxtX2ZpeGVkLHdfMTAwJysnJmltYWdlVmlldzIvMS93LzMyL2gvMzInXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1xdWVzdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNvbXAtdXNlci1hdmF0YXIgW3VzZXJdPVwidXNlclwiICpuZ0lmPVwibWVzc2FnZT8ucm9sZT09J3VzZXInXCI+PC9hcHAtY29tcC11c2VyLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0g5YaF5a65IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRlbnQtdXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1tZXNzYWdlXCIgKm5nSWY9XCJtZXNzYWdlPy5yb2xlID09PSAndXNlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxmbS1tYXJrZG93bi1wcmV2aWV3ICpuZ0lmPVwiIW1lc3NhZ2U/LmNvbXBsZXRlXCIgY2xhc3M9XCJjb250ZW50LXN0eWxlXCIgW2NvbnRlbnRdPVwibWVzc2FnZT8uY29udGVudFwiIFtyZW5kZXJdPVwiZmFsc2VcIj48L2ZtLW1hcmtkb3duLXByZXZpZXc+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZtLW1hcmtkb3duLXByZXZpZXcgKm5nSWY9XCJtZXNzYWdlPy5jb21wbGV0ZVwiIGNsYXNzPVwiY29udGVudC1zdHlsZVwiIFtjb250ZW50XT1cIm1lc3NhZ2U/LmNvbnRlbnRcIj48L2ZtLW1hcmtkb3duLXByZXZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1jb250ZW50LXJvbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtbWVzc2FnZVwiICpuZ0lmPVwibWVzc2FnZT8ucm9sZSAhPT0gJ3VzZXInICYmIG1lc3NhZ2U/LnJvbGUgIT09ICdzeXN0ZW0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8Zm0tbWFya2Rvd24tcHJldmlldyAqbmdJZj1cIiFtZXNzYWdlPy5jb21wbGV0ZVwiIGNsYXNzPVwiY29udGVudC1zdHlsZVwiIFtjb250ZW50XT1cIm1lc3NhZ2U/LmNvbnRlbnRcIiBbcmVuZGVyXT1cImZhbHNlXCI+PC9mbS1tYXJrZG93bi1wcmV2aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmbS1tYXJrZG93bi1wcmV2aWV3ICpuZ0lmPVwibWVzc2FnZT8uY29tcGxldGVcIiBjbGFzcz1cImNvbnRlbnQtc3R5bGVcIiBbY29udGVudF09XCJtZXNzYWdlPy5jb250ZW50XCI+PC9mbS1tYXJrZG93bi1wcmV2aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudC1zeXN0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5c3RlbS1tZXNzYWdlXCIgKm5nSWY9XCJtZXNzYWdlPy5yb2xlID09PSAnc3lzdGVtJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGZtLW1hcmtkb3duLXByZXZpZXcgKm5nSWY9XCIhbWVzc2FnZT8uY29tcGxldGVcIiBjbGFzcz1cImNvbnRlbnQtc3R5bGVcIiBbY29udGVudF09XCJtZXNzYWdlPy5jb250ZW50XCIgW3JlbmRlcl09XCJmYWxzZVwiPjwvZm0tbWFya2Rvd24tcHJldmlldz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm0tbWFya2Rvd24tcHJldmlldyAqbmdJZj1cIm1lc3NhZ2U/LmNvbXBsZXRlXCIgY2xhc3M9XCJjb250ZW50LXN0eWxlXCIgW2NvbnRlbnRdPVwibWVzc2FnZT8uY29udGVudFwiPjwvZm0tbWFya2Rvd24tcHJldmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhdC10aW1lXCIgKm5nSWY9XCJtZXNzYWdlPy5jcmVhdGVkQXRcIiBbbmdDbGFzc109XCJ7J3JvbGUtdGltZSc6IG1lc3NhZ2U/LnJvbGUgIT09ICd1c2VyJ31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7bWVzc2FnZT8uY3JlYXRlZEF0IHwgZGF0ZTpcImRkL01NL3l5eXksIEhIL21tL3NzIGFcIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L2lvbi1tb2RhbD5cclxuXHJcbiAgICAgICAgPCEtLSDlm77niYcgLS0+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwiY2hhdD8uY3VycmVudE1vZGVsPy5nZXQ/LignY29uZmlnJyk/LmltYWdlRW5hYmxlZFwiIGZpbGw9XCJvdXRsaW5lXCIgIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwic2V0TWVzc2FnZUltYWdlKClcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiaW1hZ2Utb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwhLS0g5qih5Z6LIC0tPlxyXG4gICAgICAgIEBpZighY2hhdD8uaGlkZU1vZGFsU2VsZWN0KXtcclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIHNsb3Q9XCJlbmRcIiAgaWQ9XCJtb2RlbC1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZG93bi1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICB7e2NoYXQ/LmN1cnJlbnRNb2RlbD8uZ2V0JiZjaGF0Py5jdXJyZW50TW9kZWw/LmdldD8uKFwibmFtZVwiKXx8XCJGbW9kZS1DMS4wLTEyOGtcIn19XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLXBvcG92ZXIgdHJpZ2dlcj1cIm1vZGVsLWJ1dHRvblwiIFtkaXNtaXNzT25TZWxlY3RdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxpb24tY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW9kZWwgb2YgY2hhdC5tb2RlbExpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWl0ZW0gKGNsaWNrKT1cImNoYXQuY3VycmVudE1vZGVsID0gbW9kZWxcIiBbYnV0dG9uXT1cInRydWVcIiBbZGV0YWlsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e21vZGVsPy5nZXQoXCJuYW1lXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tbm90ZSBzbG90PVwiZW5kXCI+e3ttb2RlbD8uZ2V0KFwiY3JlZGl0XCIpfX0vazwvaW9uLW5vdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29udGVudD5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxyXG4gICAgICAgICAgfVxyXG5cclxuICAgIDwvaW9uLWl0ZW0+XHJcblxyXG4gICAgPGlvbi1pdGVtIGNsYXNzPVwiaW5wdXQtaXRlbVwiIGxpbmVzPVwibm9uZVwiPlxyXG4gICAgICAgIDwhLS0g6K+t6Z+z5raI5oGv6L6T5YWlIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGF0Py5pc1ZvaWNlSW5wdXRNb2RlXCI+XHJcbiAgICAgICAgICA8IS0tIOWIh+aNouaWh+acrOi+k+WFpSAtLT5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiYnRuLWlucHV0LWNoYW5nZVwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjaGF0LmlzVm9pY2VJbnB1dE1vZGU9ZmFsc2VcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cImxhcmdlXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJveC1lbGxpcHNlcy1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tdm9pY2Utc3RhcnRcIiAoY2xpY2spPVwic3RhcnRUYWxrKClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNTZW5kaW5nXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgIOeCueWHu+iusuivnVxyXG4gICAgICAgICAgICA8L3NwYW4+IFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0g5paH5pys5raI5oGv6L6T5YWlIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2hhdD8uaXNWb2ljZUlucHV0TW9kZVwiPlxyXG4gICAgICAgICAgPCEtLSDliIfmjaLor63pn7PovpPlhaUgLS0+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbc3R5bGUuZGlzcGxheV09XCJjaGF0LmlzVGV4dGluZz8nbm9uZSc6J2ZsZXgnXCIgY2xhc3M9XCJidG4taW5wdXQtY2hhbmdlXCIgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJjaGF0Py5yb2xlPy5nZXQoJ3ZvaWNlQ29uZmlnJylcIiAoY2xpY2spPVwiY2hhdC5pc1ZvaWNlSW5wdXRNb2RlPXRydWVcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cImxhcmdlXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWljLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIOaWh+acrOi+k+WFpeWMuuWfnyAtLT5cclxuICAgICAgICAgIDxpb24tdGV4dGFyZWFcclxuICAgICAgICAgICN1c2VySW5wdXRcclxuICAgICAgICAgICpuZ0lmPVwiY2hhdFwiIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICAgIFtlcnJvclRleHRdPVwiZXJyb3JUZXh0XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2hhdC51c2VySW5wdXRcIlxyXG4gICAgICAgICAgKGlvbkZvY3VzKT1cIm9uSW5wdXRGb2N1cygpXCJcclxuICAgICAgICAgIChpb25CbHVyKT1cImNoYXQuaXNUZXh0aW5nPWZhbHNlXCJcclxuICAgICAgICAgIFthdXRvR3Jvd109XCJ0cnVlXCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgIGxhYmVsPVwiQ3RybCArIEVudGVyIOWPkemAgea2iOaBr1wiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oKo55qE5o+Q56S66K+NXCJcclxuICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwiZmxvYXRpbmdcIj48L2lvbi10ZXh0YXJlYT5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPCEtLSDmlofmnKzlj5HpgIHmjInpkq4gLS0+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTZW5kaW5nXCJcclxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiBzaXplPVwibGFyZ2VcIiAoY2xpY2spPVwic2VuZE1lc3NhZ2UoKVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBhcGVyLXBsYW5lLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvaW9uLWl0ZW0+XHJcbjwvaW9uLXRvb2xiYXI+XHJcblxyXG5cclxuPCEtLSDor63pn7Pmtojmga/ovpPlhaXvvJrlvLnlh7rljLrln58gLS0+XHJcbjwhLS0gPGlvbi1tb2RhbCAjYXVkaW9Nb2RhbCBbaXNPcGVuXT1cImlzQXVkaW9Nb2RhbFwiICh3aWxsRGlzbWlzcyk9XCJjbG9zZUF1ZGlvKClcIiBbaW5pdGlhbEJyZWFrcG9pbnRdPVwiYXVkaW9Nb2RhbEhlaWdodFBvaW50XCIgW2JyZWFrcG9pbnRzXT1cIlswLCBhdWRpb01vZGFsSGVpZ2h0UG9pbnRdXCI+XHJcbiAgPG5nLXRlbXBsYXRlPlxyXG4gICAgPGZtLW1vZGFsLWF1ZGlvLW1lc3NhZ2UgI2F1ZGlvQ29tcCAqbmdJZj1cImlzQXVkaW9Nb2RhbFwiIFtjaGF0XT1cImNoYXRcIiBbbW9kYWxdPVwiYXVkaW9Nb2RhbFwiPjwvZm0tbW9kYWwtYXVkaW8tbWVzc2FnZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2lvbi1tb2RhbD4gLS0+Il19
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1tb2RhbC1pbnB1dC9tb2RhbC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2MvY2hhdC9jaGF0LW1vZGFsLWlucHV0L21vZGFsLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBMkIsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCwwQ0FBMEM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxXQUFXLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFB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ZnRlclZpZXdJbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgTmF2Q29udHJvbGxlciwgUGxhdGZvcm0sIFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgRm1vZGVDaGF0IH0gZnJvbSAnLi4vLi4vc2VydmljZS1mbWFpL3NlcnZpY2UtY2hhdCc7XHJcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS1mbWFpL3NlcnZpY2UtY2hhdCc7XHJcblxyXG4vLyBpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ2Ztb2RlLW5nJztcclxuaW1wb3J0IHtGbW9kZVBhcnNlLEZtb2RlT2JqZWN0LEZtb2RlUXVlcnksRm1vZGVVc2VyfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9wYXJzZVwiO2NvbnN0IFBhcnNlID0gRm1vZGVQYXJzZS53aXRoKFwibm92YVwiKTtcclxuaW1wb3J0IHsgSW1hZ2luZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLWZtYWkvc2VydmljZS1pbWFnaW5lL2ltYWdpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQ29udGVudCwgSW9uSWNvbiwgSW9uSW5wdXQsIElvbkl0ZW0sIElvbkxpc3QsIElvbk1vZGFsLCBJb25Qb3BvdmVyLCBJb25UZXh0YXJlYSwgSW9uVG9vbGJhciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTW9kYWxBdWRpb01lc3NhZ2VDb21wb25lbnQgfSBmcm9tIFwiLi9tb2RhbC1hdWRpby1tZXNzYWdlL21vZGFsLWF1ZGlvLW1lc3NhZ2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZtQ2hhdE1lc3NhZ2VDYXJkIH0gZnJvbSAnLi4vY2hhdC1tZXNzYWdlLWNhcmQvY29tcC1tZXNzYWdlLWNhcmQuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xyXG5pbXBvcnQge2ltYWdlT3V0bGluZSxjaGV2cm9uQmFja091dGxpbmUsZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSxjaGV2cm9uRG93bk91dGxpbmUsY2hhdGJveEVsbGlwc2VzT3V0bGluZSxtaWNPdXRsaW5lLHBhcGVyUGxhbmVPdXRsaW5lLHNoYXJlU29jaWFsT3V0bGluZSxzZXR0aW5nc091dGxpbmUsIGFsZXJ0T3V0bGluZSwgY29sb3JXYW5kT3V0bGluZSwgcGVvcGxlT3V0bGluZX0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VzZXIvYWNjb3VudC9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGbW9kZUNoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9hZ2VudC9jaGF0L2ludGVyZmFjZSc7XHJcbmFkZEljb25zKHtjb2xvcldhbmRPdXRsaW5lLHBlb3BsZU91dGxpbmUsYWxlcnRPdXRsaW5lLGltYWdlT3V0bGluZSxjaGV2cm9uQmFja091dGxpbmUsZWxsaXBzaXNIb3Jpem9udGFsT3V0bGluZSxjaGV2cm9uRG93bk91dGxpbmUsY2hhdGJveEVsbGlwc2VzT3V0bGluZSxtaWNPdXRsaW5lLHBhcGVyUGxhbmVPdXRsaW5lLHNoYXJlU29jaWFsT3V0bGluZSxzZXR0aW5nc091dGxpbmV9KVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmbS1jaGF0LW1vZGFsLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTp0cnVlLFxyXG4gIGltcG9ydHM6W1xyXG4gICAgQ29tbW9uTW9kdWxlLEZvcm1zTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBJb25Ub29sYmFyLElvbkl0ZW0sSW9uQnV0dG9uLElvbkxpc3QsSW9uTW9kYWwsXHJcbiAgICBJb25JbnB1dCxJb25JY29uLElvblRleHRhcmVhLElvblBvcG92ZXIsSW9uQ29udGVudCxcclxuICAgIC8vIFxyXG4gICAgRm1DaGF0TWVzc2FnZUNhcmQsXHJcbiAgICBNb2RhbEF1ZGlvTWVzc2FnZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZtQ2hhdE1vZGFsSW5wdXQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQFZpZXdDaGlsZChNb2RhbEF1ZGlvTWVzc2FnZUNvbXBvbmVudCkgYXVkaW9Db21wOk1vZGFsQXVkaW9NZXNzYWdlQ29tcG9uZW50XHJcbiAgQFZpZXdDaGlsZChcInVzZXJJbnB1dFwiKSB1c2VySW5wdXRDb21wOklvblRleHRhcmVhXHJcblxyXG5cclxuICBASW5wdXQoKSBjaGF0OkZtb2RlQ2hhdDtcclxuICBASW5wdXQoKSBtZXNzYWdlOkZtb2RlQ2hhdE1lc3NhZ2VcclxuICBASW5wdXQoKSByb2xlOkZtb2RlT2JqZWN0XHJcbiAgdXNlcjpGbW9kZVVzZXJcclxuICBlcnJvclRleHQ6c3RyaW5nID0gYGBcclxuXHJcbiAgLy8g6K+t6Z+z6L6T5YWl5o6n5Yi2XHJcbiAgaXNBdWRpb01vZGFsOmJvb2xlYW4gPSBmYWxzZTtcclxuICBjbG9zZUF1ZGlvKCl7XHJcbiAgICB0aGlzLmF1ZGlvQ29tcD8uY2FuY2VsKCk7XHJcbiAgICB0aGlzLmlzQXVkaW9Nb2RhbD1mYWxzZTtcclxuICB9XHJcbiAgYXVkaW9Nb2RhbEhlaWdodFBvaW50ID0gMC4zNTtcclxuICBhc3luYyBzdGFydFRhbGsoKXtcclxuICAgIC8vIENoZWNrIGlmIGFscmVhZHkgc2VuZGluZ1xyXG4gICAgaWYgKHRoaXMuaXNTZW5kaW5nKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgfHwgOTYwO1xyXG4gICAgdGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnQgPSBOdW1iZXIoKDE2NS9oZWlnaHQpLnRvRml4ZWQoMikpXHJcblxyXG4gICAgdGhpcy5jaGF0LnN0b3BQbGF5aW5nVm9pY2UoKTtcclxuXHJcbiAgICAgIC8vIOW8ueWHuuiupOivgee7hOS7tlxyXG4gICAgbGV0IG1vZGFsOmFueSBcclxuICAgIG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtcclxuICAgICAgY29tcG9uZW50Ok1vZGFsQXVkaW9NZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgICBjb21wb25lbnRQcm9wczp7XHJcbiAgICAgICAgY2hhdDp0aGlzLmNoYXQsXHJcbiAgICAgICAgbW9kYWw6bW9kYWwsXHJcbiAgICAgICAgb25CcmVha1BvaW50U2V0OigpPT57XHJcbiAgICAgICAgICBtb2RhbD8uc2V0Q3VycmVudEJyZWFrcG9pbnQodGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnQpXHJcbiAgICAgIH19LFxyXG4gICAgICBicmVha3BvaW50czpbdGhpcy5hdWRpb01vZGFsSGVpZ2h0UG9pbnRdLFxyXG4gICAgICBpbml0aWFsQnJlYWtwb2ludDp0aGlzLmF1ZGlvTW9kYWxIZWlnaHRQb2ludCxcclxuICAgIH0pXHJcbiAgICBtb2RhbC5wcmVzZW50KClcclxuICAgIC8vIHRoaXMuaXNBdWRpb01vZGFsPXRydWU7XHJcbiAgfVxyXG4gIC8vIGFjY291bnQ6YW55O1xyXG4gIGF1dGhTZXJ2OmFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG9hc3RDdHJsOlRvYXN0Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgYWxlcnRDdHJsOkFsZXJ0Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgbW9kYWxDdHJsOk1vZGFsQ29udHJvbGxlcixcclxuICAgIHByaXZhdGUgcm91dGVyOlJvdXRlcixcclxuICAgIHByaXZhdGUgaW1hZ2luZVNlcnY6SW1hZ2luZVNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGF1dGhTZXJ2OkF1dGhTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNoYXRTZXJ2OkNoYXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY2NvdW50OkFjY291bnRTZXJ2aWNlLFxyXG4gICl7XHJcbiAgICAvLyB0aGlzLmNoYXRTZXJ2LmdldENoYXRTZXNzaW9uKCkudGhlbigoKT0+e1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmNoYXRTZXJ2LmNoYXRMaXN0KTtcclxuICAgIC8vIH0pXHJcbiAgICB0aGlzLnVzZXIgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKTtcclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmxvYWRNb2RlbCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jaGF0KTtcclxuICAgIGxldCB0aGF0ID0gdGhpcztcclxuICAgIHRoaXMuY2hhdC5mb2N1c1VzZXJJbnB1dCA9ICgpPT57XHJcbiAgICAgIHRoYXQuY2hhdC5pc1ZvaWNlSW5wdXRNb2RlID0gZmFsc2U7XHJcbiAgICAgIHRoYXQudXNlcklucHV0Q29tcD8uc2V0Rm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMuY2hhdClcclxuICAvLyB9XHJcblxyXG4gIGFzeW5jIGxvYWRNb2RlbCgpe1xyXG4gICAgbGV0IG1vZGVsID0gdGhpcy5jaGF0Py5yb2xlPy5nZXQoXCJtb2RlbFwiKVxyXG4gICAgYXdhaXQgdGhpcy5jaGF0LmxvYWRNb2RlbExpc3QobW9kZWwpXHJcbiAgfVxyXG4gIFxyXG4gIGFzeW5jIHNldE1lc3NhZ2VJbWFnZSgpe1xyXG4gICAgLy8gbGV0IHVybCA9IGBodHRwczovL2ZpbGUtY2xvdWQuZm1vZGUuY24vU3ZlaGw2RmNlTC8yMDI0MDUxNS8wNjE1MDM2NzEuanBlZ2A7XHJcbiAgICBsZXQgdXJsID0gYXdhaXQgdGhpcy5pbWFnaW5lU2Vydi5nZXRpbWcoKTtcclxuICAgIHRoaXMuY2hhdC51c2VySW1hZ2UgPSB1cmw7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNoYXQ/LnVzZXJJbWFnZSk7XHJcbiAgICAvLyBjb250ZW505piv5pWw57uE77yM5re75YqgXHJcbiAgICAvLyBjb250ZW506Z2e5pWw57uE77yM6YeN57uEXHJcbiAgfVxyXG4gXHJcbiAgb25JbnB1dEZvY3VzKCl7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIm9uSW5wdXRGb2N1c1wiLHRoaXMuY2hhdC5zY3JvbGxUb0JvdHRvbSlcclxuICAgIHRoaXMuY2hhdC5pc1RleHRpbmc9dHJ1ZTtcclxuICAgIHRoaXMuY2hhdC5zY3JvbGxUb0JvdHRvbSYmdGhpcy5jaGF0LnNjcm9sbFRvQm90dG9tKCk7XHJcbiAgfVxyXG4gIFxyXG4gIG9uS2V5RG93bihldmVudDpLZXlib2FyZEV2ZW50KXtcclxuICAgIC8vIOajgOafpeaYr+WQpuaMieS4i+S6hkN0cmzplK7lkoxFbnRlcumUrlxyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIC8vIOaJp+ihjOebuOW6lOeahOmAu+i+kVxyXG4gICAgICBjb25zb2xlLmxvZygnQ3RybCtFbnRlciDooqvmjInkuIsnKTtcclxuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8g5Y+R6YCB5raI5oGvIOmYsuaKluacuuWItlxyXG4gIGlzU2VuZGluZyA9IGZhbHNlO1xyXG4gIGxhc3RNZXNzYWdlVGltZW91dDogYW55O1xyXG4gIGxhc3RNZXNzYWdlVGltZXN0YW1wOiBudW1iZXIgPSAwO1xyXG4gIHJlcGx5VGltZW91dCA9IDE1MDAwOyAvLyAxNSBzZWNvbmRzIHRpbWVvdXRcclxuICBhc3luYyBzZW5kTWVzc2FnZSgpe1xyXG4gICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBzZW5kaW5nXHJcbiAgICBpZiAodGhpcy5pc1NlbmRpbmcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgIC8vIENoZWNrIGlmIHdhaXRpbmcgZm9yIHByZXZpb3VzIHJlcGx5XHJcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xyXG4gICAgaWYgKHRoaXMubGFzdE1lc3NhZ2VUaW1lc3RhbXAgPiAwICYmIChub3cgLSB0aGlzLmxhc3RNZXNzYWdlVGltZXN0YW1wKSA8IHRoaXMucmVwbHlUaW1lb3V0KSB7XHJcbiAgICAgIHRoaXMuZXJyb3JUZXh0ID0gYOivt+etieW+heS4iuS4gOadoea2iOaBr+eahOWbnuWkjeaIlueojeWQjuWGjeivlWA7XHJcbiAgICAgIGxldCB0b2FzdCA9IGF3YWl0IHRoaXMudG9hc3RDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5lcnJvclRleHQsXHJcbiAgICAgICAgcG9zaXRpb246IFwidG9wXCIsXHJcbiAgICAgICAgaWNvbjogJ2FsZXJ0JyxcclxuICAgICAgICBjb2xvcjogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgZHVyYXRpb246IDEwMDBcclxuICAgICAgfSk7XHJcbiAgICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNTZW5kaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubGFzdE1lc3NhZ2VUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG5cclxuICAgIC8vIOajgOa1i+eUqOaIt+eZu+W9leaDheWGtVxyXG4gICAgLy8gbGV0IGlzTG9naW5Mb2NrID0gYXdhaXQgdGhpcy5hdXRoU2Vydi5jaGVja0xvZ2luTG9jaygpXHJcbiAgICAvLyBpZighaXNMb2dpbkxvY2spIHJldHVybiBmYWxzZVxyXG5cclxuICAgIC8vIOajgOa1i+S9memineWPiuaooeWei+S7mOi0uemZkOWItlxyXG4gICAgbGV0IHBheUNoZWNrID0gYXdhaXQgdGhpcy5jaGVja0JhbGFuY2UoKVxyXG4gICAgaWYoIXBheUNoZWNrKSB7XHJcbiAgICAgIHRoaXMuaXNTZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOajgOa1i+eUqOaIt+i+k+WFpeWGheWuueepuuWAvFxyXG4gICAgaWYoIXRoaXMuY2hhdC51c2VySW5wdXQpe1xyXG4gICAgICB0aGlzLmVycm9yVGV4dCA9IGDlhoXlrrnkuI3og73kuLrnqbpgXHJcbiAgICAgIGxldCB0b2FzdCA9IGF3YWl0IHRoaXMudG9hc3RDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgbWVzc2FnZTp0aGlzLmVycm9yVGV4dCxcclxuICAgICAgICBwb3NpdGlvbjpcInRvcFwiLFxyXG4gICAgICAgIGljb246J2FsZXJ0JyxcclxuICAgICAgICBjb2xvcjpcIndhcm5pbmctY2lyY2xlXCIsXHJcbiAgICAgICAgZHVyYXRpb246MTAwMFxyXG4gICAgICB9KVxyXG4gICAgICB0b2FzdC5wcmVzZW50KCk7XHJcbiAgICAgIHRoaXMuaXNTZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZW91dFxyXG4gICAgaWYgKHRoaXMubGFzdE1lc3NhZ2VUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RNZXNzYWdlVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICAvLyBTZXQgdGltZW91dCB0byByZXNldCBzZW5kaW5nIHN0YXRlIGlmIG5vIHJlcGx5XHJcbiAgICB0aGlzLmxhc3RNZXNzYWdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzU2VuZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxhc3RNZXNzYWdlVGltZXN0YW1wID0gMDtcclxuICAgIH0sIHRoaXMucmVwbHlUaW1lb3V0KTtcclxuXHJcbiAgICAvLyDmraPluLjlj5HpgIHmtojmga9cclxuICAgIC8vIHRoaXMuY2hhdC5pc1RhbGtNb2RlPXRydWU7IC8vIOW8gOWQr+ivtOivneaooeW8j1xyXG4gICAgdGhpcy5jaGF0Py5zZW5kTWVzc2FnZSh0aGlzLmNoYXQ/LnVzZXJJbnB1dCx0aGlzLmNoYXQ/LnVzZXJJbWFnZSwobXNnKT0+e30se1xyXG4gICAgICBvbk1lc3NhZ2VTdGFydDoobWVzc2FnZTphbnkpPT57XHJcbiAgICAgICAgIC8vIFdoZW4gcmVwbHkgY29tZXMsIGNsZWFyIHRpbWVvdXQgYW5kIHJlc2V0IHN0YXRlXHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdE1lc3NhZ2VUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLmlzU2VuZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGFzdE1lc3NhZ2VUaW1lc3RhbXAgPSAwO1xyXG4gICAgICB9LFxyXG4gICAgICBvblNTTUxDb21wbGV0ZToodm9pY2U6YW55KT0+e1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHZvaWNlKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hhdC51c2VySW5wdXQgPSBgYFxyXG4gICAgdGhpcy5jaGF0LnVzZXJJbWFnZSA9IGBgXHJcbiAgfVxyXG4gIGFzeW5jIGNoZWNrQmFsYW5jZSgpe1xyXG4gICAgbGV0IHByaWNlID0gMTA7XHJcbiAgICBcclxuICAgIC8vIOagoemqjOi0puaIt+S9meminVxyXG4gICAgbGV0IGJpbGxpbmcgPSBhd2FpdCB0aGlzLmFjY291bnQuZ2V0QmlsbGluZygpO1xyXG4gICAgaWYgKGJpbGxpbmc/LmNyZWRpdD8uYmFsYW5jZSA+PSBwcmljZSkge1xyXG4gICAgICB0aGlzLmNoYXQuaXNEaXJlY3QgPSB0cnVlOyAvLyDkvZnpop3lhYXotrPvvIzkuI3pmZDpgJ9cclxuICAgIH1cclxuXHJcbiAgICAgLy8g5qih5Z6L5piv5ZCm5byA5ZCv5LuY6LS56ZmQ5Yi2XHJcbiAgICAgaWYoIXRoaXMuY2hhdD8uY3VycmVudE1vZGVsPy5nZXQ/LihcInBheUxpbWl0XCIpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgLy8gbGV0IHByaWNlID0gYXdhaXQgdGhpcy5jYWxjUHJpY2UoKVxyXG4gICAgaWYgKGJpbGxpbmc/LmNyZWRpdD8uYmFsYW5jZSA8IHByaWNlKSB7XHJcbiAgICAgIGxldCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgICAgaGVhZGVyOlwi5rOo5oSPXCIsXHJcbiAgICAgICAgc3ViSGVhZGVyOlwi5oKo55qE5L2Z6aKd5LiN6Laz77yM6K+35YWF5YC85ZCO6Kej6ZSB6auY57qn5qih5Z6LXCIsXHJcbiAgICAgICAgYnV0dG9uczpbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvbGU6XCJjYW5jZWxcIixcclxuICAgICAgICAgICAgdGV4dDpcIuWPlua2iFwiXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICByb2xlOlwiZGVzdHJ1Y3RpdmVcIixcclxuICAgICAgICAgICAgdGV4dDpcIuWFheWAvFwiLFxyXG4gICAgICAgICAgICBoYW5kbGVyOigpPT57XHJcbiAgICAgICAgICAgICAgLy8g5b6F5pu05o2i5oiQ5Y6f5Zyw5by556qX77yM5Y6f5Zyw5LuY6LS577yM6YG/5YWN6aG16Z2i6Lez6L2sXHJcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChcIi9hY2NvdW50L2JpbGxpbmdcIilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSlcclxuICAgICAgYWxlcnQucHJlc2VudCgpXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcblxyXG4gIC8v5p+l6K+i6Zeu562U5YaF5a655YiG5Lqr5pWw5o2u6KGo77yaQ2hhdFNoYXJlXHJcbiAgYXN5bmMgZ2V0Q2hhdFNoYXJlKCl7XHJcbiAgICB0aGlzLnVzZXIgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKTtcclxuICAgIGxldCBxdWVyeSA9IG5ldyBQYXJzZS5RdWVyeSgnQ2hhdFNoYXJlJyk7XHJcbiAgICBxdWVyeS5lcXVhbFRvKCd1c2VyJywgUGFyc2UuVXNlci5jdXJyZW50KCkuaWQpO1xyXG4gICAgcXVlcnkuZXF1YWxUbygnc2Vzc2lvbicsIHRoaXMuY2hhdD8uc2Vzc2lvbklkKVxyXG4gICAgbGV0IGNoYXRTaGFyZSA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcclxuICAgIC8vIGNvbnNvbGUubG9nKGNoYXRTaGFyZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB0b2dnbGVDaGF0U2hhcmUoKSB7XHJcbiAgICAvL+iOt+WPlkNoYXRTaGFyZeaVsOaNruihqFxyXG4gICAgbGV0IHF1ZXJ5ID0gbmV3IFBhcnNlLlF1ZXJ5KCdDaGF0U2hhcmUnKTtcclxuICAgIHF1ZXJ5LmVxdWFsVG8oJ3VzZXInLCBQYXJzZS5Vc2VyLmN1cnJlbnQoKS5pZCk7XHJcbiAgICBxdWVyeS5lcXVhbFRvKCdyb2xlJywgdGhpcy5jaGF0Py5yb2xlLmlkKTtcclxuICAgIHF1ZXJ5LmVxdWFsVG8oJ3Nlc3Npb24nLCB0aGlzLmNoYXQ/LnNlc3Npb25JZCk7XHJcbiAgICAvLyBxdWVyeS5lcXVhbFRvKCdtZXNzYWdlTGlzdCcsIHRoaXMuY2hhdD8ubWVzc2FnZUxpc3QpO1xyXG4gICAgcXVlcnkuc2VsZWN0KCdvYmplY3RJZCcpXHJcbiAgICBsZXQgc2hhcmUgPSBhd2FpdCBxdWVyeS5maXJzdCgpO1xyXG4gICAgLy8gY29uc29sZS5sb2coc2hhcmUpO1xyXG5cclxuICAgIC8v5aaC5p6caWTkuI3lrZjlnKjvvIzlnKjmlbDmja7ooajlhoXliJvlu7rmlrDnmoTorrDlvZVcclxuICAgIGlmKCFzaGFyZT8uaWQpe1xyXG4gICAgICBsZXQgb2JqID0gUGFyc2UuT2JqZWN0LmV4dGVuZCgnQ2hhdFNoYXJlJylcclxuICAgICAgc2hhcmUgPSBuZXcgb2JqKClcclxuICAgICAgc2hhcmUuc2V0KCd1c2VyJywge1xyXG4gICAgICAgIFwiX190eXBlXCI6IFwiUG9pbnRlclwiLFxyXG4gICAgICAgIFwiY2xhc3NOYW1lXCI6IFwiX1VzZXJcIixcclxuICAgICAgICBcIm9iamVjdElkXCI6ICBQYXJzZS5Vc2VyLmN1cnJlbnQoKT8uaWRcclxuICAgICAgfSlcclxuICAgICAgc2hhcmUuc2V0KCdzZXNzaW9uJywge1xyXG4gICAgICAgIFwiX190eXBlXCI6IFwiUG9pbnRlclwiLFxyXG4gICAgICAgIFwiY2xhc3NOYW1lXCI6IFwiQ2hhdFNlc3Npb25cIixcclxuICAgICAgICBcIm9iamVjdElkXCI6IHRoaXMuY2hhdD8uc2Vzc2lvbklkXHJcbiAgICAgIH0pXHJcbiAgICAgIHNoYXJlLnNldCgncm9sZScsIHtcclxuICAgICAgICBcIl9fdHlwZVwiOiBcIlBvaW50ZXJcIixcclxuICAgICAgICBcImNsYXNzTmFtZVwiOiBcIkF2YXRhclJvbGVcIixcclxuICAgICAgICBcIm9iamVjdElkXCI6IHRoaXMuY2hhdD8ucm9sZS5pZFxyXG4gICAgICB9KVxyXG4gICAgICBzaGFyZS5zZXQoJ2NvbXBhbnknLCB7XHJcbiAgICAgICAgXCJfX3R5cGVcIjogXCJQb2ludGVyXCIsXHJcbiAgICAgICAgXCJjbGFzc05hbWVcIjogXCJDb21wYW55XCIsXHJcbiAgICAgICAgXCJvYmplY3RJZFwiOiBcIkU0S3BHdlRFdG9cIlxyXG4gICAgICB9KVxyXG4gICAgICBzaGFyZS5zZXQoJ21lc3NhZ2VMaXN0JywgdGhpcy5jaGF0Py5tZXNzYWdlTGlzdClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vaWTlrZjlnKjvvIzngrnlh7vliIbkuqvmjInpkq7miafooYzmm7TmlrBtZXNzYWdlTGlzdOaVsOaNrueahOaTjeS9nFxyXG4gICAgICBzaGFyZS5zZXQoJ21lc3NhZ2VMaXN0JywgdGhpcy5jaGF0Py5tZXNzYWdlTGlzdClcclxuICAgIH1cclxuICAgIGF3YWl0IHNoYXJlLnNhdmUoKTtcclxuICAgIHRoaXMuZ2V0Q2hhdFNoYXJlKCk7XHJcbn1cclxuXHJcbmFzeW5jIGNoYXRTaGFyZVN1Y2Nlc3NNZXNzYWdlKCkge1xyXG4gICAgbGV0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdEN0cmwuY3JlYXRlKHtcclxuICAgICAgZHVyYXRpb246MTAwMCxcclxuICAgICAgbWVzc2FnZTpcIuWIhuS6q+aIkOWKn1wiLFxyXG4gICAgICBjb2xvcjoncHJpbWFyeScsXHJcbiAgICAgIGljb246XCJpbmZvcm1hdGlvbi1jaXJjbGVcIixcclxuICAgICAgcG9zaXRpb246XCJ0b3BcIlxyXG4gICAgfSlcclxuICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICAgIHJldHVyblxyXG59XHJcblxyXG4gIC8v5YiG5Lqr5by55qGG57uE5Lu2XHJcbiAgaXNTaGFyZSA9IGZhbHNlO1xyXG5cclxuICBzaG93U2hhcmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2hhcmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlT2tTaGFyZSgpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY2hhdCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNoYXQ/LnNlc3Npb25JZCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNoYXQ/Lm1lc3NhZ2VMaXN0KTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY2hhdD8ucm9sZS5pZCk7XHJcbiAgICB0aGlzLnRvZ2dsZUNoYXRTaGFyZSgpO1xyXG4gICAgdGhpcy5jaGF0U2hhcmVTdWNjZXNzTWVzc2FnZSgpO1xyXG4gICAgdGhpcy5pc1NoYXJlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDYW5jZWxTaGFyZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTaGFyZSA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLXRvb2xiYXI+XHJcbiAgICA8aW9uLWl0ZW0gY2xhc3M9XCJidXR0b24taXRlbVwiIGxpbmVzPVwibm9uZVwiPlxyXG4gICAgICAgIDwhLS0g6K6+572uIC0tPlxyXG4gICAgICAgIDwhLS0gPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzbG90PVwic3RhcnRcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzZXR0aW5ncy1vdXRsaW5lXCI+PC9pb24taWNvbj4gXHJcbiAgICAgICAgPC9pb24tYnV0dG9uPiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY2hhdD8ubGVmdEJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHN0eWxlPVwiLS1wYWRkaW5nLXN0YXJ0OjEwcHg7LS1wYWRkaW5nLWVuZDoxMHB4O1wiXHJcbiAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwiYnV0dG9uPy5zaG93JiZidXR0b24/LnNob3coKVwiIGZpbGw9XCJvdXRsaW5lXCIgW3RpdGxlXT1cImJ1dHRvbj8udGl0bGVcIiBzbG90PVwic3RhcnRcIiAoY2xpY2spPVwiYnV0dG9uLm9uQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYnV0dG9uPy5pY29uXCIgW3Nsb3RdPVwiYnV0dG9uPy5zaG93VGl0bGU/J3N0YXJ0JzonaWNvbi1vbmx5J1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIHt7YnV0dG9uPy5zaG93VGl0bGUmJmJ1dHRvbj8udGl0bGV9fVxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY2hhdD8ucm9sZT8uZ2V0KCdidXR0b25zJylcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJjaGF0U2Vydi5kb0J1dHRvbkFjdGlvbihidXR0b24pXCIgZmlsbD1cIm91dGxpbmVcIiAgc2xvdD1cInN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICB7e2J1dHRvbj8ubmFtZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLeWIhuS6q+aMiemSri0tPlxyXG4gICAgICAgIEBpZighY2hhdD8uaGlkZVNoYXJlKXtcclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAqbmdJZj1cImNoYXQ/Lm1lc3NhZ2VMaXN0Py5sZW5ndGg+MVwiIChjbGljayk9XCJzaG93U2hhcmUoKVwiIGZpbGw9XCJvdXRsaW5lXCIgdGl0bGU9XCLliIbkuqtcIiBzbG90PVwiZW5kXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hhcmUtc29jaWFsLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc1NoYXJlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8aW9uLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxpb24tdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJoYW5kbGVDYW5jZWxTaGFyZSgpXCI+5Y+W5raIPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLXRpdGxlPuWvueivneWIhuS6qzwvaW9uLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJoYW5kbGVPa1NoYXJlKClcIj7liIbkuqs8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi10b29sYmFyPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWhlYWRlcj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjaGF0Py5tZXNzYWdlTGlzdDtsZXQgaW5kZXg9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSDlhoXlrrnmoLzlvI/ljJbljLrln58gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZtLWNoYXQtbWVzc2FnZS1jYXJkIFtjaGF0XT1cImNoYXRcIiAqbmdJZj1cIiFtZXNzYWdlPy5oaWRkZW5cIiBbaW5kZXhdPVwiaW5kZXhcIiBbbWVzc2FnZV09XCJtZXNzYWdlXCIgW3JvbGVdPVwiY2hhdD8ucm9sZVwiPjwvZm0tY2hhdC1tZXNzYWdlLWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjaGF0Py5tZXNzYWdlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0g5aS05YOPIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXJvdyB1c2VyXCIgKm5nSWY9XCJtZXNzYWdlPy5yb2xlIT0nc3lzdGVtJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiICpuZ0lmPVwibWVzc2FnZT8ucm9sZSE9J3VzZXInXCIgW3NyY109XCIoY2hhdD8ucm9sZT8uZ2V0KCdhdmF0YXInKSB8fCBjaGF0Py5yb2xlPy5nZXQoJ3RodW1iJykgfHwgJ2h0dHBzOi8vZmlsZS1jbG91ZC5mbW9kZS5jbi9FNEtwR3ZURXRvLzIwMjMwOTMwL2w0MTNlNjA5MDczMTg1NC5wbmcnKSsnPycrJ3gtaW1hZ2UtcHJvY2Vzcz1pbWFnZS9yZXNpemUsbV9maXhlZCx3XzEwMCcrJyZpbWFnZVZpZXcyLzEvdy8zMi9oLzMyJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItcXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jb21wLXVzZXItYXZhdGFyIFt1c2VyXT1cInVzZXJcIiAqbmdJZj1cIm1lc3NhZ2U/LnJvbGU9PSd1c2VyJ1wiPjwvYXBwLWNvbXAtdXNlci1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIOWGheWuuSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1jb250ZW50LXVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbWVzc2FnZVwiICpuZ0lmPVwibWVzc2FnZT8ucm9sZSA9PT0gJ3VzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8Zm0tbWFya2Rvd24tcHJldmlldyAqbmdJZj1cIiFtZXNzYWdlPy5jb21wbGV0ZVwiIGNsYXNzPVwiY29udGVudC1zdHlsZVwiIFtjb250ZW50XT1cIm1lc3NhZ2U/LmNvbnRlbnRcIiBbcmVuZGVyXT1cImZhbHNlXCI+PC9mbS1tYXJrZG93bi1wcmV2aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmbS1tYXJrZG93bi1wcmV2aWV3ICpuZ0lmPVwibWVzc2FnZT8uY29tcGxldGVcIiBjbGFzcz1cImNvbnRlbnQtc3R5bGVcIiBbY29udGVudF09XCJtZXNzYWdlPy5jb250ZW50XCI+PC9mbS1tYXJrZG93bi1wcmV2aWV3PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudC1yb2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLW1lc3NhZ2VcIiAqbmdJZj1cIm1lc3NhZ2U/LnJvbGUgIT09ICd1c2VyJyAmJiBtZXNzYWdlPy5yb2xlICE9PSAnc3lzdGVtJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGZtLW1hcmtkb3duLXByZXZpZXcgKm5nSWY9XCIhbWVzc2FnZT8uY29tcGxldGVcIiBjbGFzcz1cImNvbnRlbnQtc3R5bGVcIiBbY29udGVudF09XCJtZXNzYWdlPy5jb250ZW50XCIgW3JlbmRlcl09XCJmYWxzZVwiPjwvZm0tbWFya2Rvd24tcHJldmlldz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm0tbWFya2Rvd24tcHJldmlldyAqbmdJZj1cIm1lc3NhZ2U/LmNvbXBsZXRlXCIgY2xhc3M9XCJjb250ZW50LXN0eWxlXCIgW2NvbnRlbnRdPVwibWVzc2FnZT8uY29udGVudFwiPjwvZm0tbWFya2Rvd24tcHJldmlldz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRlbnQtc3lzdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeXN0ZW0tbWVzc2FnZVwiICpuZ0lmPVwibWVzc2FnZT8ucm9sZSA9PT0gJ3N5c3RlbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxmbS1tYXJrZG93bi1wcmV2aWV3ICpuZ0lmPVwiIW1lc3NhZ2U/LmNvbXBsZXRlXCIgY2xhc3M9XCJjb250ZW50LXN0eWxlXCIgW2NvbnRlbnRdPVwibWVzc2FnZT8uY29udGVudFwiIFtyZW5kZXJdPVwiZmFsc2VcIj48L2ZtLW1hcmtkb3duLXByZXZpZXc+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZtLW1hcmtkb3duLXByZXZpZXcgKm5nSWY9XCJtZXNzYWdlPy5jb21wbGV0ZVwiIGNsYXNzPVwiY29udGVudC1zdHlsZVwiIFtjb250ZW50XT1cIm1lc3NhZ2U/LmNvbnRlbnRcIj48L2ZtLW1hcmtkb3duLXByZXZpZXc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXQtdGltZVwiICpuZ0lmPVwibWVzc2FnZT8uY3JlYXRlZEF0XCIgW25nQ2xhc3NdPVwieydyb2xlLXRpbWUnOiBtZXNzYWdlPy5yb2xlICE9PSAndXNlcid9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e21lc3NhZ2U/LmNyZWF0ZWRBdCB8IGRhdGU6XCJkZC9NTS95eXl5LCBISC9tbS9zcyBhXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICBcclxuICAgICAgICAgICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9pb24tbW9kYWw+XHJcblxyXG4gICAgICAgIDwhLS0g5Zu+54mHIC0tPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAqbmdJZj1cImNoYXQ/LmN1cnJlbnRNb2RlbD8uZ2V0Py4oJ2NvbmZpZycpPy5pbWFnZUVuYWJsZWRcIiBmaWxsPVwib3V0bGluZVwiICBzbG90PVwiZW5kXCIgKGNsaWNrKT1cInNldE1lc3NhZ2VJbWFnZSgpXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImltYWdlLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8IS0tIOaooeWeiyAtLT5cclxuICAgICAgICBAaWYoIWNoYXQ/LmhpZGVNb2RhbFNlbGVjdCl7XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiBzbG90PVwiZW5kXCIgIGlkPVwibW9kZWwtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd24tb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAge3tjaGF0Py5jdXJyZW50TW9kZWw/LmdldCYmY2hhdD8uY3VycmVudE1vZGVsPy5nZXQ/LihcIm5hbWVcIil8fFwiRm1vZGUtQzEuMC0xMjhrXCJ9fVxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1wb3BvdmVyIHRyaWdnZXI9XCJtb2RlbC1idXR0b25cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vZGVsIG9mIGNoYXQubW9kZWxMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtIChjbGljayk9XCJjaGF0LmN1cnJlbnRNb2RlbCA9IG1vZGVsXCIgW2J1dHRvbl09XCJ0cnVlXCIgW2RldGFpbF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3ttb2RlbD8uZ2V0KFwibmFtZVwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLW5vdGUgc2xvdD1cImVuZFwiPnt7bW9kZWw/LmdldChcImNyZWRpdFwiKX19L2s8L2lvbi1ub3RlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9pb24tcG9wb3Zlcj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICA8L2lvbi1pdGVtPlxyXG5cclxuICAgIDxpb24taXRlbSBjbGFzcz1cImlucHV0LWl0ZW1cIiBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICA8IS0tIOivremfs+a2iOaBr+i+k+WFpSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hhdD8uaXNWb2ljZUlucHV0TW9kZVwiPlxyXG4gICAgICAgICAgPCEtLSDliIfmjaLmlofmnKzovpPlhaUgLS0+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImJ0bi1pbnB1dC1jaGFuZ2VcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2hhdC5pc1ZvaWNlSW5wdXRNb2RlPWZhbHNlXCIgc2hhcGU9XCJyb3VuZFwiIHNpemU9XCJsYXJnZVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRib3gtZWxsaXBzZXMtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXZvaWNlLXN0YXJ0XCIgKGNsaWNrKT1cInN0YXJ0VGFsaygpXCIgW2NsYXNzLmRpc2FibGVkXT1cImlzU2VuZGluZ1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICDngrnlh7vorrLor51cclxuICAgICAgICAgICAgPC9zcGFuPiBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIOaWh+acrOa2iOaBr+i+k+WFpSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNoYXQ/LmlzVm9pY2VJbnB1dE1vZGVcIj5cclxuICAgICAgICAgIDwhLS0g5YiH5o2i6K+t6Z+z6L6T5YWlIC0tPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gW3N0eWxlLmRpc3BsYXldPVwiY2hhdC5pc1RleHRpbmc/J25vbmUnOidmbGV4J1wiIGNsYXNzPVwiYnRuLWlucHV0LWNoYW5nZVwiIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwiY2hhdD8ucm9sZT8uZ2V0KCd2b2ljZUNvbmZpZycpXCIgKGNsaWNrKT1cImNoYXQuaXNWb2ljZUlucHV0TW9kZT10cnVlXCIgc2hhcGU9XCJyb3VuZFwiIHNpemU9XCJsYXJnZVwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIm1pYy1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgICAgPCEtLSDmlofmnKzovpPlhaXljLrln58gLS0+XHJcbiAgICAgICAgICA8aW9uLXRleHRhcmVhXHJcbiAgICAgICAgICAjdXNlcklucHV0XHJcbiAgICAgICAgICAqbmdJZj1cImNoYXRcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZXJyb3JUZXh0XT1cImVycm9yVGV4dFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoYXQudXNlcklucHV0XCJcclxuICAgICAgICAgIChpb25Gb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXHJcbiAgICAgICAgICAoaW9uQmx1cik9XCJjaGF0LmlzVGV4dGluZz1mYWxzZVwiXHJcbiAgICAgICAgICBbYXV0b0dyb3ddPVwidHJ1ZVwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICBsYWJlbD1cIkN0cmwgKyBFbnRlciDlj5HpgIHmtojmga9cIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaCqOeahOaPkOekuuivjVwiXHJcbiAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cImZsb2F0aW5nXCI+PC9pb24tdGV4dGFyZWE+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDwhLS0g5paH5pys5Y+R6YCB5oyJ6ZKuIC0tPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gW2Rpc2FibGVkXT1cImlzU2VuZGluZ1wiXHJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cImxhcmdlXCIgKGNsaWNrKT1cInNlbmRNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwYXBlci1wbGFuZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2lvbi1pdGVtPlxyXG48L2lvbi10b29sYmFyPlxyXG5cclxuXHJcbjwhLS0g6K+t6Z+z5raI5oGv6L6T5YWl77ya5by55Ye65Yy65Z+fIC0tPlxyXG48IS0tIDxpb24tbW9kYWwgI2F1ZGlvTW9kYWwgW2lzT3Blbl09XCJpc0F1ZGlvTW9kYWxcIiAod2lsbERpc21pc3MpPVwiY2xvc2VBdWRpbygpXCIgW2luaXRpYWxCcmVha3BvaW50XT1cImF1ZGlvTW9kYWxIZWlnaHRQb2ludFwiIFticmVha3BvaW50c109XCJbMCwgYXVkaW9Nb2RhbEhlaWdodFBvaW50XVwiPlxyXG4gIDxuZy10ZW1wbGF0ZT5cclxuICAgIDxmbS1tb2RhbC1hdWRpby1tZXNzYWdlICNhdWRpb0NvbXAgKm5nSWY9XCJpc0F1ZGlvTW9kYWxcIiBbY2hhdF09XCJjaGF0XCIgW21vZGFsXT1cImF1ZGlvTW9kYWxcIj48L2ZtLW1vZGFsLWF1ZGlvLW1lc3NhZ2U+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pb24tbW9kYWw+IC0tPiJdfQ==
|