@touchpoll/tp-survey 0.0.16 → 0.0.18

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.
@@ -84,7 +84,7 @@ export class AnswerMSComponent extends AnswerMasterComponent {
84
84
  useExisting: forwardRef(() => AnswerMSComponent),
85
85
  multi: true
86
86
  },
87
- ], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alt.BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alt.BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alt.BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: AlternativesContainerDirective, selector: "[tpSurveyAlternativesContainer]", inputs: ["tpSurveyAlternativesContainer", "containerViewModel"] }] }); }
87
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alternativeList()[indx].BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alternativeList()[indx].BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alternativeList()[indx].BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: MultiLangObjectToHtmlPipe, name: "multiLangObjectToHtml" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: AlternativesContainerDirective, selector: "[tpSurveyAlternativesContainer]", inputs: ["tpSurveyAlternativesContainer", "containerViewModel"] }] }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AnswerMSComponent, decorators: [{
90
90
  type: Component,
@@ -101,6 +101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
101
101
  useExisting: forwardRef(() => AnswerMSComponent),
102
102
  multi: true
103
103
  },
104
- ], template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alt.BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alt.BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alt.BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"] }]
104
+ ], template: "<ng-container [formGroup]=\"answerMSForm\">\r\n <div\r\n class=\"container-ms-ss-alternatives\"\r\n [tpSurveyAlternativesContainer] = \"question()\"\r\n [containerViewModel]=\"viewModel()\"\r\n formArrayName=\"alternativeList\">\r\n @for (alt of answerMSForm.controls.alternativeList.controls; track alt; let indx = $index) {\r\n <mat-checkbox\r\n #tablet_alt\r\n [formControl]=\"alt\"\r\n [style.font-size.%]=\"viewModel() === viewModelE.vmTablet ? question().AlternativeTabletFontSize : undefined\"\r\n (change)=\"onAlternativeClick.emit(alternativeList()[indx].Value)\"\r\n class=\"alternative-ss-ms tp-survey-checkbox\">\r\n @if (alternativeList()[indx].IsMute) {\r\n <mat-icon class=\"icon-is-mute\" svgIcon=\"iconIsMute\"></mat-icon>\r\n }\r\n <div class=\"container-caption\">\r\n @if (alternativeList()[indx].BackGround.Image) {\r\n <img alt=\"answer logo\" [style.height.px]=\"alternativeList()[indx].BackGround.ImageHeight ?? question().AlternativeBackgroundImageHeight ?? 30\" [src]=\"repositoryPath()+'/' + alternativeList()[indx].BackGround.Image\" importance=\"low\" loading=\"lazy\">\r\n }\r\n <span class=\"alternative-ss-ms-caption survey-object-caption\" [innerHTML]= \"alternativeList()[indx].MultiLangCaptions | multiLangObjectToHtml:language()\"></span>\r\n </div>\r\n </mat-checkbox>\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".container-main-tablet{position:absolute;width:100%;height:100%;top:0;box-sizing:border-box;overflow:hidden}.radio-button{margin:4px}@media (max-width: 480px){.container-controls{padding:1em}}\n"] }]
105
105
  }], ctorParameters: () => [] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLm1zL2Fuc3dlci5tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5tcy9hbnN3ZXIubXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7OztBQTJCMUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFvQztJQU16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QVEsQ0FBQyxDQUFDO1lBQ3hFLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsdUNBQXVDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0NBQWdDO2dCQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FqRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ2xCQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENwQ0gsaTBDQTBCQSwyUERISSxtQkFBbUIsOHNCQUNuQixXQUFXLDRUQUNYLHlCQUF5Qiw4REFDekIsT0FBTywySUFFUCw4QkFBOEI7OzJGQVVyQixpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLDhCQUE4QjtxQkFDL0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHtNYXRSYWRpb0dyb3VwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge011bHRpTGFuZ09iamVjdFRvSHRtbFBpcGV9IGZyb20gJy4uLy4uLy4uL3BpcGUvbXVsdGkubGFuZy5vYmplY3QudG8uaHRtbC9tdWx0aS5sYW5nLm9iamVjdC50by5odG1sLnBpcGUnO1xyXG5pbXBvcnQge0Fuc3dlck1hc3RlckNvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLm1hc3Rlci9hbnN3ZXIubWFzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWRiQWx0ZXJuYXRpdmUsIElkYlF1ZXN0aW9ufSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbHRlcm5hdGl2ZXMuY29udGFpbmVyL2FsdGVybmF0aXZlcy5jb250YWluZXIuZGlyZWN0aXZlJztcclxuXHJcbmludGVyZmFjZSBJQW5zd2VyTVNGb3JtIHtcclxuICBhbHRlcm5hdGl2ZUxpc3Q6IEZvcm1BcnJheTxGb3JtQ29udHJvbDxib29sZWFuPj47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LWFuc3dlci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5tcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLm1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3gsXHJcbiAgICBNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdFJhZGlvR3JvdXAsXHJcbiAgICBBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuc3dlck1TQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuc3dlck1TQ29tcG9uZW50IGV4dGVuZHMgQW5zd2VyTWFzdGVyQ29tcG9uZW50PEFycmF5PG51bWJlcj4+IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHF1ZXN0aW9uID0gaW5wdXQucmVxdWlyZWQ8SWRiUXVlc3Rpb24+KCk7XHJcbiAgYWx0ZXJuYXRpdmVMaXN0ID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8SWRiQWx0ZXJuYXRpdmU+PigpO1xyXG4gIGFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG4gIG9uQWx0ZXJuYXRpdmVDbGljayA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgYW5zd2VyTVNGb3JtOiBGb3JtR3JvdXA8SUFuc3dlck1TRm9ybT47XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0gPSBuZXcgRm9ybUdyb3VwPElBbnN3ZXJNU0Zvcm0+KHtcclxuICAgICAgYWx0ZXJuYXRpdmVMaXN0OiBuZXcgRm9ybUFycmF5PEZvcm1Db250cm9sPGJvb2xlYW4+PihbXSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbHRlcm5hdGl2ZUxpc3QgPSB0aGlzLmFsdGVybmF0aXZlTGlzdCgpO1xyXG4gICAgY29uc3QgYW5zd2VyQXNBcnJheTogQXJyYXk8bnVtYmVyPiA9IEFycmF5LmlzQXJyYXkodGhpcy5jb250cm9sLnZhbHVlKSA/IHRoaXMuY29udHJvbC52YWx1ZSA6IFtdO1xyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50KCk7XHJcblxyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNsZWFyKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICBhbHRlcm5hdGl2ZUxpc3QuZm9yRWFjaCggYWx0ID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbD0gbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KCBhbnN3ZXJBc0FycmF5LmluY2x1ZGVzKGFsdC5WYWx1ZSksIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xyXG5cclxuICAgICAgLy/QoyDQsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0LXRgdGC0Ywg0L/QvtC90Y/RgtC40LUgXCLQk9GA0YPQv9C/0LBcIi4g0JPRgNGD0L/Qv9CwINGN0YLQviDRh9C40YHQu9C+LiDQldGB0LvQuCDQstGL0LHQuNGA0LDRjtGCINCw0LvRjNGC0LXRgNC90LDRgtC40LLRgyDRgSDQvtC/0YDQtdC00LXQu9GR0L3QvdC+0Lkg0LPRgNGD0L/Qv9C+0LksINGC0L4g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINGBINC00YDRg9Cz0L7QuSDQs9GA0YPQv9C/0L7QuSDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L7RgtC20LDRgtGLLlxyXG4gICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlKSxcclxuICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKCB7XHJcbiAgICAgICAgbmV4dDogKCkgPT4gdGhpcy4jdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoYWx0Lkdyb3VwTm8pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LnB1c2goY29udHJvbCwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICBtYXAoKF8pID0+IHtcclxuICAgICAgY29uc3QgY2hlY2tlZEFycmF5ID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNvbnRyb2xzLm1hcChjID0+IGMudmFsdWUpID8/IFtdO1xyXG4gICAgICByZXR1cm4gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgICAgLm1hcChhbHQgPT4gYWx0LlZhbHVlKVxyXG4gICAgICAgLmZpbHRlcigoXywgaW5kZXgpID0+IGNoZWNrZWRBcnJheVtpbmRleF0gKVxyXG4gICAgIH0pLFxyXG4gICAgIHRhcChhbnN3ZXJBcnJheSA9PiB0aGlzLiNkaXNhYmxlRXh0cmFDb250cm9scyhhbnN3ZXJBcnJheS5sZW5ndGgsIG1heENvdW50KSksXHJcbiAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzID0+IHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKHJlcywge2VtaXRFdmVudDogdHJ1ZX0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy/QvtGC0LbQuNC80LDQtdGCINC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L3QvtC80LXRgCDQs9GA0YPQv9C/0YtcclxuICAjdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoZ3JvdXBOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy/RgdC90LDRh9Cw0LvQsCDQvtGC0LHQuNGA0LDQtdC8INC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsC5cclxuICAgIGNvbnN0IG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0ID0gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgIC5tYXAoKGFsdCwgYWx0SW5kZXgpID0+ICh7YWx0ZXJuYXRpdmU6IGFsdCwgaW5kZXg6IGFsdEluZGV4fSkgKSAgLy/QvdGD0LbQtdC9INC40L3QtNC10LrRgSwg0L/QviDQvdC10LzRgyDQv9GA0L7RidC1INCy0YvQsdC40YDQsNGC0Ywg0LrQvtC90YLRgNC+0LvRiyDQsiBhbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0XHJcbiAgICAgLmZpbHRlcihkYXRhID0+IGRhdGEuYWx0ZXJuYXRpdmUuR3JvdXBObyAhPT0gZ3JvdXBOdW1iZXIpOyAvL9C60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsFxyXG5cclxuICAgIC8vXCLQvtGC0LbQuNC80LDQtdC8INCz0LDQu9C+0YfQutGDXCJcclxuICAgIG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgIGNvbnN0IGFsdENvbnRyb2wgPSB0aGlzLmFuc3dlck1TRm9ybS5jb250cm9scy5hbHRlcm5hdGl2ZUxpc3QuYXQoZGF0YS5pbmRleCk7XHJcbiAgICAgIGFsdENvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSwge2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLy/QtNC40LfQtdC50LHQu9C40YIg0LrQvtC90YLRgNC+0LvQuCDQtdGB0LvQuCDQstGL0LHRgNCw0LvQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQu9C4INC10L3QtdC50LHQu9C40YIg0LXRgdC70Lgg0LLRi9Cx0YDQsNC70Lgg0L3QtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L5cclxuICAjZGlzYWJsZUV4dHJhQ29udHJvbHMoY3VycmVudENvdW50Om51bWJlciwgbWF4Q291bnQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICAvL9C10YHQu9C4INCyINC90LDRgdGC0YDQvtC50LrQsNGFINCw0L3QutC10YLRiyDRg9C60LDQt9Cw0LvQuCDRh9GC0L4g0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0L7Qt9C80L7QttC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQstGL0LHRgNCw0L3QvdGL0YUg0LDQu9GM0YLQtdGA0L3QsNGC0LjQsiA9IDAsINC90L4g0L3QuNGH0LXQs9C+INC60L7QvdGC0YDQvtC70LjRgNC+0LLQsNGC0Ywg0L3QtSDQvdCw0LTQvi5cclxuICAgIGlmIChtYXhDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuYWx0ZXJuYXRpdmVMaXN0KCkuZm9yRWFjaCgoXywgYWx0SW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgaXNEaXNhYmxlID0gY3VycmVudENvdW50ID49IG1heENvdW50O1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmF0KGFsdEluZGV4KTtcclxuICAgICAgaWYgKGlzRGlzYWJsZSkge1xyXG4gICAgICAgIC8v0L3QsNC00L4g0LTQuNC30LXQudCx0LvQuNGC0Ywg0YLQtSDQutC+0YLQvtGA0YvQtSDQvdC1INCy0YvQsdGA0LDQvdGLXHJcbiAgICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvL9C70LjQvNC40YLQsCDQvdC10YIsINC80L7QttC90L4g0LLRi9Cx0LjRgNCw0YLRjCDQstGB0LVcclxuICAgICAgICBjb250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJNU0Zvcm1cIj5cclxuIDxkaXZcclxuICBjbGFzcz1cImNvbnRhaW5lci1tcy1zcy1hbHRlcm5hdGl2ZXNcIlxyXG4gIFt0cFN1cnZleUFsdGVybmF0aXZlc0NvbnRhaW5lcl0gPSBcInF1ZXN0aW9uKClcIlxyXG4gIFtjb250YWluZXJWaWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gIGZvcm1BcnJheU5hbWU9XCJhbHRlcm5hdGl2ZUxpc3RcIj5cclxuICBAZm9yIChhbHQgb2YgYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC5jb250cm9sczsgdHJhY2sgYWx0OyBsZXQgaW5keCA9ICRpbmRleCkge1xyXG4gICA8bWF0LWNoZWNrYm94XHJcbiAgICAjdGFibGV0X2FsdFxyXG4gICAgW2Zvcm1Db250cm9sXT1cImFsdFwiXHJcbiAgICBbc3R5bGUuZm9udC1zaXplLiVdPVwidmlld01vZGVsKCkgPT09IHZpZXdNb2RlbEUudm1UYWJsZXQgPyBxdWVzdGlvbigpLkFsdGVybmF0aXZlVGFibGV0Rm9udFNpemUgOiB1bmRlZmluZWRcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkFsdGVybmF0aXZlQ2xpY2suZW1pdChhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5WYWx1ZSlcIlxyXG4gICAgY2xhc3M9XCJhbHRlcm5hdGl2ZS1zcy1tcyB0cC1zdXJ2ZXktY2hlY2tib3hcIj5cclxuICAgIEBpZiAoYWx0ZXJuYXRpdmVMaXN0KClbaW5keF0uSXNNdXRlKSB7XHJcbiAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1pcy1tdXRlXCIgc3ZnSWNvbj1cImljb25Jc011dGVcIj48L21hdC1pY29uPlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jYXB0aW9uXCI+XHJcbiAgICAgQGlmIChhbHQuQmFja0dyb3VuZC5JbWFnZSkge1xyXG4gICAgICA8aW1nIGFsdD1cImFuc3dlciBsb2dvXCIgW3N0eWxlLmhlaWdodC5weF09XCJhbHQuQmFja0dyb3VuZC5JbWFnZUhlaWdodCA/PyBxdWVzdGlvbigpLkFsdGVybmF0aXZlQmFja2dyb3VuZEltYWdlSGVpZ2h0ID8/IDMwXCIgW3NyY109XCJyZXBvc2l0b3J5UGF0aCgpKycvJyArIGFsdC5CYWNrR3JvdW5kLkltYWdlXCIgaW1wb3J0YW5jZT1cImxvd1wiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgfVxyXG4gICAgIDxzcGFuIGNsYXNzPVwiYWx0ZXJuYXRpdmUtc3MtbXMtY2FwdGlvbiBzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIiBbaW5uZXJIVE1MXT0gXCJhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgIDwvbWF0LWNoZWNrYm94PlxyXG4gIH1cclxuIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLm1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RwLnN1cnZleS9zcmMvbGliL2NvbXBvbmVudC9hbnN3ZXIvYW5zd2VyLm1zL2Fuc3dlci5tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cC5zdXJ2ZXkvc3JjL2xpYi9jb21wb25lbnQvYW5zd2VyL2Fuc3dlci5tcy9hbnN3ZXIubXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDakgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7OztBQTJCMUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFvQztJQU16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QVEsQ0FBQyxDQUFDO1lBQ3hFLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsdUNBQXVDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0NBQWdDO2dCQUNoQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FqRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ2xCQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENwQ0gsNjNDQTBCQSwyUERISSxtQkFBbUIsOHNCQUNuQixXQUFXLDRUQUNYLHlCQUF5Qiw4REFDekIsT0FBTywySUFFUCw4QkFBOEI7OzJGQVVyQixpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLDhCQUE4QjtxQkFDL0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3h9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHtNYXRSYWRpb0dyb3VwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge011bHRpTGFuZ09iamVjdFRvSHRtbFBpcGV9IGZyb20gJy4uLy4uLy4uL3BpcGUvbXVsdGkubGFuZy5vYmplY3QudG8uaHRtbC9tdWx0aS5sYW5nLm9iamVjdC50by5odG1sLnBpcGUnO1xyXG5pbXBvcnQge0Fuc3dlck1hc3RlckNvbXBvbmVudH0gZnJvbSAnLi4vYW5zd2VyLm1hc3Rlci9hbnN3ZXIubWFzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWRiQWx0ZXJuYXRpdmUsIElkYlF1ZXN0aW9ufSBmcm9tICcuLi8uLi8uLi90cC5zdXJ2ZXkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbHRlcm5hdGl2ZXMuY29udGFpbmVyL2FsdGVybmF0aXZlcy5jb250YWluZXIuZGlyZWN0aXZlJztcclxuXHJcbmludGVyZmFjZSBJQW5zd2VyTVNGb3JtIHtcclxuICBhbHRlcm5hdGl2ZUxpc3Q6IEZvcm1BcnJheTxGb3JtQ29udHJvbDxib29sZWFuPj47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHAtc3VydmV5LWFuc3dlci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fuc3dlci5tcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYW5zd2VyLm1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3gsXHJcbiAgICBNdWx0aUxhbmdPYmplY3RUb0h0bWxQaXBlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdFJhZGlvR3JvdXAsXHJcbiAgICBBbHRlcm5hdGl2ZXNDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFuc3dlck1TQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuc3dlck1TQ29tcG9uZW50IGV4dGVuZHMgQW5zd2VyTWFzdGVyQ29tcG9uZW50PEFycmF5PG51bWJlcj4+IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHF1ZXN0aW9uID0gaW5wdXQucmVxdWlyZWQ8SWRiUXVlc3Rpb24+KCk7XHJcbiAgYWx0ZXJuYXRpdmVMaXN0ID0gaW5wdXQucmVxdWlyZWQ8QXJyYXk8SWRiQWx0ZXJuYXRpdmU+PigpO1xyXG4gIGFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG4gIG9uQWx0ZXJuYXRpdmVDbGljayA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgYW5zd2VyTVNGb3JtOiBGb3JtR3JvdXA8SUFuc3dlck1TRm9ybT47XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0gPSBuZXcgRm9ybUdyb3VwPElBbnN3ZXJNU0Zvcm0+KHtcclxuICAgICAgYWx0ZXJuYXRpdmVMaXN0OiBuZXcgRm9ybUFycmF5PEZvcm1Db250cm9sPGJvb2xlYW4+PihbXSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhbHRlcm5hdGl2ZUxpc3QgPSB0aGlzLmFsdGVybmF0aXZlTGlzdCgpO1xyXG4gICAgY29uc3QgYW5zd2VyQXNBcnJheTogQXJyYXk8bnVtYmVyPiA9IEFycmF5LmlzQXJyYXkodGhpcy5jb250cm9sLnZhbHVlKSA/IHRoaXMuY29udHJvbC52YWx1ZSA6IFtdO1xyXG4gICAgY29uc3QgbWF4Q291bnQgPSB0aGlzLmFsdGVybmF0aXZlTWF4QW5zd2Vyc0NvdW50KCk7XHJcblxyXG4gICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNsZWFyKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICBhbHRlcm5hdGl2ZUxpc3QuZm9yRWFjaCggYWx0ID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbD0gbmV3IEZvcm1Db250cm9sPGJvb2xlYW4+KCBhbnN3ZXJBc0FycmF5LmluY2x1ZGVzKGFsdC5WYWx1ZSksIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xyXG5cclxuICAgICAgLy/QoyDQsNC70YzRgtC10YDQvdCw0YLQuNCy0Ysg0LXRgdGC0Ywg0L/QvtC90Y/RgtC40LUgXCLQk9GA0YPQv9C/0LBcIi4g0JPRgNGD0L/Qv9CwINGN0YLQviDRh9C40YHQu9C+LiDQldGB0LvQuCDQstGL0LHQuNGA0LDRjtGCINCw0LvRjNGC0LXRgNC90LDRgtC40LLRgyDRgSDQvtC/0YDQtdC00LXQu9GR0L3QvdC+0Lkg0LPRgNGD0L/Qv9C+0LksINGC0L4g0LDQu9GM0YLQtdGA0L3QsNGC0LjQstGLINGBINC00YDRg9Cz0L7QuSDQs9GA0YPQv9C/0L7QuSDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L7RgtC20LDRgtGLLlxyXG4gICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlKSxcclxuICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcbiAgICAgICkuc3Vic2NyaWJlKCB7XHJcbiAgICAgICAgbmV4dDogKCkgPT4gdGhpcy4jdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoYWx0Lkdyb3VwTm8pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LnB1c2goY29udHJvbCwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICBtYXAoKF8pID0+IHtcclxuICAgICAgY29uc3QgY2hlY2tlZEFycmF5ID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmNvbnRyb2xzLm1hcChjID0+IGMudmFsdWUpID8/IFtdO1xyXG4gICAgICByZXR1cm4gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgICAgLm1hcChhbHQgPT4gYWx0LlZhbHVlKVxyXG4gICAgICAgLmZpbHRlcigoXywgaW5kZXgpID0+IGNoZWNrZWRBcnJheVtpbmRleF0gKVxyXG4gICAgIH0pLFxyXG4gICAgIHRhcChhbnN3ZXJBcnJheSA9PiB0aGlzLiNkaXNhYmxlRXh0cmFDb250cm9scyhhbnN3ZXJBcnJheS5sZW5ndGgsIG1heENvdW50KSksXHJcbiAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzID0+IHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKHJlcywge2VtaXRFdmVudDogdHJ1ZX0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy/QvtGC0LbQuNC80LDQtdGCINC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0L7RgtC70LjRh9Cw0LXRgtGB0Y8g0L3QvtC80LXRgCDQs9GA0YPQv9C/0YtcclxuICAjdW5jaGVja0NvbnRyb2xzV2l0aE90aGVyR3JvdXAoZ3JvdXBOdW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy/RgdC90LDRh9Cw0LvQsCDQvtGC0LHQuNGA0LDQtdC8INC60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsC5cclxuICAgIGNvbnN0IG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0ID0gdGhpcy5hbHRlcm5hdGl2ZUxpc3QoKVxyXG4gICAgIC5tYXAoKGFsdCwgYWx0SW5kZXgpID0+ICh7YWx0ZXJuYXRpdmU6IGFsdCwgaW5kZXg6IGFsdEluZGV4fSkgKSAgLy/QvdGD0LbQtdC9INC40L3QtNC10LrRgSwg0L/QviDQvdC10LzRgyDQv9GA0L7RidC1INCy0YvQsdC40YDQsNGC0Ywg0LrQvtC90YLRgNC+0LvRiyDQsiBhbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0XHJcbiAgICAgLmZpbHRlcihkYXRhID0+IGRhdGEuYWx0ZXJuYXRpdmUuR3JvdXBObyAhPT0gZ3JvdXBOdW1iZXIpOyAvL9C60L7QvdGC0YDQvtC70Ysg0YMg0LrQvtGC0L7RgNGL0YUg0LTRgNGD0LPQsNGPINCz0YDRg9C/0L/QsFxyXG5cclxuICAgIC8vXCLQvtGC0LbQuNC80LDQtdC8INCz0LDQu9C+0YfQutGDXCJcclxuICAgIG90aGVyR3JvdXBBbHRlcm5hdGl2ZXNMaXN0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgIGNvbnN0IGFsdENvbnRyb2wgPSB0aGlzLmFuc3dlck1TRm9ybS5jb250cm9scy5hbHRlcm5hdGl2ZUxpc3QuYXQoZGF0YS5pbmRleCk7XHJcbiAgICAgIGFsdENvbnRyb2wucGF0Y2hWYWx1ZShmYWxzZSwge2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLy/QtNC40LfQtdC50LHQu9C40YIg0LrQvtC90YLRgNC+0LvQuCDQtdGB0LvQuCDQstGL0LHRgNCw0LvQuCDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0LjQu9C4INC10L3QtdC50LHQu9C40YIg0LXRgdC70Lgg0LLRi9Cx0YDQsNC70Lgg0L3QtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LrQvtC70LjRh9C10YHRgtCy0L5cclxuICAjZGlzYWJsZUV4dHJhQ29udHJvbHMoY3VycmVudENvdW50Om51bWJlciwgbWF4Q291bnQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICAvL9C10YHQu9C4INCyINC90LDRgdGC0YDQvtC50LrQsNGFINCw0L3QutC10YLRiyDRg9C60LDQt9Cw0LvQuCDRh9GC0L4g0LzQsNC60YHQuNC80LDQu9GM0L3QvtC1INCy0L7Qt9C80L7QttC90L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQstGL0LHRgNCw0L3QvdGL0YUg0LDQu9GM0YLQtdGA0L3QsNGC0LjQsiA9IDAsINC90L4g0L3QuNGH0LXQs9C+INC60L7QvdGC0YDQvtC70LjRgNC+0LLQsNGC0Ywg0L3QtSDQvdCw0LTQvi5cclxuICAgIGlmIChtYXhDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuYWx0ZXJuYXRpdmVMaXN0KCkuZm9yRWFjaCgoXywgYWx0SW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgaXNEaXNhYmxlID0gY3VycmVudENvdW50ID49IG1heENvdW50O1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5hbnN3ZXJNU0Zvcm0uY29udHJvbHMuYWx0ZXJuYXRpdmVMaXN0LmF0KGFsdEluZGV4KTtcclxuICAgICAgaWYgKGlzRGlzYWJsZSkge1xyXG4gICAgICAgIC8v0L3QsNC00L4g0LTQuNC30LXQudCx0LvQuNGC0Ywg0YLQtSDQutC+0YLQvtGA0YvQtSDQvdC1INCy0YvQsdGA0LDQvdGLXHJcbiAgICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvL9C70LjQvNC40YLQsCDQvdC10YIsINC80L7QttC90L4g0LLRi9Cx0LjRgNCw0YLRjCDQstGB0LVcclxuICAgICAgICBjb250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJhbnN3ZXJNU0Zvcm1cIj5cclxuIDxkaXZcclxuICBjbGFzcz1cImNvbnRhaW5lci1tcy1zcy1hbHRlcm5hdGl2ZXNcIlxyXG4gIFt0cFN1cnZleUFsdGVybmF0aXZlc0NvbnRhaW5lcl0gPSBcInF1ZXN0aW9uKClcIlxyXG4gIFtjb250YWluZXJWaWV3TW9kZWxdPVwidmlld01vZGVsKClcIlxyXG4gIGZvcm1BcnJheU5hbWU9XCJhbHRlcm5hdGl2ZUxpc3RcIj5cclxuICBAZm9yIChhbHQgb2YgYW5zd2VyTVNGb3JtLmNvbnRyb2xzLmFsdGVybmF0aXZlTGlzdC5jb250cm9sczsgdHJhY2sgYWx0OyBsZXQgaW5keCA9ICRpbmRleCkge1xyXG4gICA8bWF0LWNoZWNrYm94XHJcbiAgICAjdGFibGV0X2FsdFxyXG4gICAgW2Zvcm1Db250cm9sXT1cImFsdFwiXHJcbiAgICBbc3R5bGUuZm9udC1zaXplLiVdPVwidmlld01vZGVsKCkgPT09IHZpZXdNb2RlbEUudm1UYWJsZXQgPyBxdWVzdGlvbigpLkFsdGVybmF0aXZlVGFibGV0Rm9udFNpemUgOiB1bmRlZmluZWRcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkFsdGVybmF0aXZlQ2xpY2suZW1pdChhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5WYWx1ZSlcIlxyXG4gICAgY2xhc3M9XCJhbHRlcm5hdGl2ZS1zcy1tcyB0cC1zdXJ2ZXktY2hlY2tib3hcIj5cclxuICAgIEBpZiAoYWx0ZXJuYXRpdmVMaXN0KClbaW5keF0uSXNNdXRlKSB7XHJcbiAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1pcy1tdXRlXCIgc3ZnSWNvbj1cImljb25Jc011dGVcIj48L21hdC1pY29uPlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jYXB0aW9uXCI+XHJcbiAgICAgQGlmIChhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5CYWNrR3JvdW5kLkltYWdlKSB7XHJcbiAgICAgIDxpbWcgYWx0PVwiYW5zd2VyIGxvZ29cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImFsdGVybmF0aXZlTGlzdCgpW2luZHhdLkJhY2tHcm91bmQuSW1hZ2VIZWlnaHQgPz8gcXVlc3Rpb24oKS5BbHRlcm5hdGl2ZUJhY2tncm91bmRJbWFnZUhlaWdodCA/PyAzMFwiIFtzcmNdPVwicmVwb3NpdG9yeVBhdGgoKSsnLycgKyBhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5CYWNrR3JvdW5kLkltYWdlXCIgaW1wb3J0YW5jZT1cImxvd1wiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgfVxyXG4gICAgIDxzcGFuIGNsYXNzPVwiYWx0ZXJuYXRpdmUtc3MtbXMtY2FwdGlvbiBzdXJ2ZXktb2JqZWN0LWNhcHRpb25cIiBbaW5uZXJIVE1MXT0gXCJhbHRlcm5hdGl2ZUxpc3QoKVtpbmR4XS5NdWx0aUxhbmdDYXB0aW9ucyB8IG11bHRpTGFuZ09iamVjdFRvSHRtbDpsYW5ndWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgIDwvbWF0LWNoZWNrYm94PlxyXG4gIH1cclxuIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19