@bnsights/bbsf-admin-portal 1.0.26 → 1.0.30
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 +11 -3
- package/bnsights-bbsf-admin-portal-1.0.30.tgz +0 -0
- package/bundles/bnsights-bbsf-admin-portal.umd.js +1945 -1154
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/ActiveDirectories/active-directory/active-directory.component.js +1 -2
- package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +1 -2
- package/esm2015/lib/Pages/_layout/components/footer/footer.component.js +11 -2
- package/esm2015/lib/Pages/authentication/auth-callback/auth-callback.component.js +1 -2
- package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +61 -66
- package/esm2015/lib/Pages/departments/department/department.component.js +5 -5
- package/esm2015/lib/Pages/departments/department-info/department-info.component.js +3 -3
- package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +20 -23
- package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +6 -6
- package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +6 -6
- package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +51 -55
- package/esm2015/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.js +204 -0
- package/esm2015/lib/Pages/localizations/localizations.component.js +4 -3
- package/esm2015/lib/Pages/localizations/localizations.module.js +6 -6
- package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +9 -8
- package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +4 -4
- package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +7 -9
- package/esm2015/lib/Pages/notifications/edit/edit.component.js +5 -5
- package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +16 -20
- package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +11 -14
- package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +2 -2
- package/esm2015/lib/Pages/notifications/notifications-routing.module.js +5 -3
- package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +20 -24
- package/esm2015/lib/Pages/notifications/templates/templates.component.js +18 -21
- package/esm2015/lib/Pages/providers/provider/provider.component.js +112 -28
- package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +11 -11
- package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +3 -3
- package/esm2015/lib/Pages/roles/permissions/permissions.component.js +8 -7
- package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +11 -10
- package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +2 -2
- package/esm2015/lib/Pages/sectors/sector/sector.component.js +4 -5
- package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +3 -3
- package/esm2015/lib/Pages/shared/Enums/ProviderType.js +7 -0
- package/esm2015/lib/Pages/shared/Services/WorkflowActivityService.service.js +1 -1
- package/esm2015/lib/Pages/shared/Services/localizationsService.service .js +7 -1
- package/esm2015/lib/Pages/shared/Services/provider.service.js +7 -1
- package/esm2015/lib/Pages/shared/config/environment.js +2 -2
- package/esm2015/lib/Pages/shared/constants.js +130 -0
- package/esm2015/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +2 -5
- package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.js +6 -0
- package/esm2015/lib/Pages/shared/models/Lookups/LookupGroupModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupItem.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/TemplateDTO.js +1 -1
- package/esm2015/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.js +3 -0
- package/esm2015/lib/Pages/shared/models/ProviderModels/ProviderModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.js +3 -0
- package/esm2015/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/SectorModels/SectorModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/UserModels/AddUserModel.js +1 -3
- package/esm2015/lib/Pages/shared/models/UserModels/EditUserModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFCreationModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/WorkflowModels/WFVariableModel.js +1 -1
- package/esm2015/lib/Pages/users/users.component.js +14 -15
- package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +33 -32
- package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +75 -99
- package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +25 -25
- package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +5 -5
- package/fesm2015/bnsights-bbsf-admin-portal.js +1754 -1109
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/lib/Pages/_layout/components/footer/footer.component.d.ts +2 -0
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +5 -6
- package/lib/Pages/departments/department/department.component.d.ts +2 -2
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +2 -2
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +2 -2
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +2 -2
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +4 -4
- package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +51 -0
- package/lib/Pages/localizations/localizations.module.d.ts +12 -11
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +1 -1
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +1 -1
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +1 -2
- package/lib/Pages/notifications/edit/edit.component.d.ts +1 -2
- package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +1 -2
- package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +1 -2
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +1 -1
- package/lib/Pages/notifications/templates/templates.component.d.ts +2 -2
- package/lib/Pages/providers/provider/provider.component.d.ts +28 -6
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +2 -2
- package/lib/Pages/roles/permissions/permissions.component.d.ts +1 -1
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +1 -1
- package/lib/Pages/sectors/sector/sector.component.d.ts +1 -1
- package/lib/Pages/shared/Enums/ProviderType.d.ts +5 -0
- package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +3 -0
- package/lib/Pages/shared/Services/provider.service.d.ts +4 -0
- package/lib/Pages/shared/constants.d.ts +129 -0
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +8 -9
- package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +1 -2
- package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +3 -5
- package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +1 -1
- package/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.d.ts +4 -4
- package/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.d.ts +9 -0
- package/lib/Pages/shared/models/Lookups/LookupGroupModel.d.ts +1 -2
- package/lib/Pages/shared/models/Lookups/LookupItem.d.ts +3 -4
- package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +3 -4
- package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +1 -2
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.d.ts +3 -3
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.d.ts +1 -1
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.d.ts +2 -2
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.d.ts +1 -1
- package/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.d.ts +1 -1
- package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +5 -6
- package/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.d.ts +1 -2
- package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +2 -2
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +3 -3
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.d.ts +2 -2
- package/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.d.ts +7 -0
- package/lib/Pages/shared/models/ProviderModels/ProviderModel.d.ts +3 -3
- package/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.d.ts +6 -0
- package/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.d.ts +2 -3
- package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +1 -1
- package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +1 -2
- package/lib/Pages/shared/models/UserModels/AddUserModel.d.ts +3 -3
- package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +2 -2
- package/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.d.ts +2 -3
- package/lib/Pages/shared/models/WorkflowModels/WFActivityModel.d.ts +10 -11
- package/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.d.ts +3 -3
- package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +3 -3
- package/lib/Pages/shared/models/WorkflowModels/WFCreationModel.d.ts +1 -3
- package/lib/Pages/shared/models/WorkflowModels/WFVariableModel.d.ts +3 -3
- package/lib/Pages/users/users.component.d.ts +2 -2
- package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +1 -1
- package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +3 -4
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +4 -4
- package/lib/Pages/workflows/workflow/workflow.component.d.ts +2 -2
- package/package.json +3 -3
- package/bnsights-bbsf-admin-portal-1.0.26.tgz +0 -0
- package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +0 -8
- package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +0 -8
- package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +0 -6
- package/esm2015/lib/Pages/shared/Enums/ParticipantType.js +0 -8
- package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +0 -5
- package/lib/Pages/shared/Enums/ConfigurationType.d.ts +0 -6
- package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +0 -4
- package/lib/Pages/shared/Enums/ParticipantType.d.ts +0 -6
|
@@ -12,18 +12,18 @@ import { InlineSVGModule } from 'ng-inline-svg';
|
|
|
12
12
|
import { EmptyDataModule } from '../empty-data/empty-data.module';
|
|
13
13
|
import { AuthService, BBSFTranslateService, EnvironmentService, UtilityService } from '@bnsights/bbsf-utilities';
|
|
14
14
|
import { localizationsService } from '../shared/Services/localizationsService.service ';
|
|
15
|
+
import { LocalizationsReplaceTextComponent } from './localizations-replace-text/localizations-replace-text.component';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "ng-block-ui";
|
|
17
18
|
import * as i2 from "@angular/router";
|
|
18
19
|
const routes = [
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
}
|
|
20
|
+
{ path: '', component: LocalizationsComponent, },
|
|
21
|
+
{ path: "ReplaceText", component: LocalizationsReplaceTextComponent }
|
|
22
22
|
];
|
|
23
23
|
export class LocalizationsModule {
|
|
24
24
|
}
|
|
25
25
|
LocalizationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
26
|
-
LocalizationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsModule, declarations: [LocalizationsComponent], imports: [CommonModule,
|
|
26
|
+
LocalizationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsModule, declarations: [LocalizationsComponent, LocalizationsReplaceTextComponent], imports: [CommonModule,
|
|
27
27
|
ClipboardModule, i1.BlockUIModule, i2.RouterModule, ReactiveFormsModule,
|
|
28
28
|
FormsModule,
|
|
29
29
|
BBSFControlsModule,
|
|
@@ -54,7 +54,7 @@ LocalizationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
|
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LocalizationsModule, decorators: [{
|
|
55
55
|
type: NgModule,
|
|
56
56
|
args: [{
|
|
57
|
-
declarations: [LocalizationsComponent],
|
|
57
|
+
declarations: [LocalizationsComponent, LocalizationsReplaceTextComponent],
|
|
58
58
|
imports: [
|
|
59
59
|
CommonModule,
|
|
60
60
|
ClipboardModule,
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
78
78
|
]
|
|
79
79
|
}]
|
|
80
80
|
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xvY2FsaXphdGlvbnMvbG9jYWxpemF0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFHLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7OztBQUV0SCxNQUFNLE1BQU0sR0FBVztJQUNyQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixHQUFHO0lBQ2hELEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUU7Q0FDdEUsQ0FBQTtBQTRCRCxNQUFNLE9BQU8sbUJBQW1COztpSEFBbkIsbUJBQW1CO2tIQUFuQixtQkFBbUIsaUJBeEJmLHNCQUFzQixFQUFFLGlDQUFpQyxhQUV0RSxZQUFZO1FBQ1osZUFBZSxxQ0FHZixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixTQUFTO1FBQ1QsYUFBYTtRQUNiLGVBQWU7UUFDZixlQUFlO2tIQVlOLG1CQUFtQixhQVZwQjtRQUNSLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsV0FBVztRQUNYLG9CQUFvQjtRQUNwQixRQUFRO1FBQ1Isb0JBQW9CO0tBRXJCLFlBckJRO1lBQ1AsWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQzdCLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7U0FDaEI7NEZBV1UsbUJBQW1CO2tCQXpCL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxpQ0FBaUMsQ0FBQztvQkFDekUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhLENBQUMsT0FBTyxFQUFFO3dCQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDN0IsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEI7b0JBQ0QsU0FBUyxFQUFDO3dCQUNSLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsUUFBUTt3QkFDUixvQkFBb0I7cUJBRXJCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2xvY2FsaXphdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCbG9ja1VJTW9kdWxlIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQkJTRkNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICduZ3gtY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zyc7XHJcbmltcG9ydCB7IEVtcHR5RGF0YU1vZHVsZSB9IGZyb20gJy4uL2VtcHR5LWRhdGEvZW1wdHktZGF0YS5tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgbG9jYWxpemF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvU2VydmljZXMvbG9jYWxpemF0aW9uc1NlcnZpY2Uuc2VydmljZSAnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25zUmVwbGFjZVRleHRDb21wb25lbnQgfSBmcm9tICcuL2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0L2xvY2FsaXphdGlvbnMtcmVwbGFjZS10ZXh0LmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IExvY2FsaXphdGlvbnNDb21wb25lbnQsIH0sXHJcbiAgeyBwYXRoOiBcIlJlcGxhY2VUZXh0XCIsIGNvbXBvbmVudDogTG9jYWxpemF0aW9uc1JlcGxhY2VUZXh0Q29tcG9uZW50IH1cclxuXVxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTG9jYWxpemF0aW9uc0NvbXBvbmVudCwgTG9jYWxpemF0aW9uc1JlcGxhY2VUZXh0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQkJTRkNvbnRyb2xzTW9kdWxlLFxyXG4gICAgTmdiTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIElubGluZVNWR01vZHVsZSxcclxuICAgIEVtcHR5RGF0YU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOltcclxuICAgIEVudmlyb25tZW50U2VydmljZSxcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIERhdGVQaXBlLFxyXG4gICAgbG9jYWxpemF0aW9uc1NlcnZpY2VcclxuIFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvbnNNb2R1bGUgeyBcclxuXHJcbn1cclxuIl19
|
|
@@ -55,7 +55,7 @@ export class LookupComponent {
|
|
|
55
55
|
AddModel.Manageable = this.ProductionMode == true ? true : ResultModel.IsManageable;
|
|
56
56
|
AddModel.Description.English = ResultModel.Description.English;
|
|
57
57
|
AddModel.Description.Arabic = ResultModel.Description.Arabic;
|
|
58
|
-
AddModel.
|
|
58
|
+
AddModel.LookupGroupID_GUID = ResultModel.LookupGroups;
|
|
59
59
|
paramArray.push(AddModel);
|
|
60
60
|
return paramArray;
|
|
61
61
|
};
|
|
@@ -67,18 +67,18 @@ export class LookupComponent {
|
|
|
67
67
|
let ResultModel = this.editLookupForm.value;
|
|
68
68
|
console.log(ResultModel);
|
|
69
69
|
let EditModel = new LookupModel();
|
|
70
|
-
EditModel.
|
|
70
|
+
EditModel.ID_GUID = this.lookupId;
|
|
71
71
|
EditModel.Name.English = ResultModel.EditName.English;
|
|
72
72
|
EditModel.Name.Arabic = ResultModel.EditName.Arabic;
|
|
73
73
|
if (!this.ProductionMode) {
|
|
74
74
|
EditModel.SysName = ResultModel.EditSysName;
|
|
75
75
|
EditModel.Manageable = ResultModel.EditIsManageable;
|
|
76
|
-
EditModel.
|
|
76
|
+
EditModel.LookupGroupID_GUID = ResultModel.EditLookupGroups;
|
|
77
77
|
}
|
|
78
78
|
else {
|
|
79
79
|
EditModel.SysName = this.Lookup.sysName;
|
|
80
80
|
EditModel.Manageable = this.Lookup.manageable;
|
|
81
|
-
EditModel.
|
|
81
|
+
EditModel.LookupGroupID_GUID = this.Lookup.lookupGroupID_GUID;
|
|
82
82
|
}
|
|
83
83
|
EditModel.Description.English = ResultModel.EditDescription.English;
|
|
84
84
|
EditModel.Description.Arabic = ResultModel.EditDescription.Arabic;
|
|
@@ -202,6 +202,7 @@ export class LookupComponent {
|
|
|
202
202
|
this.editLookupFormOptions.ServiceSubmitFunction = this.getEditLookupFunction;
|
|
203
203
|
this.editLookupFormOptions.PagingReference = this.pagingElement;
|
|
204
204
|
this.lookupService.getLookup(lookupID).subscribe((result) => {
|
|
205
|
+
var _a;
|
|
205
206
|
let Lookup = result.model;
|
|
206
207
|
this.Lookup = Lookup;
|
|
207
208
|
let Name = new EnglishArabicDTO();
|
|
@@ -234,13 +235,13 @@ export class LookupComponent {
|
|
|
234
235
|
this.editLookupGroups.SingleSelection = true;
|
|
235
236
|
this.editLookupGroups.AllowSearchFilter = true;
|
|
236
237
|
this.editLookupGroups.Placeholder = "";
|
|
237
|
-
this.editLookupGroups.SelectedItems =
|
|
238
|
+
this.editLookupGroups.SelectedItems = (_a = Lookup.lookupGroupID_GUID) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
238
239
|
this.editLookupGroups.IsDisabled = this.ProductionMode;
|
|
239
240
|
this.editIsManageable = new CheckBoxOptions();
|
|
240
241
|
this.editIsManageable.Name = "EditIsManageable";
|
|
241
242
|
this.editIsManageable.LabelKey = "Manageable";
|
|
242
243
|
this.editIsManageable.Value = Lookup.manageable;
|
|
243
|
-
this.lookupId = Lookup.
|
|
244
|
+
this.lookupId = Lookup.iD_GUID;
|
|
244
245
|
this.modalService.open(editLookupModal);
|
|
245
246
|
});
|
|
246
247
|
}
|
|
@@ -357,7 +358,7 @@ export class LookupComponent {
|
|
|
357
358
|
}
|
|
358
359
|
}
|
|
359
360
|
LookupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LookupComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.ClipboardService }, { token: i4.LookupService }, { token: i5.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
360
|
-
LookupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LookupComponent, selector: "lib-lookup", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["LookupPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n <!-- Page Content -->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <!--(OnChange)=\"filterLookupList($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"lookupForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button ngbDropdownToggle href=\"javascript:;\" type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{utilityService.getResourceValue(\"Filter\")}}\r\n </button>\r\n <div *ngIf=\"isFilterLoaded\" ngbDropdownMenu aria-labelledby=\"FiltersDropdown\" class=\" filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 \">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12\">\r\n <div *ngIf=\"lookupGroupsList.length>0\" class=\"mb-10\">\r\n <BBSF-DropdownList [options]=\"lookupGroupsOptions\" [group]=\"lookupForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" d=\"applyFiltersBtn\"\r\n (click)=\"resetFilters()\">\r\n {{utilityService.getResourceValue(\"Reset\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateApplicationEnumsModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateApplicationEnums\")}}\r\n </button>\r\n\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateCodeAllModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateSysNameModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateSysName\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddLookupModal(AddLookupModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Description\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"LookupGroups\")}}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{utilityService.getResourceValue(\"SysName\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Manageable\")}}</th>\r\n\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n\r\n\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n \r\n <tr *ngFor=\"let Lookup of filteredLookupPagingResult\">\r\n <td>\r\n <a href=\"javascript:void(0)\" [routerLink]=\"['/Admin/Lookups/LookupItems', Lookup.idEncrypted]\" routerLinkActive=\"router-link-active\"\r\n class=\"text-dark\">{{Lookup.lookupName}}</a>\r\n </td>\r\n <td >{{Lookup.lookupDescription}}</td>\r\n <td >{{Lookup.lookupGroupName}}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{Lookup.sysName}}</td>\r\n <td>\r\n <span *ngIf=\"Lookup.manageable;else default_no\">\r\n {{utilityService.getResourceValue(\"Yes\")}}\r\n </span>\r\n <ng-template #default_no>\r\n <span>\r\n {{utilityService.getResourceValue(\"No\")}}\r\n </span>\r\n </ng-template>\r\n\r\n </td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditLookupModal(Lookup.idEncrypted,EditLookupModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showGenerateCodeByIdModal(Lookup.idEncrypted,GenerateCodeModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</span>\r\n </a>\r\n <a *ngIf=\"(!ProductionMode) ||(Lookup.manageable==true)\" ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteLookupModal(Lookup.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredLookupPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '5' : '6'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setLookupListResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"lookupPaging\" [group]=\"lookupForm\" #LookupPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- Add Modal -->\r\n <ng-template #AddLookupModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"Lookup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addLookupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addLookupForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"multiLingualDescription\" [group]=\"addLookupForm\"></BBSF-MultiLingualTextArea>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addLookupForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n <BBSF-DropdownList [options]=\"lookupGroups\" [group]=\"addLookupForm\"></BBSF-DropdownList>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-CheckBox [options]=\"isManageable\" [group]=\"addLookupForm\"></BBSF-CheckBox>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseLookupModal id=\"CloseLookupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <!-- Edit Modal -->\r\n <ng-template #EditLookupModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"Lookup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editLookupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editLookupForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editMultiLingualDescription\" [group]=\"editLookupForm\"></BBSF-MultiLingualTextArea>\r\n <BBSF-TextBox *ngIf=\"!ProductionMode\" [options]=\"editSysName\" [group]=\"editLookupForm\">\r\n </BBSF-TextBox>\r\n <BBSF-DropdownList [options]=\"editLookupGroups\" [group]=\"editLookupForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-CheckBox *ngIf=\"!ProductionMode\" [options]=\"editIsManageable\" [group]=\"editLookupForm\">\r\n </BBSF-CheckBox>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseEditLookupModal id=\"CloseEditLookupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\"\r\n#ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n\r\n <!-- GenerateCode Modal -->\r\n <ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"generateCodeFormOptions\">\r\n <div>\r\n <BBSF-TextArea [options]=\"generateCodeTextArea\" [group]=\"generateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n", components: [{ type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i7.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i7.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i7.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { type: i7.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i5.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i5.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i11.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i5.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i12.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
|
|
361
|
+
LookupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LookupComponent, selector: "lib-lookup", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["LookupPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n <!-- Page Content -->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <!--(OnChange)=\"filterLookupList($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"lookupForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button ngbDropdownToggle href=\"javascript:;\" type=\"button\" class=\"btn btn-sm btn-light-primary me-3\" id=\"FiltersDropdown\" title=\"Filter\">\r\n <i class=\"fas fa-filter me-1\"></i>\r\n {{utilityService.getResourceValue(\"Filter\")}}\r\n </button>\r\n <div *ngIf=\"isFilterLoaded\" ngbDropdownMenu aria-labelledby=\"FiltersDropdown\" class=\" filter-container menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg-light-primary w-250px w-md-500px fw-bold py-3 \">\r\n <div class=\"px-7 py-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"mb-10\">\r\n <BBSF-DropdownList [options]=\"lookupGroupsOptions\" [group]=\"lookupForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-end\">\r\n <button class=\"btn btn-light btn-active-light-primary pv-reset btn-sm\" d=\"applyFiltersBtn\"\r\n (click)=\"resetFilters()\">\r\n {{utilityService.getResourceValue(\"Reset\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateApplicationEnumsModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateApplicationEnums\")}}\r\n </button>\r\n\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateCodeAllModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateCode\")}}\r\n </button>\r\n\r\n <button href=\"javascript:;\" class=\"btn btn-sm btn-light-primary me-3\" (click)=\"showGenerateSysNameModal(GenerateCodeModal)\">\r\n <i class=\"fa fa-key me-1\"></i>{{utilityService.getResourceValue(\"GenerateSysName\")}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddLookupModal(AddLookupModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Description\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"LookupGroups\")}}</th>\r\n <th class=\"min-w-150px\" *ngIf=\"!ProductionMode\">{{utilityService.getResourceValue(\"SysName\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Manageable\")}}</th>\r\n\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n\r\n\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n \r\n <tr *ngFor=\"let Lookup of filteredLookupPagingResult\">\r\n <td>\r\n <a href=\"javascript:void(0)\" [routerLink]=\"['/Admin/Lookups/LookupItems', Lookup.iD_GUID]\" routerLinkActive=\"router-link-active\"\r\n class=\"text-dark\">{{Lookup.lookupName}}</a>\r\n </td>\r\n <td >{{Lookup.lookupDescription}}</td>\r\n <td >{{Lookup.lookupGroupName}}</td>\r\n <td *ngIf=\"!ProductionMode\" class=\"align-middle\">{{Lookup.sysName}}</td>\r\n <td>\r\n <span *ngIf=\"Lookup.manageable;else default_no\">\r\n {{utilityService.getResourceValue(\"Yes\")}}\r\n </span>\r\n <ng-template #default_no>\r\n <span>\r\n {{utilityService.getResourceValue(\"No\")}}\r\n </span>\r\n </ng-template>\r\n\r\n </td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditLookupModal(Lookup.iD_GUID,EditLookupModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showGenerateCodeByIdModal(Lookup.iD_GUID,GenerateCodeModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</span>\r\n </a>\r\n <a *ngIf=\"(!ProductionMode) ||(Lookup.manageable==true)\" ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteLookupModal(Lookup.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"filteredLookupPagingResult.length == 0\">\r\n <td [attr.colspan]=\"ProductionMode ? '5' : '6'\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setLookupListResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"lookupPaging\" [group]=\"lookupForm\" #LookupPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- Add Modal -->\r\n <ng-template #AddLookupModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"Lookup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"addLookupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addLookupForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"multiLingualDescription\" [group]=\"addLookupForm\"></BBSF-MultiLingualTextArea>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-TextBox [options]=\"sysName\" [group]=\"addLookupForm\"></BBSF-TextBox>\r\n </div>\r\n\r\n <BBSF-DropdownList [options]=\"lookupGroups\" [group]=\"addLookupForm\"></BBSF-DropdownList>\r\n <div *ngIf=\"!ProductionMode\">\r\n <BBSF-CheckBox [options]=\"isManageable\" [group]=\"addLookupForm\"></BBSF-CheckBox>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseLookupModal id=\"CloseLookupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <!-- Edit Modal -->\r\n <ng-template #EditLookupModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"Lookup\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"editLookupFormOptions\">\r\n <BBSF-MultiLingualTextBox [options]=\"editMultiLingualName\" [group]=\"editLookupForm\"></BBSF-MultiLingualTextBox>\r\n <BBSF-MultiLingualTextArea [options]=\"editMultiLingualDescription\" [group]=\"editLookupForm\"></BBSF-MultiLingualTextArea>\r\n <BBSF-TextBox *ngIf=\"!ProductionMode\" [options]=\"editSysName\" [group]=\"editLookupForm\">\r\n </BBSF-TextBox>\r\n <BBSF-DropdownList [options]=\"editLookupGroups\" [group]=\"editLookupForm\">\r\n </BBSF-DropdownList>\r\n <BBSF-CheckBox *ngIf=\"!ProductionMode\" [options]=\"editIsManageable\" [group]=\"editLookupForm\">\r\n </BBSF-CheckBox>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseEditLookupModal id=\"CloseEditLookupModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n\r\n </div>\r\n </ng-template>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"ConfirmationModalControl\"\r\n#ConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n\r\n <!-- GenerateCode Modal -->\r\n <ng-template #GenerateCodeModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"GenerateCode\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"generateCodeFormOptions\">\r\n <div>\r\n <BBSF-TextArea [options]=\"generateCodeTextArea\" [group]=\"generateCodeForm\" #GenerateCodeInput>\r\n </BBSF-TextArea>\r\n\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" #CloseGenerateCodeModal id=\"CloseGenerateCodeModal\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">{{utilityService.getResourceValue(\"CancelLabel\")}} </button>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" (click)=\"copyInputMessage()\">\r\n {{utilityService.getResourceValue(\"CopyToClipboard\")}}\r\n </button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n", components: [{ type: i6.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i7.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i7.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i7.FormComponent, selector: "BBSF-Form", inputs: ["options"] }, { type: i7.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MultiLingualTextAreaComponent, selector: "BBSF-MultiLingualTextArea", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { type: i7.TextAreaComponent, selector: "BBSF-TextArea", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgbDropdown, selector: "[ngbDropdown]", inputs: ["open", "placement", "container", "autoClose", "display", "dropdownClass"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i5.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i5.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i11.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i5.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i12.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
|
|
361
362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LookupComponent, decorators: [{
|
|
362
363
|
type: Component,
|
|
363
364
|
args: [{
|
|
@@ -371,4 +372,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
371
372
|
type: ViewChild,
|
|
372
373
|
args: ['ConfirmationModalControl', { static: false }]
|
|
373
374
|
}] } });
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoUixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVl0RSxNQUFNLE9BQU8sZUFBZTtJQXVEMUIsWUFDVSxlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixrQkFBc0MsRUFDdEMsaUJBQW1DLEVBQ25DLGFBQTRCLEVBQzVCLFlBQXNCLEVBQ3RCLHFCQUEyQztRQU4zQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxrQkFB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QUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzs7WUFFM0ksSUFBSSxDQUFDLDBCQUEwQixHQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7NkdBMWNVLGVBQWU7aUdBQWYsZUFBZSxtU0NqQjVCLHdoYUE4T0E7NEZEN05hLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7aUJBQ3ZDOzBSQXFCMEQsYUFBYTtzQkFBckUsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBeUJHLHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDaGVja0JveE9wdGlvbnMsIENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucywgRHJvcGRvd25PcHRpb25zLCBFbmdsaXNoQXJhYmljRFRPLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9va3VwTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0xvb2t1cHMvTG9va3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyAgVXRpbGl0eVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItbG9va3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICwgT25EZXN0cm95IHtcclxuXHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50cyBcclxuICBBcGlVcmwgPSBcIi9hcGkvYWRtaW4vTG9va3VwL1wiXHJcbiAgUHJvZHVjdGlvbk1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBMb29rdXA6YW55XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIGxvb2t1cEdyb3Vwc09wdGlvbnM6IERyb3Bkb3duT3B0aW9ucztcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBzZWxlY3RlZExvb2t1cExpc3QgPSBbXTtcclxuICBsb29rdXBHcm91cHNMaXN0ID0gW107XHJcbiAgbG9va3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb29rdXBQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRMb29rdXBQYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgbG9va3VwUGFnaW5nOiBQYWdpbmdPcHRpb25zO1xyXG4gIGxvb2t1cEdyb3VwRmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0xvb2t1cFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIGFkZExvb2t1cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBhZGRMb29rdXBGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIG11bHRpTGluZ3VhbERlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnNcclxuICBzeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBsb29rdXBHcm91cHM6IERyb3Bkb3duT3B0aW9ucztcclxuICBpc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgZWRpdExvb2t1cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBlZGl0TG9va3VwRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgbG9va3VwSWQ6IG51bWJlclxyXG4gIGVkaXRNdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIGVkaXRNdWx0aUxpbmd1YWxEZXNjcmlwdGlvbjogTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zXHJcbiAgZWRpdFN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRMb29rdXBHcm91cHM6IERyb3Bkb3duT3B0aW9ucztcclxuICBlZGl0SXNNYW5hZ2VhYmxlOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZWRMb29rdXBJZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHMgXHJcbiAgZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGdlbmVyYXRlQ29kZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIGdlbmVyYXRlQ29kZVRleHRBcmVhOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgdmFsdWVUb0NvcHk6IHN0cmluZyA9IFwiXCI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb29rdXBTZXJ2aWNlOiBMb29rdXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vUGFnZSBoZWFkZXIgKGJyZWFkY3J1bWIgYW5kIHRpdGxlKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cHNcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKClcclxuICAgIC8vaW5pdGlhbGl6ZSBwYWdlXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL1BhZ2luZyBmdW5jdGlvbnNcclxuICBzZXRMb29rdXBMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5sb29rdXBQYWdpbmdSZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBQYWdpbmdSZXN1bHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9GaWx0ZXIgZnVuY3Rpb25zXHJcbiAgcmVzZXRGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5sb29rdXBGb3JtLmNvbnRyb2xzW1wiVHlwZVwiXS5zZXRWYWx1ZShbXSk7XHJcbiAgICB0aGlzLmxvb2t1cEZvcm0uY29udHJvbHNbXCJzZWFyY2hUZXh0Qm94XCJdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgbGV0IGVsZW1lbnQgPSB0aGlzLnBhZ2luZ0VsZW1lbnQgYXMgYW55O1xyXG4gICAgZWxlbWVudC5SZWluaXRpYWxpemVQYWdpbmcoKTtcclxuXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMubG9va3VwU2VydmljZS5sb2FkRHJvcGRvd24oKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgRHJvcGRvd25MaXN0cyA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5sb29rdXBHcm91cHNMaXN0ID0gRHJvcGRvd25MaXN0c1xyXG5cclxuICAgICAgdGhpcy5sb29rdXBHcm91cHNPcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMuTmFtZSA9IFwiVHlwZVwiXHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBzT3B0aW9ucy5MYWJlbEtleSA9IFwiTG9va3VwR3JvdXBzXCJcclxuICAgICAgdGhpcy5sb29rdXBHcm91cHNPcHRpb25zLkRhdGFTb3VyY2UgPSB0aGlzLmxvb2t1cEdyb3Vwc0xpc3RcclxuICAgICAgdGhpcy5sb29rdXBHcm91cHNPcHRpb25zLlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG5cclxuICAgICAgLy8gVGV4dEJveCBpbnRpXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlYXJjaEJ5TmFtZVwiKVxyXG5cclxuICAgICAgdGhpcy5sb29rdXBHcm91cEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJUeXBlXCJcclxuICAgICAgdGhpcy5sb29rdXBHcm91cEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJsb29rdXBHcm91cElkXCJcclxuICAgICAgdGhpcy5sb29rdXBHcm91cEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3VwRmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRyb3Bkb3duTGlzdFxyXG5cclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcInNlYXJjaFRleHRCb3hcIlxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCJcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuICAgICAgdGhpcy5sb29rdXBQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhZ2luZy5BY3Rpb25Qb3N0VVJMID0gdGhpcy5BcGlVcmwgKyAnR2V0TG9va3Vwc0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5sb29rdXBQYWdpbmcuT25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJzZWFyY2hUZXh0Qm94XCJdXHJcbiAgICAgIHRoaXMubG9va3VwUGFnaW5nLkRyb3Bkb3duRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcIlR5cGVcIl07XHJcbiAgICAgIHRoaXMubG9va3VwUGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5sb29rdXBHcm91cEZpbHRlciwgdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy8vLy8vLy8vLy8vIFN0YXJ0IGFkZCBMb29rdXAgUGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93QWRkTG9va3VwTW9kYWwoYWRkTG9va3VwTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmFkZExvb2t1cEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWRkTG9va3VwRm9ybVxyXG4gICAgdGhpcy5hZGRMb29rdXBGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBNb2RlbDtcclxuICAgIHRoaXMuYWRkTG9va3VwRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBGdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkTG9va3VwRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuUHJvZHVjdGlvbk1vZGUpIHtcclxuICAgICAgdGhpcy5zeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc3lzTmFtZS5OYW1lID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuc3lzTmFtZS5MYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICB0aGlzLnN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLnN5c05hbWUuVmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLnN5c05hbWUuSXNSZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuaXNNYW5hZ2VhYmxlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmlzTWFuYWdlYWJsZS5OYW1lID0gXCJJc01hbmFnZWFibGVcIlxyXG4gICAgICB0aGlzLmlzTWFuYWdlYWJsZS5MYWJlbEtleSA9IFwiTWFuYWdlYWJsZVwiXHJcbiAgICAgIHRoaXMuaXNNYW5hZ2VhYmxlLlZhbHVlID0gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbERlc2NyaXB0aW9uLk5hbWUgPSBcIkRlc2NyaXB0aW9uXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbERlc2NyaXB0aW9uLkFyYWJpY0xhYmVsS2V5ID0gXCJEZXNjcmlwdGlvbkluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbERlc2NyaXB0aW9uLkVuZ2xpc2hMYWJlbEtleSA9IFwiRGVzY3JpcHRpb25JbkVuZ2xpc2hcIjtcclxuXHJcbiAgICB0aGlzLmxvb2t1cEdyb3VwcyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLk5hbWUgPSBcIkxvb2t1cEdyb3Vwc1wiXHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwcy5MYWJlbEtleSA9IFwiTG9va3VwR3JvdXBzXCJcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLkRhdGFTb3VyY2UgPSB0aGlzLmxvb2t1cEdyb3Vwc0xpc3RcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICB0aGlzLmxvb2t1cEdyb3Vwcy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihhZGRMb29rdXBNb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTG9va3VwTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuYWRkTG9va3VwRm9ybS52YWx1ZTtcclxuICAgIGxldCBBZGRNb2RlbCA9IG5ldyBMb29rdXBNb2RlbCgpO1xyXG4gICAgQWRkTW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5OYW1lLkFyYWJpYztcclxuICAgIEFkZE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLk5hbWUuRW5nbGlzaDtcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICBBZGRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZVxyXG4gICAgfVxyXG4gICAgQWRkTW9kZWwuTWFuYWdlYWJsZSA9IHRoaXMuUHJvZHVjdGlvbk1vZGUgPT0gdHJ1ZSA/IHRydWUgOiBSZXN1bHRNb2RlbC5Jc01hbmFnZWFibGU7XHJcbiAgICBBZGRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uRW5nbGlzaDtcclxuICAgIEFkZE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkRlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgIEFkZE1vZGVsLkxvb2t1cEdyb3VwSUQgPSBSZXN1bHRNb2RlbC5Mb29rdXBHcm91cHMhPW51bGw/TnVtYmVyKFJlc3VsdE1vZGVsLkxvb2t1cEdyb3Vwcyk6bnVsbFxyXG4gICAgXHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMb29rdXBGdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmFkZExvb2t1cChBZGRNb2RlbClcclxuICB9XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTG9va3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLy8vLy8vLy8vLy9TdGFydCBvZiBlZGl0IExvb2t1cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dFZGl0TG9va3VwTW9kYWwobG9va3VwSUQ6IGFueSwgZWRpdExvb2t1cE1vZGFsKSB7XHJcblxyXG4gICAgdGhpcy5lZGl0TG9va3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmVkaXRMb29rdXBGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmVkaXRMb29rdXBGb3JtXHJcbiAgICB0aGlzLmVkaXRMb29rdXBGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwTW9kZWw7XHJcbiAgICB0aGlzLmVkaXRMb29rdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBGdW5jdGlvbjtcclxuICAgIHRoaXMuZWRpdExvb2t1cEZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5sb29rdXBTZXJ2aWNlLmdldExvb2t1cChsb29rdXBJRCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgTG9va3VwID0gcmVzdWx0Lm1vZGVsIGFzIGFueTtcclxuICAgICAgdGhpcy5Mb29rdXAgPSBMb29rdXBcclxuICAgICAgbGV0IE5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICBOYW1lLkFyYWJpYyA9IExvb2t1cC5uYW1lLmFyYWJpYztcclxuICAgICAgTmFtZS5FbmdsaXNoID0gTG9va3VwLm5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5OYW1lID0gXCJFZGl0TmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5WYWx1ZSA9IE5hbWU7XHJcblxyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUuTmFtZSA9IFwiRWRpdFN5c05hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5MYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5WYWx1ZSA9IExvb2t1cC5zeXNOYW1lO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIGxldCBEZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIERlc2NyaXB0aW9uLkFyYWJpYyA9IExvb2t1cC5kZXNjcmlwdGlvbi5hcmFiaWM7XHJcbiAgICAgIERlc2NyaXB0aW9uLkVuZ2xpc2ggPSBMb29rdXAuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbERlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxEZXNjcmlwdGlvbi5OYW1lID0gXCJFZGl0RGVzY3JpcHRpb25cIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSBcIkRlc2NyaXB0aW9uSW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uRW5nbGlzaExhYmVsS2V5ID0gXCJEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxEZXNjcmlwdGlvbi5WYWx1ZSA9IERlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TG9va3VwR3JvdXBzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBHcm91cHMuTmFtZSA9IFwiRWRpdExvb2t1cEdyb3Vwc1wiXHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5MYWJlbEtleSA9IFwiTG9va3VwR3JvdXBzXCJcclxuICAgICAgdGhpcy5lZGl0TG9va3VwR3JvdXBzLkRhdGFTb3VyY2UgPSB0aGlzLmxvb2t1cEdyb3Vwc0xpc3RcclxuICAgICAgdGhpcy5lZGl0TG9va3VwR3JvdXBzLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5TZWxlY3RlZEl0ZW1zID0gdGhpcy5sb29rdXBHcm91cHNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gcGFyc2VJbnQoaXRlbS5rZXkpID09IExvb2t1cC5sb29rdXBHcm91cElEOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgdGhpcy5lZGl0TG9va3VwR3JvdXBzLklzRGlzYWJsZWQgPSB0aGlzLlByb2R1Y3Rpb25Nb2RlO1xyXG5cclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuTmFtZSA9IFwiRWRpdElzTWFuYWdlYWJsZVwiXHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZS5MYWJlbEtleSA9IFwiTWFuYWdlYWJsZVwiXHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZS5WYWx1ZSA9IExvb2t1cC5tYW5hZ2VhYmxlXHJcblxyXG4gICAgICB0aGlzLmxvb2t1cElkID0gTG9va3VwLmlkXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdExvb2t1cE1vZGFsKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGdldEVkaXRMb29rdXBNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5lZGl0TG9va3VwRm9ybS52YWx1ZTtcclxuICAgIGNvbnNvbGUubG9nKFJlc3VsdE1vZGVsKVxyXG4gICAgbGV0IEVkaXRNb2RlbCA9IG5ldyBMb29rdXBNb2RlbCgpO1xyXG4gICAgRWRpdE1vZGVsLklEID0gTnVtYmVyKHRoaXMubG9va3VwSWQpO1xyXG4gICAgRWRpdE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkVuZ2xpc2hcclxuICAgIEVkaXRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpY1xyXG4gICAgaWYgKCF0aGlzLlByb2R1Y3Rpb25Nb2RlKVxyXG4gICAge1xyXG4gICAgICBFZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLkVkaXRTeXNOYW1lXHJcbiAgICAgIEVkaXRNb2RlbC5NYW5hZ2VhYmxlID0gUmVzdWx0TW9kZWwuRWRpdElzTWFuYWdlYWJsZVxyXG4gICAgICBFZGl0TW9kZWwuTG9va3VwR3JvdXBJRCA9IFJlc3VsdE1vZGVsLkVkaXRMb29rdXBHcm91cHMhPW51bGw/IE51bWJlcihSZXN1bHRNb2RlbC5FZGl0TG9va3VwR3JvdXBzKTogbnVsbFxyXG5cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgRWRpdE1vZGVsLlN5c05hbWUgPSB0aGlzLkxvb2t1cC5zeXNOYW1lXHJcbiAgICAgIEVkaXRNb2RlbC5NYW5hZ2VhYmxlID0gdGhpcy5Mb29rdXAubWFuYWdlYWJsZVxyXG4gICAgICBFZGl0TW9kZWwuTG9va3VwR3JvdXBJRCA9IHRoaXMuTG9va3VwLmxvb2t1cEdyb3VwSURcclxuXHJcblxyXG4gICAgfVxyXG5cclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdERlc2NyaXB0aW9uLkVuZ2xpc2hcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FZGl0RGVzY3JpcHRpb24uQXJhYmljXHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRMb29rdXBGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5lZGl0TG9va3VwKEVkaXRNb2RlbClcclxuICB9XHJcbiAgLy8vLy8vLy8vLy9FbmQgb2YgZWRpdCBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG4gIFxyXG4gICAvLy8vLy8vLy8vL1N0YXJ0IG9mIGRlbGV0ZSBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAgc2hvd0RlbGV0ZUxvb2t1cE1vZGFsKGxvb2t1cElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kZWxldGVkTG9va3VwSWQgPSBsb29rdXBJZDtcclxuICAgIC8vYXJyYXkgc2VudCB0byBzZXJ2aWNlIGZ1bmN0aW9uXHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIHBhcmFtQXJyYXkucHVzaCh0aGlzLmRlbGV0ZWRMb29rdXBJZCk7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zID0gbmV3IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZGVsZXRlTG9va3VwO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5kZWxldGVMb29rdXAoaWQpXHJcbiAgfVxyXG4gICAvLy8vLy8vLy8vL0VuZCBvZiBkZWxldGUgTG9va3VwR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZSgpIHtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLnZhbHVlVG9Db3B5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlQ29kZUFsbE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmdlbmVyYXRlQ29kZUZvcm1cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG4gICAgdGhpcy5sb29rdXBTZXJ2aWNlLmdlbmVyYXRlQ29kZUFsbCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5OYW1lID0gXCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMudmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlJvd3MgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZUFwcGxpY2F0aW9uRW51bXNNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5nZW5lcmF0ZUNvZGVGb3JtXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZUFwcGxpY2F0aW9uRW51bXMoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlU3lzTmFtZU1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcbiAgXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZ2VuZXJhdGVDb2RlRm9ybVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2VuZXJhdGVTeXNOYW1lcygpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5OYW1lID0gXCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMudmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlJvd3MgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbChsb29rdXBJZDogYW55LCBHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5nZW5lcmF0ZUNvZGVGb3JtXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZUNvZGVCeUlkKGxvb2t1cElkKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgIFxyXG4gIC8qKkZ1bmN0aW9uTmFtZTpmaWx0ZXJMb29rdXBMaXN0Ki9cclxuICAvKipEZWNsYXJhdGlvbjpmdW5jdGlvbiB0byBmaWx0ZXIgTG9va3VwIGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cExpc3Qoc2VhcmNoVmFsdWUpe1xyXG4gICAgaWYoc2VhcmNoVmFsdWUpXHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0PSB0aGlzLmxvb2t1cFBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvb2t1cE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7XHJcbiAgICBlbHNlXHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0PSB0aGlzLmxvb2t1cFBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbiAgPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbiAgPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgICA8IS0tKE9uQ2hhbmdlKT1cImZpbHRlckxvb2t1cExpc3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgW2dyb3VwXT1cImxvb2t1cEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25Ub2dnbGUgaHJlZj1cImphdmFzY3JpcHQ6O1wiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIGlkPVwiRmlsdGVyc0Ryb3Bkb3duXCIgdGl0bGU9XCJGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWx0ZXIgbWUtMVwiPjwvaT5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGaWx0ZXJcIil9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCIgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cIkZpbHRlcnNEcm9wZG93blwiIGNsYXNzPVwiIGZpbHRlci1jb250YWluZXIgbWVudSBtZW51LXN1YiBtZW51LXN1Yi1kcm9wZG93biBtZW51LWNvbHVtbiBtZW51LXJvdW5kZWQgbWVudS1ncmF5LTgwMCBtZW51LXN0YXRlLWJnLWxpZ2h0LXByaW1hcnkgIHctMjUwcHggdy1tZC01MDBweCBmdy1ib2xkIHB5LTMgXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNyBweS01XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9va3VwR3JvdXBzTGlzdC5sZW5ndGg+MFwiIGNsYXNzPVwibWItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImxvb2t1cEdyb3Vwc09wdGlvbnNcIiBbZ3JvdXBdPVwibG9va3VwRm9ybVwiPjwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeSBwdi1yZXNldCBidG4tc21cIiBkPVwiYXBwbHlGaWx0ZXJzQnRuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVzZXRcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvbiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodC1wcmltYXJ5IG1lLTNcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlQXBwbGljYXRpb25FbnVtc01vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleSBtZS0xXCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQXBwbGljYXRpb25FbnVtc1wiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIChjbGljayk9XCJzaG93R2VuZXJhdGVDb2RlQWxsTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5IG1lLTFcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZVN5c05hbWVNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1rZXkgbWUtMVwiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZVN5c05hbWVcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiB0aXRsZT1cIkFkZFwiIChjbGljayk9XCJzaG93QWRkTG9va3VwTW9kYWwoQWRkTG9va3VwTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgIDwhLS1iZWdpbjo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVzY3JpcHRpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cEdyb3Vwc1wiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTeXNOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYW5hZ2VhYmxlXCIpfX08L3RoPlxyXG5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBMb29rdXAgb2YgZmlsdGVyZWRMb29rdXBQYWdpbmdSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgPGEgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbcm91dGVyTGlua109XCJbJy9BZG1pbi9Mb29rdXBzL0xvb2t1cEl0ZW1zJywgTG9va3VwLmlkRW5jcnlwdGVkXVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFya1wiPnt7TG9va3VwLmxvb2t1cE5hbWV9fTwvYT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgPnt7TG9va3VwLmxvb2t1cERlc2NyaXB0aW9ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkID57e0xvb2t1cC5sb29rdXBHcm91cE5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiBjbGFzcz1cImFsaWduLW1pZGRsZVwiPnt7TG9va3VwLnN5c05hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTG9va3VwLm1hbmFnZWFibGU7ZWxzZSBkZWZhdWx0X25vXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVzXCIpfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRfbm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOb1wiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRMb29rdXBNb2RhbChMb29rdXAuaWRFbmNyeXB0ZWQsRWRpdExvb2t1cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoTG9va3VwLmlkRW5jcnlwdGVkLEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIighUHJvZHVjdGlvbk1vZGUpIHx8KExvb2t1cC5tYW5hZ2VhYmxlPT10cnVlKVwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwTW9kYWwoTG9va3VwLmlkRW5jcnlwdGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJQcm9kdWN0aW9uTW9kZSA/ICc1JyA6ICc2J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgPCEtLWVuZDo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwibG9va3VwUGFnaW5nXCIgW2dyb3VwXT1cImxvb2t1cEZvcm1cIiAjTG9va3VwUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIEFkZCBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0FkZExvb2t1cE1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRMb29rdXBGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRMb29rdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsRGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiYWRkTG9va3VwRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInN5c05hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwibG9va3VwR3JvdXBzXCIgW2dyb3VwXT1cImFkZExvb2t1cEZvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj5cclxuICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImlzTWFuYWdlYWJsZVwiIFtncm91cF09XCJhZGRMb29rdXBGb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBNb2RhbCBpZD1cIkNsb3NlTG9va3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICA8IS0tIEVkaXQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNFZGl0TG9va3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYSBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWE+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cImVkaXRTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBGb3JtXCI+XHJcbiAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRMb29rdXBHcm91cHNcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj5cclxuICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94ICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgW29wdGlvbnNdPVwiZWRpdElzTWFuYWdlYWJsZVwiIFtncm91cF09XCJlZGl0TG9va3VwRm9ybVwiPlxyXG4gICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlRWRpdExvb2t1cE1vZGFsIGlkPVwiQ2xvc2VFZGl0TG9va3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS1kZWxldGUgTW9kYWwtLT5cclxuPEJCU0YtQ29uZmlybWF0aW9uTW9kYWwgKm5nSWY9XCJkZWxldGVDb250cm9sTG9hZGVkXCIgW29wdGlvbnNdPVwiZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uc1wiIGlkPVwiQ29uZmlybWF0aW9uTW9kYWxDb250cm9sXCJcclxuI0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbD48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcblxyXG5cclxuICA8IS0tIEdlbmVyYXRlQ29kZSBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0dlbmVyYXRlQ29kZU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJnZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRBcmVhPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ29weVRvQ2xpcGJvYXJkXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAvbG9va3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoUixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVl0RSxNQUFNLE9BQU8sZUFBZTtJQXVEMUIsWUFDVSxlQUFnQyxFQUNqQyxjQUE4QixFQUM3QixrQkFBc0MsRUFDdEMsaUJBQW1DLEVBQ25DLGFBQTRCLEVBQzVCLFlBQXNCLEVBQ3RCLHFCQUE0QztRQU41QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxrQkFB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b0JBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7aUJBQ3ZDOzBSQXFCMEQsYUFBYTtzQkFBckUsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBeUJHLHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDaGVja0JveE9wdGlvbnMsIENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucywgRHJvcGRvd25PcHRpb25zLCBFbmdsaXNoQXJhYmljRFRPLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0QXJlYU9wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9va3VwTW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0xvb2t1cHMvTG9va3VwTW9kZWwnO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBQYWdpbmdDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvUGFnaW5nL1BhZ2luZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1sb29rdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb29rdXAuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8vUGFnZSByZXF1aXJlbWVudHMgXHJcbiAgQXBpVXJsID0gXCIvYXBpL2FkbWluL0xvb2t1cC9cIlxyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgTG9va3VwOiBhbnlcclxuXHJcbiAgLy9GaWx0ZXIgYW5kIHBhZ2luZyBjb21wb25lbnRzXHJcbiAgbG9va3VwR3JvdXBzT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIHNlbGVjdGVkTG9va3VwTGlzdCA9IFtdO1xyXG4gIGxvb2t1cEdyb3Vwc0xpc3QgPSBbXTtcclxuICBsb29rdXBGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvb2t1cFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBmaWx0ZXJlZExvb2t1cFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBsb29rdXBQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgbG9va3VwR3JvdXBGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGlzRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnTG9va3VwUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkTG9va3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZExvb2t1cEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgbXVsdGlMaW5ndWFsRGVzY3JpcHRpb246IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9uc1xyXG4gIHN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEdyb3VwczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGlzTWFuYWdlYWJsZTogQ2hlY2tCb3hPcHRpb25zO1xyXG5cclxuICAvL0VkaXQgTW9kZWwgQ29udHJvbHNcclxuICBlZGl0TG9va3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRMb29rdXBGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBsb29rdXBJZDogc3RyaW5nXHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgZWRpdE11bHRpTGluZ3VhbERlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnNcclxuICBlZGl0U3lzTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdExvb2t1cEdyb3VwczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRJc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlZExvb2t1cElkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcblxyXG4gIC8vR2VuZXJhdGVDb2RlICBNb2RlbCBDb250cm9scyBcclxuICBnZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgZ2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICB2YWx1ZVRvQ29weTogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9va3VwU2VydmljZTogTG9va3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3Vwc1wiKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKVxyXG4gICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldExvb2t1cExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLmxvb2t1cFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuZmlsdGVyZWRMb29rdXBQYWdpbmdSZXN1bHQgPSB0aGlzLmxvb2t1cFBhZ2luZ1Jlc3VsdDtcclxuXHJcbiAgfVxyXG5cclxuICAvL0ZpbHRlciBmdW5jdGlvbnNcclxuICByZXNldEZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmxvb2t1cEZvcm0uY29udHJvbHNbXCJUeXBlXCJdLnNldFZhbHVlKFtdKTtcclxuICAgIHRoaXMubG9va3VwRm9ybS5jb250cm9sc1tcInNlYXJjaFRleHRCb3hcIl0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMucGFnaW5nRWxlbWVudCBhcyBhbnk7XHJcbiAgICBlbGVtZW50LlJlaW5pdGlhbGl6ZVBhZ2luZygpO1xyXG5cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5sb29rdXBTZXJ2aWNlLmxvYWREcm9wZG93bigpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCBEcm9wZG93bkxpc3RzID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc0xpc3QgPSBEcm9wZG93bkxpc3RzXHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBzT3B0aW9ucy5OYW1lID0gXCJUeXBlXCJcclxuICAgICAgdGhpcy5sb29rdXBHcm91cHNPcHRpb25zLkxhYmVsS2V5ID0gXCJMb29rdXBHcm91cHNcIlxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMubG9va3VwR3JvdXBzTGlzdFxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3Vwc09wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBzT3B0aW9ucy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBzT3B0aW9ucy5QbGFjZWhvbGRlciA9IFwiXCI7XHJcblxyXG4gICAgICAvLyBUZXh0Qm94IGludGlcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3VwRmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgICAgdGhpcy5sb29rdXBHcm91cEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSBcIlR5cGVcIlxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3VwRmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImxvb2t1cEdyb3VwSWRcIlxyXG4gICAgICB0aGlzLmxvb2t1cEdyb3VwRmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICAgIHRoaXMubG9va3VwR3JvdXBGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuRHJvcGRvd25MaXN0XHJcblxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgICB0aGlzLmxvb2t1cFBhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubG9va3VwUGFnaW5nLkFjdGlvblBvc3RVUkwgPSB0aGlzLkFwaVVybCArICdHZXRMb29rdXBzQnlGaWx0ZXInO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIl1cclxuICAgICAgdGhpcy5sb29rdXBQYWdpbmcuRHJvcGRvd25GaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wiVHlwZVwiXTtcclxuICAgICAgdGhpcy5sb29rdXBQYWdpbmcuRmlsdGVycyA9IFt0aGlzLmxvb2t1cEdyb3VwRmlsdGVyLCB0aGlzLnRleHRJbnB1dEZpbHRlcl1cclxuICAgICAgdGhpcy5pc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcblxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dBZGRMb29rdXBNb2RhbChhZGRMb29rdXBNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICAgIHRoaXMuYWRkTG9va3VwRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuYWRkTG9va3VwRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5hZGRMb29rdXBGb3JtXHJcbiAgICB0aGlzLmFkZExvb2t1cEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cE1vZGVsO1xyXG4gICAgdGhpcy5hZGRMb29rdXBGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5hZGRMb29rdXBGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5OYW1lID0gXCJOYW1lXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICB0aGlzLnN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5zeXNOYW1lLk5hbWUgPSBcIlN5c05hbWVcIjtcclxuICAgICAgdGhpcy5zeXNOYW1lLkxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuc3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuc3lzTmFtZS5WYWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuc3lzTmFtZS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcblxyXG5cclxuICAgICAgdGhpcy5pc01hbmFnZWFibGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuaXNNYW5hZ2VhYmxlLk5hbWUgPSBcIklzTWFuYWdlYWJsZVwiXHJcbiAgICAgIHRoaXMuaXNNYW5hZ2VhYmxlLkxhYmVsS2V5ID0gXCJNYW5hZ2VhYmxlXCJcclxuICAgICAgdGhpcy5pc01hbmFnZWFibGUuVmFsdWUgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxEZXNjcmlwdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uTmFtZSA9IFwiRGVzY3JpcHRpb25cIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSBcIkRlc2NyaXB0aW9uSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uRW5nbGlzaExhYmVsS2V5ID0gXCJEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG5cclxuICAgIHRoaXMubG9va3VwR3JvdXBzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgdGhpcy5sb29rdXBHcm91cHMuTmFtZSA9IFwiTG9va3VwR3JvdXBzXCJcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLkxhYmVsS2V5ID0gXCJMb29rdXBHcm91cHNcIlxyXG4gICAgdGhpcy5sb29rdXBHcm91cHMuRGF0YVNvdXJjZSA9IHRoaXMubG9va3VwR3JvdXBzTGlzdFxyXG4gICAgdGhpcy5sb29rdXBHcm91cHMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9va3VwR3JvdXBzLlBsYWNlaG9sZGVyID0gXCJcIjtcclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGFkZExvb2t1cE1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRBZGRMb29rdXBNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRMb29rdXBGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEFkZE1vZGVsID0gbmV3IExvb2t1cE1vZGVsKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljO1xyXG4gICAgQWRkTW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoO1xyXG4gICAgaWYgKCF0aGlzLlByb2R1Y3Rpb25Nb2RlKSB7XHJcbiAgICAgIEFkZE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lXHJcbiAgICB9XHJcbiAgICBBZGRNb2RlbC5NYW5hZ2VhYmxlID0gdGhpcy5Qcm9kdWN0aW9uTW9kZSA9PSB0cnVlID8gdHJ1ZSA6IFJlc3VsdE1vZGVsLklzTWFuYWdlYWJsZTtcclxuICAgIEFkZE1vZGVsLkRlc2NyaXB0aW9uLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoO1xyXG4gICAgQWRkTW9kZWwuRGVzY3JpcHRpb24uQXJhYmljID0gUmVzdWx0TW9kZWwuRGVzY3JpcHRpb24uQXJhYmljO1xyXG4gICAgQWRkTW9kZWwuTG9va3VwR3JvdXBJRF9HVUlEID0gUmVzdWx0TW9kZWwuTG9va3VwR3JvdXBzXHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTG9va3VwRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5hZGRMb29rdXAoQWRkTW9kZWwpXHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLyBFbmQgb2YgYWRkIExvb2t1cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93RWRpdExvb2t1cE1vZGFsKGxvb2t1cElEOiBhbnksIGVkaXRMb29rdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmVkaXRMb29rdXBGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5lZGl0TG9va3VwRm9ybVxyXG4gICAgdGhpcy5lZGl0TG9va3VwRm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdExvb2t1cE1vZGVsO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwRnVuY3Rpb247XHJcbiAgICB0aGlzLmVkaXRMb29rdXBGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcblxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZXRMb29rdXAobG9va3VwSUQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgbGV0IExvb2t1cCA9IHJlc3VsdC5tb2RlbCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuTG9va3VwID0gTG9va3VwXHJcbiAgICAgIGxldCBOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgTmFtZS5BcmFiaWMgPSBMb29rdXAubmFtZS5hcmFiaWM7XHJcbiAgICAgIE5hbWUuRW5nbGlzaCA9IExvb2t1cC5uYW1lLmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuTmFtZSA9IFwiRWRpdE5hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuVmFsdWUgPSBOYW1lO1xyXG5cclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLk5hbWUgPSBcIkVkaXRTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUuTGFiZWxLZXkgPSBcIlN5c05hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUuVmFsdWUgPSBMb29rdXAuc3lzTmFtZTtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcblxyXG4gICAgICBsZXQgRGVzY3JpcHRpb24gPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICBEZXNjcmlwdGlvbi5BcmFiaWMgPSBMb29rdXAuZGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICBEZXNjcmlwdGlvbi5FbmdsaXNoID0gTG9va3VwLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxEZXNjcmlwdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uTmFtZSA9IFwiRWRpdERlc2NyaXB0aW9uXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbERlc2NyaXB0aW9uLkFyYWJpY0xhYmVsS2V5ID0gXCJEZXNjcmlwdGlvbkluQXJhYmljXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbERlc2NyaXB0aW9uLkVuZ2xpc2hMYWJlbEtleSA9IFwiRGVzY3JpcHRpb25JbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb24uVmFsdWUgPSBEZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3VwcyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TG9va3VwR3JvdXBzLk5hbWUgPSBcIkVkaXRMb29rdXBHcm91cHNcIlxyXG4gICAgICB0aGlzLmVkaXRMb29rdXBHcm91cHMuTGFiZWxLZXkgPSBcIkxvb2t1cEdyb3Vwc1wiXHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5EYXRhU291cmNlID0gdGhpcy5sb29rdXBHcm91cHNMaXN0XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBHcm91cHMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBHcm91cHMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRMb29rdXBHcm91cHMuU2VsZWN0ZWRJdGVtcyA9IExvb2t1cC5sb29rdXBHcm91cElEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZWRpdExvb2t1cEdyb3Vwcy5Jc0Rpc2FibGVkID0gdGhpcy5Qcm9kdWN0aW9uTW9kZTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLk5hbWUgPSBcIkVkaXRJc01hbmFnZWFibGVcIlxyXG4gICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuTGFiZWxLZXkgPSBcIk1hbmFnZWFibGVcIlxyXG4gICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUuVmFsdWUgPSBMb29rdXAubWFuYWdlYWJsZVxyXG5cclxuICAgICAgdGhpcy5sb29rdXBJZCA9IExvb2t1cC5pRF9HVUlEO1xyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGVkaXRMb29rdXBNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuZWRpdExvb2t1cEZvcm0udmFsdWU7XHJcbiAgICBjb25zb2xlLmxvZyhSZXN1bHRNb2RlbClcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgTG9va3VwTW9kZWwoKTtcclxuICAgIEVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5sb29rdXBJZDtcclxuICAgIEVkaXRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5FbmdsaXNoXHJcbiAgICBFZGl0TW9kZWwuTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5BcmFiaWNcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICBFZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLkVkaXRTeXNOYW1lXHJcbiAgICAgIEVkaXRNb2RlbC5NYW5hZ2VhYmxlID0gUmVzdWx0TW9kZWwuRWRpdElzTWFuYWdlYWJsZVxyXG4gICAgICBFZGl0TW9kZWwuTG9va3VwR3JvdXBJRF9HVUlEID0gUmVzdWx0TW9kZWwuRWRpdExvb2t1cEdyb3Vwc1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIEVkaXRNb2RlbC5TeXNOYW1lID0gdGhpcy5Mb29rdXAuc3lzTmFtZVxyXG4gICAgICBFZGl0TW9kZWwuTWFuYWdlYWJsZSA9IHRoaXMuTG9va3VwLm1hbmFnZWFibGVcclxuICAgICAgRWRpdE1vZGVsLkxvb2t1cEdyb3VwSURfR1VJRCA9IHRoaXMuTG9va3VwLmxvb2t1cEdyb3VwSURfR1VJRFxyXG4gICAgfVxyXG5cclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdERlc2NyaXB0aW9uLkVuZ2xpc2hcclxuICAgIEVkaXRNb2RlbC5EZXNjcmlwdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5FZGl0RGVzY3JpcHRpb24uQXJhYmljXHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRMb29rdXBGdW5jdGlvbiA9IChFZGl0TW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5lZGl0TG9va3VwKEVkaXRNb2RlbClcclxuICB9XHJcbiAgLy8vLy8vLy8vLy9FbmQgb2YgZWRpdCBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG5cclxuICAvLy8vLy8vLy8vL1N0YXJ0IG9mIGRlbGV0ZSBMb29rdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBzaG93RGVsZXRlTG9va3VwTW9kYWwobG9va3VwSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRlbGV0ZWRMb29rdXBJZCA9IGxvb2t1cElkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZExvb2t1cElkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVMb29rdXA7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdE1vZGVsID0gcGFyYW1BcnJheTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVMb29rdXAgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmRlbGV0ZUxvb2t1cChpZClcclxuICB9XHJcbiAgLy8vLy8vLy8vLy9FbmQgb2YgZGVsZXRlIExvb2t1cEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoKSB7XHJcbiAgICB0aGlzLl9jbGlwYm9hcmRTZXJ2aWNlLmNvcHkodGhpcy52YWx1ZVRvQ29weS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZUNvZGVBbGxNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5nZW5lcmF0ZUNvZGVGb3JtXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZUNvZGVBbGwoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgVmFsdWUgPSByZXN1bHQgYXMgYW55XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5WYWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Sb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuQ29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93R2VuZXJhdGVBcHBsaWNhdGlvbkVudW1zTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZ2VuZXJhdGVDb2RlRm9ybVxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2VuZXJhdGVBcHBsaWNhdGlvbkVudW1zKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgdmFyIFZhbHVlID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk5hbWUgPSBcIkdlbmVyYXRlQ29kZVRleHRBcmVhXCI7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuVmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy52YWx1ZVRvQ29weSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLklzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuUm93cyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLkNvbHMgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5NYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEdlbmVyYXRlQ29kZU1vZGFsKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZVN5c05hbWVNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuRm9ybUdyb3VwID0gdGhpcy5nZW5lcmF0ZUNvZGVGb3JtXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZVN5c05hbWVzKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgdmFyIFZhbHVlID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLk5hbWUgPSBcIkdlbmVyYXRlQ29kZVRleHRBcmVhXCI7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuVmFsdWUgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy52YWx1ZVRvQ29weSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLklzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuUm93cyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLkNvbHMgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5NYXhMZW5ndGggPSAxMDAwMDAwO1xyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEdlbmVyYXRlQ29kZU1vZGFsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKGxvb2t1cElkOiBhbnksIEdlbmVyYXRlQ29kZU1vZGFsKSB7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUNvZGVGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmdlbmVyYXRlQ29kZUZvcm1cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50XHJcblxyXG4gICAgdGhpcy5sb29rdXBTZXJ2aWNlLmdlbmVyYXRlQ29kZUJ5SWQobG9va3VwSWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5OYW1lID0gXCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMudmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Jc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLlJvd3MgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5Db2xzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuTWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlckxvb2t1cExpc3QqL1xyXG4gIC8qKkRlY2xhcmF0aW9uOmZ1bmN0aW9uIHRvIGZpbHRlciBMb29rdXAgaW4gY2xpZW50LXNpZGUgKi9cclxuICAvKipQYXJhbWV0ZXJzOiovXHJcbiAgLyoqc2VhcmNoVmFsdWU6IGN1cnJlbnQgdmFsdWUgb2Ygc2VhcmNoIGJveCovXHJcbiAgZmlsdGVyTG9va3VwTGlzdChzZWFyY2hWYWx1ZSkge1xyXG4gICAgaWYgKHNlYXJjaFZhbHVlKVxyXG4gICAgICB0aGlzLmZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBQYWdpbmdSZXN1bHQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sb29rdXBOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBQYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG4gIDwhLS0gUGFnZSBDb250ZW50IC0tPlxyXG4gIDxkaXYgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgICAgPCEtLShPbkNoYW5nZSk9XCJmaWx0ZXJMb29rdXBMaXN0KCRldmVudClcIiAtLT5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgIFtncm91cF09XCJsb29rdXBGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duVG9nZ2xlIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodC1wcmltYXJ5IG1lLTNcIiBpZD1cIkZpbHRlcnNEcm9wZG93blwiIHRpdGxlPVwiRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsdGVyIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRmlsdGVyXCIpfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0ZpbHRlckxvYWRlZFwiIG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJGaWx0ZXJzRHJvcGRvd25cIiBjbGFzcz1cIiBmaWx0ZXItY29udGFpbmVyIG1lbnUgbWVudS1zdWIgbWVudS1zdWItZHJvcGRvd24gbWVudS1jb2x1bW4gbWVudS1yb3VuZGVkIG1lbnUtZ3JheS04MDAgbWVudS1zdGF0ZS1iZy1saWdodC1wcmltYXJ5ICB3LTI1MHB4IHctbWQtNTAwcHggZnctYm9sZCBweS0zIFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTcgcHktNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJsb29rdXBHcm91cHNPcHRpb25zXCIgW2dyb3VwXT1cImxvb2t1cEZvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnkgcHYtcmVzZXQgYnRuLXNtXCIgZD1cImFwcGx5RmlsdGVyc0J0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlc2V0XCIpfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZUFwcGxpY2F0aW9uRW51bXNNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1rZXkgbWUtMVwiPjwvaT57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJHZW5lcmF0ZUFwcGxpY2F0aW9uRW51bXNcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodC1wcmltYXJ5IG1lLTNcIiAoY2xpY2spPVwic2hvd0dlbmVyYXRlQ29kZUFsbE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleSBtZS0xXCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIChjbGljayk9XCJzaG93R2VuZXJhdGVTeXNOYW1lTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5IG1lLTFcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVTeXNOYW1lXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIgdGl0bGU9XCJBZGRcIiAoY2xpY2spPVwic2hvd0FkZExvb2t1cE1vZGFsKEFkZExvb2t1cE1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlc2NyaXB0aW9uXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBHcm91cHNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU3lzTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWFuYWdlYWJsZVwiKX19PC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy01MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aW9uXCIpfX08L3RoPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgTG9va3VwIG9mIGZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxhICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgW3JvdXRlckxpbmtdPVwiWycvQWRtaW4vTG9va3Vwcy9Mb29rdXBJdGVtcycsIExvb2t1cC5pRF9HVUlEXVwiIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtZGFya1wiPnt7TG9va3VwLmxvb2t1cE5hbWV9fTwvYT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgPnt7TG9va3VwLmxvb2t1cERlc2NyaXB0aW9ufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkID57e0xvb2t1cC5sb29rdXBHcm91cE5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiBjbGFzcz1cImFsaWduLW1pZGRsZVwiPnt7TG9va3VwLnN5c05hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTG9va3VwLm1hbmFnZWFibGU7ZWxzZSBkZWZhdWx0X25vXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVzXCIpfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRfbm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOb1wiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRMb29rdXBNb2RhbChMb29rdXAuaURfR1VJRCxFZGl0TG9va3VwTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbChMb29rdXAuaURfR1VJRCxHZW5lcmF0ZUNvZGVNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIoIVByb2R1Y3Rpb25Nb2RlKSB8fChMb29rdXAubWFuYWdlYWJsZT09dHJ1ZSlcIiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RlbGV0ZUxvb2t1cE1vZGFsKExvb2t1cC5pRF9HVUlEKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJQcm9kdWN0aW9uTW9kZSA/ICc1JyA6ICc2J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgPCEtLWVuZDo6UGVybWlzc2lvbiBsaXN0LS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPEJCU0YtUGFnaW5nIChJdGVtcyk9XCJzZXRMb29rdXBMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwibG9va3VwUGFnaW5nXCIgW2dyb3VwXT1cImxvb2t1cEZvcm1cIiAjTG9va3VwUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIEFkZCBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0FkZExvb2t1cE1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRMb29rdXBGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRMb29rdXBGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsRGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiYWRkTG9va3VwRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInN5c05hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwibG9va3VwR3JvdXBzXCIgW2dyb3VwXT1cImFkZExvb2t1cEZvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj5cclxuICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cImlzTWFuYWdlYWJsZVwiIFtncm91cF09XCJhZGRMb29rdXBGb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBNb2RhbCBpZD1cIkNsb3NlTG9va3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICA8IS0tIEVkaXQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNFZGl0TG9va3VwTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBcIil9fTwvaDE+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXRMb29rdXBGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0QXJlYSBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsRGVzY3JpcHRpb25cIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWE+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiIFtvcHRpb25zXT1cImVkaXRTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXRMb29rdXBGb3JtXCI+XHJcbiAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRMb29rdXBHcm91cHNcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEZvcm1cIj5cclxuICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDxCQlNGLUNoZWNrQm94ICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgW29wdGlvbnNdPVwiZWRpdElzTWFuYWdlYWJsZVwiIFtncm91cF09XCJlZGl0TG9va3VwRm9ybVwiPlxyXG4gICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlRWRpdExvb2t1cE1vZGFsIGlkPVwiQ2xvc2VFZGl0TG9va3VwTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS1kZWxldGUgTW9kYWwtLT5cclxuPEJCU0YtQ29uZmlybWF0aW9uTW9kYWwgKm5nSWY9XCJkZWxldGVDb250cm9sTG9hZGVkXCIgW29wdGlvbnNdPVwiZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uc1wiIGlkPVwiQ29uZmlybWF0aW9uTW9kYWxDb250cm9sXCJcclxuI0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbD48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcblxyXG5cclxuICA8IS0tIEdlbmVyYXRlQ29kZSBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0dlbmVyYXRlQ29kZU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVUZXh0QXJlYVwiIFtncm91cF09XCJnZW5lcmF0ZUNvZGVGb3JtXCIgI0dlbmVyYXRlQ29kZUlucHV0PlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRBcmVhPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlR2VuZXJhdGVDb2RlTW9kYWwgaWQ9XCJDbG9zZUdlbmVyYXRlQ29kZU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIChjbGljayk9XCJjb3B5SW5wdXRNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ29weVRvQ2xpcGJvYXJkXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=
|