@bnsights/bbsf-admin-portal 1.1.49 → 1.1.50
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 +4 -0
- package/bnsights-bbsf-admin-portal-1.1.50.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +3 -3
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +1 -1
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +16 -9
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +3 -3
- package/esm2022/lib/Pages/_layout/components/topbar/topbar.component.mjs +15 -22
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/change-password/change-password.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +1 -1
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +4 -4
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +3 -3
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +167 -99
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +7 -4
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +1 -1
- package/esm2022/lib/Pages/departments/department/department.component.mjs +108 -30
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +1 -1
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +96 -15
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +1 -1
- package/esm2022/lib/Pages/home/home.component.mjs +17 -6
- package/esm2022/lib/Pages/home/home.module.mjs +1 -1
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +1 -1
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +1 -1
- package/esm2022/lib/Pages/license/license/license.component.mjs +1 -1
- package/esm2022/lib/Pages/license/license.module.mjs +1 -1
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +1 -1
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +1 -1
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +1 -1
- package/esm2022/lib/Pages/logs/log/log.component.mjs +1 -1
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +1 -1
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +1 -1
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +85 -58
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +55 -26
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +68 -16
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +2 -2
- package/esm2022/lib/Pages/notifications/notifications.routing.mjs +66 -0
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +1 -1
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +105 -58
- package/esm2022/lib/Pages/organization/add-organization/add-organization.component.mjs +107 -0
- package/esm2022/lib/Pages/organization/add-organization/index.mjs +2 -0
- package/esm2022/lib/Pages/organization/edit-organization/edit-organization.component.mjs +115 -0
- package/esm2022/lib/Pages/organization/edit-organization/index.mjs +2 -0
- package/esm2022/lib/Pages/organization/index.mjs +7 -0
- package/esm2022/lib/Pages/organization/list-organization/index.mjs +2 -0
- package/esm2022/lib/Pages/organization/list-organization/list-organization.component.mjs +181 -0
- package/esm2022/lib/Pages/organization/organization.component.mjs +15 -0
- package/esm2022/lib/Pages/organization/organization.module.mjs +89 -0
- package/esm2022/lib/Pages/organization/organization.routing.mjs +36 -0
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +98 -43
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +1 -1
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +3 -3
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +73 -33
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +166 -105
- package/esm2022/lib/Pages/roles/roles-routing.module.mjs +24 -7
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +83 -16
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +2 -1
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ConfigurationsService.service.mjs +4 -1
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +7 -3
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +6 -1
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +7 -3
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +7 -3
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +4 -1
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +4 -3
- package/esm2022/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +52 -22
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/organization.service.mjs +36 -0
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/survey-question.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/survey.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/userService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +1 -1
- package/esm2022/lib/Pages/shared/config.service.mjs +17 -0
- package/esm2022/lib/Pages/shared/constants.mjs +2 -1
- package/esm2022/lib/Pages/shared/index.mjs +14 -0
- package/esm2022/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.mjs +36 -3
- package/esm2022/lib/Pages/shared/models/DepartmentModels/DepartmentModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/Lookups/LookupGroupModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/Lookups/LookupItem.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/Lookups/LookupModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.mjs +9 -6
- package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/NotificationsModels/TemplateDTO.mjs +1 -2
- package/esm2022/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionModel.mjs +17 -3
- package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +17 -3
- package/esm2022/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SectorModels/SectorModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/AddUserModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/DropdownsResponseModel.mjs +3 -1
- package/esm2022/lib/Pages/shared/models/UserModels/EditUserModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/ExportedFileDTO.mjs +3 -0
- package/esm2022/lib/Pages/shared/models/UserModels/FilteredUsersRequestModel.mjs +9 -0
- package/esm2022/lib/Pages/shared/models/UserModels/UserListingViewModel.mjs +8 -0
- package/esm2022/lib/Pages/shared/models/UserModels/UserModelDTO.mjs +41 -0
- package/esm2022/lib/Pages/shared/models/UserModels/UserSearchParamDTO.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/UserModels/UsersCountsDTO.mjs +3 -0
- package/esm2022/lib/Pages/shared/models/UserModels/index.mjs +13 -0
- package/esm2022/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/WorkflowModels/WFActivityModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/WorkflowModels/WFCreationModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/WorkflowModels/WFVariableModel.mjs +1 -1
- package/esm2022/lib/Pages/shared/models/index.mjs +24 -0
- package/esm2022/lib/Pages/shared/models/organization/organization.model.mjs +15 -0
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +1 -1
- package/esm2022/lib/Pages/shared/modules/survey.module.mjs +1 -1
- package/esm2022/lib/Pages/users/users.component.mjs +143 -60
- package/esm2022/lib/Pages/users/users.module.mjs +1 -1
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +1 -1
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +1 -1
- package/esm2022/lib/masterlayout.component.mjs +8 -14
- package/esm2022/lib/masterlayout.module.mjs +2 -25
- package/esm2022/lib/masterlayout.routing.mjs +43 -0
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +2516 -1136
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.d.ts +5 -2
- package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +2 -8
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +21 -8
- package/lib/Pages/core/authentication/admin.guard.d.ts +3 -2
- package/lib/Pages/departments/department/department.component.d.ts +15 -3
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +16 -3
- package/lib/Pages/home/home.component.d.ts +5 -2
- package/lib/Pages/notifications/add-notification/add-notification.component.d.ts +16 -5
- package/lib/Pages/notifications/edit-notification/edit-notification.component.d.ts +15 -4
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +17 -5
- package/lib/Pages/notifications/notifications.module.d.ts +1 -1
- package/lib/Pages/notifications/templates/templates.component.d.ts +13 -3
- package/lib/Pages/organization/add-organization/add-organization.component.d.ts +36 -0
- package/lib/Pages/organization/add-organization/index.d.ts +1 -0
- package/lib/Pages/organization/edit-organization/edit-organization.component.d.ts +36 -0
- package/lib/Pages/organization/edit-organization/index.d.ts +1 -0
- package/lib/Pages/organization/index.d.ts +6 -0
- package/lib/Pages/organization/list-organization/index.d.ts +1 -0
- package/lib/Pages/organization/list-organization/list-organization.component.d.ts +59 -0
- package/lib/Pages/organization/organization.component.d.ts +8 -0
- package/lib/Pages/organization/organization.module.d.ts +24 -0
- package/lib/Pages/organization/organization.routing.d.ts +7 -0
- package/lib/Pages/providers/provider/provider.component.d.ts +17 -8
- package/lib/Pages/roles/permissions/permissions.component.d.ts +14 -5
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +21 -8
- package/lib/Pages/sectors/sector/sector.component.d.ts +12 -1
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +2 -0
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/SectorService.service.d.ts +1 -0
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +1 -1
- package/lib/Pages/shared/Services/injectionModuleService.service.d.ts +2 -0
- package/lib/Pages/shared/Services/organization.service.d.ts +17 -0
- package/lib/Pages/shared/Services/userService.service.d.ts +4 -1
- package/lib/Pages/shared/config.service.d.ts +8 -0
- package/lib/Pages/shared/constants.d.ts +1 -0
- package/lib/Pages/shared/index.d.ts +5 -0
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +32 -28
- package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +1 -0
- package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +1 -0
- package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +8 -6
- package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +0 -1
- package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +17 -5
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +20 -8
- package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +1 -0
- package/lib/Pages/shared/models/UserModels/DropdownsResponseModel.d.ts +2 -0
- package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +1 -0
- package/lib/Pages/shared/models/UserModels/ExportedFileDTO.d.ts +4 -0
- package/lib/Pages/shared/models/UserModels/FilteredUsersRequestModel.d.ts +7 -0
- package/lib/Pages/shared/models/UserModels/UserListingViewModel.d.ts +10 -0
- package/lib/Pages/shared/models/UserModels/UserModelDTO.d.ts +38 -0
- package/lib/Pages/shared/models/UserModels/UserSearchParamDTO.d.ts +1 -0
- package/lib/Pages/shared/models/UserModels/UsersCountsDTO.d.ts +5 -0
- package/lib/Pages/shared/models/UserModels/index.d.ts +12 -0
- package/lib/Pages/shared/models/index.d.ts +2 -0
- package/lib/Pages/shared/models/organization/organization.model.d.ts +22 -0
- package/lib/Pages/users/users.component.d.ts +17 -7
- package/lib/masterlayout.component.d.ts +1 -2
- package/lib/masterlayout.module.d.ts +1 -1
- package/package.json +7 -7
- package/src/lib/assets/images/menu/organization.svg +16 -0
- package/src/lib/assets/sass/custom-styles.scss +2 -2
- package/src/lib/assets/sass/style.scss +1 -0
- package/bnsights-bbsf-admin-portal-1.1.49.tgz +0 -0
- package/esm2022/lib/Pages/notifications/notifications-routing.module.mjs +0 -39
- package/esm2022/lib/masterlayout-routing.module.mjs +0 -41
- /package/lib/Pages/notifications/{notifications-routing.module.d.ts → notifications.routing.d.ts} +0 -0
- /package/lib/{masterlayout-routing.module.d.ts → masterlayout.routing.d.ts} +0 -0
|
@@ -680,4 +680,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
680
680
|
}], onSuccessEditHandler: [{
|
|
681
681
|
type: Input
|
|
682
682
|
}] } });
|
|
683
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1xdWVzdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9lZGl0LXF1ZXN0aW9uL2VkaXQtcXVlc3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vZWRpdC1xdWVzdGlvbi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixXQUFXLEVBQ1gsU0FBUyxFQUNULDJCQUEyQixFQUMzQiwwQkFBMEIsRUFDMUIsV0FBVyxFQUNYLGNBQWMsRUFDZCxrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7O0FBT2pHLE1BQU0sT0FBTyxx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SyxFQUFFO2dCQWdDaEMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvckZuLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFwcEJhc2VDb21wb25lbnQsXHJcbiAgQ29udHJvbExheW91dCxcclxuICBDdXN0b21WYWxpZGF0aW9uLFxyXG4gIERyb3Bkb3duT3B0aW9ucyxcclxuICBFbmdsaXNoQXJhYmljRFRPLFxyXG4gIEZvcmNlRGlyZWN0aW9uLFxyXG4gIEZvcm1PcHRpb25zLFxyXG4gIElucHV0VHlwZSxcclxuICBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMsXHJcbiAgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsXHJcbiAgUmFuZ2VOdW1iZXIsXHJcbiAgVGV4dEJveE9wdGlvbnMsXHJcbiAgVG9nZ2xlU2xpZGVPcHRpb25zLFxyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdWRpZW5jZVR5cGUsIFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRFRPIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktcXVlc3Rpb24nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LXF1ZXN0aW9uLW9wdGlvbic7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS1xdWVzdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWVkaXQtcXVlc3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRRdWVzdGlvbkNvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHF1ZXN0aW9uVHlwZTogU3VydmV5T3B0aW9uVHlwZTtcclxuICBpc051bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTXVsdGlGaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNJbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgU2l6ZUxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGVkaXRNb2RlbEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gIGVkaXRRdWVzdGlvbjogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdERlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZWRpdFF1ZXN0aW9uVHlwZTogRHJvcGRvd25PcHRpb25zO1xyXG4gIGF1ZGllbmNlOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdFJlcXVpcmVkOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdEFsbG93U2NvcmU6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuICBlZGl0SGFzU2VhcmNoOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdElzQWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdE1pbkxlbmd0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdE1heExlbmd0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdFJvd3NOdW1iZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRNYXhGaWxlU2l6ZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdE1heEZpbGVDb3VudDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdEZpbGVzRXh0ZW5zaW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRTaXplOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgaXNFZGl0Rm9ybUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG51bWJlclZhbGlkYXRpb246IEN1c3RvbVZhbGlkYXRpb24gPSBuZXcgQ3VzdG9tVmFsaWRhdGlvbigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBFZGl0TW9kYWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGVkaXRPcHRpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdE5hbWVPcHRpb246IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHNjb3JlTnVtYmVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBvcHRpb25MaXN0OiBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUT1tdID0gW107XHJcbiAgZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHNob3dTY29yZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dPcHRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRvdGFsU2NvcmU6IG51bWJlciA9IDA7XHJcbiAgbWFpbkZvcm1Db250cm9sczogYW55W107XHJcbiAgc3VydmV5SUQ6IHN0cmluZztcclxuICBlZGl0T3B0aW9uSWQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIHF1ZXN0aW9uSUQ6IGFueTtcclxuICBxdWVzdGlvbjogYW55O1xyXG4gIGVkaXREaXNwbGF5T3JkZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIHB1YmxpYyBhdWRpZW5jZVR5cGUgPSBBdWRpZW5jZVR5cGU7XHJcbiAgYXVkaWVuY2VUeXBlSUQ6IGFueTtcclxuICBzdXJ2ZXlBdWRpZW5jZVR5cGVJRDogYW55O1xyXG4gIGRpc3BsYXlPcmRlck9wdGlvbjogVGV4dEJveE9wdGlvbnM7XHJcbiAgaXNPcHRpb25JbkVkaXRNb2RlOiBib29sZWFuO1xyXG4gIFF1ZXN0aW9uczogYW55W107XHJcbiAgaXNWaWV3T25seTogYm9vbGVhbjtcclxuICBpZE9wdGlvbjogVGV4dEJveE9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHN1cnZleVF1ZXN0aW9uU2VydmljZTogU3VydmV5UXVlc3Rpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHBhZ2luZ0VsZW1lbnQ7XHJcbiAgQElucHV0KCkgb25TdWNjZXNzRWRpdEhhbmRsZXI7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IDEyOyBpbmRleCsrKSB7XHJcbiAgICAgIHZhciBpdGVtID0geyBrZXk6IGluZGV4ICsgMSwgdmFsdWU6IGAke2luZGV4ICsgMX1gIH07XHJcbiAgICAgIHRoaXMuU2l6ZUxpc3QucHVzaChpdGVtKTtcclxuICAgIH1cclxuICAgIHRoaXMubnVtYmVyVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkgPSAoXHJcbiAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxyXG4gICAgKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9eWzAtOV0qJC8pKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJWYWxpZGF0aW9uLm1hc3NhZ2UgPSB0aGlzLmwoJ0ludGVnZXJOdW1iZXJWYWxpZGF0aW9uS2V5Jyk7XHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tZXJFcnJvcjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9eWytdPyhbLl1cXGQrfFxcZCtbLl0/XFxkKikkLykpIHtcclxuICAgICAgICB0aGlzLm51bWJlclZhbGlkYXRpb24ubWFzc2FnZSA9IHRoaXMubCgnUG9zaXRpdmVOdW1iZXJWYWxpZGF0aW9uS2V5Jyk7XHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tZXJFcnJvcjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTY29yaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNob3dTY29yZU9wdGlvbiA9IHZhbHVlO1xyXG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydTY29yZSddKSB7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10ucmVzZXQoKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snU2NvcmUnXS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snU2NvcmUnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwZGF0ZUxlbmd0aFZhbGlkYXRvcihuYW1lLCBtYXgsIG1pbikge1xyXG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzW25hbWVdO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICBsZXQgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgICAgIHZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMubWluKG1pbikpO1xyXG4gICAgICB2YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLm1heChtYXgpKTtcclxuICAgICAgdmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyh2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZURhdGFUeXBlKGtleSkge1xyXG4gICAgdGhpcy51cGRhdGVGb3JtU3RhdHVzKGtleSk7XHJcbiAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dDpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgMjU1LCAxKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSwgMjU1LCAxKTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMjU1O1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSAyNTU7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgNDAwMCwgMSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMZW5ndGhWYWxpZGF0b3IodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUsIDQwMDAsIDEpO1xyXG4gICAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UudG8gPSA0MDAwO1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSA0MDAwO1xyXG4gICAgICAgIHRoaXMuaXNUZXh0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk51bWJlcjpcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSwgMTAwLCAxKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxlbmd0aFZhbGlkYXRvcih0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSwgMTAwLCAxKTtcclxuICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLm51bWJlclJhbmdlLnRvID0gMTAwO1xyXG4gICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubnVtYmVyUmFuZ2UudG8gPSAxMDA7XHJcbiAgICAgICAgdGhpcy5pc051bWJlciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5GaWxlOlxyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTXVsdGlGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlOlxyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkltYWdlOlxyXG4gICAgICAgIHRoaXMuaXNJbWFnZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc011bHRpRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNGaWxlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1NlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3Q6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3Q6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbjpcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1RleHQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzRmlsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzU2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0ltYWdlID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYW5nZUZvcm1TdGF0dXModmFsdWUpIHtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZWRpdE1vZGFsID0gKGlkLCBzdXJ2ZXlBdWRpZW5jZVR5cGVJRCwgaXNWaWV3T25seSA9IGZhbHNlKSA9PiB7XHJcbiAgICB0aGlzLmlzVmlld09ubHkgPSBpc1ZpZXdPbmx5O1xyXG4gICAgdGhpcy5pc0VkaXRGb3JtQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTnVtYmVyID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVGV4dCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0ZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNNdWx0aUZpbGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNTZWxlY3QgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNJbWFnZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5vcHRpb25MaXN0ID0gW107XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICB0aGlzLnF1ZXN0aW9uSUQgPSBpZDtcclxuICAgIHRoaXMuc3VydmV5UXVlc3Rpb25TZXJ2aWNlLmdldChpZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdCA9IHJlcyBhcyBhbnk7XHJcbiAgICAgIHRoaXMucXVlc3Rpb24gPSByZXN1bHQucXVlc3Rpb247XHJcbiAgICAgIHRoaXMuUXVlc3Rpb25zID0gcmVzdWx0LnF1ZXN0aW9ucztcclxuICAgICAgdGhpcy5zdXJ2ZXlJRCA9IHRoaXMucXVlc3Rpb24uc3VydmV5SUQ7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2VUeXBlSUQgPSB0aGlzLnF1ZXN0aW9uLmF1ZGllbmNlSXRlbUlEO1xyXG4gICAgICB0aGlzLnN1cnZleUF1ZGllbmNlVHlwZUlEID0gc3VydmV5QXVkaWVuY2VUeXBlSUQ7XHJcbiAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFN1cnZleVF1ZXN0aW9uRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy5lZGl0TW9kZWxGb3JtO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLmdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRNb2RlbDtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPVxyXG4gICAgICAgIHRoaXMuZ2V0RWRpdEZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuICAgICAgdGhpcy5lZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID1cclxuICAgICAgICB0aGlzLm9uU3VjY2Vzc0VkaXRIYW5kbGVyO1xyXG4gICAgICB0aGlzLmVkaXRTdXJ2ZXlRdWVzdGlvbkZvcm1PcHRpb25zLmRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCB0ZXh0ID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgdGV4dC5hcmFiaWMgPSB0aGlzLnF1ZXN0aW9uLnRleHQuYXJhYmljO1xyXG4gICAgICB0ZXh0LmVuZ2xpc2ggPSB0aGlzLnF1ZXN0aW9uLnRleHQuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLm5hbWUgPSAnVGV4dCc7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLmFyYWJpY0xhYmVsS2V5ID0gJ1F1ZXN0aW9uSW5BcmFiaWMnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5lbmdsaXNoTGFiZWxLZXkgPSAnUXVlc3Rpb25JbkVuZ2xpc2gnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24ubWF4TGVuZ3RoID0gNDAwMDtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb24ubGFuZ3VhZ2VNb2RlID0gdGhpcy5nZXRMYW5ndWFnZU1vZGVWYWx1ZSgpO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvbi52YWx1ZSA9IHRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLm5hbWUgPSAnRGVzY3JpcHRpb24nO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5hcmFiaWNMYWJlbEtleSA9ICdEZXNjcmlwdGlvbkluQXJhYmljJztcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uZW5nbGlzaExhYmVsS2V5ID0gJ0Rlc2NyaXB0aW9uSW5FbmdsaXNoJztcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5tYXhMZW5ndGggPSAyNTA7XHJcbiAgICAgIHRoaXMuZWRpdERlc2NyaXB0aW9uLnJvd3MgPSAyO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5hcmFiaWNMYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKFxyXG4gICAgICAgICdRdWVzdGlvbkRlc2NyaXB0aW9uSGludEFyYWJpYydcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uZW5nbGlzaExhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoXHJcbiAgICAgICAgJ1F1ZXN0aW9uRGVzY3JpcHRpb25IaW50RW5nbGlzaCdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lZGl0RGVzY3JpcHRpb24uaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi5sYW5ndWFnZU1vZGUgPSB0aGlzLmdldExhbmd1YWdlTW9kZVZhbHVlKCk7XHJcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIGRlc2NyaXB0aW9uLmFyYWJpYyA9IHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICBkZXNjcmlwdGlvbi5lbmdsaXNoID0gdGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICB0aGlzLmVkaXREZXNjcmlwdGlvbi52YWx1ZSA9IGRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUubmFtZSA9ICdRdWVzdGlvblR5cGVJdGVtSUQnO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUubGFiZWxLZXkgPSAnUHJvcGVydHlUeXBlJztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRRdWVzdGlvblR5cGUuZGF0YVNvdXJjZSA9IHJlc3VsdC5vcHRpb25UeXBlcztcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy5xdWVzdGlvbi5xdWVzdGlvblR5cGVJdGVtSUQ7XHJcbiAgICAgIHRoaXMuZWRpdFF1ZXN0aW9uVHlwZS5ub3RGb3VuZFRleHQgPSB0aGlzLmwoJ05vUmVzdWx0Rm91bmQnKTtcclxuICAgICAgdGhpcy5lZGl0UXVlc3Rpb25UeXBlLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5hdWRpZW5jZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5hdWRpZW5jZS5uYW1lID0gJ0F1ZGllbmNlSXRlbUlEJztcclxuICAgICAgdGhpcy5hdWRpZW5jZS5sYWJlbEtleSA9ICdBdWRpZW5jZSc7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICB0aGlzLmF1ZGllbmNlLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UuZGF0YVNvdXJjZSA9IHJlc3VsdC5hdWRpZW5jZXM7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2Uuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucXVlc3Rpb24uYXVkaWVuY2VJdGVtSUQ7XHJcbiAgICAgIHRoaXMuYXVkaWVuY2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnQXVkaWVuY2VEZXNjcmlwdGlvbkhpbnQnKTtcclxuICAgICAgdGhpcy5hdWRpZW5jZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFNpemUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUubmFtZSA9ICdTaXplJztcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5sYWJlbEtleSA9ICdTaXplJztcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuZGF0YVNvdXJjZSA9IHRoaXMuU2l6ZUxpc3Q7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0U2l6ZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLnNpemU7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcbiAgICAgIHRoaXMuZWRpdFNpemUuaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZCA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQubmFtZSA9ICdJc1JlcXVpcmVkJztcclxuICAgICAgdGhpcy5lZGl0UmVxdWlyZWQubGFiZWxLZXkgPSAnSXNSZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZWRpdFJlcXVpcmVkLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5pc1JlcXVpcmVkO1xyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdSZXF1aXJlZERlc2NyaXB0aW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRSZXF1aXJlZC5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUubmFtZSA9ICdJc0FsbG93U2NvcmluZyc7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUubGFiZWxLZXkgPSAnQWxsb3dTY29yZSc7XHJcbiAgICAgIHRoaXMuZWRpdEFsbG93U2NvcmUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmlzQWxsb3dTY29yaW5nO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0FsbG93U2NvcmVEZXNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ0FsbG93U2NvcmVEZXNjcmlwdGlvbicpO1xyXG4gICAgICB0aGlzLmVkaXRBbGxvd1Njb3JlLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRIYXNTZWFyY2gubmFtZSA9ICdIYXNTZWFyY2gnO1xyXG4gICAgICB0aGlzLmVkaXRIYXNTZWFyY2gubGFiZWxLZXkgPSAnSGFzU2VhcmNoJztcclxuICAgICAgdGhpcy5lZGl0SGFzU2VhcmNoLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLm5hbWUgPSAnSXNWaXNpYmxlJztcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUubGFiZWxLZXkgPSAnVmlzaWJsZSc7XHJcbiAgICAgIHRoaXMuZWRpdElzQWN0aXZlLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmlzVmlzaWJsZTtcclxuICAgICAgdGhpcy5lZGl0SXNBY3RpdmUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnVmlzaWJsZURlc2NyaXB0aW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRJc0FjdGl2ZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuTmFtZSA9IFwiRGlzcGxheU9yZGVyXCI7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5MYWJlbEtleSA9IFwiRGlzcGxheU9yZGVyXCI7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLk51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIC8vIHRoaXMuZWRpdERpc3BsYXlPcmRlci5OdW1iZXJSYW5nZS5Gcm9tID0gMTtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICAvLyB0aGlzLmVkaXREaXNwbGF5T3JkZXIuVmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRpc3BsYXlPcmRlcjtcclxuICAgICAgLy8gdGhpcy5lZGl0RGlzcGxheU9yZGVyLkN1c3RvbVZhbGlkYXRpb24gPSBbdGhpcy5udW1iZXJWYWxpZGF0aW9uXTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSA9ICdNYXhMZW5ndGgnO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubGFiZWxLZXkgPSAnTWF4TGVuZ3RoJztcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgubnVtYmVyUmFuZ2UgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGgudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLm9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICB0aGlzLmVkaXRNYXhMZW5ndGguaXNEaXNhYmxlZCA9IGlzVmlld09ubHk7XHJcbiAgICAgIHRoaXMuZWRpdE1heExlbmd0aC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5sKCdNYXhIaW50Jyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUgPSAnTWluTGVuZ3RoJztcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLmxhYmVsS2V5ID0gJ01pbkxlbmd0aCc7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG4gICAgICB0aGlzLmVkaXRNaW5MZW5ndGgubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnTWluSGludCcpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci5uYW1lID0gJ1Jvd3MnO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmxhYmVsS2V5ID0gJ1Jvd3MnO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdFJvd3NOdW1iZXIubnVtYmVyUmFuZ2UudG8gPSAyMDtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0Um93c051bWJlci52YWx1ZSA9IHRoaXMucXVlc3Rpb24ub3B0aW9ucy5yb3dzO1xyXG4gICAgICB0aGlzLmVkaXRSb3dzTnVtYmVyLmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSA9ICdNYXhGaWxlU2l6ZUluTUInO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5sYWJlbEtleSA9ICdNYXhGaWxlU2l6ZUluTUInO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubnVtYmVyUmFuZ2UgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUubnVtYmVyUmFuZ2UuZnJvbSA9IDE7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplLm51bWJlclJhbmdlLnRvID0gMTAwO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemUudmFsdWUgPSB0aGlzLnF1ZXN0aW9uLm9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZS5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSA9ICdNYXhGaWxlQ291bnQnO1xyXG4gICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnQubGFiZWxLZXkgPSAnTWF4RmlsZXNDb3VudCc7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50Lm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50Lm51bWJlclJhbmdlLnRvID0gNTA7XHJcbiAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLmwoJ01heEZpbGVDb3VudEhpbnQnKTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LnZhbHVlID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmN1c3RvbVZhbGlkYXRpb24gPSBbdGhpcy5udW1iZXJWYWxpZGF0aW9uXTtcclxuICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50LmlzRGlzYWJsZWQgPSBpc1ZpZXdPbmx5O1xyXG5cclxuICAgICAgbGV0IEZpbGVzRXh0ZW5zaW9uUmVzdWx0ID0gdGhpcy5xdWVzdGlvbi5vcHRpb25zXHJcbiAgICAgICAgLmFsbG93ZWRFeHRlbnNpb25zIGFzIHN0cmluZ1tdO1xyXG4gICAgICBsZXQgRmlsZXNFeHRlbnNpb25zID0gRmlsZXNFeHRlbnNpb25SZXN1bHRcclxuICAgICAgICA/IHJlc3VsdC5leHRlbnNpb25zXHJcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBGaWxlc0V4dGVuc2lvblJlc3VsdC5pbmNsdWRlcyhpdGVtLmtleSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpXHJcbiAgICAgICAgOiBbXTtcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSA9ICdBbGxvd2VkRXh0ZW5zaW9ucyc7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5sYWJlbEtleSA9ICdFeHRlbnNpb25zJztcclxuICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuZGF0YVNvdXJjZSA9IHJlc3VsdC5leHRlbnNpb25zO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMuc2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5zZWxlY3RlZEl0ZW1zID0gRmlsZXNFeHRlbnNpb25zO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubCgnRXh0ZW5zaW9uSGludCcpO1xyXG4gICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubm90Rm91bmRUZXh0ID0gdGhpcy5sKCdOb1Jlc3VsdEZvdW5kJyk7XHJcbiAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5pc0Rpc2FibGVkID0gaXNWaWV3T25seTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5hZGRWYWxpZGF0b3JzKHRoaXMuZnJvbVRvKFwiTWluTGVuZ3RoXCIsIFwiTWF4TGVuZ3RoXCIpKTtcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRGF0YVR5cGUodGhpcy5xdWVzdGlvbi5xdWVzdGlvblR5cGVJdGVtSUQpO1xyXG4gICAgICB0aGlzLmNoYW5nZVNjb3JpbmcodGhpcy5xdWVzdGlvbi5pc0FsbG93U2NvcmluZyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRPcHRpb25JZCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25JZC5uYW1lID0gJ0lkJztcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQuaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uSWQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLm5hbWUgPSAnTmFtZU9wdGlvbic7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24uYXJhYmljTGFiZWxLZXkgPSAnTmFtZUluQXJhYmljJztcclxuICAgICAgdGhpcy5lZGl0TmFtZU9wdGlvbi5lbmdsaXNoTGFiZWxLZXkgPSAnTmFtZUluRW5nbGlzaCc7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24uaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWVPcHRpb24ubWF4TGVuZ3RoID0gMjI1O1xyXG4gICAgICB0aGlzLmVkaXROYW1lT3B0aW9uLmxhbmd1YWdlTW9kZSA9IHRoaXMuZ2V0TGFuZ3VhZ2VNb2RlVmFsdWUoKTtcclxuXHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5zY29yZU51bWJlci5uYW1lID0gJ1Njb3JlJztcclxuICAgICAgdGhpcy5zY29yZU51bWJlci5sYWJlbEtleSA9ICdTY29yZSc7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2NvcmVOdW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICByYW5nZU51bWJlci50byA9IDEwMDAwMDA7XHJcbiAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSAxO1xyXG4gICAgICB0aGlzLnNjb3JlTnVtYmVyLm51bWJlclJhbmdlID0gcmFuZ2VOdW1iZXI7XHJcblxyXG4gICAgICB0aGlzLmRpc3BsYXlPcmRlck9wdGlvbiA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmRpc3BsYXlPcmRlck9wdGlvbi5uYW1lID0gJ0Rpc3BsYXlPcmRlcic7XHJcblxyXG4gICAgICB0aGlzLmlkT3B0aW9uID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuaWRPcHRpb24ubmFtZSA9ICdJZE9wdGlvbic7XHJcblxyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5uYW1lID0gJ0xpbmtlZFF1ZXN0aW9ucyc7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5sYWJlbEtleSA9ICdMaW5rZWRRdWVzdGlvbnMnO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMuZGF0YVNvdXJjZSA9IHJlc3VsdC5xdWVzdGlvbnM7XHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9ucy5zaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uTGlua2VkUXVlc3Rpb25zLm5vdEZvdW5kVGV4dCA9IHRoaXMubCgnTm9SZXN1bHRGb3VuZCcpO1xyXG4gICAgICB0aGlzLmVkaXRPcHRpb25MaW5rZWRRdWVzdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMubChcclxuICAgICAgICAnTGlua2VkUXVlc3Rpb25EZXNjcmlwdGlvbkhpbnQnXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi5xdWVzdGlvbk9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAoXHJcbiAgICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgICAgaW5kZXggPCB0aGlzLnF1ZXN0aW9uLnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICBpbmRleCsrXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5xdWVzdGlvbi5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25MaXN0LnB1c2gobmV3IFN1cnZleVF1ZXN0aW9uT3B0aW9uRFRPKGVsZW1lbnQpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMub3Blbk1vZGFsKHRoaXMuRWRpdE1vZGFsLCAneGwnKTtcclxuICAgICAgdGhpcy5zdG9wQmxvY2tVSSgpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBnZXRFZGl0TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCByZXN1bHRPcHRpb25Nb2RlbCA9IHRoaXMuZWRpdE9wdGlvbkZvcm0udmFsdWUgYXMgYW55O1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5lZGl0TW9kZWxGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAocmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5BcmFiaWMgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICByZXN1bHRPcHRpb25Nb2RlbC5OYW1lT3B0aW9uLkFyYWJpYyAhPSAnJykgfHxcclxuICAgICAgICAocmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgcmVzdWx0T3B0aW9uTW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoICE9ICcnKSB8fFxyXG4gICAgICAgIChyZXN1bHRPcHRpb25Nb2RlbC5TY29yZSAhPSB1bmRlZmluZWQgJiYgcmVzdWx0T3B0aW9uTW9kZWwuU2NvcmUgPiAwKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubCgnT3B0aW9uUGVuZGluZ0RhdGFFcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbkxpc3QubGVuZ3RoID09IDAgJiYgdGhpcy5pc1NlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdPcHRpb25FcnJvck1lc3NhZ2UnKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIGxldCBlZGl0TW9kZWw6IFN1cnZleVF1ZXN0aW9uRFRPID0gbmV3IFN1cnZleVF1ZXN0aW9uRFRPKCk7XHJcbiAgICBlZGl0TW9kZWwuSURfR1VJRCA9IHRoaXMucXVlc3Rpb25JRDtcclxuICAgIGVkaXRNb2RlbC5TdXJ2ZXlJRCA9IHRoaXMuc3VydmV5SUQ7XHJcbiAgICAvLyBlZGl0TW9kZWwuRGlzcGxheU9yZGVyID0gcmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyO1xyXG4gICAgZWRpdE1vZGVsLlRleHQuYXJhYmljID0gcmVzdWx0TW9kZWwuVGV4dC5BcmFiaWM7XHJcbiAgICBlZGl0TW9kZWwuVGV4dC5lbmdsaXNoID0gcmVzdWx0TW9kZWwuVGV4dC5FbmdsaXNoO1xyXG4gICAgZWRpdE1vZGVsLkRlc2NyaXB0aW9uLmFyYWJpYyA9IHJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgIGVkaXRNb2RlbC5EZXNjcmlwdGlvbi5lbmdsaXNoID0gcmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkRlc2NyaXB0aW9uLmFyYWJpYyA9IHJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkRlc2NyaXB0aW9uLmVuZ2xpc2ggPSByZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoO1xyXG4gICAgaWYgKHRoaXMuc3VydmV5QXVkaWVuY2VUeXBlSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpXHJcbiAgICAgIGVkaXRNb2RlbC5BdWRpZW5jZUl0ZW1JRCA9IHJlc3VsdE1vZGVsLkF1ZGllbmNlSXRlbUlEO1xyXG4gICAgZWxzZSBlZGl0TW9kZWwuQXVkaWVuY2VJdGVtSUQgPSB0aGlzLmF1ZGllbmNlVHlwZUlEO1xyXG4gICAgZWRpdE1vZGVsLlF1ZXN0aW9uVHlwZUl0ZW1JRCA9IHRoaXMucXVlc3Rpb24ucXVlc3Rpb25UeXBlSXRlbUlEO1xyXG4gICAgZWRpdE1vZGVsLklzQWxsb3dTY29yaW5nID0gcmVzdWx0TW9kZWwuSXNBbGxvd1Njb3Jpbmc7XHJcbiAgICBlZGl0TW9kZWwuT3B0aW9ucy5TaXplID0gcmVzdWx0TW9kZWwuU2l6ZTtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLklzUmVxdWlyZWQgPSByZXN1bHRNb2RlbC5Jc1JlcXVpcmVkO1xyXG4gICAgZWRpdE1vZGVsLklzUmVxdWlyZWQgPSByZXN1bHRNb2RlbC5Jc1JlcXVpcmVkO1xyXG4gICAgZWRpdE1vZGVsLklzVmlzaWJsZSA9IHJlc3VsdE1vZGVsLklzVmlzaWJsZTtcclxuICAgIGVkaXRNb2RlbC5PcHRpb25zLkhhc1NlYXJjaCA9IHJlc3VsdE1vZGVsLkhhc1NlYXJjaDtcclxuXHJcbiAgICBpZiAodGhpcy5pc1RleHQgfHwgdGhpcy5pc051bWJlcikge1xyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5NaW5MZW5ndGggPSByZXN1bHRNb2RlbC5NaW5MZW5ndGg7XHJcbiAgICAgIGVkaXRNb2RlbC5PcHRpb25zLk1heExlbmd0aCA9IHJlc3VsdE1vZGVsLk1heExlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0ZpbGUgfHwgdGhpcy5pc011bHRpRmlsZSB8fCB0aGlzLmlzSW1hZ2UpXHJcbiAgICAgIGVkaXRNb2RlbC5PcHRpb25zLk1heEZpbGVTaXplSW5NQiA9IHJlc3VsdE1vZGVsLk1heEZpbGVTaXplSW5NQjtcclxuXHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZSlcclxuICAgICAgZWRpdE1vZGVsLk9wdGlvbnMuTWF4RmlsZUNvdW50ID0gcmVzdWx0TW9kZWwuTWF4RmlsZUNvdW50O1xyXG5cclxuICAgIGlmICh0aGlzLmlzTXVsdGlGaWxlIHx8IHRoaXMuaXNGaWxlKVxyXG4gICAgICBlZGl0TW9kZWwuT3B0aW9ucy5BbGxvd2VkRXh0ZW5zaW9ucyA9IHJlc3VsdE1vZGVsLkFsbG93ZWRFeHRlbnNpb25zO1xyXG5cclxuICAgIGlmICh0aGlzLmlzU2VsZWN0KSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25MaXN0W2luZGV4XS5EaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICAgICAgZWRpdE1vZGVsLlF1ZXN0aW9uT3B0aW9ucyA9IHRoaXMub3B0aW9uTGlzdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhcmFtQXJyYXkucHVzaChlZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfTtcclxuICBnZXRFZGl0RnVuY3Rpb24gPSAoZWRpdE1vZGFsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGlmICghdGhpcy5lcnJvck1lc3NhZ2UpIHJldHVybiB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS5lZGl0KGVkaXRNb2RhbCk7XHJcbiAgfTtcclxuICBnZXRMaW5rZWRRdWVzdGlvbnMob3B0aW9uOiBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTykge1xyXG4gICAgcmV0dXJuIHRoaXMuUXVlc3Rpb25zLmZpbHRlcigoaXRlbSkgPT5cclxuICAgICAgb3B0aW9uLkxpbmtlZFF1ZXN0aW9ucy5pbmNsdWRlcyhpdGVtLmtleSlcclxuICAgICkubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGFkZE9wdGlvbigpIHtcclxuICAgIHRoaXMudG90YWxTY29yZSA9IDA7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmVkaXRPcHRpb25Gb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5lZGl0T3B0aW9uRm9ybS52YWx1ZSBhcyBhbnk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9uTGlzdC5sZW5ndGggPj0gMSAmJiB0aGlzLnNob3dTY29yZU9wdGlvbikge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5vcHRpb25MaXN0W2luZGV4XS5TY29yZTtcclxuICAgICAgICBpZiAoZWxlbWVudCA+IDEwMDAwMDApIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdNYXhPcHRpb25TY29yZUVycm9yTWVzc2FnZScpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZWxlbWVudCA8IDEpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5sKCdNaW5PcHRpb25TY29yZUVycm9yTWVzc2FnZScpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgbGV0IG9wdGlvbiA9IG5ldyBTdXJ2ZXlRdWVzdGlvbk9wdGlvbkRUTygpO1xyXG4gICAgb3B0aW9uLk5hbWUuYXJhYmljID0gcmVzdWx0TW9kZWwuTmFtZU9wdGlvbi5BcmFiaWM7XHJcbiAgICBvcHRpb24uTmFtZS5lbmdsaXNoID0gcmVzdWx0TW9kZWwuTmFtZU9wdGlvbi5FbmdsaXNoO1xyXG4gICAgb3B0aW9uLklEX0dVSUQgPSByZXN1bHRNb2RlbC5JZE9wdGlvbjtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgaWYgKHJlc3VsdE1vZGVsLkRpc3BsYXlPcmRlcilcclxuICAgICAgb3B0aW9uLkRpc3BsYXlPcmRlciA9IHJlc3VsdE1vZGVsLkRpc3BsYXlPcmRlcjtcclxuICAgIGVsc2Ugb3B0aW9uLkRpc3BsYXlPcmRlciA9IHRoaXMub3B0aW9uTGlzdC5sZW5ndGggKyAxO1xyXG5cclxuICAgIG9wdGlvbi5MaW5rZWRRdWVzdGlvbnMgPSByZXN1bHRNb2RlbC5MaW5rZWRRdWVzdGlvbnM7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pXHJcbiAgICAgIG9wdGlvbi5TY29yZSA9IE51bWJlci5wYXJzZUZsb2F0KHJlc3VsdE1vZGVsLlNjb3JlKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ05hbWVPcHRpb24nXS5yZXNldCgpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snSWRPcHRpb24nXS5yZXNldCgpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snRGlzcGxheU9yZGVyJ10ucmVzZXQoKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0xpbmtlZFF1ZXN0aW9ucyddLnJlc2V0KCk7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10ucmVzZXQoKTtcclxuICAgIHRoaXMub3B0aW9uTGlzdC5zcGxpY2Uob3B0aW9uLkRpc3BsYXlPcmRlciAtIDEsIDAsIG9wdGlvbik7XHJcbiAgICB0aGlzLmlzRWRpdEZvcm1DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5pc09wdGlvbkluRWRpdE1vZGUgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU9wdGlvbihvcHRpb24pIHtcclxuICAgIHRoaXMub3B0aW9uTGlzdCA9IHRoaXMub3B0aW9uTGlzdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gb3B0aW9uKTtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBlZGl0T3B0aW9uKG9wdGlvbjogU3VydmV5UXVlc3Rpb25PcHRpb25EVE8pIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5lZGl0T3B0aW9uRm9ybS50b3VjaGVkID09IHRydWUgJiYgdGhpcy5lZGl0T3B0aW9uRm9ybS52YWxpZCkgfHxcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS50b3VjaGVkID09IGZhbHNlXHJcbiAgICApXHJcbiAgICAgIHRoaXMuYWRkT3B0aW9uKCk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgIG5hbWUuYXJhYmljID0gb3B0aW9uLk5hbWUuYXJhYmljID8/IG51bGw7XHJcbiAgICBuYW1lLmVuZ2xpc2ggPSBvcHRpb24uTmFtZS5lbmdsaXNoID8/IG51bGw7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydOYW1lT3B0aW9uJ10uc2V0VmFsdWUobmFtZSk7XHJcbiAgICB0aGlzLmVkaXRPcHRpb25Gb3JtLmNvbnRyb2xzWydJZE9wdGlvbiddLnNldFZhbHVlKG9wdGlvbi5JRF9HVUlEKTtcclxuICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ0Rpc3BsYXlPcmRlciddLnNldFZhbHVlKG9wdGlvbi5EaXNwbGF5T3JkZXIpO1xyXG4gICAgdGhpcy5lZGl0T3B0aW9uRm9ybS5jb250cm9sc1snTGlua2VkUXVlc3Rpb25zJ10uc2V0VmFsdWUoXHJcbiAgICAgIG9wdGlvbi5MaW5rZWRRdWVzdGlvbnNcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93U2NvcmVPcHRpb24pXHJcbiAgICAgIHRoaXMuZWRpdE9wdGlvbkZvcm0uY29udHJvbHNbJ1Njb3JlJ10uc2V0VmFsdWUob3B0aW9uLlNjb3JlKTtcclxuICAgIHRoaXMub3B0aW9uTGlzdCA9IHRoaXMub3B0aW9uTGlzdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gb3B0aW9uKTtcclxuICAgIHRoaXMuaXNFZGl0Rm9ybUNoYW5nZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzT3B0aW9uSW5FZGl0TW9kZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmcm9tVG8oZnJvbUZpZWxkOiBzdHJpbmcsIHRvRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IG51bGwgPT4ge1xyXG4gICAgICBjb25zdCBmcm9tRGF0ZSA9IGZvcm1Hcm91cC5nZXQoZnJvbUZpZWxkKTtcclxuICAgICAgY29uc3QgdG9EYXRlID0gZm9ybUdyb3VwLmdldCh0b0ZpZWxkKTtcclxuICAgICAgaWYgKGZyb21EYXRlICE9PSBudWxsICYmIHRvRGF0ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZyb21EYXRlLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICB0b0RhdGUudmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICAgIHBhcnNlSW50KGZyb21EYXRlLnZhbHVlKSA+IHBhcnNlSW50KHRvRGF0ZS52YWx1ZSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGZyb21EYXRlLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIHRvRGF0ZS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0b0RhdGUuc2V0RXJyb3JzKHtcclxuICAgICAgICAgICAgZXJyb3JNYXNzYWdlOiB0aGlzLmwoJ0dyZWF0ZXJUaGFuT3JFcXVhbFRvJyksXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBmcm9tRGF0ZS52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgdG9EYXRlLnZhbHVlICE9PSBudWxsICYmXHJcbiAgICAgICAgICBwYXJzZUludChmcm9tRGF0ZS52YWx1ZSkgPCBwYXJzZUludCh0b0RhdGUudmFsdWUpICYmXHJcbiAgICAgICAgICBwYXJzZUludCh0b0RhdGUudmFsdWUpIDwgMjU1ICYmXHJcbiAgICAgICAgICBwYXJzZUludChmcm9tRGF0ZS52YWx1ZSkgPCAyNTVcclxuICAgICAgICApXHJcbiAgICAgICAgICB0b0RhdGUuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuXHJcbiAgdXBkYXRlRm9ybVN0YXR1cyhrZXk6IGFueSkge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlRleHQ6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aWxpbmVUZXh0OlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk51bWJlcjpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5GaWxlOlxyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heExlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4TGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1pbkxlbmd0aC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWluTGVuZ3RoXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5hZGRSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVTaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVDb3VudC5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZUNvdW50XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9ucy5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZTpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLmFkZFJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZTpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMuYWRkUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aXBsZVNlbGVjdDpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdDpcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhMZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heExlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNaW5MZW5ndGgubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1pbkxlbmd0aFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSlcclxuICAgICAgICAgIHRoaXMucmVtb3ZlUmVxdWlyZWRSdWxlKFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlbEZvcm0uZ2V0KHRoaXMuZWRpdE1heEZpbGVTaXplLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlU2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlQ291bnQubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1heEZpbGVDb3VudFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnMubmFtZSksXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdEZpbGVzRXh0ZW5zaW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4TGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhMZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWluTGVuZ3RoLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNaW5MZW5ndGhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZVNpemUubmFtZSkpXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZVJlcXVpcmVkUnVsZShcclxuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZWxGb3JtLmdldCh0aGlzLmVkaXRNYXhGaWxlU2l6ZS5uYW1lKSxcclxuICAgICAgICAgICAgdGhpcy5lZGl0TWF4RmlsZVNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0TWF4RmlsZUNvdW50Lm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRNYXhGaWxlQ291bnRcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpKVxyXG4gICAgICAgICAgdGhpcy5yZW1vdmVSZXF1aXJlZFJ1bGUoXHJcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVsRm9ybS5nZXQodGhpcy5lZGl0RmlsZXNFeHRlbnNpb25zLm5hbWUpLFxyXG4gICAgICAgICAgICB0aGlzLmVkaXRGaWxlc0V4dGVuc2lvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL2RyYWcgYW5kIGRyb3BcclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLm9wdGlvbkxpc3QsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgIGVsZW1lbnQuRGlzcGxheU9yZGVyID0gaW5kZXggKyAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0VkaXRGb3JtQ2hhbmdlID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICNFZGl0TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgKm5nSWY9XCIhaXNWaWV3T25seVwiPlxyXG4gICAgICB7e2woXCJFZGl0X1F1ZXN0aW9uXCIpfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiICpuZ0lmPVwiaXNWaWV3T25seVwiPlxyXG4gICAgICB7e2woXCJEZXRhaWxzXCIpfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGNsYXNzPVwiYnRuIGJ0bi1pY29uIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgc3ZnLWljb24taG92ZXItYnJhbmRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9tb2RhbGNsb3NlLnN2ZydcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJlZGl0U3VydmV5UXVlc3Rpb25Gb3JtT3B0aW9uc1wiIChPbkNoYW5nZSk9XCJjaGFuZ2VGb3JtU3RhdHVzKCRldmVudClcIj5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdFF1ZXN0aW9uXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRBcmVhIFtvcHRpb25zXT1cImVkaXREZXNjcmlwdGlvblwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRBcmVhPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cInN1cnZleUF1ZGllbmNlVHlwZUlEPT1hdWRpZW5jZVR5cGUuQm90aFwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJhdWRpZW5jZVwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0UXVlc3Rpb25UeXBlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIiAoT25DaGFuZ2UpPVwiY2hhbmdlRGF0YVR5cGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdFNpemVcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cImlzU2VsZWN0XCIgPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImVkaXRBbGxvd1Njb3JlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIiAoT25DaGFuZ2UpPVwiY2hhbmdlU2NvcmluZygkZXZlbnQpXCI+PC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZWRpdElzQWN0aXZlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJlZGl0UmVxdWlyZWRcIiBbZ3JvdXBdPVwiZWRpdE1vZGVsRm9ybVwiPjwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJpc1RleHR8fGlzTnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TWluTGVuZ3RoXCIgKm5nSWY9XCJpc1RleHR8fGlzTnVtYmVyXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNUZXh0fHxpc051bWJlclwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE1heExlbmd0aFwiICpuZ0lmPVwiaXNUZXh0fHxpc051bWJlclwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNGaWxlfHxpc011bHRpRmlsZXx8aXNJbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE1heEZpbGVTaXplXCIgKm5nSWY9XCJpc0ZpbGV8fGlzTXVsdGlGaWxlfHxpc0ltYWdlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNNdWx0aUZpbGVcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRNYXhGaWxlQ291bnRcIiAqbmdJZj1cImlzTXVsdGlGaWxlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwiaXNGaWxlfHxpc011bHRpRmlsZVwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0RmlsZXNFeHRlbnNpb25zXCIgKm5nSWY9XCJpc0ZpbGV8fGlzTXVsdGlGaWxlXCIgW2dyb3VwXT1cImVkaXRNb2RlbEZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdERpc3BsYXlPcmRlclwiIFtncm91cF09XCJlZGl0TW9kZWxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTZWxlY3RcIiBjbGFzcz1cInF1ZXN0aW9uLXR5cGUtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgIDxoNT57e2woJ09wdGlvbnMnKX19PC9oNT5cclxuICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtbGlzdGluZ1wiICpuZ0Zvcj1cImxldCBPcHRpb24gb2Ygb3B0aW9uTGlzdDtcIiBjZGtEcmFnPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIGZzLTYgZnctYm9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tnZXRDdXJyZW50RmFpbE92ZXIoT3B0aW9uLk5hbWUpfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLXNxdWFyZSBiYWRnZS1kYXJrIG1lLTRcIiAqbmdJZj1cInNob3dTY29yZU9wdGlvblwiIG5nYlRvb2x0aXA9XCJ7e2woJ1Njb3JlJyl9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tPcHRpb24uU2NvcmV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlIGJhZGdlLXNxdWFyZSBiYWRnZS1icmFuZCBjdXJzb3ItcG9pbnRlciBtZS00XCIgKm5nSWY9XCJPcHRpb24uTGlua2VkUXVlc3Rpb25zPy5sZW5ndGg+MFwiIG5nYlRvb2x0aXA9XCJ7e2dldExpbmtlZFF1ZXN0aW9ucyhPcHRpb24pfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNCBzdmctaWNvbi13aGl0ZVwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2luZm8uc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2UgYmFkZ2Utc3F1YXJlIGJhZGdlLWJyYW5kIGN1cnNvci1wb2ludGVyIG1lLTRcIiAoY2xpY2spPVwiZWRpdE9wdGlvbihPcHRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTQgc3ZnLWljb24td2hpdGVcIiBuZ2JUb29sdGlwPVwie3tsKCdFZGl0Jyl9fVwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL0VkaXQuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1zcXVhcmUgYmFkZ2UtZGFuZ2VyIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTQgc3ZnLWljb24td2hpdGVcIiBuZ2JUb29sdGlwPVwie3tsKCdEZWxldGUnKX19XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlT3B0aW9uKE9wdGlvbilcIiBhcHBwcmV2ZW50ZG91YmxlY2xpY2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWFsZXJ0LWRhbmdlciBhbGVydC1kYW5nZXJcIiAqbmdJZj1cImVycm9yTWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMnR4IHN2Zy1pY29uLWRhbmdlciBtZS00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvaW5mby5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkXCI+PGRpdiBjbGFzcz1cImZzLTcgdGV4dC1kYW5nZXJcIj57e2Vycm9yTWVzc2FnZX19PC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVwZWF0ZXItYmdcIiAqbmdJZj1cIiFpc1ZpZXdPbmx5XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBoaWRkZW49XCJ0cnVlXCIgW29wdGlvbnNdPVwiZWRpdE9wdGlvbklkXCIgW2dyb3VwXT1cImVkaXRPcHRpb25Gb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE5hbWVPcHRpb25cIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZWRpdE9wdGlvbkxpbmtlZFF1ZXN0aW9uc1wiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImRpc3BsYXlPcmRlck9wdGlvblwiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJpZE9wdGlvblwiIFtncm91cF09XCJlZGl0T3B0aW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiICpuZ0lmPVwic2hvd1Njb3JlT3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwic2NvcmVOdW1iZXJcIiBbZ3JvdXBdPVwiZWRpdE9wdGlvbkZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkT3B0aW9uKClcIiAqbmdJZj1cIiFpc09wdGlvbkluRWRpdE1vZGVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWJyYW5kIHctMTAwXCI+e3tsKFwiQWRkXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkT3B0aW9uKClcIiAqbmdJZj1cImlzT3B0aW9uSW5FZGl0TW9kZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tYnJhbmQgdy0xMDBcIj57e2woXCJFZGl0XCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBwYi0wIG0tMFwiID5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodFwiICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAge3tsKFwiQ2FuY2VsXCIpfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gYXBwUHJldmVudERvdWJsZUNsaWNrIHR5cGU9XCJzdWJtaXRcIiAgW2Rpc2FibGVkXT1cIiFpc0VkaXRGb3JtQ2hhbmdlXCIgICAqbmdJZj1cIiFpc1ZpZXdPbmx5XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1icmFuZFwiPnt7bChcIlNhdmVcIil9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
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
|
package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs
CHANGED
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
135
135
|
type: ViewChild,
|
|
136
136
|
args: ['PreviewQuestionModal', { static: false }]
|
|
137
137
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBbUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcFEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFJeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUt2RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBb0JwRCxZQUFvQixRQUFrQixFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFDbEgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdC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Z0I7a0dBQWhCLGdCQUFnQix3TUNiN0Isb3NFQXlDQTs7MkZENUJhLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxhQUFhO3NJQVUrQixvQkFBb0I7c0JBQXpFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iLCBDaGVja0JveE9wdGlvbnMsIENvbnRyb2xMYXlvdXQsIERyb3Bkb3duT3B0aW9ucywgRm9yY2VEaXJlY3Rpb24sIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdlSGVhZGVyT3B0aW9ucywgUmFkaW9CdXR0b25PcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1cnZleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcmV2aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlldy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByZXZpZXdDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc3VydmV5SUQ6IGFueTtcclxuICBzdXJ2ZXlGb3JtRmllbGQ6IFN1cnZleUZvcm1PcHRpb25zO1xyXG4gIGlzRGF0ZUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1ByZXZpZXdRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByZXZpZXdRdWVzdGlvbk1vZGFsOiBTdXJ2ZXlGb3JtQ29tcG9uZW50O1xyXG4gIHByZXZpZXdTdXJ2ZXlPcHRpb25zOiBhbnk7XHJcbiAgc3VydmV5SW5mbzogYW55O1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIGF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uOiBSYWRpb0J1dHRvbk9wdGlvbnM7XHJcbiAgYXVkaWVuY2VUeXBlSUQ6IHN0cmluZztcclxuICBzaG93QXVkaWVuY2VUeXBlOiBib29sZWFuID0gZmFsc2VcclxuICBzaG93SW50ZXJuYWw6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHNob3dFeHRlcm5hbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgbmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZW1haWw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnN1cnZleUlEID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJpZFwiXTtcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlSUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImF1ZGllbmNlSURcIl07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRDcnVtYiA9IFtdO1xyXG4gICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5X0RldGFpbHNcIiksIGZhbHNlLCBgLi4vLi4vLi4vLi4vaW5mby8ke3RoaXMuc3VydmV5SUR9YCksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlByZXZpZXdfRGV0YWlsc1wiKSwgdHJ1ZSkpO1xyXG5cclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuc2VhcmNoVGV4dEJveC5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuYnJlYWRDcnVtYi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5icmVhZENydW1iLmJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuXHJcbiAgICB0aGlzLmF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uID0gbmV3IFJhZGlvQnV0dG9uT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVSYWRpb0J1dHRvbi5uYW1lID0gXCJBdWRpZW5jZVR5cGVcIlxyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVSYWRpb0J1dHRvbi52YWx1ZSA9IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCBhcyBhbnlcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24uaXRlbXMgPSBbeyB0ZXh0OiB0aGlzLmwoJ0ludGVybmFsVXNlcnMnKSwgdmFsdWU6IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB9LCB7IHRleHQ6IHRoaXMubCgnRXh0ZXJuYWxVc2VycycpLCB2YWx1ZTogQXVkaWVuY2VUeXBlLkV4dGVybmFsIH1dXHJcblxyXG4gICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcblxyXG5cclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5wcmV2aWV3KHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5wcmV2aWV3Rm9ybTtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3TW9kZWw7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3RnVuY3Rpb247XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzRGVsZXRlSGFuZGxlcjtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnN1cnZleUluZm8gPSByZXMgYXMgYW55XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMudGl0bGVWYWx1ZSA9IHRoaXMuc3VydmV5SW5mby50aXRsZS5jdXJyZW50X0ZhaWxPdmVyO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5lbmdsaXNoIHx8IHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5hcmFiaWMpIHtcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0ubmFtZSA9IFwiZGVjbGFyYXRpb25cIjtcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtLmxhYmVsVmFsdWUgPSB0aGlzLkVOID8gdGhpcy5zdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmVuZ2xpc2ggOiB0aGlzLnN1cnZleUluZm8uZGVjbGFyYXRpb24uYXJhYmljO1xyXG4gICAgICAgIHRoaXMuZGVjbGFyYXRpb25DaGVja0JveEZvcm0uaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkID0gbmV3IFN1cnZleUZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLk5hbWUgPSBcIlN1cnZleUZpZWxkc1wiO1xyXG4gICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5SZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuYXVkaWVuY2VUeXBlSUQpIHtcclxuICAgICAgICBjYXNlIEF1ZGllbmNlVHlwZS5Cb3RoOlxyXG4gICAgICAgICAgdGhpcy5zaG93QXVkaWVuY2VUeXBlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuSW50ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuSW50ZXJuYWw6XHJcbiAgICAgICAgICB0aGlzLnNob3dBdWRpZW5jZVR5cGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkludGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWw6XHJcbiAgICAgICAgICB0aGlzLnNob3dBdWRpZW5jZVR5cGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRFeHRlcm5hbENvbnRyb2xzKClcclxuICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0RhdGVMb2FkZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aWV3TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCByZXN1bHRNb2RlbCA9IHRoaXMucHJldmlld0Zvcm0udmFsdWU7XHJcbiAgICBwYXJhbUFycmF5LnB1c2gocmVzdWx0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldFByZXZpZXdGdW5jdGlvbiA9IChtb2RhbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QpXHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgQ2hhbmdlQXVkaWVuY2VUeXBlVmFsdWUodmFsdWUpIHtcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuSW50ZXJuYWw6XHJcbiAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQXVkaWVuY2VUeXBlLkV4dGVybmFsOlxyXG4gICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZEV4dGVybmFsQ29udHJvbHMoKVxyXG4gICAgICAgIHRoaXMuc3VydmV5Rm9ybUZpZWxkLlF1ZXN0aW9uTGlzdCA9IHRoaXMuc3VydmV5SW5mby5xdWVzdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuRXh0ZXJuYWwgfHwgaXRlbS5hdWRpZW5jZUl0ZW1JRCA9PSBBdWRpZW5jZVR5cGUuQm90aCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEV4dGVybmFsQ29udHJvbHMoKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMubmFtZS5uYW1lID0gXCJOYW1lXCI7XHJcbiAgICB0aGlzLm5hbWUuYXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiXHJcbiAgICB0aGlzLm5hbWUuZW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCJcclxuICAgIHRoaXMubmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubmFtZS5tYXhMZW5ndGggPSAxMDA7XHJcbiAgICB0aGlzLm5hbWUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcblxyXG4gICAgdGhpcy5lbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5lbWFpbC5uYW1lID0gXCJFbWFpbFwiXHJcbiAgICB0aGlzLmVtYWlsLmxhYmVsS2V5ID0gXCJFbWFpbFwiXHJcbiAgICB0aGlzLmVtYWlsLnR5cGUgPSBJbnB1dFR5cGUuRW1haWxcclxuICAgIHRoaXMuZW1haWwuaXNSZXF1aXJlZCA9IHRydWVcclxuICAgIHRoaXMuZW1haWwudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICB0aGlzLmVtYWlsLmZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uRW5nbGlzaFxyXG4gICAgdGhpcy5lbWFpbC5tYXhMZW5ndGggPSAxMDA7XHJcbiAgfVxyXG59XHJcbiIsIjxiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCBbb3B0aW9uc109XCJwYWdlSGVhZGVyT3B0aW9uc1wiID48L2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50PlxyXG48IS0tZW5kIHRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAqbmdJZj1cImlzRGF0ZUxvYWRlZFwiPlxyXG4gICAgPHAgY2xhc3M9XCJjYXJkLWRlc2NyaXB0aW9uIG10LTAgbWItNlwiPlxyXG4gICAgICB7e0VOP3N1cnZleUluZm8uZGVzY3JpcHRpb24uZW5nbGlzaDpzdXJ2ZXlJbmZvLmRlc2NyaXB0aW9uLmFyYWJpY319XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwicHJldmlld1N1cnZleU9wdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1xdWVzdGlvblwiPlxyXG4gICAgICAgICAgPEJCU0YtUmFkaW9CdXR0b24gKm5nSWY9XCJzaG93QXVkaWVuY2VUeXBlXCIgW29wdGlvbnNdPVwiYXVkaWVuY2VUeXBlUmFkaW9CdXR0b25cIiAoT25DaGFuZ2UpPVwiQ2hhbmdlQXVkaWVuY2VUeXBlVmFsdWUoJGV2ZW50KVwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvQkJTRi1SYWRpb0J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3VydmV5LWZvcm0gKm5nSWY9XCJzaG93SW50ZXJuYWxcIiAjcHJldmlld1F1ZXN0aW9uTW9kYWwgW29wdGlvbnNdPVwic3VydmV5Rm9ybUZpZWxkXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9zdXJ2ZXktZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXh0ZXJuYWwtZm9ybVwiICpuZ0lmPVwic2hvd0V4dGVybmFsXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm5hbWVcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlbWFpbFwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzdXJ2ZXktZm9ybSAqbmdJZj1cInNob3dFeHRlcm5hbFwiICNwcmV2aWV3UXVlc3Rpb25Nb2RhbCBbb3B0aW9uc109XCJzdXJ2ZXlGb3JtRmllbGRcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L3N1cnZleS1mb3JtPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcHJldmlld1wiICpuZ0lmPVwic3VydmV5SW5mby5kZWNsYXJhdGlvbi5lbmdsaXNofHxzdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmFyYWJpY1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3LWRhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVzdGlvbi1udW1iZXJcIiBuZ2JUb29sdGlwPVwiUXVlc3Rpb24gTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXctcXVlc3Rpb25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiZGVjbGFyYXRpb25DaGVja0JveEZvcm1cIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0IG1lLTNcIiBbcm91dGVyTGlua109XCJbJy4uLy4uLy4uLy4uL2luZm8nLHN1cnZleUlEXVwiPlxyXG4gICAgICAgICAgICB7e2woXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1icmFuZCBcIj57e2woXCJTdWJtaXRcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXktaW5mby9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBbUIsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcFEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFJeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUt2RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBb0JwRCxZQUFvQixRQUFrQixFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFDbEgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdC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Z0I7a0dBQWhCLGdCQUFnQix3TUNiN0Isb3NFQXlDQTs7MkZENUJhLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxhQUFhO3NJQVUrQixvQkFBb0I7c0JBQXpFLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iLCBDaGVja0JveE9wdGlvbnMsIENvbnRyb2xMYXlvdXQsIERyb3Bkb3duT3B0aW9ucywgRm9yY2VEaXJlY3Rpb24sIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdlSGVhZGVyT3B0aW9ucywgUmFkaW9CdXR0b25PcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1cnZleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXVkaWVuY2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vRW51bXMvRW51bXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcmV2aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlldy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByZXZpZXdDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwYWdlSGVhZGVyT3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcbiAgYnJlYWRDcnVtYjogQnJlYWRDcnVtYltdO1xyXG4gIHByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc3VydmV5SUQ6IGFueTtcclxuICBzdXJ2ZXlGb3JtRmllbGQ6IFN1cnZleUZvcm1PcHRpb25zO1xyXG4gIGlzRGF0ZUxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ1ByZXZpZXdRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByZXZpZXdRdWVzdGlvbk1vZGFsOiBTdXJ2ZXlGb3JtQ29tcG9uZW50O1xyXG4gIHByZXZpZXdTdXJ2ZXlPcHRpb25zOiBhbnk7XHJcbiAgc3VydmV5SW5mbzogYW55O1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIGF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uOiBSYWRpb0J1dHRvbk9wdGlvbnM7XHJcbiAgYXVkaWVuY2VUeXBlSUQ6IHN0cmluZztcclxuICBzaG93QXVkaWVuY2VUeXBlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0ludGVybmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0V4dGVybmFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgZW1haWw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIHN1cnZleVNlcnZpY2U6IFN1cnZleVNlcnZpY2UsIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB0aGlzLnN1cnZleUlEID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJpZFwiXTtcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlSUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImF1ZGllbmNlSURcIl07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRDcnVtYiA9IFtdO1xyXG4gICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5X0RldGFpbHNcIiksIGZhbHNlLCBgLi4vLi4vLi4vLi4vaW5mby8ke3RoaXMuc3VydmV5SUR9YCksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlByZXZpZXdfRGV0YWlsc1wiKSwgdHJ1ZSkpO1xyXG5cclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuc2VhcmNoVGV4dEJveC5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuYnJlYWRDcnVtYi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5icmVhZENydW1iLmJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuXHJcbiAgICB0aGlzLmF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uID0gbmV3IFJhZGlvQnV0dG9uT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVSYWRpb0J1dHRvbi5uYW1lID0gXCJBdWRpZW5jZVR5cGVcIjtcclxuICAgIHRoaXMuYXVkaWVuY2VUeXBlUmFkaW9CdXR0b24udmFsdWUgPSBBdWRpZW5jZVR5cGUuSW50ZXJuYWwgYXMgYW55O1xyXG4gICAgdGhpcy5hdWRpZW5jZVR5cGVSYWRpb0J1dHRvbi5pdGVtcyA9IFt7IHRleHQ6IHRoaXMubCgnSW50ZXJuYWxVc2VycycpLCB2YWx1ZTogQXVkaWVuY2VUeXBlLkludGVybmFsIH0sIHsgdGV4dDogdGhpcy5sKCdFeHRlcm5hbFVzZXJzJyksIHZhbHVlOiBBdWRpZW5jZVR5cGUuRXh0ZXJuYWwgfV07XHJcblxyXG4gICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcblxyXG5cclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5wcmV2aWV3KHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgICB0aGlzLnByZXZpZXdTdXJ2ZXlPcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5wcmV2aWV3Rm9ybTtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3TW9kZWw7XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRQcmV2aWV3RnVuY3Rpb247XHJcbiAgICAgIHRoaXMucHJldmlld1N1cnZleU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25TdWNjZXNzRGVsZXRlSGFuZGxlcjtcclxuICAgICAgdGhpcy5wcmV2aWV3U3VydmV5T3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnN1cnZleUluZm8gPSByZXMgYXMgYW55O1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLnRpdGxlVmFsdWUgPSB0aGlzLnN1cnZleUluZm8udGl0bGUuY3VycmVudF9GYWlsT3ZlcjtcclxuXHJcbiAgICAgIGlmICh0aGlzLnN1cnZleUluZm8uZGVjbGFyYXRpb24uZW5nbGlzaCB8fCB0aGlzLnN1cnZleUluZm8uZGVjbGFyYXRpb24uYXJhYmljKSB7XHJcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkNoZWNrQm94Rm9ybSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtLm5hbWUgPSBcImRlY2xhcmF0aW9uXCI7XHJcbiAgICAgICAgdGhpcy5kZWNsYXJhdGlvbkNoZWNrQm94Rm9ybS5sYWJlbFZhbHVlID0gdGhpcy5FTiA/IHRoaXMuc3VydmV5SW5mby5kZWNsYXJhdGlvbi5lbmdsaXNoIDogdGhpcy5zdXJ2ZXlJbmZvLmRlY2xhcmF0aW9uLmFyYWJpYztcclxuICAgICAgICB0aGlzLmRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZCA9IG5ldyBTdXJ2ZXlGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5OYW1lID0gXCJTdXJ2ZXlGaWVsZHNcIjtcclxuICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgc3dpdGNoICh0aGlzLmF1ZGllbmNlVHlwZUlEKSB7XHJcbiAgICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuQm90aDpcclxuICAgICAgICAgIHRoaXMuc2hvd0F1ZGllbmNlVHlwZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkludGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQXVkaWVuY2VUeXBlLkludGVybmFsOlxyXG4gICAgICAgICAgdGhpcy5zaG93QXVkaWVuY2VUeXBlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dFeHRlcm5hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQXVkaWVuY2VUeXBlLkV4dGVybmFsOlxyXG4gICAgICAgICAgdGhpcy5zaG93QXVkaWVuY2VUeXBlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dJbnRlcm5hbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRXh0ZXJuYWxDb250cm9scygpO1xyXG4gICAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5FeHRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzRGF0ZUxvYWRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFByZXZpZXdNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHJlc3VsdE1vZGVsID0gdGhpcy5wcmV2aWV3Rm9ybS52YWx1ZTtcclxuICAgIHBhcmFtQXJyYXkucHVzaChyZXN1bHRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG4gIGdldFByZXZpZXdGdW5jdGlvbiA9IChtb2RhbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH07XHJcbiAgQ2hhbmdlQXVkaWVuY2VUeXBlVmFsdWUodmFsdWUpIHtcclxuICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgY2FzZSBBdWRpZW5jZVR5cGUuSW50ZXJuYWw6XHJcbiAgICAgICAgdGhpcy5zaG93SW50ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd0V4dGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtRmllbGQuUXVlc3Rpb25MaXN0ID0gdGhpcy5zdXJ2ZXlJbmZvLnF1ZXN0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5JbnRlcm5hbCB8fCBpdGVtLmF1ZGllbmNlSXRlbUlEID09IEF1ZGllbmNlVHlwZS5Cb3RoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQXVkaWVuY2VUeXBlLkV4dGVybmFsOlxyXG4gICAgICAgIHRoaXMuc2hvd0ludGVybmFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZEV4dGVybmFsQ29udHJvbHMoKTtcclxuICAgICAgICB0aGlzLnN1cnZleUZvcm1GaWVsZC5RdWVzdGlvbkxpc3QgPSB0aGlzLnN1cnZleUluZm8ucXVlc3Rpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkV4dGVybmFsIHx8IGl0ZW0uYXVkaWVuY2VJdGVtSUQgPT0gQXVkaWVuY2VUeXBlLkJvdGgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRFeHRlcm5hbENvbnRyb2xzKCkge1xyXG4gICAgdGhpcy5uYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm5hbWUubmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5uYW1lLmFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubmFtZS5tYXhMZW5ndGggPSAxMDA7XHJcbiAgICB0aGlzLm5hbWUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG5cclxuICAgIHRoaXMuZW1haWwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuZW1haWwubmFtZSA9IFwiRW1haWxcIjtcclxuICAgIHRoaXMuZW1haWwubGFiZWxLZXkgPSBcIkVtYWlsXCI7XHJcbiAgICB0aGlzLmVtYWlsLnR5cGUgPSBJbnB1dFR5cGUuRW1haWw7XHJcbiAgICB0aGlzLmVtYWlsLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5lbWFpbC52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICB0aGlzLmVtYWlsLmZvcmNlRGlyZWN0aW9uID0gRm9yY2VEaXJlY3Rpb24uRW5nbGlzaDtcclxuICAgIHRoaXMuZW1haWwubWF4TGVuZ3RoID0gMTAwO1xyXG4gIH1cclxufVxyXG4iLCI8YmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQgW29wdGlvbnNdPVwicGFnZUhlYWRlck9wdGlvbnNcIiA+PC9iYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudD5cclxuPCEtLWVuZCB0b29sYmFyLS0+XHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyXCIgKm5nSWY9XCJpc0RhdGVMb2FkZWRcIj5cclxuICAgIDxwIGNsYXNzPVwiY2FyZC1kZXNjcmlwdGlvbiBtdC0wIG1iLTZcIj5cclxuICAgICAge3tFTj9zdXJ2ZXlJbmZvLmRlc2NyaXB0aW9uLmVuZ2xpc2g6c3VydmV5SW5mby5kZXNjcmlwdGlvbi5hcmFiaWN9fVxyXG4gICAgPC9wPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cInByZXZpZXdTdXJ2ZXlPcHRpb25zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctcXVlc3Rpb25cIj5cclxuICAgICAgICAgIDxCQlNGLVJhZGlvQnV0dG9uICpuZ0lmPVwic2hvd0F1ZGllbmNlVHlwZVwiIFtvcHRpb25zXT1cImF1ZGllbmNlVHlwZVJhZGlvQnV0dG9uXCIgKE9uQ2hhbmdlKT1cIkNoYW5nZUF1ZGllbmNlVHlwZVZhbHVlKCRldmVudClcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L0JCU0YtUmFkaW9CdXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHN1cnZleS1mb3JtICpuZ0lmPVwic2hvd0ludGVybmFsXCIgI3ByZXZpZXdRdWVzdGlvbk1vZGFsIFtvcHRpb25zXT1cInN1cnZleUZvcm1GaWVsZFwiIFtncm91cF09XCJwcmV2aWV3Rm9ybVwiPjwvc3VydmV5LWZvcm0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4dGVybmFsLWZvcm1cIiAqbmdJZj1cInNob3dFeHRlcm5hbFwiPlxyXG4gICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJuYW1lXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZW1haWxcIiBbZ3JvdXBdPVwicHJldmlld0Zvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3VydmV5LWZvcm0gKm5nSWY9XCJzaG93RXh0ZXJuYWxcIiAjcHJldmlld1F1ZXN0aW9uTW9kYWwgW29wdGlvbnNdPVwic3VydmV5Rm9ybUZpZWxkXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9zdXJ2ZXktZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXdcIiAqbmdJZj1cInN1cnZleUluZm8uZGVjbGFyYXRpb24uZW5nbGlzaHx8c3VydmV5SW5mby5kZWNsYXJhdGlvbi5hcmFiaWNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcHJldmlldy1kYXRhXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlc3Rpb24tbnVtYmVyXCIgbmdiVG9vbHRpcD1cIlF1ZXN0aW9uIE51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3LXF1ZXN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1hbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImRlY2xhcmF0aW9uQ2hlY2tCb3hGb3JtXCIgW2dyb3VwXT1cInByZXZpZXdGb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodCBtZS0zXCIgW3JvdXRlckxpbmtdPVwiWycuLi8uLi8uLi8uLi9pbmZvJyxzdXJ2ZXlJRF1cIj5cclxuICAgICAgICAgICAge3tsKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tYnJhbmQgXCI+e3tsKFwiU3VibWl0XCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|