@bnsights/bbsf-admin-portal 1.1.63 → 1.3.1
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/README.md +3 -1
- package/bnsights-bbsf-admin-portal-1.3.1.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/content/content.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/footer/footer.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/header/header.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/header/page-title/page-title.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/scripts-init/scripts-init.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/subheader/subheader.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/subheader/subheader.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.component.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.module.mjs +5 -5
- package/esm2022/lib/Pages/_layout/components/topbar/topbar.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +11 -6
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/change-password/change-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +5 -5
- package/esm2022/lib/Pages/anonymouslayout/verify-two-fa/verify-two-fa.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/auth-callback/auth-callback.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.component.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.module.mjs +5 -5
- package/esm2022/lib/Pages/authentication/authentication.routing.mjs +5 -5
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.component.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.module.mjs +5 -5
- package/esm2022/lib/Pages/configurations/configurations.routing.mjs +5 -5
- package/esm2022/lib/Pages/core/auth.module.mjs +5 -5
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +4 -4
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +4 -4
- package/esm2022/lib/Pages/core/authentication/auth.service.mjs +4 -4
- package/esm2022/lib/Pages/departments/department/department.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments.component.mjs +5 -5
- package/esm2022/lib/Pages/departments/departments.module.mjs +5 -5
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.module.mjs +5 -5
- package/esm2022/lib/Pages/documents/documents.routing.mjs +5 -5
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +5 -5
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +5 -5
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +5 -5
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-center.module.mjs +5 -5
- package/esm2022/lib/Pages/helpCenter/help-centers.component.mjs +5 -5
- package/esm2022/lib/Pages/home/filter-pipe.mjs +6 -5
- package/esm2022/lib/Pages/home/home.component.mjs +5 -5
- package/esm2022/lib/Pages/home/home.module.mjs +5 -5
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +5 -5
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +5 -5
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +5 -5
- package/esm2022/lib/Pages/jobs/jobs.module.mjs +5 -5
- package/esm2022/lib/Pages/license/license/license.component.mjs +5 -5
- package/esm2022/lib/Pages/license/license.module.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +5 -5
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +5 -5
- package/esm2022/lib/Pages/logs/log/log.component.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs.component.mjs +5 -5
- package/esm2022/lib/Pages/logs/logs.module.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups.component.mjs +5 -5
- package/esm2022/lib/Pages/lookups/lookups.module.mjs +5 -5
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +5 -5
- package/esm2022/lib/Pages/notifications/notifications.routing.mjs +5 -5
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +5 -5
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/add-organization/add-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/edit-organization/edit-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/list-organization/list-organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.component.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.module.mjs +5 -5
- package/esm2022/lib/Pages/organization/organization.routing.mjs +5 -5
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers.component.mjs +5 -5
- package/esm2022/lib/Pages/providers/providers.module.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays.component.mjs +5 -5
- package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +5 -5
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles.component.mjs +5 -5
- package/esm2022/lib/Pages/roles/roles.module.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors.component.mjs +5 -5
- package/esm2022/lib/Pages/sectors/sectors.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/Pipes/survey-date.pipe.mjs +6 -5
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ConfigurationsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ErrorService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/GlobalErrorHandler.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/HttpErrorInterceptor.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/data.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/organization.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/survey-question.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/survey.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/Services/userService.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/components/AdDirective.mjs +5 -4
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/no-results/no-results.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/components/survey-layout/survey-layout.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/config.service.mjs +4 -4
- package/esm2022/lib/Pages/shared/filter/filter.component.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/survey-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/modules/survey.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/shared.module.mjs +5 -5
- package/esm2022/lib/Pages/shared/stylesbundle.service.mjs +4 -4
- package/esm2022/lib/Pages/start/index/index.component.mjs +5 -5
- package/esm2022/lib/Pages/start/start-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/start/start.module.mjs +5 -5
- package/esm2022/lib/Pages/users/users.component.mjs +5 -5
- package/esm2022/lib/Pages/users/users.module.mjs +5 -5
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows-routing.module.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows.component.mjs +5 -5
- package/esm2022/lib/Pages/workflows/workflows.module.mjs +5 -5
- package/esm2022/lib/_metronic/core/services/layout-init.service.mjs +4 -4
- package/esm2022/lib/_metronic/core/services/layout.service.mjs +4 -4
- package/esm2022/lib/_metronic/core/services/page-info.service.mjs +4 -4
- package/esm2022/lib/masterlayout.component.mjs +5 -5
- package/esm2022/lib/masterlayout.module.mjs +5 -5
- package/esm2022/lib/masterlayout.routing.mjs +5 -5
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +802 -796
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +2 -0
- package/package.json +12 -12
|
@@ -666,12 +666,12 @@ export class EditQuestionComponent extends AppBaseComponent {
|
|
|
666
666
|
}
|
|
667
667
|
this.isEditFormChange = true;
|
|
668
668
|
}
|
|
669
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
670
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditQuestionComponent, selector: "app-edit-question", inputs: { pagingElement: "pagingElement", onSuccessEditHandler: "onSuccessEditHandler" }, viewQueries: [{ propertyName: "EditModal", first: true, predicate: ["EditModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #EditModal let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" *ngIf=\"!isViewOnly\">\r\n {{l(\"Edit_Question\")}}\r\n </h4>\r\n <h4 class=\"modal-title\" *ngIf=\"isViewOnly\">\r\n {{l(\"Details\")}}\r\n </h4>\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn btn-icon btn-sm\" (click)=\"modal.dismiss()\">\r\n <div class=\"svg-icon svg-icon-1 svg-icon-hover-brand\" [inlineSVG]=\"'/assets/images/modalclose.svg'\">\r\n </div>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <BBSF-Form [options]=\"editSurveyQuestionFormOptions\" (OnChange)=\"changeFormStatus($event)\">\r\n <BBSF-MultiLingualTextBox [options]=\"editQuestion\" [group]=\"editModelForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editDescription\" [group]=\"editModelForm\"></BBSF-MultiLingualTextArea>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"surveyAudienceTypeID==audienceType.Both\">\r\n <BBSF-DropdownList [options]=\"audience\" [group]=\"editModelForm\"></BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editQuestionType\" [group]=\"editModelForm\" (OnChange)=\"changeDataType($event)\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editSize\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isSelect\" >\r\n <BBSF-Toggleslide [options]=\"editAllowScore\" [group]=\"editModelForm\" (OnChange)=\"changeScoring($event)\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editIsActive\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6 col-sm-6\">\r\n <BBSF-Toggleslide [options]=\"editRequired\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMinLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMaxLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile||isImage\">\r\n <BBSF-TextBox [options]=\"editMaxFileSize\" *ngIf=\"isFile||isMultiFile||isImage\" [group]=\"editModelForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isMultiFile\">\r\n <BBSF-TextBox [options]=\"editMaxFileCount\" *ngIf=\"isMultiFile\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile\">\r\n <BBSF-DropdownList [options]=\"editFilesExtensions\" *ngIf=\"isFile||isMultiFile\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDisplayOrder\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div> -->\r\n\r\n <div *ngIf=\"isSelect\" class=\"question-type-option\">\r\n <h5>{{l('Options')}}</h5>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"card card-listing\" *ngFor=\"let Option of optionList;\" cdkDrag>\r\n <div class=\"card-header mb-0\">\r\n <div class=\"title fs-6 fw-bolder\">\r\n {{getCurrentFailOver(Option.Name)}}\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <span class=\"badge badge-square badge-dark me-4\" *ngIf=\"showScoreOption\" ngbTooltip=\"{{l('Score')}}\">\r\n {{Option.Score}}\r\n </span>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" *ngIf=\"Option.LinkedQuestions?.length>0\" ngbTooltip=\"{{getLinkedQuestions(Option)}}\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n </div>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" (click)=\"editOption(Option)\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Edit')}}\" [inlineSVG]=\"'/assets/images/Edit.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"badge badge-square badge-danger cursor-pointer\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Delete')}}\" [inlineSVG]=\"'/assets/images/Trash.svg'\"\r\n (click)=\"deleteOption(Option)\" apppreventdoubleclick>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"survey-alert-danger alert-danger\" *ngIf=\"errorMessage\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n <div class=\"fw-bold\"><div class=\"fs-7 text-danger\">{{errorMessage}}</div></div>\r\n </div>\r\n <div class=\"repeater-bg\" *ngIf=\"!isViewOnly\">\r\n <div class=\"row\">\r\n <BBSF-TextBox hidden=\"true\" [options]=\"editOptionId\" [group]=\"editOptionForm\">\r\n </BBSF-TextBox>\r\n\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"editNameOption\" [group]=\"editOptionForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editOptionLinkedQuestions\" [group]=\"editOptionForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-TextBox [options]=\"displayOrderOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n <BBSF-TextBox [options]=\"idOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"showScoreOption\">\r\n <BBSF-TextBox [options]=\"scoreNumber\" [group]=\"editOptionForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n </div>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"!isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Add\")}}</button>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Edit\")}}</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"modal-footer pb-0 m-0\" >\r\n <button type=\"button\" class=\"btn btn-sm btn-light\" (click)=\"modal.dismiss()\">\r\n {{l(\"Cancel\")}}\r\n </button>\r\n <button appPreventDoubleClick type=\"submit\" [disabled]=\"!isEditFormChange\" *ngIf=\"!isViewOnly\" class=\"btn btn-sm btn-brand\">{{l(\"Save\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i3.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i3.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "directive", type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
|
|
669
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EditQuestionComponent, deps: [{ token: i0.Injector }, { token: i1.SurveyQuestionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
670
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: EditQuestionComponent, selector: "app-edit-question", inputs: { pagingElement: "pagingElement", onSuccessEditHandler: "onSuccessEditHandler" }, viewQueries: [{ propertyName: "EditModal", first: true, predicate: ["EditModal"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #EditModal let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" *ngIf=\"!isViewOnly\">\r\n {{l(\"Edit_Question\")}}\r\n </h4>\r\n <h4 class=\"modal-title\" *ngIf=\"isViewOnly\">\r\n {{l(\"Details\")}}\r\n </h4>\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn btn-icon btn-sm\" (click)=\"modal.dismiss()\">\r\n <div class=\"svg-icon svg-icon-1 svg-icon-hover-brand\" [inlineSVG]=\"'/assets/images/modalclose.svg'\">\r\n </div>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <BBSF-Form [options]=\"editSurveyQuestionFormOptions\" (OnChange)=\"changeFormStatus($event)\">\r\n <BBSF-MultiLingualTextBox [options]=\"editQuestion\" [group]=\"editModelForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editDescription\" [group]=\"editModelForm\"></BBSF-MultiLingualTextArea>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"surveyAudienceTypeID==audienceType.Both\">\r\n <BBSF-DropdownList [options]=\"audience\" [group]=\"editModelForm\"></BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editQuestionType\" [group]=\"editModelForm\" (OnChange)=\"changeDataType($event)\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editSize\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isSelect\" >\r\n <BBSF-Toggleslide [options]=\"editAllowScore\" [group]=\"editModelForm\" (OnChange)=\"changeScoring($event)\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editIsActive\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6 col-sm-6\">\r\n <BBSF-Toggleslide [options]=\"editRequired\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMinLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMaxLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile||isImage\">\r\n <BBSF-TextBox [options]=\"editMaxFileSize\" *ngIf=\"isFile||isMultiFile||isImage\" [group]=\"editModelForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isMultiFile\">\r\n <BBSF-TextBox [options]=\"editMaxFileCount\" *ngIf=\"isMultiFile\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile\">\r\n <BBSF-DropdownList [options]=\"editFilesExtensions\" *ngIf=\"isFile||isMultiFile\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDisplayOrder\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div> -->\r\n\r\n <div *ngIf=\"isSelect\" class=\"question-type-option\">\r\n <h5>{{l('Options')}}</h5>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"card card-listing\" *ngFor=\"let Option of optionList;\" cdkDrag>\r\n <div class=\"card-header mb-0\">\r\n <div class=\"title fs-6 fw-bolder\">\r\n {{getCurrentFailOver(Option.Name)}}\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <span class=\"badge badge-square badge-dark me-4\" *ngIf=\"showScoreOption\" ngbTooltip=\"{{l('Score')}}\">\r\n {{Option.Score}}\r\n </span>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" *ngIf=\"Option.LinkedQuestions?.length>0\" ngbTooltip=\"{{getLinkedQuestions(Option)}}\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n </div>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" (click)=\"editOption(Option)\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Edit')}}\" [inlineSVG]=\"'/assets/images/Edit.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"badge badge-square badge-danger cursor-pointer\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Delete')}}\" [inlineSVG]=\"'/assets/images/Trash.svg'\"\r\n (click)=\"deleteOption(Option)\" apppreventdoubleclick>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"survey-alert-danger alert-danger\" *ngIf=\"errorMessage\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n <div class=\"fw-bold\"><div class=\"fs-7 text-danger\">{{errorMessage}}</div></div>\r\n </div>\r\n <div class=\"repeater-bg\" *ngIf=\"!isViewOnly\">\r\n <div class=\"row\">\r\n <BBSF-TextBox hidden=\"true\" [options]=\"editOptionId\" [group]=\"editOptionForm\">\r\n </BBSF-TextBox>\r\n\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"editNameOption\" [group]=\"editOptionForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editOptionLinkedQuestions\" [group]=\"editOptionForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-TextBox [options]=\"displayOrderOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n <BBSF-TextBox [options]=\"idOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"showScoreOption\">\r\n <BBSF-TextBox [options]=\"scoreNumber\" [group]=\"editOptionForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n </div>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"!isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Add\")}}</button>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Edit\")}}</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"modal-footer pb-0 m-0\" >\r\n <button type=\"button\" class=\"btn btn-sm btn-light\" (click)=\"modal.dismiss()\">\r\n {{l(\"Cancel\")}}\r\n </button>\r\n <button appPreventDoubleClick type=\"submit\" [disabled]=\"!isEditFormChange\" *ngIf=\"!isViewOnly\" class=\"btn btn-sm btn-brand\">{{l(\"Save\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i3.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i3.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i3.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "directive", type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] }); }
|
|
671
671
|
}
|
|
672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EditQuestionComponent, decorators: [{
|
|
673
673
|
type: Component,
|
|
674
|
-
args: [{ selector: 'app-edit-question', template: "<ng-template #EditModal let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" *ngIf=\"!isViewOnly\">\r\n {{l(\"Edit_Question\")}}\r\n </h4>\r\n <h4 class=\"modal-title\" *ngIf=\"isViewOnly\">\r\n {{l(\"Details\")}}\r\n </h4>\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn btn-icon btn-sm\" (click)=\"modal.dismiss()\">\r\n <div class=\"svg-icon svg-icon-1 svg-icon-hover-brand\" [inlineSVG]=\"'/assets/images/modalclose.svg'\">\r\n </div>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <BBSF-Form [options]=\"editSurveyQuestionFormOptions\" (OnChange)=\"changeFormStatus($event)\">\r\n <BBSF-MultiLingualTextBox [options]=\"editQuestion\" [group]=\"editModelForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editDescription\" [group]=\"editModelForm\"></BBSF-MultiLingualTextArea>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"surveyAudienceTypeID==audienceType.Both\">\r\n <BBSF-DropdownList [options]=\"audience\" [group]=\"editModelForm\"></BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editQuestionType\" [group]=\"editModelForm\" (OnChange)=\"changeDataType($event)\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editSize\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isSelect\" >\r\n <BBSF-Toggleslide [options]=\"editAllowScore\" [group]=\"editModelForm\" (OnChange)=\"changeScoring($event)\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editIsActive\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6 col-sm-6\">\r\n <BBSF-Toggleslide [options]=\"editRequired\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMinLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMaxLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile||isImage\">\r\n <BBSF-TextBox [options]=\"editMaxFileSize\" *ngIf=\"isFile||isMultiFile||isImage\" [group]=\"editModelForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isMultiFile\">\r\n <BBSF-TextBox [options]=\"editMaxFileCount\" *ngIf=\"isMultiFile\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile\">\r\n <BBSF-DropdownList [options]=\"editFilesExtensions\" *ngIf=\"isFile||isMultiFile\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDisplayOrder\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div> -->\r\n\r\n <div *ngIf=\"isSelect\" class=\"question-type-option\">\r\n <h5>{{l('Options')}}</h5>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"card card-listing\" *ngFor=\"let Option of optionList;\" cdkDrag>\r\n <div class=\"card-header mb-0\">\r\n <div class=\"title fs-6 fw-bolder\">\r\n {{getCurrentFailOver(Option.Name)}}\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <span class=\"badge badge-square badge-dark me-4\" *ngIf=\"showScoreOption\" ngbTooltip=\"{{l('Score')}}\">\r\n {{Option.Score}}\r\n </span>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" *ngIf=\"Option.LinkedQuestions?.length>0\" ngbTooltip=\"{{getLinkedQuestions(Option)}}\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n </div>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" (click)=\"editOption(Option)\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Edit')}}\" [inlineSVG]=\"'/assets/images/Edit.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"badge badge-square badge-danger cursor-pointer\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Delete')}}\" [inlineSVG]=\"'/assets/images/Trash.svg'\"\r\n (click)=\"deleteOption(Option)\" apppreventdoubleclick>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"survey-alert-danger alert-danger\" *ngIf=\"errorMessage\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n <div class=\"fw-bold\"><div class=\"fs-7 text-danger\">{{errorMessage}}</div></div>\r\n </div>\r\n <div class=\"repeater-bg\" *ngIf=\"!isViewOnly\">\r\n <div class=\"row\">\r\n <BBSF-TextBox hidden=\"true\" [options]=\"editOptionId\" [group]=\"editOptionForm\">\r\n </BBSF-TextBox>\r\n\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"editNameOption\" [group]=\"editOptionForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editOptionLinkedQuestions\" [group]=\"editOptionForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-TextBox [options]=\"displayOrderOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n <BBSF-TextBox [options]=\"idOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"showScoreOption\">\r\n <BBSF-TextBox [options]=\"scoreNumber\" [group]=\"editOptionForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n </div>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"!isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Add\")}}</button>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Edit\")}}</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"modal-footer pb-0 m-0\" >\r\n <button type=\"button\" class=\"btn btn-sm btn-light\" (click)=\"modal.dismiss()\">\r\n {{l(\"Cancel\")}}\r\n </button>\r\n <button appPreventDoubleClick type=\"submit\" [disabled]=\"!isEditFormChange\" *ngIf=\"!isViewOnly\" class=\"btn btn-sm btn-brand\">{{l(\"Save\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n</ng-template>\r\n" }]
|
|
674
|
+
args: [{ selector: 'app-edit-question', standalone: false, template: "<ng-template #EditModal let-modal>\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\" *ngIf=\"!isViewOnly\">\r\n {{l(\"Edit_Question\")}}\r\n </h4>\r\n <h4 class=\"modal-title\" *ngIf=\"isViewOnly\">\r\n {{l(\"Details\")}}\r\n </h4>\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn btn-icon btn-sm\" (click)=\"modal.dismiss()\">\r\n <div class=\"svg-icon svg-icon-1 svg-icon-hover-brand\" [inlineSVG]=\"'/assets/images/modalclose.svg'\">\r\n </div>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <BBSF-Form [options]=\"editSurveyQuestionFormOptions\" (OnChange)=\"changeFormStatus($event)\">\r\n <BBSF-MultiLingualTextBox [options]=\"editQuestion\" [group]=\"editModelForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editDescription\" [group]=\"editModelForm\"></BBSF-MultiLingualTextArea>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"surveyAudienceTypeID==audienceType.Both\">\r\n <BBSF-DropdownList [options]=\"audience\" [group]=\"editModelForm\"></BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editQuestionType\" [group]=\"editModelForm\" (OnChange)=\"changeDataType($event)\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editSize\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isSelect\" >\r\n <BBSF-Toggleslide [options]=\"editAllowScore\" [group]=\"editModelForm\" (OnChange)=\"changeScoring($event)\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editIsActive\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6 col-sm-6\">\r\n <BBSF-Toggleslide [options]=\"editRequired\" [group]=\"editModelForm\"></BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMinLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isText||isNumber\">\r\n <BBSF-TextBox [options]=\"editMaxLength\" *ngIf=\"isText||isNumber\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile||isImage\">\r\n <BBSF-TextBox [options]=\"editMaxFileSize\" *ngIf=\"isFile||isMultiFile||isImage\" [group]=\"editModelForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isMultiFile\">\r\n <BBSF-TextBox [options]=\"editMaxFileCount\" *ngIf=\"isMultiFile\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"isFile||isMultiFile\">\r\n <BBSF-DropdownList [options]=\"editFilesExtensions\" *ngIf=\"isFile||isMultiFile\" [group]=\"editModelForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDisplayOrder\" [group]=\"editModelForm\"></BBSF-TextBox>\r\n </div>\r\n </div> -->\r\n\r\n <div *ngIf=\"isSelect\" class=\"question-type-option\">\r\n <h5>{{l('Options')}}</h5>\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"card card-listing\" *ngFor=\"let Option of optionList;\" cdkDrag>\r\n <div class=\"card-header mb-0\">\r\n <div class=\"title fs-6 fw-bolder\">\r\n {{getCurrentFailOver(Option.Name)}}\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <span class=\"badge badge-square badge-dark me-4\" *ngIf=\"showScoreOption\" ngbTooltip=\"{{l('Score')}}\">\r\n {{Option.Score}}\r\n </span>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" *ngIf=\"Option.LinkedQuestions?.length>0\" ngbTooltip=\"{{getLinkedQuestions(Option)}}\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n </div>\r\n\r\n <div class=\"badge badge-square badge-brand cursor-pointer me-4\" (click)=\"editOption(Option)\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Edit')}}\" [inlineSVG]=\"'/assets/images/Edit.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"badge badge-square badge-danger cursor-pointer\">\r\n <span class=\"svg-icon svg-icon-4 svg-icon-white\" ngbTooltip=\"{{l('Delete')}}\" [inlineSVG]=\"'/assets/images/Trash.svg'\"\r\n (click)=\"deleteOption(Option)\" apppreventdoubleclick>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"survey-alert-danger alert-danger\" *ngIf=\"errorMessage\">\r\n <span class=\"svg-icon svg-icon-2tx svg-icon-danger me-4\" [inlineSVG]=\"'/assets/images/info.svg'\">\r\n </span>\r\n <div class=\"fw-bold\"><div class=\"fs-7 text-danger\">{{errorMessage}}</div></div>\r\n </div>\r\n <div class=\"repeater-bg\" *ngIf=\"!isViewOnly\">\r\n <div class=\"row\">\r\n <BBSF-TextBox hidden=\"true\" [options]=\"editOptionId\" [group]=\"editOptionForm\">\r\n </BBSF-TextBox>\r\n\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"editNameOption\" [group]=\"editOptionForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editOptionLinkedQuestions\" [group]=\"editOptionForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-TextBox [options]=\"displayOrderOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n <BBSF-TextBox [options]=\"idOption\" [group]=\"editOptionForm\" hidden></BBSF-TextBox>\r\n\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"showScoreOption\">\r\n <BBSF-TextBox [options]=\"scoreNumber\" [group]=\"editOptionForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n </div>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"!isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Add\")}}</button>\r\n <button type=\"button\" (click)=\"addOption()\" *ngIf=\"isOptionInEditMode\" class=\"btn btn-sm btn-brand w-100\">{{l(\"Edit\")}}</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"modal-footer pb-0 m-0\" >\r\n <button type=\"button\" class=\"btn btn-sm btn-light\" (click)=\"modal.dismiss()\">\r\n {{l(\"Cancel\")}}\r\n </button>\r\n <button appPreventDoubleClick type=\"submit\" [disabled]=\"!isEditFormChange\" *ngIf=\"!isViewOnly\" class=\"btn btn-sm btn-brand\">{{l(\"Save\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n</ng-template>\r\n" }]
|
|
675
675
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.SurveyQuestionService }], propDecorators: { EditModal: [{
|
|
676
676
|
type: ViewChild,
|
|
677
677
|
args: ['EditModal', { static: false }]
|
|
@@ -680,4 +680,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
680
680
|
}], onSuccessEditHandler: [{
|
|
681
681
|
type: Input
|
|
682
682
|
}] } });
|
|
683
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1xdWVzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9lZGl0LXF1ZXN0aW9uL2VkaXQtcXVlc3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vZWRpdC1xdWVzdGlvbi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixXQUFXLEVBQ1gsU0FBUyxFQUNULDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7O0FBT2pHLE1BQU0sT0FBTyxx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SyxFQUFFO2dCQWdDaEMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFwcEJhc2VDb21wb25lbnQsXHJcbiAgQ29udHJvbExheW91dCxcclxuICBDdXN0b21WYWxpZGF0aW9uLFxyXG4gIERyb3Bkb3duT3B0aW9ucyxcclxuICBFbmdsaXNoQXJhYmljRFRPLFxyXG4gIEZvcmNlRGlyZWN0aW9uLFxyXG4gIEZvcm1PcHRpb25zLFxyXG4gIElucHV0VHlwZSxcclxuICBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMsXHJcbiAgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsXHJcbiAgUmFuZ2VOdW1iZXIsXHJcbiAgVGV4dEJveE9wdGlvbnMsXHJcbiAgVG9nZ2xlU2xpZGVPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpZW5jZVR5cGUsIFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRFRPIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktcXVlc3Rpb24nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uLW9wdGlvbic7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS1xdWVzdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWVkaXQtcXVlc3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHF1ZXN0aW9uVHlwZTogU3VydmV5T3B0aW9uVHlwZTtcclxuICBpc051bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTXVsdGlGaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNJbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgU2l6ZUxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGVkaXRNb2RlbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gIGVkaXRRdWVzdGlvbjogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdERlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZWRpdFF1ZXN0aW9uVHlwZTogRHJvcGRvd25PcHRpb25zO1xyXG4gIGF1ZGllbmNlOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdFJlcXVpcmVkOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdEFsbG93U2NvcmU6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBlZGl0SGFzU2VhcmNoOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdElzQWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdE1pbkxlbmd0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdE1heExlbmd0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdFJvd3NOdW1iZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRNYXhGaWxlU2l6ZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdE1heEZpbGVDb3VudDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdEZpbGVzRXh0ZW5zaW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRTaXplOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgaXNFZGl0Rm9ybUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG51bWJlclZhbGlkYXRpb246IEN1c3RvbVZhbGlkYXRpb24gPSBuZXcgQ3VzdG9tVmFsaWRhdGlvbigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBFZGl0TW9kYWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGVkaXRPcHRpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdE5hbWVPcHRpb246IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHNjb3JlTnVtYmVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBvcHRpb25MaXN0OiBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUT1tdID0gW107XHJcbiAgZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHNob3dTY29yZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dPcHRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRvdGFsU2NvcmU6IG51bWJlciA9IDA7XHJcbiAgbWFpbkZvcm1Db250cm9sczogYW55W107XHJcbiAgc3VydmV5SUQ6IHN0cmluZztcclxuICBlZGl0T3B0aW9uSWQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIHF1ZXN0aW9uSUQ6IGFueTtcclxuICBxdWVzdGlvbjogYW55O1xyXG4gIGVkaXREaXNwbGF5T3JkZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIHB1YmxpYyBhdWRpZW5jZVR5cGUgPSBBdWRpZW5jZVR5cGU7XHJcbiAgYXVkaWVuY2VUeXBlSUQ6IGFueTtcclxuICBzdXJ2ZXlBdWRpZW5jZVR5cGVJRDogYW55O1xyXG4gIGRpc3BsYXlPcmRlck9wdGlvbjogVGV4dEJveE9wdGlvbnM7XHJcbiAgaXNPcHRpb25JbkVkaXRNb2RlOiBib29sZWFuO1xyXG4gIFF1ZXN0aW9uczogYW55W107XHJcbiAgaXNWaWV3T25seTogYm9vbGVhbjtcclxuICBpZE9wdGlvbjogVGV4dEJveE9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHN1cnZleVF1ZXN0aW9uU2VydmljZTogU3VydmV5UXVlc3Rpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHBhZ2luZ0VsZW1lbnQ7XHJcbiAgQElucHV0KCkgb25TdWNjZXNzRWRpdEhhbmRsZXI7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IDEyOyBpbmRleCsrKSB7XHJcbiAgICAgIHZhciBpdGVtID0geyBrZXk6IGluZGV4ICsgMSwgdmFsdWU6IGAke2luZGV4ICsgMX1gIH07XHJcbiAgICAgIHRoaXMuU2l6ZUxpc3QucHVzaChpdGVtKTtcclxuICAgIH1cclxuICAgIHRoaXMubnVtYmVyVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkgPSAoXHJcbiAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxyXG4gICAgKTogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPT4ge1xyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXlswLTldKiQvKSkge1xyXG4gICAgICAgIHRoaXMubnVtYmVyVmFsaWRhdGlvbi5tYXNzYWdlID0gdGhpcy5sKCdJbnRlZ2VyTnVtYmVyVmFsaWRhdGlvbktleScpO1xyXG4gICAgICAgIHJldHVybiB7IGN1c3RvbWVyRXJyb3I6IHRydWUgfTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXlsrXT8oWy5dXFxkK3xcXGQrWy5dP1xcZCopJC8pKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWxpZGF0aW9uLm1hc3NhZ2UgPSB0aGlzLmwoJ1Bvc2l0aXZlTnVtYmVyVmFsaWRhdGlvbktleScpO1xyXG4gICAgICAgIHJldHVybiB7IGN1c3RvbWVyRXJyb3I6IHRydWUgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU2NvcmluZyh2YWx1ZSkge1xyXG4gICAgdGhpcy5zaG93U2NvcmVPcHRpb24gPSB2YWx1ZTtcclxuICAgIGlmICghdmFsdWUgJiYgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snU2NvcmUnXSkge1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydTY29yZSddLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10uY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1cGRhdGVMZW5ndGhWYWxpZGF0b3IobmFtZSwgbWF4LCBtaW4pIHtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1tuYW1lXTtcclxuICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICBjb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgbGV0IHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gICAgICB2YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1pbihtaW4pKTtcclxuICAgICAgdmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5tYXgobWF4KSk7XHJcbiAgICAgIHZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICBjb250cm9sLmFkZFZhbGlkYXRvcnModmFsaWRhdGlvblJ1bGVzKTtcclxuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEYXRhVHlwZShrZXkpIHtcclxuICAgIHRoaXMudXBkYXRlRm9ybVN0YXR1cyhrZXkpO1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlRleHQ6XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUsIDI1NSwgMSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUsIDI1NSwgMSk7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5udW1iZXJSYW5nZS50byA9IDI1NTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMjU1O1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpbGluZVRleHQ6XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUsIDQwMDAsIDEpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGVuZ3RoVmFsaWRhdG9yKHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lLCA0MDAwLCAxKTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLnRvID0gNDAwMDtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm51bWJlclJhbmdlLnRvID0gNDAwMDtcclxuICAgICAgICB0aGlzLmlzVGV4dCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc011bHRpRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUsIDEwMCwgMSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUsIDEwMCwgMSk7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5udW1iZXJSYW5nZS50byA9IDEwMDtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMTAwO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRmlsZTpcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc011bHRpRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZTpcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZTpcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0OlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b246XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGFuZ2VGb3JtU3RhdHVzKHZhbHVlKSB7XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGVkaXRNb2RhbCA9IChpZCwgc3VydmV5QXVkaWVuY2VUeXBlSUQsIGlzVmlld09ubHkgPSBmYWxzZSkgPT4ge1xyXG4gICAgdGhpcy5pc1ZpZXdPbmx5ID0gaXNWaWV3T25seTtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc051bWJlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgIHRoaXMub3B0aW9uTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgdGhpcy5xdWVzdGlvbklEID0gaWQ7XHJcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5nZXQoaWQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGxldCByZXN1bHQgPSByZXMgYXMgYW55O1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uID0gcmVzdWx0LnF1ZXN0aW9uO1xyXG4gICAgICB0aGlzLlF1ZXN0aW9ucyA9IHJlc3VsdC5xdWVzdGlvbnM7XHJcbiAgICAgIHRoaXMuc3VydmV5SUQgPSB0aGlzLnF1ZXN0aW9uLnN1cnZleUlEO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlVHlwZUlEID0gdGhpcy5xdWVzdGlvbi5hdWRpZW5jZUl0ZW1JRDtcclxuICAgICAgdGhpcy5zdXJ2ZXlBdWRpZW5jZVR5cGVJRCA9IHN1cnZleUF1ZGllbmNlVHlwZUlEO1xyXG4gICAgICB0aGlzLmVkaXRNb2RlbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuZWRpdE1vZGVsRm9ybTtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TW9kZWw7XHJcbiAgICAgIHRoaXMuZWRpdFN1cnZleVF1ZXN0aW9uRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID1cclxuICAgICAgICB0aGlzLmdldEVkaXRGdW5jdGlvbjtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcbiAgICAgIHRoaXMuZWRpdFN1cnZleVF1ZXN0aW9uRm9ybU9wdGlvbnMub25TdWNjZXNzSGFuZGxlciA9XHJcbiAgICAgICAgdGhpcy5vblN1Y2Nlc3NFZGl0SGFuZGxlcjtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5kaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICBsZXQgdGV4dCA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIHRleHQuYXJhYmljID0gdGhpcy5xdWVzdGlvbi50ZXh0LmFyYWJpYztcclxuICAgICAgdGV4dC5lbmdsaXNoID0gdGhpcy5xdWVzdGlvbi50ZXh0LmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5uYW1lID0gJ1RleHQnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5hcmFiaWNMYWJlbEtleSA9ICdRdWVzdGlvbkluQXJhYmljJztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24uZW5nbGlzaExhYmVsS2V5ID0gJ1F1ZXN0aW9uSW5FbmdsaXNoJztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24uaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLm1heExlbmd0aCA9IDQwMDA7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLmxhbmd1YWdlTW9kZSA9IHRoaXMuZ2V0TGFuZ3VhZ2VNb2RlVmFsdWUoKTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24udmFsdWUgPSB0ZXh0O1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5uYW1lID0gJ0Rlc2NyaXB0aW9uJztcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uYXJhYmljTGFiZWxLZXkgPSAnRGVzY3JpcHRpb25JbkFyYWJpYyc7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmVuZ2xpc2hMYWJlbEtleSA9ICdEZXNjcmlwdGlvbkluRW5nbGlzaCc7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24ubWF4TGVuZ3RoID0gMjUwO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5yb3dzID0gMjtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uYXJhYmljTGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubChcclxuICAgICAgICAnUXVlc3Rpb25EZXNjcmlwdGlvbkhpbnRBcmFiaWMnXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmVuZ2xpc2hMYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKFxyXG4gICAgICAgICdRdWVzdGlvbkRlc2NyaXB0aW9uSGludEVuZ2xpc2gnXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24ubGFuZ3VhZ2VNb2RlID0gdGhpcy5nZXRMYW5ndWFnZU1vZGVWYWx1ZSgpO1xyXG4gICAgICBsZXQgZGVzY3JpcHRpb24gPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICBkZXNjcmlwdGlvbi5hcmFiaWMgPSB0aGlzLnF1ZXN0aW9uLmRlc2NyaXB0aW9uLmFyYWJpYztcclxuICAgICAgZGVzY3JpcHRpb24uZW5nbGlzaCA9IHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24udmFsdWUgPSBkZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLm5hbWUgPSAnUXVlc3Rpb25UeXBlSXRlbUlEJztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmxhYmVsS2V5ID0gJ1Byb3BlcnR5VHlwZSc7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmRhdGFTb3VyY2UgPSByZXN1bHQub3B0aW9uVHlwZXM7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucXVlc3Rpb24ucXVlc3Rpb25UeXBlSXRlbUlEO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuYXVkaWVuY2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UubmFtZSA9ICdBdWRpZW5jZUl0ZW1JRCc7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UubGFiZWxLZXkgPSAnQXVkaWVuY2UnO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgdGhpcy5hdWRpZW5jZS5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLmRhdGFTb3VyY2UgPSByZXN1bHQuYXVkaWVuY2VzO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnF1ZXN0aW9uLmF1ZGllbmNlSXRlbUlEO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0F1ZGllbmNlRGVzY3JpcHRpb25IaW50Jyk7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRTaXplID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRTaXplLm5hbWUgPSAnU2l6ZSc7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUubGFiZWxLZXkgPSAnU2l6ZSc7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRTaXplLmRhdGFTb3VyY2UgPSB0aGlzLlNpemVMaXN0O1xyXG4gICAgICB0aGlzLmVkaXRTaXplLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucXVlc3Rpb24ub3B0aW9ucy5zaXplO1xyXG4gICAgICB0aGlzLmVkaXRTaXplLm5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG4gICAgICB0aGlzLmVkaXRTaXplLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFJlcXVpcmVkLm5hbWUgPSAnSXNSZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZWRpdFJlcXVpcmVkLmxhYmVsS2V5ID0gJ0lzUmVxdWlyZWQnO1xyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZC52YWx1ZSA9IHRoaXMucXVlc3Rpb24uaXNSZXF1aXJlZDtcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnUmVxdWlyZWREZXNjcmlwdGlvbkhpbnQnKTtcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLm5hbWUgPSAnSXNBbGxvd1Njb3JpbmcnO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmxhYmVsS2V5ID0gJ0FsbG93U2NvcmUnO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5pc0FsbG93U2NvcmluZztcclxuICAgICAgdGhpcy5lZGl0QWxsb3dTY29yZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdBbGxvd1Njb3JlRGVzY3JpcHRpb24nKTtcclxuICAgICAgdGhpcy5lZGl0QWxsb3dTY29yZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdBbGxvd1Njb3JlRGVzY3JpcHRpb24nKTtcclxuICAgICAgdGhpcy5lZGl0QWxsb3dTY29yZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdEhhc1NlYXJjaCA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoLm5hbWUgPSAnSGFzU2VhcmNoJztcclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoLmxhYmVsS2V5ID0gJ0hhc1NlYXJjaCc7XHJcbiAgICAgIHRoaXMuZWRpdEhhc1NlYXJjaC5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRJc0FjdGl2ZS5uYW1lID0gJ0lzVmlzaWJsZSc7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLmxhYmVsS2V5ID0gJ1Zpc2libGUnO1xyXG4gICAgICB0aGlzLmVkaXRJc0FjdGl2ZS52YWx1ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5pc1Zpc2libGU7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ1Zpc2libGVEZXNjcmlwdGlvbkhpbnQnKTtcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLk5hbWUgPSBcIkRpc3BsYXlPcmRlclwiO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuTGFiZWxLZXkgPSBcIkRpc3BsYXlPcmRlclwiO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5OdW1iZXJSYW5nZSA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuTnVtYmVyUmFuZ2UuRnJvbSA9IDE7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5UeXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLlZhbHVlID0gdGhpcy5xdWVzdGlvbi5kaXNwbGF5T3JkZXI7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5DdXN0b21WYWxpZGF0aW9uID0gW3RoaXMubnVtYmVyVmFsaWRhdGlvbl07XHJcblxyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUgPSAnTWF4TGVuZ3RoJztcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLmxhYmVsS2V5ID0gJ01heExlbmd0aCc7XHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnTWF4SGludCcpO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lID0gJ01pbkxlbmd0aCc7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5sYWJlbEtleSA9ICdNaW5MZW5ndGgnO1xyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGguaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZSA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGgudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC52YWx1ZSA9IHRoaXMucXVlc3Rpb24ub3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ01pbkhpbnQnKTtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIubmFtZSA9ICdSb3dzJztcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5sYWJlbEtleSA9ICdSb3dzJztcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5udW1iZXJSYW5nZSA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLm51bWJlclJhbmdlLnRvID0gMjA7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLm9wdGlvbnMucm93cztcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUgPSAnTWF4RmlsZVNpemVJbk1CJztcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubGFiZWxLZXkgPSAnTWF4RmlsZVNpemVJbk1CJztcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5udW1iZXJSYW5nZS50byA9IDEwMDtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1heEZpbGVTaXplSW5NQjtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUgPSAnTWF4RmlsZUNvdW50JztcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmxhYmVsS2V5ID0gJ01heEZpbGVzQ291bnQnO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5udW1iZXJSYW5nZSA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5udW1iZXJSYW5nZS50byA9IDUwO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdNYXhGaWxlQ291bnRIaW50Jyk7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC52YWx1ZSA9IHRoaXMucXVlc3Rpb24ub3B0aW9ucy5tYXhGaWxlQ291bnQ7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5jdXN0b21WYWxpZGF0aW9uID0gW3RoaXMubnVtYmVyVmFsaWRhdGlvbl07XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIGxldCBGaWxlc0V4dGVuc2lvblJlc3VsdCA9IHRoaXMucXVlc3Rpb24ub3B0aW9uc1xyXG4gICAgICAgIC5hbGxvd2VkRXh0ZW5zaW9ucyBhcyBzdHJpbmdbXTtcclxuICAgICAgbGV0IEZpbGVzRXh0ZW5zaW9ucyA9IEZpbGVzRXh0ZW5zaW9uUmVzdWx0XHJcbiAgICAgICAgPyByZXN1bHQuZXh0ZW5zaW9uc1xyXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gRmlsZXNFeHRlbnNpb25SZXN1bHQuaW5jbHVkZXMoaXRlbS5rZXkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVxyXG4gICAgICAgIDogW107XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUgPSAnQWxsb3dlZEV4dGVuc2lvbnMnO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubGFiZWxLZXkgPSAnRXh0ZW5zaW9ucyc7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLmRhdGFTb3VyY2UgPSByZXN1bHQuZXh0ZW5zaW9ucztcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuc2VsZWN0ZWRJdGVtcyA9IEZpbGVzRXh0ZW5zaW9ucztcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0V4dGVuc2lvbkhpbnQnKTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uYWRkVmFsaWRhdG9ycyh0aGlzLmZyb21UbyhcIk1pbkxlbmd0aFwiLCBcIk1heExlbmd0aFwiKSk7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZURhdGFUeXBlKHRoaXMucXVlc3Rpb24ucXVlc3Rpb25UeXBlSXRlbUlEKTtcclxuICAgICAgdGhpcy5jaGFuZ2VTY29yaW5nKHRoaXMucXVlc3Rpb24uaXNBbGxvd1Njb3JpbmcpO1xyXG5cclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQubmFtZSA9ICdJZCc7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbklkLmhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbklkLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbi5uYW1lID0gJ05hbWVPcHRpb24nO1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLmFyYWJpY0xhYmVsS2V5ID0gJ05hbWVJbkFyYWJpYyc7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24uZW5nbGlzaExhYmVsS2V5ID0gJ05hbWVJbkVuZ2xpc2gnO1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLm1heExlbmd0aCA9IDIyNTtcclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbi5sYW5ndWFnZU1vZGUgPSB0aGlzLmdldExhbmd1YWdlTW9kZVZhbHVlKCk7XHJcblxyXG4gICAgICB0aGlzLnNjb3JlTnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIubmFtZSA9ICdTY29yZSc7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIubGFiZWxLZXkgPSAnU2NvcmUnO1xyXG4gICAgICB0aGlzLnNjb3JlTnVtYmVyLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNjb3JlTnVtYmVyLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgcmFuZ2VOdW1iZXIudG8gPSAxMDAwMDAwO1xyXG4gICAgICByYW5nZU51bWJlci5mcm9tID0gMTtcclxuICAgICAgdGhpcy5zY29yZU51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG5cclxuICAgICAgdGhpcy5kaXNwbGF5T3JkZXJPcHRpb24gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5kaXNwbGF5T3JkZXJPcHRpb24ubmFtZSA9ICdEaXNwbGF5T3JkZXInO1xyXG5cclxuICAgICAgdGhpcy5pZE9wdGlvbiA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmlkT3B0aW9uLm5hbWUgPSAnSWRPcHRpb24nO1xyXG5cclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMubmFtZSA9ICdMaW5rZWRRdWVzdGlvbnMnO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMubGFiZWxLZXkgPSAnTGlua2VkUXVlc3Rpb25zJztcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zLmRhdGFTb3VyY2UgPSByZXN1bHQucXVlc3Rpb25zO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMuc2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5ub3RGb3VuZFRleHQgPSB0aGlzLmwoJ05vUmVzdWx0Rm91bmQnKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoXHJcbiAgICAgICAgJ0xpbmtlZFF1ZXN0aW9uRGVzY3JpcHRpb25IaW50J1xyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24ucXVlc3Rpb25PcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKFxyXG4gICAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICAgIGluZGV4IDwgdGhpcy5xdWVzdGlvbi5xdWVzdGlvbk9wdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgICAgaW5kZXgrK1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucXVlc3Rpb24ucXVlc3Rpb25PcHRpb25zW2luZGV4XTtcclxuICAgICAgICAgIHRoaXMub3B0aW9uTGlzdC5wdXNoKG5ldyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTyhlbGVtZW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9wZW5Nb2RhbCh0aGlzLkVkaXRNb2RhbCwgJ3hsJyk7XHJcbiAgICAgIHRoaXMuc3RvcEJsb2NrVUkoKTtcclxuICAgIH0pO1xyXG4gIH07XHJcbiAgZ2V0RWRpdE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgcmVzdWx0T3B0aW9uTW9kZWwgPSB0aGlzLmVkaXRPcHRpb25Gb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCByZXN1bHRNb2RlbCA9IHRoaXMuZWRpdE1vZGVsRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgKHJlc3VsdE9wdGlvbk1vZGVsLk5hbWVPcHRpb24uQXJhYmljICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgcmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5BcmFiaWMgIT0gJycpIHx8XHJcbiAgICAgICAgKHJlc3VsdE9wdGlvbk1vZGVsLk5hbWVPcHRpb24uRW5nbGlzaCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgIHJlc3VsdE9wdGlvbk1vZGVsLk5hbWVPcHRpb24uRW5nbGlzaCAhPSAnJykgfHxcclxuICAgICAgICAocmVzdWx0T3B0aW9uTW9kZWwuU2NvcmUgIT0gdW5kZWZpbmVkICYmIHJlc3VsdE9wdGlvbk1vZGVsLlNjb3JlID4gMClcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmwoJ09wdGlvblBlbmRpbmdEYXRhRXJyb3JNZXNzYWdlJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5vcHRpb25MaXN0Lmxlbmd0aCA9PSAwICYmIHRoaXMuaXNTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubCgnT3B0aW9uRXJyb3JNZXNzYWdlJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICBsZXQgZWRpdE1vZGVsOiBTdXJ2ZXlRdWVzdGlvbkRUTyA9IG5ldyBTdXJ2ZXlRdWVzdGlvbkRUTygpO1xyXG4gICAgZWRpdE1vZGVsLklEX0dVSUQgPSB0aGlzLnF1ZXN0aW9uSUQ7XHJcbiAgICBlZGl0TW9kZWwuU3VydmV5SUQgPSB0aGlzLnN1cnZleUlEO1xyXG4gICAgLy8gZWRpdE1vZGVsLkRpc3BsYXlPcmRlciA9IHJlc3VsdE1vZGVsLkRpc3BsYXlPcmRlcjtcclxuICAgIGVkaXRNb2RlbC5UZXh0LmFyYWJpYyA9IHJlc3VsdE1vZGVsLlRleHQuQXJhYmljO1xyXG4gICAgZWRpdE1vZGVsLlRleHQuZW5nbGlzaCA9IHJlc3VsdE1vZGVsLlRleHQuRW5nbGlzaDtcclxuICAgIGVkaXRNb2RlbC5EZXNjcmlwdGlvbi5hcmFiaWMgPSByZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWM7XHJcbiAgICBlZGl0TW9kZWwuRGVzY3JpcHRpb24uZW5nbGlzaCA9IHJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkVuZ2xpc2g7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5EZXNjcmlwdGlvbi5hcmFiaWMgPSByZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWM7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5EZXNjcmlwdGlvbi5lbmdsaXNoID0gcmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIGlmICh0aGlzLnN1cnZleUF1ZGllbmNlVHlwZUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKVxyXG4gICAgICBlZGl0TW9kZWwuQXVkaWVuY2VJdGVtSUQgPSByZXN1bHRNb2RlbC5BdWRpZW5jZUl0ZW1JRDtcclxuICAgIGVsc2UgZWRpdE1vZGVsLkF1ZGllbmNlSXRlbUlEID0gdGhpcy5hdWRpZW5jZVR5cGVJRDtcclxuICAgIGVkaXRNb2RlbC5RdWVzdGlvblR5cGVJdGVtSUQgPSB0aGlzLnF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUl0ZW1JRDtcclxuICAgIGVkaXRNb2RlbC5Jc0FsbG93U2NvcmluZyA9IHJlc3VsdE1vZGVsLklzQWxsb3dTY29yaW5nO1xyXG4gICAgZWRpdE1vZGVsLk9wdGlvbnMuU2l6ZSA9IHJlc3VsdE1vZGVsLlNpemU7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5Jc1JlcXVpcmVkID0gcmVzdWx0TW9kZWwuSXNSZXF1aXJlZDtcclxuICAgIGVkaXRNb2RlbC5Jc1JlcXVpcmVkID0gcmVzdWx0TW9kZWwuSXNSZXF1aXJlZDtcclxuICAgIGVkaXRNb2RlbC5Jc1Zpc2libGUgPSByZXN1bHRNb2RlbC5Jc1Zpc2libGU7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5IYXNTZWFyY2ggPSByZXN1bHRNb2RlbC5IYXNTZWFyY2g7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNUZXh0IHx8IHRoaXMuaXNOdW1iZXIpIHtcclxuICAgICAgZWRpdE1vZGVsLk9wdGlvbnMuTWluTGVuZ3RoID0gcmVzdWx0TW9kZWwuTWluTGVuZ3RoO1xyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5NYXhMZW5ndGggPSByZXN1bHRNb2RlbC5NYXhMZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNGaWxlIHx8IHRoaXMuaXNNdWx0aUZpbGUgfHwgdGhpcy5pc0ltYWdlKVxyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5NYXhGaWxlU2l6ZUluTUIgPSByZXN1bHRNb2RlbC5NYXhGaWxlU2l6ZUluTUI7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNNdWx0aUZpbGUpXHJcbiAgICAgIGVkaXRNb2RlbC5PcHRpb25zLk1heEZpbGVDb3VudCA9IHJlc3VsdE1vZGVsLk1heEZpbGVDb3VudDtcclxuXHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZSB8fCB0aGlzLmlzRmlsZSlcclxuICAgICAgZWRpdE1vZGVsLk9wdGlvbnMuQWxsb3dlZEV4dGVuc2lvbnMgPSByZXN1bHRNb2RlbC5BbGxvd2VkRXh0ZW5zaW9ucztcclxuXHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdCkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRoaXMub3B0aW9uTGlzdFtpbmRleF0uRGlzcGxheU9yZGVyID0gaW5kZXggKyAxO1xyXG4gICAgICAgIGVkaXRNb2RlbC5RdWVzdGlvbk9wdGlvbnMgPSB0aGlzLm9wdGlvbkxpc3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwYXJhbUFycmF5LnB1c2goZWRpdE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcbiAgZ2V0RWRpdEZ1bmN0aW9uID0gKGVkaXRNb2RhbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBpZiAoIXRoaXMuZXJyb3JNZXNzYWdlKSByZXR1cm4gdGhpcy5zdXJ2ZXlRdWVzdGlvblNlcnZpY2UuZWRpdChlZGl0TW9kYWwpO1xyXG4gIH07XHJcbiAgZ2V0TGlua2VkUXVlc3Rpb25zKG9wdGlvbjogU3VydmV5UXVlc3Rpb25PcHRpb25EVE8pIHtcclxuICAgIHJldHVybiB0aGlzLlF1ZXN0aW9ucy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgIG9wdGlvbi5MaW5rZWRRdWVzdGlvbnMuaW5jbHVkZXMoaXRlbS5rZXkpXHJcbiAgICApLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBhZGRPcHRpb24oKSB7XHJcbiAgICB0aGlzLnRvdGFsU2NvcmUgPSAwO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5lZGl0T3B0aW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCByZXN1bHRNb2RlbCA9IHRoaXMuZWRpdE9wdGlvbkZvcm0udmFsdWUgYXMgYW55O1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbkxpc3QubGVuZ3RoID49IDEgJiYgdGhpcy5zaG93U2NvcmVPcHRpb24pIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9uTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBsZXQgZWxlbWVudCA9IHRoaXMub3B0aW9uTGlzdFtpbmRleF0uU2NvcmU7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgPiAxMDAwMDAwKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubCgnTWF4T3B0aW9uU2NvcmVFcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVsZW1lbnQgPCAxKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubCgnTWluT3B0aW9uU2NvcmVFcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIGxldCBvcHRpb24gPSBuZXcgU3VydmV5UXVlc3Rpb25PcHRpb25EVE8oKTtcclxuICAgIG9wdGlvbi5OYW1lLmFyYWJpYyA9IHJlc3VsdE1vZGVsLk5hbWVPcHRpb24uQXJhYmljO1xyXG4gICAgb3B0aW9uLk5hbWUuZW5nbGlzaCA9IHJlc3VsdE1vZGVsLk5hbWVPcHRpb24uRW5nbGlzaDtcclxuICAgIG9wdGlvbi5JRF9HVUlEID0gcmVzdWx0TW9kZWwuSWRPcHRpb247XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmIChyZXN1bHRNb2RlbC5EaXNwbGF5T3JkZXIpXHJcbiAgICAgIG9wdGlvbi5EaXNwbGF5T3JkZXIgPSByZXN1bHRNb2RlbC5EaXNwbGF5T3JkZXI7XHJcbiAgICBlbHNlIG9wdGlvbi5EaXNwbGF5T3JkZXIgPSB0aGlzLm9wdGlvbkxpc3QubGVuZ3RoICsgMTtcclxuXHJcbiAgICBvcHRpb24uTGlua2VkUXVlc3Rpb25zID0gcmVzdWx0TW9kZWwuTGlua2VkUXVlc3Rpb25zO1xyXG4gICAgaWYgKHRoaXMuc2hvd1Njb3JlT3B0aW9uKVxyXG4gICAgICBvcHRpb24uU2NvcmUgPSBOdW1iZXIucGFyc2VGbG9hdChyZXN1bHRNb2RlbC5TY29yZSk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydOYW1lT3B0aW9uJ10ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0lkT3B0aW9uJ10ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0Rpc3BsYXlPcmRlciddLnJlc2V0KCk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydMaW5rZWRRdWVzdGlvbnMnXS5yZXNldCgpO1xyXG4gICAgaWYgKHRoaXMuc2hvd1Njb3JlT3B0aW9uKSB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydTY29yZSddLnJlc2V0KCk7XHJcbiAgICB0aGlzLm9wdGlvbkxpc3Quc3BsaWNlKG9wdGlvbi5EaXNwbGF5T3JkZXIgLSAxLCAwLCBvcHRpb24pO1xyXG4gICAgdGhpcy5pc0VkaXRGb3JtQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNPcHRpb25JbkVkaXRNb2RlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZWxldGVPcHRpb24ob3B0aW9uKSB7XHJcbiAgICB0aGlzLm9wdGlvbkxpc3QgPSB0aGlzLm9wdGlvbkxpc3QuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9IG9wdGlvbik7XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZWRpdE9wdGlvbihvcHRpb246IFN1cnZleVF1ZXN0aW9uT3B0aW9uRFRPKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmIChcclxuICAgICAgKHRoaXMuZWRpdE9wdGlvbkZvcm0udG91Y2hlZCA9PSB0cnVlICYmIHRoaXMuZWRpdE9wdGlvbkZvcm0udmFsaWQpIHx8XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0udG91Y2hlZCA9PSBmYWxzZVxyXG4gICAgKVxyXG4gICAgICB0aGlzLmFkZE9wdGlvbigpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgbmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICBuYW1lLmFyYWJpYyA9IG9wdGlvbi5OYW1lLmFyYWJpYyA/PyBudWxsO1xyXG4gICAgbmFtZS5lbmdsaXNoID0gb3B0aW9uLk5hbWUuZW5nbGlzaCA/PyBudWxsO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snTmFtZU9wdGlvbiddLnNldFZhbHVlKG5hbWUpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snSWRPcHRpb24nXS5zZXRWYWx1ZShvcHRpb24uSURfR1VJRCk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydEaXNwbGF5T3JkZXInXS5zZXRWYWx1ZShvcHRpb24uRGlzcGxheU9yZGVyKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0xpbmtlZFF1ZXN0aW9ucyddLnNldFZhbHVlKFxyXG4gICAgICBvcHRpb24uTGlua2VkUXVlc3Rpb25zXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc2hvd1Njb3JlT3B0aW9uKVxyXG4gICAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydTY29yZSddLnNldFZhbHVlKG9wdGlvbi5TY29yZSk7XHJcbiAgICB0aGlzLm9wdGlvbkxpc3QgPSB0aGlzLm9wdGlvbkxpc3QuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9IG9wdGlvbik7XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5pc09wdGlvbkluRWRpdE1vZGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnJvbVRvKGZyb21GaWVsZDogc3RyaW5nLCB0b0ZpZWxkOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuOyB9IHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IGZyb21EYXRlID0gZm9ybUdyb3VwLmdldChmcm9tRmllbGQpO1xyXG4gICAgICBjb25zdCB0b0RhdGUgPSBmb3JtR3JvdXAuZ2V0KHRvRmllbGQpO1xyXG4gICAgICBpZiAoZnJvbURhdGUgIT09IG51bGwgJiYgdG9EYXRlICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJvbURhdGUudmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICAgIHRvRGF0ZS52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQoZnJvbURhdGUudmFsdWUpID4gcGFyc2VJbnQodG9EYXRlLnZhbHVlKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZnJvbURhdGUubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgdG9EYXRlLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIHRvRGF0ZS5zZXRFcnJvcnMoe1xyXG4gICAgICAgICAgICBlcnJvck1hc3NhZ2U6IHRoaXMubCgnR3JlYXRlclRoYW5PckVxdWFsVG8nKSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZyb21EYXRlLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICB0b0RhdGUudmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICAgIHBhcnNlSW50KGZyb21EYXRlLnZhbHVlKSA8IHBhcnNlSW50KHRvRGF0ZS52YWx1ZSkgJiZcclxuICAgICAgICAgIHBhcnNlSW50KHRvRGF0ZS52YWx1ZSkgPCAyNTUgJiZcclxuICAgICAgICAgIHBhcnNlSW50KGZyb21EYXRlLnZhbHVlKSA8IDI1NVxyXG4gICAgICAgIClcclxuICAgICAgICAgIHRvRGF0ZS5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG5cclxuICB1cGRhdGVGb3JtU3RhdHVzKGtleTogYW55KSB7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dDpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpbGluZVRleHQ6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTnVtYmVyOlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGU6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlOlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkltYWdlOlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0OlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vZHJhZyBhbmQgZHJvcFxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMub3B0aW9uTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5vcHRpb25MaXN0W2luZGV4XTtcclxuICAgICAgZWxlbWVudC5EaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI0VkaXRNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIiAqbmdJZj1cIiFpc1ZpZXdPbmx5XCI+XHJcbiAgICAgIHt7bChcIkVkaXRfUXVlc3Rpb25cIil9fVxyXG4gICAgPC9oND5cclxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgKm5nSWY9XCJpc1ZpZXdPbmx5XCI+XHJcbiAgICAgIHt7bChcIkRldGFpbHNcIil9fVxyXG4gICAgPC9oND5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgY2xhc3M9XCJidG4gYnRuLWljb24gYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBzdmctaWNvbi1ob3Zlci1icmFuZFwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL21vZGFsY2xvc2Uuc3ZnJ1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zXCIgKE9uQ2hhbmdlKT1cImNoYW5nZUZvcm1TdGF0dXMoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0UXVlc3Rpb25cIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwiZWRpdERlc2NyaXB0aW9uXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWE+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwic3VydmV5QXVkaWVuY2VUeXBlSUQ9PWF1ZGllbmNlVHlwZS5Cb3RoXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImF1ZGllbmNlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRRdWVzdGlvblR5cGVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiIChPbkNoYW5nZSk9XCJjaGFuZ2VEYXRhVHlwZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0U2l6ZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNTZWxlY3RcIiA+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZWRpdEFsbG93U2NvcmVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiIChPbkNoYW5nZSk9XCJjaGFuZ2VTY29yaW5nKCRldmVudClcIj48L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJlZGl0SXNBY3RpdmVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImVkaXRSZXF1aXJlZFwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzVGV4dHx8aXNOdW1iZXJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNaW5MZW5ndGhcIiAqbmdJZj1cImlzVGV4dHx8aXNOdW1iZXJcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc1RleHR8fGlzTnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TWF4TGVuZ3RoXCIgKm5nSWY9XCJpc1RleHR8fGlzTnVtYmVyXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc0ZpbGV8fGlzTXVsdGlGaWxlfHxpc0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TWF4RmlsZVNpemVcIiAqbmdJZj1cImlzRmlsZXx8aXNNdWx0aUZpbGV8fGlzSW1hZ2VcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc011bHRpRmlsZVwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE1heEZpbGVDb3VudFwiICpuZ0lmPVwiaXNNdWx0aUZpbGVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc0ZpbGV8fGlzTXVsdGlGaWxlXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRGaWxlc0V4dGVuc2lvbnNcIiAqbmdJZj1cImlzRmlsZXx8aXNNdWx0aUZpbGVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0RGlzcGxheU9yZGVyXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdFwiIGNsYXNzPVwicXVlc3Rpb24tdHlwZS1vcHRpb25cIj5cclxuICAgICAgICAgICAgPGg1Pnt7bCgnT3B0aW9ucycpfX08L2g1PlxyXG4gICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1saXN0aW5nXCIgKm5nRm9yPVwibGV0IE9wdGlvbiBvZiBvcHRpb25MaXN0O1wiIGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUgZnMtNiBmdy1ib2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2dldEN1cnJlbnRGYWlsT3ZlcihPcHRpb24uTmFtZSl9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2Utc3F1YXJlIGJhZGdlLWRhcmsgbWUtNFwiICpuZ0lmPVwic2hvd1Njb3JlT3B0aW9uXCIgbmdiVG9vbHRpcD1cInt7bCgnU2NvcmUnKX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e09wdGlvbi5TY29yZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgYmFkZ2Utc3F1YXJlIGJhZGdlLWJyYW5kIGN1cnNvci1wb2ludGVyIG1lLTRcIiAqbmdJZj1cIk9wdGlvbi5MaW5rZWRRdWVzdGlvbnM/Lmxlbmd0aD4wXCIgbmdiVG9vbHRpcD1cInt7Z2V0TGlua2VkUXVlc3Rpb25zKE9wdGlvbil9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00IHN2Zy1pY29uLXdoaXRlXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvaW5mby5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1zcXVhcmUgYmFkZ2UtYnJhbmQgY3Vyc29yLXBvaW50ZXIgbWUtNFwiIChjbGljayk9XCJlZGl0T3B0aW9uKE9wdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNCBzdmctaWNvbi13aGl0ZVwiIG5nYlRvb2x0aXA9XCJ7e2woJ0VkaXQnKX19XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvRWRpdC5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGJhZGdlLXNxdWFyZSBiYWRnZS1kYW5nZXIgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNCBzdmctaWNvbi13aGl0ZVwiIG5nYlRvb2x0aXA9XCJ7e2woJ0RlbGV0ZScpfX1cIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVPcHRpb24oT3B0aW9uKVwiIGFwcHByZXZlbnRkb3VibGVjbGljaz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYWxlcnQtZGFuZ2VyIGFsZXJ0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0ydHggc3ZnLWljb24tZGFuZ2VyIG1lLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9pbmZvLnN2ZydcIj5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZ3LWJvbGRcIj48ZGl2IGNsYXNzPVwiZnMtNyB0ZXh0LWRhbmdlclwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXBlYXRlci1iZ1wiICpuZ0lmPVwiIWlzVmlld09ubHlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IGhpZGRlbj1cInRydWVcIiBbb3B0aW9uc109XCJlZGl0T3B0aW9uSWRcIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TmFtZU9wdGlvblwiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZGlzcGxheU9yZGVyT3B0aW9uXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImlkT3B0aW9uXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJzaG93U2NvcmVPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzY29yZU51bWJlclwiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRPcHRpb24oKVwiICpuZ0lmPVwiIWlzT3B0aW9uSW5FZGl0TW9kZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tYnJhbmQgdy0xMDBcIj57e2woXCJBZGRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRPcHRpb24oKVwiICpuZ0lmPVwiaXNPcHRpb25JbkVkaXRNb2RlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1icmFuZCB3LTEwMFwiPnt7bChcIkVkaXRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIHBiLTAgbS0wXCIgPlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0XCIgIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICB7e2woXCJDYW5jZWxcIil9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBhcHBQcmV2ZW50RG91YmxlQ2xpY2sgdHlwZT1cInN1Ym1pdFwiICBbZGlzYWJsZWRdPVwiIWlzRWRpdEZvcm1DaGFuZ2VcIiAgICpuZ0lmPVwiIWlzVmlld09ubHlcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWJyYW5kXCI+e3tsKFwiU2F2ZVwiKX19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
683
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1xdWVzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9lZGl0LXF1ZXN0aW9uL2VkaXQtcXVlc3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vZWRpdC1xdWVzdGlvbi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixXQUFXLEVBQ1gsU0FBUyxFQUNULDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7O0FBUWpHLE1BQU0sT0FBTyxx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QUFNLEVBQUUsS0FBSyxFQUFFO2dCQWdDaEMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFwcEJhc2VDb21wb25lbnQsXHJcbiAgQ29udHJvbExheW91dCxcclxuICBDdXN0b21WYWxpZGF0aW9uLFxyXG4gIERyb3Bkb3duT3B0aW9ucyxcclxuICBFbmdsaXNoQXJhYmljRFRPLFxyXG4gIEZvcmNlRGlyZWN0aW9uLFxyXG4gIEZvcm1PcHRpb25zLFxyXG4gIElucHV0VHlwZSxcclxuICBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMsXHJcbiAgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsXHJcbiAgUmFuZ2VOdW1iZXIsXHJcbiAgVGV4dEJveE9wdGlvbnMsXHJcbiAgVG9nZ2xlU2xpZGVPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpZW5jZVR5cGUsIFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRFRPIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktcXVlc3Rpb24nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uLW9wdGlvbic7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS1xdWVzdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtZWRpdC1xdWVzdGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1xdWVzdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdFF1ZXN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcXVlc3Rpb25UeXBlOiBTdXJ2ZXlPcHRpb25UeXBlO1xyXG4gIGlzTnVtYmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNGaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNNdWx0aUZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0ltYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBTaXplTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgZWRpdE1vZGVsRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgZWRpdFF1ZXN0aW9uOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0RGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucztcclxuICBlZGl0UXVlc3Rpb25UeXBlOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgYXVkaWVuY2U6IERyb3Bkb3duT3B0aW9ucztcclxuICBlZGl0UmVxdWlyZWQ6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBlZGl0QWxsb3dTY29yZTogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG4gIGVkaXRIYXNTZWFyY2g6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBlZGl0SXNBY3RpdmU6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBlZGl0TWluTGVuZ3RoOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0TWF4TGVuZ3RoOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0Um93c051bWJlcjogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdE1heEZpbGVTaXplOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0TWF4RmlsZUNvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0RmlsZXNFeHRlbnNpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdFNpemU6IERyb3Bkb3duT3B0aW9ucztcclxuICBpc0VkaXRGb3JtQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbnVtYmVyVmFsaWRhdGlvbjogQ3VzdG9tVmFsaWRhdGlvbiA9IG5ldyBDdXN0b21WYWxpZGF0aW9uKCk7XHJcbiAgQFZpZXdDaGlsZCgnRWRpdE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIEVkaXRNb2RhbDogRWxlbWVudFJlZjtcclxuXHJcbiAgZWRpdE9wdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0TmFtZU9wdGlvbjogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgc2NvcmVOdW1iZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIG9wdGlvbkxpc3Q6IFN1cnZleVF1ZXN0aW9uT3B0aW9uRFRPW10gPSBbXTtcclxuICBlZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgc2hvd1Njb3JlT3B0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd09wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9IG51bGw7XHJcbiAgdG90YWxTY29yZTogbnVtYmVyID0gMDtcclxuICBtYWluRm9ybUNvbnRyb2xzOiBhbnlbXTtcclxuICBzdXJ2ZXlJRDogc3RyaW5nO1xyXG4gIGVkaXRPcHRpb25JZDogVGV4dEJveE9wdGlvbnM7XHJcbiAgcXVlc3Rpb25JRDogYW55O1xyXG4gIHF1ZXN0aW9uOiBhbnk7XHJcbiAgZWRpdERpc3BsYXlPcmRlcjogVGV4dEJveE9wdGlvbnM7XHJcbiAgcHVibGljIGF1ZGllbmNlVHlwZSA9IEF1ZGllbmNlVHlwZTtcclxuICBhdWRpZW5jZVR5cGVJRDogYW55O1xyXG4gIHN1cnZleUF1ZGllbmNlVHlwZUlEOiBhbnk7XHJcbiAgZGlzcGxheU9yZGVyT3B0aW9uOiBUZXh0Qm94T3B0aW9ucztcclxuICBpc09wdGlvbkluRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgUXVlc3Rpb25zOiBhbnlbXTtcclxuICBpc1ZpZXdPbmx5OiBib29sZWFuO1xyXG4gIGlkT3B0aW9uOiBUZXh0Qm94T3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgc3VydmV5UXVlc3Rpb25TZXJ2aWNlOiBTdXJ2ZXlRdWVzdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcbiAgQElucHV0KCkgcGFnaW5nRWxlbWVudDtcclxuICBASW5wdXQoKSBvblN1Y2Nlc3NFZGl0SGFuZGxlcjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgMTI7IGluZGV4KyspIHtcclxuICAgICAgdmFyIGl0ZW0gPSB7IGtleTogaW5kZXggKyAxLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcclxuICAgICAgdGhpcy5TaXplTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5udW1iZXJWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSA9IChcclxuICAgICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXHJcbiAgICApOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSA9PiB7XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9eWzAtOV0qJC8pKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWxpZGF0aW9uLm1hc3NhZ2UgPSB0aGlzLmwoJ0ludGVnZXJOdW1iZXJWYWxpZGF0aW9uS2V5Jyk7XHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tZXJFcnJvcjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9eWytdPyhbLl1cXGQrfFxcZCtbLl0/XFxkKikkLykpIHtcclxuICAgICAgICB0aGlzLm51bWJlclZhbGlkYXRpb24ubWFzc2FnZSA9IHRoaXMubCgnUG9zaXRpdmVOdW1iZXJWYWxpZGF0aW9uS2V5Jyk7XHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tZXJFcnJvcjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTY29yaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNob3dTY29yZU9wdGlvbiA9IHZhbHVlO1xyXG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydTY29yZSddKSB7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10ucmVzZXQoKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snU2NvcmUnXS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snU2NvcmUnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZUxlbmd0aFZhbGlkYXRvcihuYW1lLCBtYXgsIG1pbikge1xyXG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzW25hbWVdO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICBsZXQgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgICAgIHZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMubWluKG1pbikpO1xyXG4gICAgICB2YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1heChtYXgpKTtcclxuICAgICAgdmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyh2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZURhdGFUeXBlKGtleSkge1xyXG4gICAgdGhpcy51cGRhdGVGb3JtU3RhdHVzKGtleSk7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dDpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgMjU1LCAxKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSwgMjU1LCAxKTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMjU1O1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSAyNTU7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgNDAwMCwgMSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUsIDQwMDAsIDEpO1xyXG4gICAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UudG8gPSA0MDAwO1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSA0MDAwO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk51bWJlcjpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgMTAwLCAxKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSwgMTAwLCAxKTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMTAwO1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSAxMDA7XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5GaWxlOlxyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlOlxyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkltYWdlOlxyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc011bHRpRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3Q6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3Q6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbjpcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZUZvcm1TdGF0dXModmFsdWUpIHtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZWRpdE1vZGFsID0gKGlkLCBzdXJ2ZXlBdWRpZW5jZVR5cGVJRCwgaXNWaWV3T25seSA9IGZhbHNlKSA9PiB7XHJcbiAgICB0aGlzLmlzVmlld09ubHkgPSBpc1ZpZXdPbmx5O1xyXG4gICAgdGhpcy5pc0VkaXRGb3JtQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vcHRpb25MaXN0ID0gW107XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICB0aGlzLnF1ZXN0aW9uSUQgPSBpZDtcclxuICAgIHRoaXMuc3VydmV5UXVlc3Rpb25TZXJ2aWNlLmdldChpZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdCA9IHJlcyBhcyBhbnk7XHJcbiAgICAgIHRoaXMucXVlc3Rpb24gPSByZXN1bHQucXVlc3Rpb247XHJcbiAgICAgIHRoaXMuUXVlc3Rpb25zID0gcmVzdWx0LnF1ZXN0aW9ucztcclxuICAgICAgdGhpcy5zdXJ2ZXlJRCA9IHRoaXMucXVlc3Rpb24uc3VydmV5SUQ7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2VUeXBlSUQgPSB0aGlzLnF1ZXN0aW9uLmF1ZGllbmNlSXRlbUlEO1xyXG4gICAgICB0aGlzLnN1cnZleUF1ZGllbmNlVHlwZUlEID0gc3VydmV5QXVkaWVuY2VUeXBlSUQ7XHJcbiAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFN1cnZleVF1ZXN0aW9uRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy5lZGl0TW9kZWxGb3JtO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRNb2RlbDtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPVxyXG4gICAgICAgIHRoaXMuZ2V0RWRpdEZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID1cclxuICAgICAgICB0aGlzLm9uU3VjY2Vzc0VkaXRIYW5kbGVyO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLmRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCB0ZXh0ID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgdGV4dC5hcmFiaWMgPSB0aGlzLnF1ZXN0aW9uLnRleHQuYXJhYmljO1xyXG4gICAgICB0ZXh0LmVuZ2xpc2ggPSB0aGlzLnF1ZXN0aW9uLnRleHQuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLm5hbWUgPSAnVGV4dCc7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLmFyYWJpY0xhYmVsS2V5ID0gJ1F1ZXN0aW9uSW5BcmFiaWMnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5lbmdsaXNoTGFiZWxLZXkgPSAnUXVlc3Rpb25JbkVuZ2xpc2gnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24ubWF4TGVuZ3RoID0gNDAwMDtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24ubGFuZ3VhZ2VNb2RlID0gdGhpcy5nZXRMYW5ndWFnZU1vZGVWYWx1ZSgpO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi52YWx1ZSA9IHRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLm5hbWUgPSAnRGVzY3JpcHRpb24nO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5hcmFiaWNMYWJlbEtleSA9ICdEZXNjcmlwdGlvbkluQXJhYmljJztcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uZW5nbGlzaExhYmVsS2V5ID0gJ0Rlc2NyaXB0aW9uSW5FbmdsaXNoJztcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5tYXhMZW5ndGggPSAyNTA7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLnJvd3MgPSAyO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5hcmFiaWNMYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKFxyXG4gICAgICAgICdRdWVzdGlvbkRlc2NyaXB0aW9uSGludEFyYWJpYydcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uZW5nbGlzaExhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoXHJcbiAgICAgICAgJ1F1ZXN0aW9uRGVzY3JpcHRpb25IaW50RW5nbGlzaCdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5sYW5ndWFnZU1vZGUgPSB0aGlzLmdldExhbmd1YWdlTW9kZVZhbHVlKCk7XHJcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIGRlc2NyaXB0aW9uLmFyYWJpYyA9IHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICBkZXNjcmlwdGlvbi5lbmdsaXNoID0gdGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi52YWx1ZSA9IGRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUubmFtZSA9ICdRdWVzdGlvblR5cGVJdGVtSUQnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUubGFiZWxLZXkgPSAnUHJvcGVydHlUeXBlJztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUuZGF0YVNvdXJjZSA9IHJlc3VsdC5vcHRpb25UeXBlcztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy5xdWVzdGlvbi5xdWVzdGlvblR5cGVJdGVtSUQ7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5ub3RGb3VuZFRleHQgPSB0aGlzLmwoJ05vUmVzdWx0Rm91bmQnKTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hdWRpZW5jZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hdWRpZW5jZS5uYW1lID0gJ0F1ZGllbmNlSXRlbUlEJztcclxuICAgICAgdGhpcy5hdWRpZW5jZS5sYWJlbEtleSA9ICdBdWRpZW5jZSc7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UuZGF0YVNvdXJjZSA9IHJlc3VsdC5hdWRpZW5jZXM7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucXVlc3Rpb24uYXVkaWVuY2VJdGVtSUQ7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnQXVkaWVuY2VEZXNjcmlwdGlvbkhpbnQnKTtcclxuICAgICAgdGhpcy5hdWRpZW5jZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFNpemUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUubmFtZSA9ICdTaXplJztcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5sYWJlbEtleSA9ICdTaXplJztcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuZGF0YVNvdXJjZSA9IHRoaXMuU2l6ZUxpc3Q7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLnNpemU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZCA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQubmFtZSA9ICdJc1JlcXVpcmVkJztcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQubGFiZWxLZXkgPSAnSXNSZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZWRpdFJlcXVpcmVkLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5pc1JlcXVpcmVkO1xyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdSZXF1aXJlZERlc2NyaXB0aW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZC5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUubmFtZSA9ICdJc0FsbG93U2NvcmluZyc7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUubGFiZWxLZXkgPSAnQWxsb3dTY29yZSc7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmlzQWxsb3dTY29yaW5nO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0FsbG93U2NvcmVEZXNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0FsbG93U2NvcmVEZXNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRIYXNTZWFyY2gubmFtZSA9ICdIYXNTZWFyY2gnO1xyXG4gICAgICB0aGlzLmVkaXRIYXNTZWFyY2gubGFiZWxLZXkgPSAnSGFzU2VhcmNoJztcclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLm5hbWUgPSAnSXNWaXNpYmxlJztcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUubGFiZWxLZXkgPSAnVmlzaWJsZSc7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmlzVmlzaWJsZTtcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnVmlzaWJsZURlc2NyaXB0aW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRJc0FjdGl2ZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuTmFtZSA9IFwiRGlzcGxheU9yZGVyXCI7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5MYWJlbEtleSA9IFwiRGlzcGxheU9yZGVyXCI7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLk51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5OdW1iZXJSYW5nZS5Gcm9tID0gMTtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuVmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRpc3BsYXlPcmRlcjtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLkN1c3RvbVZhbGlkYXRpb24gPSBbdGhpcy5udW1iZXJWYWxpZGF0aW9uXTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSA9ICdNYXhMZW5ndGgnO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubGFiZWxLZXkgPSAnTWF4TGVuZ3RoJztcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLm9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGguaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdNYXhIaW50Jyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUgPSAnTWluTGVuZ3RoJztcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLmxhYmVsS2V5ID0gJ01pbkxlbmd0aCc7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnTWluSGludCcpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5uYW1lID0gJ1Jvd3MnO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmxhYmVsS2V5ID0gJ1Jvd3MnO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIubnVtYmVyUmFuZ2UudG8gPSAyMDtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci52YWx1ZSA9IHRoaXMucXVlc3Rpb24ub3B0aW9ucy5yb3dzO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSA9ICdNYXhGaWxlU2l6ZUluTUInO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5sYWJlbEtleSA9ICdNYXhGaWxlU2l6ZUluTUInO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubnVtYmVyUmFuZ2UgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLm51bWJlclJhbmdlLnRvID0gMTAwO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLm9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSA9ICdNYXhGaWxlQ291bnQnO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQubGFiZWxLZXkgPSAnTWF4RmlsZXNDb3VudCc7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50Lm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50Lm51bWJlclJhbmdlLnRvID0gNTA7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ01heEZpbGVDb3VudEhpbnQnKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmN1c3RvbVZhbGlkYXRpb24gPSBbdGhpcy5udW1iZXJWYWxpZGF0aW9uXTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgbGV0IEZpbGVzRXh0ZW5zaW9uUmVzdWx0ID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zXHJcbiAgICAgICAgLmFsbG93ZWRFeHRlbnNpb25zIGFzIHN0cmluZ1tdO1xyXG4gICAgICBsZXQgRmlsZXNFeHRlbnNpb25zID0gRmlsZXNFeHRlbnNpb25SZXN1bHRcclxuICAgICAgICA/IHJlc3VsdC5leHRlbnNpb25zXHJcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBGaWxlc0V4dGVuc2lvblJlc3VsdC5pbmNsdWRlcyhpdGVtLmtleSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpXHJcbiAgICAgICAgOiBbXTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSA9ICdBbGxvd2VkRXh0ZW5zaW9ucyc7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5sYWJlbEtleSA9ICdFeHRlbnNpb25zJztcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuZGF0YVNvdXJjZSA9IHJlc3VsdC5leHRlbnNpb25zO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuc2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5zZWxlY3RlZEl0ZW1zID0gRmlsZXNFeHRlbnNpb25zO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnRXh0ZW5zaW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5hZGRWYWxpZGF0b3JzKHRoaXMuZnJvbVRvKFwiTWluTGVuZ3RoXCIsIFwiTWF4TGVuZ3RoXCIpKTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRGF0YVR5cGUodGhpcy5xdWVzdGlvbi5xdWVzdGlvblR5cGVJdGVtSUQpO1xyXG4gICAgICB0aGlzLmNoYW5nZVNjb3JpbmcodGhpcy5xdWVzdGlvbi5pc0FsbG93U2NvcmluZyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRPcHRpb25JZCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25JZC5uYW1lID0gJ0lkJztcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQuaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLm5hbWUgPSAnTmFtZU9wdGlvbic7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24uYXJhYmljTGFiZWxLZXkgPSAnTmFtZUluQXJhYmljJztcclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbi5lbmdsaXNoTGFiZWxLZXkgPSAnTmFtZUluRW5nbGlzaCc7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24uaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24ubWF4TGVuZ3RoID0gMjI1O1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLmxhbmd1YWdlTW9kZSA9IHRoaXMuZ2V0TGFuZ3VhZ2VNb2RlVmFsdWUoKTtcclxuXHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5zY29yZU51bWJlci5uYW1lID0gJ1Njb3JlJztcclxuICAgICAgdGhpcy5zY29yZU51bWJlci5sYWJlbEtleSA9ICdTY29yZSc7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICByYW5nZU51bWJlci50byA9IDEwMDAwMDA7XHJcbiAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSAxO1xyXG4gICAgICB0aGlzLnNjb3JlTnVtYmVyLm51bWJlclJhbmdlID0gcmFuZ2VOdW1iZXI7XHJcblxyXG4gICAgICB0aGlzLmRpc3BsYXlPcmRlck9wdGlvbiA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmRpc3BsYXlPcmRlck9wdGlvbi5uYW1lID0gJ0Rpc3BsYXlPcmRlcic7XHJcblxyXG4gICAgICB0aGlzLmlkT3B0aW9uID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuaWRPcHRpb24ubmFtZSA9ICdJZE9wdGlvbic7XHJcblxyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5uYW1lID0gJ0xpbmtlZFF1ZXN0aW9ucyc7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5sYWJlbEtleSA9ICdMaW5rZWRRdWVzdGlvbnMnO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMuZGF0YVNvdXJjZSA9IHJlc3VsdC5xdWVzdGlvbnM7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5zaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zLm5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubChcclxuICAgICAgICAnTGlua2VkUXVlc3Rpb25EZXNjcmlwdGlvbkhpbnQnXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi5xdWVzdGlvbk9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAoXHJcbiAgICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgICAgaW5kZXggPCB0aGlzLnF1ZXN0aW9uLnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICBpbmRleCsrXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5xdWVzdGlvbi5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25MaXN0LnB1c2gobmV3IFN1cnZleVF1ZXN0aW9uT3B0aW9uRFRPKGVsZW1lbnQpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub3Blbk1vZGFsKHRoaXMuRWRpdE1vZGFsLCAneGwnKTtcclxuICAgICAgdGhpcy5zdG9wQmxvY2tVSSgpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBnZXRFZGl0TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCByZXN1bHRPcHRpb25Nb2RlbCA9IHRoaXMuZWRpdE9wdGlvbkZvcm0udmFsdWUgYXMgYW55O1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5lZGl0TW9kZWxGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAocmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5BcmFiaWMgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICByZXN1bHRPcHRpb25Nb2RlbC5OYW1lT3B0aW9uLkFyYWJpYyAhPSAnJykgfHxcclxuICAgICAgICAocmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgcmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoICE9ICcnKSB8fFxyXG4gICAgICAgIChyZXN1bHRPcHRpb25Nb2RlbC5TY29yZSAhPSB1bmRlZmluZWQgJiYgcmVzdWx0T3B0aW9uTW9kZWwuU2NvcmUgPiAwKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubCgnT3B0aW9uUGVuZGluZ0RhdGFFcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbkxpc3QubGVuZ3RoID09IDAgJiYgdGhpcy5pc1NlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdPcHRpb25FcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIGxldCBlZGl0TW9kZWw6IFN1cnZleVF1ZXN0aW9uRFRPID0gbmV3IFN1cnZleVF1ZXN0aW9uRFRPKCk7XHJcbiAgICBlZGl0TW9kZWwuSURfR1VJRCA9IHRoaXMucXVlc3Rpb25JRDtcclxuICAgIGVkaXRNb2RlbC5TdXJ2ZXlJRCA9IHRoaXMuc3VydmV5SUQ7XHJcbiAgICAvLyBlZGl0TW9kZWwuRGlzcGxheU9yZGVyID0gcmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyO1xyXG4gICAgZWRpdE1vZGVsLlRleHQuYXJhYmljID0gcmVzdWx0TW9kZWwuVGV4dC5BcmFiaWM7XHJcbiAgICBlZGl0TW9kZWwuVGV4dC5lbmdsaXNoID0gcmVzdWx0TW9kZWwuVGV4dC5FbmdsaXNoO1xyXG4gICAgZWRpdE1vZGVsLkRlc2NyaXB0aW9uLmFyYWJpYyA9IHJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgIGVkaXRNb2RlbC5EZXNjcmlwdGlvbi5lbmdsaXNoID0gcmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkRlc2NyaXB0aW9uLmFyYWJpYyA9IHJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkRlc2NyaXB0aW9uLmVuZ2xpc2ggPSByZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoO1xyXG4gICAgaWYgKHRoaXMuc3VydmV5QXVkaWVuY2VUeXBlSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpXHJcbiAgICAgIGVkaXRNb2RlbC5BdWRpZW5jZUl0ZW1JRCA9IHJlc3VsdE1vZGVsLkF1ZGllbmNlSXRlbUlEO1xyXG4gICAgZWxzZSBlZGl0TW9kZWwuQXVkaWVuY2VJdGVtSUQgPSB0aGlzLmF1ZGllbmNlVHlwZUlEO1xyXG4gICAgZWRpdE1vZGVsLlF1ZXN0aW9uVHlwZUl0ZW1JRCA9IHRoaXMucXVlc3Rpb24ucXVlc3Rpb25UeXBlSXRlbUlEO1xyXG4gICAgZWRpdE1vZGVsLklzQWxsb3dTY29yaW5nID0gcmVzdWx0TW9kZWwuSXNBbGxvd1Njb3Jpbmc7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5TaXplID0gcmVzdWx0TW9kZWwuU2l6ZTtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLklzUmVxdWlyZWQgPSByZXN1bHRNb2RlbC5Jc1JlcXVpcmVkO1xyXG4gICAgZWRpdE1vZGVsLklzUmVxdWlyZWQgPSByZXN1bHRNb2RlbC5Jc1JlcXVpcmVkO1xyXG4gICAgZWRpdE1vZGVsLklzVmlzaWJsZSA9IHJlc3VsdE1vZGVsLklzVmlzaWJsZTtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkhhc1NlYXJjaCA9IHJlc3VsdE1vZGVsLkhhc1NlYXJjaDtcclxuXHJcbiAgICBpZiAodGhpcy5pc1RleHQgfHwgdGhpcy5pc051bWJlcikge1xyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5NaW5MZW5ndGggPSByZXN1bHRNb2RlbC5NaW5MZW5ndGg7XHJcbiAgICAgIGVkaXRNb2RlbC5PcHRpb25zLk1heExlbmd0aCA9IHJlc3VsdE1vZGVsLk1heExlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0ZpbGUgfHwgdGhpcy5pc011bHRpRmlsZSB8fCB0aGlzLmlzSW1hZ2UpXHJcbiAgICAgIGVkaXRNb2RlbC5PcHRpb25zLk1heEZpbGVTaXplSW5NQiA9IHJlc3VsdE1vZGVsLk1heEZpbGVTaXplSW5NQjtcclxuXHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZSlcclxuICAgICAgZWRpdE1vZGVsLk9wdGlvbnMuTWF4RmlsZUNvdW50ID0gcmVzdWx0TW9kZWwuTWF4RmlsZUNvdW50O1xyXG5cclxuICAgIGlmICh0aGlzLmlzTXVsdGlGaWxlIHx8IHRoaXMuaXNGaWxlKVxyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5BbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3VsdE1vZGVsLkFsbG93ZWRFeHRlbnNpb25zO1xyXG5cclxuICAgIGlmICh0aGlzLmlzU2VsZWN0KSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25MaXN0W2luZGV4XS5EaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICAgICAgZWRpdE1vZGVsLlF1ZXN0aW9uT3B0aW9ucyA9IHRoaXMub3B0aW9uTGlzdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChlZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuICBnZXRFZGl0RnVuY3Rpb24gPSAoZWRpdE1vZGFsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGlmICghdGhpcy5lcnJvck1lc3NhZ2UpIHJldHVybiB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5lZGl0KGVkaXRNb2RhbCk7XHJcbiAgfTtcclxuICBnZXRMaW5rZWRRdWVzdGlvbnMob3B0aW9uOiBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTykge1xyXG4gICAgcmV0dXJuIHRoaXMuUXVlc3Rpb25zLmZpbHRlcigoaXRlbSkgPT5cclxuICAgICAgb3B0aW9uLkxpbmtlZFF1ZXN0aW9ucy5pbmNsdWRlcyhpdGVtLmtleSlcclxuICAgICkubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGFkZE9wdGlvbigpIHtcclxuICAgIHRoaXMudG90YWxTY29yZSA9IDA7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmVkaXRPcHRpb25Gb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5lZGl0T3B0aW9uRm9ybS52YWx1ZSBhcyBhbnk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9uTGlzdC5sZW5ndGggPj0gMSAmJiB0aGlzLnNob3dTY29yZU9wdGlvbikge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5vcHRpb25MaXN0W2luZGV4XS5TY29yZTtcclxuICAgICAgICBpZiAoZWxlbWVudCA+IDEwMDAwMDApIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdNYXhPcHRpb25TY29yZUVycm9yTWVzc2FnZScpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWxlbWVudCA8IDEpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdNaW5PcHRpb25TY29yZUVycm9yTWVzc2FnZScpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgbGV0IG9wdGlvbiA9IG5ldyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTygpO1xyXG4gICAgb3B0aW9uLk5hbWUuYXJhYmljID0gcmVzdWx0TW9kZWwuTmFtZU9wdGlvbi5BcmFiaWM7XHJcbiAgICBvcHRpb24uTmFtZS5lbmdsaXNoID0gcmVzdWx0TW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoO1xyXG4gICAgb3B0aW9uLklEX0dVSUQgPSByZXN1bHRNb2RlbC5JZE9wdGlvbjtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgaWYgKHJlc3VsdE1vZGVsLkRpc3BsYXlPcmRlcilcclxuICAgICAgb3B0aW9uLkRpc3BsYXlPcmRlciA9IHJlc3VsdE1vZGVsLkRpc3BsYXlPcmRlcjtcclxuICAgIGVsc2Ugb3B0aW9uLkRpc3BsYXlPcmRlciA9IHRoaXMub3B0aW9uTGlzdC5sZW5ndGggKyAxO1xyXG5cclxuICAgIG9wdGlvbi5MaW5rZWRRdWVzdGlvbnMgPSByZXN1bHRNb2RlbC5MaW5rZWRRdWVzdGlvbnM7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pXHJcbiAgICAgIG9wdGlvbi5TY29yZSA9IE51bWJlci5wYXJzZUZsb2F0KHJlc3VsdE1vZGVsLlNjb3JlKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ05hbWVPcHRpb24nXS5yZXNldCgpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snSWRPcHRpb24nXS5yZXNldCgpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snRGlzcGxheU9yZGVyJ10ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0xpbmtlZFF1ZXN0aW9ucyddLnJlc2V0KCk7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10ucmVzZXQoKTtcclxuICAgIHRoaXMub3B0aW9uTGlzdC5zcGxpY2Uob3B0aW9uLkRpc3BsYXlPcmRlciAtIDEsIDAsIG9wdGlvbik7XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5pc09wdGlvbkluRWRpdE1vZGUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU9wdGlvbihvcHRpb24pIHtcclxuICAgIHRoaXMub3B0aW9uTGlzdCA9IHRoaXMub3B0aW9uTGlzdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gb3B0aW9uKTtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBlZGl0T3B0aW9uKG9wdGlvbjogU3VydmV5UXVlc3Rpb25PcHRpb25EVE8pIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5lZGl0T3B0aW9uRm9ybS50b3VjaGVkID09IHRydWUgJiYgdGhpcy5lZGl0T3B0aW9uRm9ybS52YWxpZCkgfHxcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS50b3VjaGVkID09IGZhbHNlXHJcbiAgICApXHJcbiAgICAgIHRoaXMuYWRkT3B0aW9uKCk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgIG5hbWUuYXJhYmljID0gb3B0aW9uLk5hbWUuYXJhYmljID8/IG51bGw7XHJcbiAgICBuYW1lLmVuZ2xpc2ggPSBvcHRpb24uTmFtZS5lbmdsaXNoID8/IG51bGw7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydOYW1lT3B0aW9uJ10uc2V0VmFsdWUobmFtZSk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydJZE9wdGlvbiddLnNldFZhbHVlKG9wdGlvbi5JRF9HVUlEKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0Rpc3BsYXlPcmRlciddLnNldFZhbHVlKG9wdGlvbi5EaXNwbGF5T3JkZXIpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snTGlua2VkUXVlc3Rpb25zJ10uc2V0VmFsdWUoXHJcbiAgICAgIG9wdGlvbi5MaW5rZWRRdWVzdGlvbnNcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pXHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10uc2V0VmFsdWUob3B0aW9uLlNjb3JlKTtcclxuICAgIHRoaXMub3B0aW9uTGlzdCA9IHRoaXMub3B0aW9uTGlzdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gb3B0aW9uKTtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzT3B0aW9uSW5FZGl0TW9kZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmcm9tVG8oZnJvbUZpZWxkOiBzdHJpbmcsIHRvRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW47IH0gfCBudWxsID0+IHtcclxuICAgICAgY29uc3QgZnJvbURhdGUgPSBmb3JtR3JvdXAuZ2V0KGZyb21GaWVsZCk7XHJcbiAgICAgIGNvbnN0IHRvRGF0ZSA9IGZvcm1Hcm91cC5nZXQodG9GaWVsZCk7XHJcbiAgICAgIGlmIChmcm9tRGF0ZSAhPT0gbnVsbCAmJiB0b0RhdGUgIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBmcm9tRGF0ZS52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgdG9EYXRlLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICBwYXJzZUludChmcm9tRGF0ZS52YWx1ZSkgPiBwYXJzZUludCh0b0RhdGUudmFsdWUpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRGF0ZS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0b0RhdGUubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgdG9EYXRlLnNldEVycm9ycyh7XHJcbiAgICAgICAgICAgIGVycm9yTWFzc2FnZTogdGhpcy5sKCdHcmVhdGVyVGhhbk9yRXF1YWxUbycpLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZnJvbURhdGUudmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICAgIHRvRGF0ZS52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQoZnJvbURhdGUudmFsdWUpIDwgcGFyc2VJbnQodG9EYXRlLnZhbHVlKSAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQodG9EYXRlLnZhbHVlKSA8IDI1NSAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQoZnJvbURhdGUudmFsdWUpIDwgMjU1XHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgdG9EYXRlLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcblxyXG4gIHVwZGF0ZUZvcm1TdGF0dXMoa2V5OiBhbnkpIHtcclxuICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0OlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRmlsZTpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2U6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3Q6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3Q6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9kcmFnIGFuZCBkcm9wXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5vcHRpb25MaXN0LCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9uTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wdGlvbkxpc3RbaW5kZXhdO1xyXG4gICAgICBlbGVtZW50LkRpc3BsYXlPcmRlciA9IGluZGV4ICsgMTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHRydWU7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjRWRpdE1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiICpuZ0lmPVwiIWlzVmlld09ubHlcIj5cclxuICAgICAge3tsKFwiRWRpdF9RdWVzdGlvblwiKX19XHJcbiAgICA8L2g0PlxyXG4gICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIiAqbmdJZj1cImlzVmlld09ubHlcIj5cclxuICAgICAge3tsKFwiRGV0YWlsc1wiKX19XHJcbiAgICA8L2g0PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHN2Zy1pY29uLWhvdmVyLWJyYW5kXCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvbW9kYWxjbG9zZS5zdmcnXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZWRpdFN1cnZleVF1ZXN0aW9uRm9ybU9wdGlvbnNcIiAoT25DaGFuZ2UpPVwiY2hhbmdlRm9ybVN0YXR1cygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cImVkaXRRdWVzdGlvblwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYSBbb3B0aW9uc109XCJlZGl0RGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJzdXJ2ZXlBdWRpZW5jZVR5cGVJRD09YXVkaWVuY2VUeXBlLkJvdGhcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiYXVkaWVuY2VcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdFF1ZXN0aW9uVHlwZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCIgKE9uQ2hhbmdlKT1cImNoYW5nZURhdGFUeXBlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRTaXplXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc1NlbGVjdFwiID5cclxuICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJlZGl0QWxsb3dTY29yZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCIgKE9uQ2hhbmdlKT1cImNoYW5nZVNjb3JpbmcoJGV2ZW50KVwiPjwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImVkaXRJc0FjdGl2ZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZWRpdFJlcXVpcmVkXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNUZXh0fHxpc051bWJlclwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE1pbkxlbmd0aFwiICpuZ0lmPVwiaXNUZXh0fHxpc051bWJlclwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzVGV4dHx8aXNOdW1iZXJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNYXhMZW5ndGhcIiAqbmdJZj1cImlzVGV4dHx8aXNOdW1iZXJcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzRmlsZXx8aXNNdWx0aUZpbGV8fGlzSW1hZ2VcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNYXhGaWxlU2l6ZVwiICpuZ0lmPVwiaXNGaWxlfHxpc011bHRpRmlsZXx8aXNJbWFnZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzTXVsdGlGaWxlXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TWF4RmlsZUNvdW50XCIgKm5nSWY9XCJpc011bHRpRmlsZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzRmlsZXx8aXNNdWx0aUZpbGVcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdEZpbGVzRXh0ZW5zaW9uc1wiICpuZ0lmPVwiaXNGaWxlfHxpc011bHRpRmlsZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXREaXNwbGF5T3JkZXJcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2VsZWN0XCIgY2xhc3M9XCJxdWVzdGlvbi10eXBlLW9wdGlvblwiPlxyXG4gICAgICAgICAgICA8aDU+e3tsKCdPcHRpb25zJyl9fTwvaDU+XHJcbiAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3RpbmdcIiAqbmdGb3I9XCJsZXQgT3B0aW9uIG9mIG9wdGlvbkxpc3Q7XCIgY2RrRHJhZz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSBmcy02IGZ3LWJvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Z2V0Q3VycmVudEZhaWxPdmVyKE9wdGlvbi5OYW1lKX19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1zcXVhcmUgYmFkZ2UtZGFyayBtZS00XCIgKm5nSWY9XCJzaG93U2NvcmVPcHRpb25cIiBuZ2JUb29sdGlwPVwie3tsKCdTY29yZScpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7T3B0aW9uLlNjb3JlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1zcXVhcmUgYmFkZ2UtYnJhbmQgY3Vyc29yLXBvaW50ZXIgbWUtNFwiICpuZ0lmPVwiT3B0aW9uLkxpbmtlZFF1ZXN0aW9ucz8ubGVuZ3RoPjBcIiBuZ2JUb29sdGlwPVwie3tnZXRMaW5rZWRRdWVzdGlvbnMoT3B0aW9uKX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTQgc3ZnLWljb24td2hpdGVcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9pbmZvLnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGJhZGdlLXNxdWFyZSBiYWRnZS1icmFuZCBjdXJzb3ItcG9pbnRlciBtZS00XCIgKGNsaWNrKT1cImVkaXRPcHRpb24oT3B0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00IHN2Zy1pY29uLXdoaXRlXCIgbmdiVG9vbHRpcD1cInt7bCgnRWRpdCcpfX1cIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9FZGl0LnN2ZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgYmFkZ2Utc3F1YXJlIGJhZGdlLWRhbmdlciBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00IHN2Zy1pY29uLXdoaXRlXCIgbmdiVG9vbHRpcD1cInt7bCgnRGVsZXRlJyl9fVwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL1RyYXNoLnN2ZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZU9wdGlvbihPcHRpb24pXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1hbGVydC1kYW5nZXIgYWxlcnQtZGFuZ2VyXCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJ0eCBzdmctaWNvbi1kYW5nZXIgbWUtNFwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2luZm8uc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZFwiPjxkaXYgY2xhc3M9XCJmcy03IHRleHQtZGFuZ2VyXCI+e3tlcnJvck1lc3NhZ2V9fTwvZGl2PjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcGVhdGVyLWJnXCIgKm5nSWY9XCIhaXNWaWV3T25seVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggaGlkZGVuPVwidHJ1ZVwiIFtvcHRpb25zXT1cImVkaXRPcHRpb25JZFwiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cImVkaXROYW1lT3B0aW9uXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnNcIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJkaXNwbGF5T3JkZXJPcHRpb25cIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIiBoaWRkZW4+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiaWRPcHRpb25cIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIiBoaWRkZW4+PC9CQlNGLVRleHRCb3g+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cInNob3dTY29yZU9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNjb3JlTnVtYmVyXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZE9wdGlvbigpXCIgKm5nSWY9XCIhaXNPcHRpb25JbkVkaXRNb2RlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1icmFuZCB3LTEwMFwiPnt7bChcIkFkZFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZE9wdGlvbigpXCIgKm5nSWY9XCJpc09wdGlvbkluRWRpdE1vZGVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWJyYW5kIHctMTAwXCI+e3tsKFwiRWRpdFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgcGItMCBtLTBcIiA+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHRcIiAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICAgIHt7bChcIkNhbmNlbFwiKX19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwic3VibWl0XCIgIFtkaXNhYmxlZF09XCIhaXNFZGl0Rm9ybUNoYW5nZVwiICAgKm5nSWY9XCIhaXNWaWV3T25seVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tYnJhbmRcIj57e2woXCJTYXZlXCIpfX08L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbiAgPC9kaXY+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|