@bnsights/bbsf-admin-portal 1.0.32 → 1.0.35

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.
Files changed (60) hide show
  1. package/README.md +5 -0
  2. package/bnsights-bbsf-admin-portal-1.0.35.tgz +0 -0
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js +1248 -1118
  4. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  5. package/esm2015/lib/Pages/ActiveDirectories/active-directory/active-directory.component.js +9 -1
  6. package/esm2015/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.js +18 -14
  7. package/esm2015/lib/Pages/anonymouslayout/anonymouslayout.component.js +6 -2
  8. package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +6 -1
  9. package/esm2015/lib/Pages/departments/department/department.component.js +14 -15
  10. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +33 -42
  11. package/esm2015/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.js +2 -2
  12. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +21 -21
  13. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +21 -21
  14. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +44 -44
  15. package/esm2015/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.js +2 -1
  16. package/esm2015/lib/Pages/localizations/localizations.component.js +18 -17
  17. package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +23 -21
  18. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +6 -6
  19. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +17 -13
  20. package/esm2015/lib/Pages/notifications/add/add.component.js +2 -1
  21. package/esm2015/lib/Pages/notifications/edit/edit.component.js +2 -1
  22. package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +19 -17
  23. package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +6 -6
  24. package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +38 -38
  25. package/esm2015/lib/Pages/notifications/templates/templates.component.js +51 -45
  26. package/esm2015/lib/Pages/providers/provider/provider.component.js +22 -16
  27. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +36 -33
  28. package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +5 -2
  29. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +11 -9
  30. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +25 -19
  31. package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +2 -2
  32. package/esm2015/lib/Pages/sectors/sector/sector.component.js +5 -5
  33. package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +4 -4
  34. package/esm2015/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.js +1 -1
  35. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +1 -26
  36. package/esm2015/lib/Pages/shared/models/LocalizationModels/EditResourceModel.js +6 -1
  37. package/esm2015/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.js +3 -3
  38. package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.js +1 -1
  39. package/esm2015/lib/Pages/shared/models/UserModels/AddUserModel.js +3 -1
  40. package/esm2015/lib/Pages/shared/models/UserModels/EditUserModel.js +3 -1
  41. package/esm2015/lib/Pages/users/users.component.js +42 -37
  42. package/esm2015/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.js +73 -67
  43. package/esm2015/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.js +21 -1
  44. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +27 -19
  45. package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +19 -19
  46. package/fesm2015/bnsights-bbsf-admin-portal.js +1249 -1116
  47. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  48. package/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.d.ts +1 -1
  49. package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +1 -0
  50. package/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.d.ts +2 -0
  51. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +6 -7
  52. package/lib/Pages/shared/models/LocalizationModels/EditResourceModel.d.ts +3 -4
  53. package/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.d.ts +2 -2
  54. package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +1 -0
  55. package/lib/Pages/shared/models/UserModels/AddUserModel.d.ts +2 -0
  56. package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +2 -0
  57. package/package.json +2 -2
  58. package/bnsights-bbsf-admin-portal-1.0.32.tgz +0 -0
  59. package/esm2015/lib/Pages/shared/Enums/ADWindowsType.js +0 -6
  60. package/lib/Pages/shared/Enums/ADWindowsType.d.ts +0 -4
@@ -190,6 +190,7 @@ export class WorkflowActivityEditComponent {
190
190
  this.name.EnglishLabelKey = "NameInEnglish";
191
191
  this.name.IsRequired = true;
192
192
  this.name.Value = name;
193
+ this.name.MaxLength = 255;
193
194
  let outcomesResult = this.getActivityOutcomesOptions(this.activityModel.outcomes, this.isPublished);
194
195
  this.outcomesOptions = outcomesResult[0];
195
196
  this.outcomesCount = outcomesResult[1];
@@ -211,16 +212,19 @@ export class WorkflowActivityEditComponent {
211
212
  this.dynamicTaskName.ArabicLabelKey = "TaskNameInArabic";
212
213
  this.dynamicTaskName.EnglishLabelKey = "TaskNameInEnglish";
213
214
  this.dynamicTaskName.Value = taskName;
215
+ this.dynamicTaskName.MaxLength = 255;
214
216
  this.dynamicTaskDescription = new MultiLingualTextAreaOptions();
215
217
  this.dynamicTaskDescription.Name = "dynamicTaskDescription";
216
218
  this.dynamicTaskDescription.ArabicLabelKey = "TaskDescriptionInArabic";
217
219
  this.dynamicTaskDescription.EnglishLabelKey = "TaskDescriptionInEnglish";
218
220
  this.dynamicTaskDescription.Value = taskDescription;
221
+ this.dynamicTaskDescription.MaxLength = 255;
219
222
  this.dynamicTaskURL = new TextBoxOptions();
220
223
  this.dynamicTaskURL.Name = "dynamicTaskURL";
221
224
  this.dynamicTaskURL.LabelKey = "TaskURL";
222
225
  this.dynamicTaskURL.Type = InputType.Text;
223
226
  this.dynamicTaskURL.Value = this.activityModel.taskURL;
227
+ this.dynamicTaskURL.MaxLength = 2083;
224
228
  this.dynamicTaskType = new DropdownOptions();
225
229
  this.dynamicTaskType.Name = "dynamicTaskType";
226
230
  this.dynamicTaskType.LabelKey = "TaskType";
@@ -284,6 +288,7 @@ export class WorkflowActivityEditComponent {
284
288
  this.conditionRHSValue.Type = InputType.Text;
285
289
  this.conditionRHSValue.IsRequired = true;
286
290
  this.conditionRHSValue.Value = this.activityModel.rhsValue;
291
+ this.conditionRHSValue.MaxLength = 512;
287
292
  this.showConditionRHSWFVariable = false;
288
293
  }
289
294
  this.showConditionControls = true;
@@ -298,6 +303,7 @@ export class WorkflowActivityEditComponent {
298
303
  this.sysName.Type = InputType.Text;
299
304
  this.sysName.IsRequired = true;
300
305
  this.sysName.Value = this.activityModel.sysName;
306
+ this.sysName.MaxLength = 100;
301
307
  if (this.activityTypeID != ActivityType.Start) {
302
308
  this.showActivityType = true;
303
309
  this.activityType = new DropdownOptions();
@@ -346,16 +352,19 @@ export class WorkflowActivityEditComponent {
346
352
  this.dynamicTaskName.ArabicLabelKey = "TaskNameInArabic";
347
353
  this.dynamicTaskName.EnglishLabelKey = "TaskNameInEnglish";
348
354
  this.dynamicTaskName.Value = taskName;
355
+ this.dynamicTaskName.MaxLength = 255;
349
356
  this.dynamicTaskDescription = new MultiLingualTextAreaOptions();
350
357
  this.dynamicTaskDescription.Name = "dynamicTaskDescription";
351
358
  this.dynamicTaskDescription.ArabicLabelKey = "TaskDescriptionInArabic";
352
359
  this.dynamicTaskDescription.EnglishLabelKey = "TaskDescriptionInEnglish";
353
360
  this.dynamicTaskDescription.Value = taskDescription;
361
+ this.dynamicTaskDescription.MaxLength = 255;
354
362
  this.dynamicTaskURL = new TextBoxOptions();
355
363
  this.dynamicTaskURL.Name = "dynamicTaskURL";
356
364
  this.dynamicTaskURL.LabelKey = "TaskURL";
357
365
  this.dynamicTaskURL.Type = InputType.Text;
358
366
  this.dynamicTaskURL.Value = this.activityModel.taskURL;
367
+ this.dynamicTaskURL.MaxLength = 2083;
359
368
  this.dynamicTaskType = new DropdownOptions();
360
369
  this.dynamicTaskType.Name = "dynamicTaskType";
361
370
  this.dynamicTaskType.LabelKey = "TaskType";
@@ -408,12 +417,14 @@ export class WorkflowActivityEditComponent {
408
417
  this.staticOutcomeName.EnglishLabelKey = "OutcomeNameInEnglish";
409
418
  this.staticOutcomeName.IsRequired = true;
410
419
  this.staticOutcomeName.Value = name;
420
+ this.staticOutcomeName.MaxLength = 255;
411
421
  this.staticOutcomeSysName = new TextBoxOptions();
412
422
  this.staticOutcomeSysName.Name = "staticOutcomeSysName";
413
423
  this.staticOutcomeSysName.LabelKey = "DecisionSysName";
414
424
  this.staticOutcomeSysName.Type = InputType.Text;
415
425
  this.staticOutcomeSysName.IsRequired = true;
416
426
  this.staticOutcomeSysName.Value = this.activityModel.outcomeSysName;
427
+ this.staticOutcomeSysName.MaxLength = 100;
417
428
  this.staticOutcomeNextActivity = new DropdownOptions();
418
429
  this.staticOutcomeNextActivity.Name = "staticOutcomeNextActivity";
419
430
  this.staticOutcomeNextActivity.LabelKey = "NextActivity";
@@ -477,6 +488,7 @@ export class WorkflowActivityEditComponent {
477
488
  this.conditionRHSValue.Type = InputType.Text;
478
489
  this.conditionRHSValue.IsRequired = true;
479
490
  this.conditionRHSValue.Value = this.activityModel.rhsValue;
491
+ this.conditionRHSValue.MaxLength = 512;
480
492
  this.showConditionRHSWFVariable = false;
481
493
  }
482
494
  this.showConditionControls = true;
@@ -509,6 +521,7 @@ export class WorkflowActivityEditComponent {
509
521
  outcomeName.EnglishLabelKey = "NameInEnglish";
510
522
  outcomeName.Value = name;
511
523
  outcomeName.IsRequired = true;
524
+ outcomeName.MaxLength = 255;
512
525
  let outcomeNextActivityTypes = new DropdownOptions();
513
526
  outcomeNextActivityTypes.Name = "outcomeNextActivityTypes" + i;
514
527
  outcomeNextActivityTypes.LabelKey = "Activity";
@@ -533,6 +546,7 @@ export class WorkflowActivityEditComponent {
533
546
  outcomeDecisionSysName.Value = currentOutcome.outcomeSysName;
534
547
  outcomeDecisionSysName.IsDisabled = !currentOutcome.canEditSysName;
535
548
  outcomeDecisionSysName.IsRequired = true;
549
+ outcomeDecisionSysName.MaxLength = 100;
536
550
  let outcomeCanAddComment = new CheckBoxOptions();
537
551
  outcomeCanAddComment.Name = "outcomeCanAddComment" + i;
538
552
  outcomeCanAddComment.Value = currentOutcome.canAddComment;
@@ -631,14 +645,17 @@ export class WorkflowActivityEditComponent {
631
645
  this.dynamicTaskName.Name = "dynamicTaskName";
632
646
  this.dynamicTaskName.ArabicLabelKey = "TaskNameInArabic";
633
647
  this.dynamicTaskName.EnglishLabelKey = "TaskNameInEnglish";
648
+ this.dynamicTaskName.MaxLength = 255;
634
649
  this.dynamicTaskDescription = new MultiLingualTextAreaOptions();
635
650
  this.dynamicTaskDescription.Name = "dynamicTaskDescription";
636
651
  this.dynamicTaskDescription.ArabicLabelKey = "TaskDescriptionInArabic";
637
652
  this.dynamicTaskDescription.EnglishLabelKey = "TaskDescriptionInEnglish";
653
+ this.dynamicTaskDescription.MaxLength = 255;
638
654
  this.dynamicTaskURL = new TextBoxOptions();
639
655
  this.dynamicTaskURL.Name = "dynamicTaskURL";
640
656
  this.dynamicTaskURL.LabelKey = "TaskURL";
641
657
  this.dynamicTaskURL.Type = InputType.Text;
658
+ this.dynamicTaskURL.MaxLength = 2083;
642
659
  this.dynamicTaskType = new DropdownOptions();
643
660
  this.dynamicTaskType.Name = "dynamicTaskType";
644
661
  this.dynamicTaskType.LabelKey = "TaskType";
@@ -669,11 +686,13 @@ export class WorkflowActivityEditComponent {
669
686
  this.staticOutcomeName.EnglishLabelKey = "OutcomeNameInEnglish";
670
687
  this.staticOutcomeName.IsRequired = true;
671
688
  this.staticOutcomeName.Value = name;
689
+ this.staticOutcomeName.MaxLength = 255;
672
690
  this.staticOutcomeSysName = new TextBoxOptions();
673
691
  this.staticOutcomeSysName.Name = "staticOutcomeSysName";
674
692
  this.staticOutcomeSysName.LabelKey = "DecisionSysName";
675
693
  this.staticOutcomeSysName.Type = InputType.Text;
676
694
  this.staticOutcomeSysName.IsRequired = true;
695
+ this.staticOutcomeSysName.MaxLength = 100;
677
696
  this.staticOutcomeNextActivity = new DropdownOptions();
678
697
  this.staticOutcomeNextActivity.Name = "staticOutcomeNextActivity";
679
698
  this.staticOutcomeNextActivity.LabelKey = "NextActivity";
@@ -755,6 +774,7 @@ export class WorkflowActivityEditComponent {
755
774
  this.conditionRHSValue.Placeholder = "Value";
756
775
  this.conditionRHSValue.Type = InputType.Text;
757
776
  this.conditionRHSValue.IsRequired = true;
777
+ this.conditionRHSValue.MaxLength = 512;
758
778
  this.showConditionRHSWFVariable = false;
759
779
  }
760
780
  }
@@ -825,4 +845,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
825
845
  templateUrl: './workflow-activity-edit.component.html'
826
846
  }]
827
847
  }], ctorParameters: function () { return [{ type: i1.WorkflowActivityService }, { type: i2.PageInfoService }, { type: i3.UtilityService }, { type: i4.ActivatedRoute }, { type: i4.Router }, { type: i3.RequestHandlerService }, { type: i3.BBSFTranslateService }]; } });
828
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYWN0aXZpdHktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3dvcmtmbG93cy9hY3Rpdml0eS93b3JrZmxvdy1hY3Rpdml0eS1lZGl0L3dvcmtmbG93LWFjdGl2aXR5LWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy93b3JrZmxvd3MvYWN0aXZpdHkvd29ya2Zsb3ctYWN0aXZpdHktZWRpdC93b3JrZmxvdy1hY3Rpdml0eS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdqTyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBT3RHLE1BQU0sT0FBTyw2QkFBNkI7SUFz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QUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzsySEFwN0JVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLGtFQ2xCMUMsODFYQTJQQTs0RkR6T2EsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSx5Q0FBeUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEVuZ2xpc2hBcmFiaWNEVE8sIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucywgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsIFRleHRCb3hPcHRpb25zLCBUb2dnbGVTbGlkZU9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQWN0aXZpdHlUeXBlLCBQYXJ0aWNpcGFudFR5cGUsIFJpZ2h0aGFuZHNpZGV0eXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENvbmRpdGlvblJIU1R5cGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvRW51bXMvQ29uZGl0aW9uUkhTVHlwZSc7XHJcbmltcG9ydCB7IFBhcnRpY2lwYW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL0ltcGVyc29uYXRpb25SdWxlTW9kZWxzL1BhcnRpY2lwYW50TW9kZWwnO1xyXG5pbXBvcnQgeyBXRkFjdGl2aXR5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL1dvcmtmbG93TW9kZWxzL1dGQWN0aXZpdHlNb2RlbCc7XHJcbmltcG9ydCB7IFdGQWN0aXZpdHlPdXRjb21lTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL1dvcmtmbG93TW9kZWxzL1dGQWN0aXZpdHlPdXRjb21lTW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd0FjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9Xb3JrZmxvd0FjdGl2aXR5U2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWFjdGl2aXR5LWVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1hY3Rpdml0eS1lZGl0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dBY3Rpdml0eUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBpc0VkaXRGb3JtTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmVyc2lvbklEOiBzdHJpbmc7XHJcbiAgYWN0aXZpdHlJRDogc3RyaW5nO1xyXG4gIGFjdGl2aXR5TW9kZWw6IGFueTtcclxuICBpc1B1Ymxpc2hlZDogYm9vbGVhbjtcclxuXHJcbiAgLy9FZGl0IEFjdGl2aXR5IHNoYXJlZCBjb250cm9sc1xyXG4gIGVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgbmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgY2FuQWRkT3V0Y29tZTogYm9vbGVhbjtcclxuICBhY3Rpdml0eVR5cGVJRDogc3RyaW5nO1xyXG4gIHNob3dBY3Rpdml0eVR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9Ob24gcHVibGlzaGVkIEFjdGl2aXR5IGNvbnRyb2xzXHJcbiAgc3lzTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgYWN0aXZpdHlUeXBlOiBEcm9wZG93bk9wdGlvbnM7XHJcblxyXG4gIC8vU2hhcmVkIFBhcnRpY2lwYW50IHR5cGUgYW5kIGRhdGEgKE5vbiBQdWJsaXNoZWQgb25seSlcclxuICBzaG93UGFydGljaXBhbnRDb250YWluZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UGFydGljaXBhbnRQZXJtc3Npb25TZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwYXJ0aWNpcGFudFR5cGVzOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgcGFydGljaXBhbnRQZXJtaXNzaW9uU2V0OiBEcm9wZG93bk9wdGlvbnM7XHJcblxyXG4gIC8vRHluYW1pYyBUeXBlcyBDb250cm9scyAvLyhBcHByb3ZhbCxBY3Rpb24sUGVyY2VudGFnZSlcclxuICBzaG93RHluYW1pY0NvbnRyb2xzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHluYW1pY1Rhc2tOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBkeW5hbWljVGFza0Rlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZHluYW1pY1Rhc2tVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGR5bmFtaWNUYXNrVHlwZTogRHJvcGRvd25PcHRpb25zO1xyXG4gIGR5bmFtaWNDYW5Db21wbGV0ZTogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG5cclxuICAvL1N0YXRpYyB0eXBlcyBjb250cm9scyAoRW1haWwsU2xlZXApIChOb24gcHVibGlzaGVkIG9ubHkpXHJcbiAgLy9FbWFpbCBUeXBlIENvbnRyb2xzIC8vKyBpbml0aWFsaXplIHBhcnRpY2lwYW50XHJcbiAgc2hvd1N0YXRpY0NvbnRyb2xzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhdGljT3V0Y29tZU5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHN0YXRpY091dGNvbWVTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQ6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuXHJcbiAgLy9Db25kaXRpb24gdHlwZSBjb250cm9sc1xyXG4gIHNob3dDb25kaXRpb25Db250cm9sczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmRpdGlvbkxIU0Ryb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uc0Ryb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uUkhTVHlwZURyb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uUkhTRHJvcERvd246IERyb3Bkb3duT3B0aW9ucztcclxuICBjb25kaXRpb25SSFNWYWx1ZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9TaGFyZWQgcmVxdWlyZWQgbGlzdHNcclxuICBBY3Rpdml0eVR5cGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICAvL091dGNvbWVzIChkeW5hbWljLGNvbmRpdGlvbilcclxuICBvdXRjb21lc09wdGlvbnM6IGFueVtdID0gW107XHJcbiAgb3V0Y29tZXNDb3VudDogbnVtYmVyID0gMDtcclxuICBzaG93T3V0Y29tZXNDb250YWluZXIgPSBmYWxzZTtcclxuXHJcbiAgLy9SZXF1aXJlZExpc3RzXHJcbiAgdGFza1R5cGVMaXN0ID0gW107XHJcbiAgcGFydGljaXBhbnRUeXBlTGlzdCA9IFtdO1xyXG4gIHBhcnRpY2lwYW50RGF0YUxpc3QgPSBbXTtcclxuICBuZXh0QWN0aXZpdHlMaXN0ID0gW107XHJcblxyXG4gIC8vQ29uZGl0aW9uVHlwZVJlcXVpcmVkTGlzdHNcclxuICBjb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdCA9IFtdO1xyXG4gIGNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0ID0gW107XHJcbiAgY29uZGl0aW9uUkhTVHlwZUxpc3QgPSBbXTtcclxuICBjb25kaXRpb25MaXN0ID0gW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3b3JrZmxvd0FjdGl2aXR5U2VydmljZTogV29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5hY3Rpdml0eUlEID0gcGFyYW1zWydhY3Rpdml0eWlkJ107XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFdvcmtmbG93QWN0aXZpdHlcIik7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiV29ya0Zsb3dzXCIpLCBwYXRoOiAnL0FkbWluL1dvcmtmbG93cy93b3JrZmxvdycsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL0luaXRpYWxpemUgZWRpdCBtb2RlbCBhbmQgcmVxdWlyZWQgRERMc1xyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy53b3JrZmxvd0FjdGl2aXR5U2VydmljZS5nZXRFZGl0V29ya0Zsb3dBY3Rpdml0eURhdGEodGhpcy5hY3Rpdml0eUlEKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgdGhpcy5hY3Rpdml0eU1vZGVsID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICB2YXIgbGlzdCA9IHJlc3VsdE9iai5saXN0O1xyXG4gICAgICB0aGlzLkFjdGl2aXR5VHlwZUxpc3QgPSByZXN1bHRPYmouYWN0aXZpdHlMaXN0O1xyXG4gICAgICB0aGlzLm5leHRBY3Rpdml0eUxpc3QgPSBsaXN0LmFjdGl2aXRpZXM7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlUeXBlSUQgPSB0aGlzLmFjdGl2aXR5TW9kZWwuYWN0aXZpdHlUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuaXNQdWJsaXNoZWQgPSB0aGlzLmFjdGl2aXR5TW9kZWwuaXNQdWJsaXNoZWQ7XHJcbiAgICAgIHRoaXMudmVyc2lvbklEID0gdGhpcy5hY3Rpdml0eU1vZGVsLnZlcnNpb25JRF9HVUlEO1xyXG5cclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXHJcbiAgICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0V0ZBY3Rpdml0eU1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0V0ZBY3Rpdml0eUZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25FZGl0U3VjY2VzcztcclxuXHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLm5hbWUuZW5nbGlzaDtcclxuICAgICAgbmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubmFtZS5hcmFiaWM7XHJcbiAgICAgIHRoaXMubmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLm5hbWUuTmFtZSA9IFwibmFtZVwiO1xyXG4gICAgICB0aGlzLm5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLm5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgIHRoaXMubmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5uYW1lLlZhbHVlID0gbmFtZTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lc1Jlc3VsdDogYW55ID0gdGhpcy5nZXRBY3Rpdml0eU91dGNvbWVzT3B0aW9ucyh0aGlzLmFjdGl2aXR5TW9kZWwub3V0Y29tZXMsIHRoaXMuaXNQdWJsaXNoZWQpO1xyXG4gICAgICB0aGlzLm91dGNvbWVzT3B0aW9ucyA9IG91dGNvbWVzUmVzdWx0WzBdO1xyXG4gICAgICB0aGlzLm91dGNvbWVzQ291bnQgPSBvdXRjb21lc1Jlc3VsdFsxXTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0FjdGl2aXR5VHlwZSA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNQdWJsaXNoZWQpIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZpdHlUeXBlSUQpIHtcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQWN0aW9uOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuUGVyY2VudGFnZVRhc2s6XHJcbiAgICAgICAgICAgIHRoaXMudGFza1R5cGVMaXN0ID0gbGlzdC50YXNrcztcclxuICAgICAgICAgICAgbGV0IHRhc2tOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICAgICAgdGFza05hbWUuRW5nbGlzaCA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrTmFtZS5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrTmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwudGFza05hbWUuYXJhYmljO1xyXG5cclxuICAgICAgICAgICAgbGV0IHRhc2tEZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICAgIHRhc2tEZXNjcmlwdGlvbi5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrRGVzY3JpcHRpb24uQXJhYmljID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5hcmFiaWM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5OYW1lID0gXCJkeW5hbWljVGFza05hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJUYXNrTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5WYWx1ZSA9IHRhc2tOYW1lO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uTmFtZSA9IFwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluQXJhYmljXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uVmFsdWUgPSB0YXNrRGVzY3JpcHRpb247XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTmFtZSA9IFwiZHluYW1pY1Rhc2tVUkxcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5MYWJlbEtleSA9IFwiVGFza1VSTFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrVVJMO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLk5hbWUgPSBcImR5bmFtaWNUYXNrVHlwZVwiXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkxhYmVsS2V5ID0gXCJUYXNrVHlwZVwiXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkRhdGFTb3VyY2UgPSB0aGlzLnRhc2tUeXBlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tDb3JybFR5cGVJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5OYW1lID0gXCJkeW5hbWljQ2FuQ29tcGxldGVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuTGFiZWxLZXkgPSBcIkNhbkNvbXBsZXRlRnJvbVRNRVwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwuY2FuQ29tcGxldGVGcm9tVE1FO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zaG93RHluYW1pY0NvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Db25kaXRpb246XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTV0ZWYXJpYWJsZUxpc3QgPSBsaXN0LndmVmFyaWFibGVzO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0ID0gbGlzdC53ZlZhcmlhYmxlcztcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlTGlzdCA9IGxpc3QucmhzVHlwZXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTGlzdCA9IGxpc3QuY29uZGl0aW9ucztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uTEhTRHJvcERvd25cIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvbkxIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5saHNWYXJpYWJsZUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uc0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiQ29uZGl0aW9uXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5vcGVyYXRvclR5cGVJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5OYW1lID0gXCJjb25kaXRpb25SSFNUeXBlRHJvcERvd25cIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1R5cGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnJoc1R5cGVJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpdml0eU1vZGVsLlJIU1R5cGVJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKSA9PSBSaWdodGhhbmRzaWRldHlwZS5WYXJpYWJsZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5OYW1lID0gXCJjb25kaXRpb25SSFNEcm9wRG93blwiXHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uUkhTV0ZWYXJpYWJsZUxpc3RcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwucmhzVmFyaWFibGVJRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25SSFNXRlZhcmlhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5OYW1lID0gXCJjb25kaXRpb25SSFNWYWx1ZVwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLlBsYWNlaG9sZGVyID0gXCJWYWx1ZVwiO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC5yaHNWYWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25SSFNXRlZhcmlhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvbkNvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNob3dPdXRjb21lc0NvbnRhaW5lciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5zeXNOYW1lLk5hbWUgPSBcInN5c05hbWVcIjtcclxuICAgICAgICB0aGlzLnN5c05hbWUuTGFiZWxLZXkgPSBcIlN5c05hbWVcIjtcclxuICAgICAgICB0aGlzLnN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuc3lzTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN5c05hbWUuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwuc3lzTmFtZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlUeXBlSUQgIT0gQWN0aXZpdHlUeXBlLlN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dBY3Rpdml0eVR5cGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eVR5cGUuTmFtZSA9IFwiYWN0aXZpdHlUeXBlXCJcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLkxhYmVsS2V5ID0gXCJBY3Rpdml0eVR5cGVcIlxyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eVR5cGUuRGF0YVNvdXJjZSA9IHRoaXMuQWN0aXZpdHlUeXBlTGlzdFxyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eVR5cGUuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpdml0eVR5cGUuU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlUeXBlSUQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZpdHlUeXBlSUQpIHtcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQWN0aW9uOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuUGVyY2VudGFnZVRhc2s6XHJcbiAgICAgICAgICAgIHRoaXMudGFza1R5cGVMaXN0ID0gbGlzdC50YXNrcztcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVMaXN0ID0gbGlzdC5wYXJ0aWNpcGFudHMucGFydGljaXBhbnRUeXBlcztcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudERhdGFMaXN0ID0gbGlzdC5wYXJ0aWNpcGFudHMucGFydGljaXBhbnREYXRhO1xyXG5cclxuICAgICAgICAgICAgbGV0IHRhc2tOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICAgICAgdGFza05hbWUuRW5nbGlzaCA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrTmFtZS5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrTmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwudGFza05hbWUuYXJhYmljO1xyXG5cclxuICAgICAgICAgICAgbGV0IHRhc2tEZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICAgIHRhc2tEZXNjcmlwdGlvbi5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrRGVzY3JpcHRpb24uQXJhYmljID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5hcmFiaWM7XHJcbiAgICAgICAgICAgIC8vSW5pdGlhbGl6ZSByZXF1aXJlZCBjb250cm9scyBmb3IgYXBwcm92YWxcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuTmFtZSA9IFwicGFydGljaXBhbnRUeXBlc1wiXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5MYWJlbEtleSA9IFwiUGFydGljaXBhbnRUeXBlc1wiXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5EYXRhU291cmNlID0gdGhpcy5wYXJ0aWNpcGFudFR5cGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5TaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5wYXJ0aWNpcGFudFR5cGVJdGVtSURzU3RyaW5nTGlzdDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2aXR5TW9kZWwucGFydGljaXBhbnRUeXBlSXRlbUlEc1N0cmluZ0xpc3QuaW5jbHVkZXMoUGFydGljaXBhbnRUeXBlLlBlcm1pc3Npb25TZXQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuTmFtZSA9IFwicGFydGljaXBhbnRQZXJtaXNzaW9uU2V0XCJcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuRGF0YVNvdXJjZSA9IHRoaXMucGFydGljaXBhbnREYXRhTGlzdFxyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnBhcnRpY2lwYW50UGVybXNldHNJRHNTdHJpbmc7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93UGFydGljaXBhbnRQZXJtc3Npb25TZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5OYW1lID0gXCJkeW5hbWljVGFza05hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJUYXNrTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5WYWx1ZSA9IHRhc2tOYW1lO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uTmFtZSA9IFwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluQXJhYmljXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uVmFsdWUgPSB0YXNrRGVzY3JpcHRpb247XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTmFtZSA9IFwiZHluYW1pY1Rhc2tVUkxcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5MYWJlbEtleSA9IFwiVGFza1VSTFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrVVJMO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLk5hbWUgPSBcImR5bmFtaWNUYXNrVHlwZVwiXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkxhYmVsS2V5ID0gXCJUYXNrVHlwZVwiXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkRhdGFTb3VyY2UgPSB0aGlzLnRhc2tUeXBlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tDb3JybFR5cGVJRD8udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5OYW1lID0gXCJkeW5hbWljQ2FuQ29tcGxldGVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuTGFiZWxLZXkgPSBcIkNhbkNvbXBsZXRlRnJvbVRNRVwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwuY2FuQ29tcGxldGVGcm9tVE1FO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zaG93RHluYW1pY0NvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93UGFydGljaXBhbnRDb250YWluZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdXRjb21lc0NvbnRhaW5lciA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuU3RhcnQ6XHJcbiAgICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5FbWFpbDpcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlNsZWVwOlxyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpdml0eVR5cGVJRCA9PSBBY3Rpdml0eVR5cGUuRW1haWwpIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZUxpc3QgPSBsaXN0LnBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudFR5cGVzO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnREYXRhTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50RGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5OYW1lID0gXCJwYXJ0aWNpcGFudFR5cGVzXCJcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuTGFiZWxLZXkgPSBcIlBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5EYXRhU291cmNlID0gdGhpcy5wYXJ0aWNpcGFudFR5cGVMaXN0XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLlNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnBhcnRpY2lwYW50VHlwZUl0ZW1JRHNTdHJpbmdMaXN0XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2aXR5TW9kZWwucGFydGljaXBhbnRUeXBlSXRlbUlEc1N0cmluZ0xpc3QuaW5jbHVkZXMoUGFydGljaXBhbnRUeXBlLlBlcm1pc3Npb25TZXQpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5OYW1lID0gXCJwYXJ0aWNpcGFudFBlcm1pc3Npb25TZXRcIlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuTGFiZWxLZXkgPSBcIlBlcm1pc3Npb25TZXRcIlxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuRGF0YVNvdXJjZSA9IHRoaXMucGFydGljaXBhbnREYXRhTGlzdFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnBhcnRpY2lwYW50UGVybXNldHNJRHNTdHJpbmc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudFBlcm1zc2lvblNldCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50Q29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICAgIG5hbWUuQXJhYmljID0gdGhpcy5hY3Rpdml0eU1vZGVsLm5vcm1hbE91dGNvbWVOYW1lLmFyYWJpYztcclxuICAgICAgICAgICAgbmFtZS5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLm5vcm1hbE91dGNvbWVOYW1lLmVuZ2xpc2g7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuTmFtZSA9IFwic3RhdGljT3V0Y29tZU5hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiT3V0Y29tZU5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiT3V0Y29tZU5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5WYWx1ZSA9IG5hbWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuTmFtZSA9IFwic3RhdGljT3V0Y29tZVN5c05hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLm91dGNvbWVTeXNOYW1lO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuTmFtZSA9IFwic3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eVwiXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5MYWJlbEtleSA9IFwiTmV4dEFjdGl2aXR5XCJcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LkRhdGFTb3VyY2UgPSB0aGlzLm5leHRBY3Rpdml0eUxpc3RcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubmV4dEFjdGl2aXR5SURfR1VJRD8udG9Mb3dlckNhc2UoKVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudCA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5OYW1lID0gXCJzdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudFwiO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50LkxhYmVsS2V5ID0gXCJDYW5BZGRDb21tZW50XCI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwuY2FuQWRkQ29tbWVudDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1N0YXRpY0NvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Db25kaXRpb246XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTV0ZWYXJpYWJsZUxpc3QgPSBsaXN0LndmVmFyaWFibGVzO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0ID0gbGlzdC53ZlZhcmlhYmxlcztcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlTGlzdCA9IGxpc3QucmhzVHlwZXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTGlzdCA9IGxpc3QuY29uZGl0aW9ucztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uTEhTRHJvcERvd25cIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvbkxIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5saHNWYXJpYWJsZUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uc0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiQ29uZGl0aW9uXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5vcGVyYXRvclR5cGVJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvblJIU1R5cGVEcm9wRG93blwiXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uUkhTVHlwZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwucmhzVHlwZUl0ZW1JRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlNb2RlbC5yaHNUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCkgPT0gUmlnaHRoYW5kc2lkZXR5cGUuVmFyaWFibGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnJoc1ZhcmlhYmxlSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuTmFtZSA9IFwiY29uZGl0aW9uUkhTVmFsdWVcIjtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5QbGFjZWhvbGRlciA9IFwiVmFsdWVcIjtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwucmhzVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25Db250cm9scyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzRWRpdEZvcm1Mb2FkZWQgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0VkaXQgZnVuY3Rpb25zXHJcbiAgZ2V0RWRpdFdGQWN0aXZpdHlNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0udmFsdWU7XHJcbiAgICBsZXQgZWRpdE1vZGVsID0gbmV3IFdGQWN0aXZpdHlNb2RlbCgpO1xyXG4gICAgZWRpdE1vZGVsLklEX0dVSUQgPSB0aGlzLmFjdGl2aXR5SUQ7XHJcbiAgICBlZGl0TW9kZWwuTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwubmFtZS5FbmdsaXNoO1xyXG4gICAgZWRpdE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwubmFtZS5BcmFiaWM7XHJcbiAgICBlZGl0TW9kZWwuVmVyc2lvbklEX0dVSUQgPSB0aGlzLnZlcnNpb25JRDtcclxuICAgIGVkaXRNb2RlbC5BY3Rpdml0eVR5cGVJdGVtSURfR1VJRCA9IHRoaXMuYWN0aXZpdHlUeXBlSUQ7XHJcbiAgICBlZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLnN5c05hbWVcclxuXHJcbiAgICAvL0lmIHBhcnRpY2lwYW50IGV4aXN0c1xyXG4gICAgaWYgKFJlc3VsdE1vZGVsLnBhcnRpY2lwYW50VHlwZXMgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGVkaXRNb2RlbC5QYXJ0aWNpcGFudERUTyA9IG5ldyBQYXJ0aWNpcGFudE1vZGVsKCk7XHJcbiAgICAgIGVkaXRNb2RlbC5QYXJ0aWNpcGFudERUTyA9IG5ldyBQYXJ0aWNpcGFudE1vZGVsKCk7XHJcbiAgICAgIGVkaXRNb2RlbC5QYXJ0aWNpcGFudERUTy5QYXJ0aWNpcGFudFR5cGVJdGVtSURzU3RyaW5nID0gUmVzdWx0TW9kZWwucGFydGljaXBhbnRUeXBlcy50b1N0cmluZygpO1xyXG4gICAgICBpZiAoUmVzdWx0TW9kZWwucGFydGljaXBhbnRUeXBlcy5pbmNsdWRlcyhQYXJ0aWNpcGFudFR5cGUuUGVybWlzc2lvblNldCkpIHtcclxuICAgICAgICBlZGl0TW9kZWwuUGFydGljaXBhbnREVE8uUGVybWlzc2lvblNldElEc1N0cmluZyA9IFJlc3VsdE1vZGVsLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZpdHlUeXBlSUQpIHtcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQXBwcm92YWw6XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFjdGlvbjpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuUGVyY2VudGFnZVRhc2s6XHJcbiAgICAgICAgZWRpdE1vZGVsLlRhc2tOYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5keW5hbWljVGFza05hbWUuRW5nbGlzaDtcclxuICAgICAgICBlZGl0TW9kZWwuVGFza05hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tOYW1lLkFyYWJpYztcclxuICAgICAgICBlZGl0TW9kZWwuVGFza0Rlc2NyaXB0aW9uLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5keW5hbWljVGFza0Rlc2NyaXB0aW9uLkVuZ2xpc2g7XHJcbiAgICAgICAgZWRpdE1vZGVsLlRhc2tEZXNjcmlwdGlvbi5BcmFiaWMgPSBSZXN1bHRNb2RlbC5keW5hbWljVGFza0Rlc2NyaXB0aW9uLkFyYWJpYztcclxuICAgICAgICBlZGl0TW9kZWwuVGFza1VSTCA9IFJlc3VsdE1vZGVsLmR5bmFtaWNUYXNrVVJMO1xyXG4gICAgICAgIGVkaXRNb2RlbC5UYXNrQ29ycmxUeXBlSUQgPSBSZXN1bHRNb2RlbC5keW5hbWljVGFza1R5cGUgIT0gbnVsbCA/IE51bWJlcihSZXN1bHRNb2RlbC5keW5hbWljVGFza1R5cGUpIDogbnVsbDtcclxuICAgICAgICBlZGl0TW9kZWwuQ2FuQ29tcGxldGVGcm9tVE1FID0gUmVzdWx0TW9kZWwuZHluYW1pY0NhbkNvbXBsZXRlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5TdGFydDpcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuRW1haWw6XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlNsZWVwOlxyXG4gICAgICAgIGlmICghdGhpcy5pc1B1Ymxpc2hlZCkge1xyXG4gICAgICAgICAgZWRpdE1vZGVsLk5vcm1hbE91dGNvbWVOYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5zdGF0aWNPdXRjb21lTmFtZS5FbmdsaXNoO1xyXG4gICAgICAgICAgZWRpdE1vZGVsLk5vcm1hbE91dGNvbWVOYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLnN0YXRpY091dGNvbWVOYW1lLkFyYWJpYztcclxuICAgICAgICAgIGVkaXRNb2RlbC5PdXRjb21lU3lzTmFtZSA9IFJlc3VsdE1vZGVsLnN0YXRpY091dGNvbWVTeXNOYW1lO1xyXG4gICAgICAgICAgZWRpdE1vZGVsLk5leHRBY3Rpdml0eUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5O1xyXG4gICAgICAgICAgZWRpdE1vZGVsLkNhbkFkZENvbW1lbnQgPSBSZXN1bHRNb2RlbC5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkNvbmRpdGlvbjpcclxuICAgICAgICBlZGl0TW9kZWwuTEhTVmFyaWFibGVJRF9HVUlEID0gUmVzdWx0TW9kZWwuY29uZGl0aW9uTEhTRHJvcERvd247XHJcbiAgICAgICAgZWRpdE1vZGVsLlJIU1ZhcmlhYmxlSURfR1VJRCA9IFJlc3VsdE1vZGVsLmNvbmRpdGlvblJIU0Ryb3BEb3duO1xyXG4gICAgICAgIGVkaXRNb2RlbC5SSFNUeXBlSXRlbUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5jb25kaXRpb25SSFNUeXBlRHJvcERvd25cclxuICAgICAgICBlZGl0TW9kZWwuT3BlcmF0b3JUeXBlSXRlbUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5jb25kaXRpb25zRHJvcERvd25cclxuICAgICAgICBlZGl0TW9kZWwuUkhTVmFsdWUgPSBSZXN1bHRNb2RlbC5jb25kaXRpb25SSFNWYWx1ZSAhPSB1bmRlZmluZWQgPyBSZXN1bHRNb2RlbC5jb25kaXRpb25SSFNWYWx1ZSA6IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICAvL1NldCBPdXRjb21lcyAoZHluYW1pYyxjb25kaXRpb24gdHlwZXMpXHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMub3V0Y29tZXNDb3VudDsgaisrKSB7XHJcbiAgICAgIGxldCBvdXRjb21lSUQgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVJRFwiICsgal07XHJcbiAgICAgIGlmIChvdXRjb21lSUQgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgbGV0IG91dGNvbWVOYW1lID0gUmVzdWx0TW9kZWxbXCJvdXRjb21lTmFtZVwiICsgal07XHJcblxyXG4gICAgICBsZXQgb3V0Y29tZVN5c05hbWU6IHN0cmluZztcclxuICAgICAgbGV0IG91dENvbWVDYW5FZGl0U3lzTmFtZSA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZUNhbkVkaXRTeXNOYW1lXCIgKyBqXTtcclxuICAgICAgaWYgKG91dENvbWVDYW5FZGl0U3lzTmFtZSlcclxuICAgICAgICBvdXRjb21lU3lzTmFtZSA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZURlY2lzaW9uU3lzTmFtZVwiICsgal07XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBvdXRjb21lU3lzTmFtZSA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZUhpZGRlbmVTeXNOYW1lXCIgKyBqXTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lQWN0aXZpdHkgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVOZXh0QWN0aXZpdHlUeXBlc1wiICsgal07XHJcbiAgICAgIGxldCBvdXRjb21lQ2FuQWRkQ29tbWVudCA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZUNhbkFkZENvbW1lbnRcIiArIGpdO1xyXG4gICAgICBsZXQgYWN0aXZpdHlPdXRjb21lOiBXRkFjdGl2aXR5T3V0Y29tZU1vZGVsID0gbmV3IFdGQWN0aXZpdHlPdXRjb21lTW9kZWwoKTtcclxuICAgICAgYWN0aXZpdHlPdXRjb21lLklEX0dVSUQgPSBvdXRjb21lSUQ7XHJcbiAgICAgIGFjdGl2aXR5T3V0Y29tZS5OYW1lRU4gPSBvdXRjb21lTmFtZS5FbmdsaXNoO1xyXG4gICAgICBhY3Rpdml0eU91dGNvbWUuTmFtZUFSID0gb3V0Y29tZU5hbWUuQXJhYmljO1xyXG4gICAgICBhY3Rpdml0eU91dGNvbWUuT3V0Y29tZVN5c05hbWUgPSBvdXRjb21lU3lzTmFtZTtcclxuICAgICAgYWN0aXZpdHlPdXRjb21lLk5leHRBY3Rpdml0eUlEX0dVSUQgPSBvdXRjb21lQWN0aXZpdHlcclxuICAgICAgYWN0aXZpdHlPdXRjb21lLkNhbkFkZENvbW1lbnQgPSBvdXRjb21lQ2FuQWRkQ29tbWVudDtcclxuICAgICAgZWRpdE1vZGVsLk91dGNvbWVzLnB1c2goYWN0aXZpdHlPdXRjb21lKTtcclxuICAgIH1cclxuICAgIHBhcmFtQXJyYXkucHVzaChlZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG4gIGdldEVkaXRXRkFjdGl2aXR5RnVuY3Rpb24gPSAoZWRpdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIGlmICh0aGlzLmlzUHVibGlzaGVkKVxyXG4gICAgICByZXR1cm4gdGhpcy53b3JrZmxvd0FjdGl2aXR5U2VydmljZS5lZGl0UHVibGlzaGVkQWN0aXZpdHkoZWRpdE1vZGVsKTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIHRoaXMud29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UuZWRpdEFjdGl2aXR5KGVkaXRNb2RlbCk7XHJcbiAgfVxyXG4gIG9uRWRpdFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEVkaXQoKTtcclxuICB9XHJcblxyXG4gIC8vT3V0Y29tZSBmdW5jdGlvbnNcclxuICBnZXRBY3Rpdml0eU91dGNvbWVzT3B0aW9ucyhvdXRDb21lczogYW55W10sIGlzUHVibGlzaGVkOiBib29sZWFuKSB7XHJcbiAgICBsZXQgb3V0Y29tZXNPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IG91dGNvbWVzQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvdXRDb21lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgY3VycmVudE91dGNvbWUgPSBvdXRDb21lc1tpXTtcclxuICAgICAgbGV0IG9iamVjdE91dGNvbWVPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgbGV0IG91dGNvbWVJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBvdXRjb21lSUQuTmFtZSA9IFwib3V0Y29tZUlEXCIgKyBpO1xyXG4gICAgICBvdXRjb21lSUQuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgb3V0Y29tZUlELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgb3V0Y29tZUlELlZhbHVlID0gY3VycmVudE91dGNvbWUuaURfR1VJRDtcclxuXHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5FbmdsaXNoID0gY3VycmVudE91dGNvbWUubmFtZUVOO1xyXG4gICAgICBuYW1lLkFyYWJpYyA9IGN1cnJlbnRPdXRjb21lLm5hbWVBUjtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBvdXRjb21lTmFtZS5OYW1lID0gXCJvdXRjb21lTmFtZVwiICsgaTtcclxuICAgICAgb3V0Y29tZU5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICBvdXRjb21lTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgb3V0Y29tZU5hbWUuVmFsdWUgPSBuYW1lO1xyXG4gICAgICBvdXRjb21lTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5OYW1lID0gXCJvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXNcIiArIGk7XHJcbiAgICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5MYWJlbEtleSA9IFwiQWN0aXZpdHlcIlxyXG4gICAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuRGF0YVNvdXJjZSA9IHRoaXMubmV4dEFjdGl2aXR5TGlzdFxyXG4gICAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLlNlbGVjdGVkSXRlbXMgPSBjdXJyZW50T3V0Y29tZS5uZXh0QWN0aXZpdHlJRF9HVUlEPy50b0xvd2VyQ2FzZSgpXHJcblxyXG4gICAgICBsZXQgb3V0Y29tZUNhbkVkaXQ6IGJvb2xlYW47XHJcbiAgICAgIG91dGNvbWVDYW5FZGl0ID0gY3VycmVudE91dGNvbWUuY2FuRWRpdDtcclxuICAgICAgbGV0IG91dGNvbWVIaWRkZW5lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuTmFtZSA9IFwib3V0Y29tZUhpZGRlbmVTeXNOYW1lXCIgKyBpO1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVmFsdWUgPSBjdXJyZW50T3V0Y29tZS5vdXRjb21lU3lzTmFtZTtcclxuICAgICAgbGV0IG91dGNvbWVDYW5FZGl0U3lzTmFtZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgb3V0Y29tZUNhbkVkaXRTeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVDYW5FZGl0U3lzTmFtZVwiICsgaTtcclxuICAgICAgb3V0Y29tZUNhbkVkaXRTeXNOYW1lLlZhbHVlID0gY3VycmVudE91dGNvbWUuY2FuRWRpdFN5c05hbWU7XHJcblxyXG4gICAgICBpZiAoIWlzUHVibGlzaGVkKSB7XHJcbiAgICAgICAgbGV0IG91dGNvbWVEZWNpc2lvblN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVEZWNpc2lvblN5c05hbWVcIiArIGk7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5WYWx1ZSA9IGN1cnJlbnRPdXRjb21lLm91dGNvbWVTeXNOYW1lO1xyXG4gICAgICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuSXNEaXNhYmxlZCA9ICFjdXJyZW50T3V0Y29tZS5jYW5FZGl0U3lzTmFtZTtcclxuICAgICAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgb3V0Y29tZUNhbkFkZENvbW1lbnQgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTmFtZSA9IFwib3V0Y29tZUNhbkFkZENvbW1lbnRcIiArIGk7XHJcbiAgICAgICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuVmFsdWUgPSBjdXJyZW50T3V0Y29tZS5jYW5BZGRDb21tZW50O1xyXG4gICAgICAgIG91dGNvbWVDYW5BZGRDb21tZW50LkxhYmVsS2V5ID0gXCJDYW5BZGRDb21tZW50XCI7XHJcblxyXG4gICAgICAgIG9iamVjdE91dGNvbWVPcHRpb25zLnB1c2gob3V0Y29tZUlELCBvdXRjb21lTmFtZSwgb3V0Y29tZURlY2lzaW9uU3lzTmFtZSwgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLCBvdXRjb21lQ2FuQWRkQ29tbWVudCwgb3V0Y29tZUNhbkVkaXQsIG91dGNvbWVIaWRkZW5lU3lzTmFtZSwgb3V0Y29tZUNhbkVkaXRTeXNOYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JqZWN0T3V0Y29tZU9wdGlvbnMucHVzaChvdXRjb21lSUQsIG91dGNvbWVOYW1lLCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMsIG91dGNvbWVDYW5FZGl0LCBvdXRjb21lSGlkZGVuZVN5c05hbWUsIG91dGNvbWVDYW5FZGl0U3lzTmFtZSk7XHJcblxyXG4gICAgICBvdXRjb21lc09wdGlvbnMucHVzaChvYmplY3RPdXRjb21lT3B0aW9ucyk7XHJcbiAgICAgIG91dGNvbWVzQ291bnQgKz0gMTtcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gW291dGNvbWVzT3B0aW9ucywgb3V0Y29tZXNDb3VudF07XHJcbiAgfVxyXG4gIGFkZFdGQWN0aXZpdHlPdXRjb21lKCkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5vdXRjb21lc0NvdW50O1xyXG5cclxuICAgIGxldCBvYmplY3RPdXRjb21lT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBsZXQgb3V0Y29tZUlEID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBvdXRjb21lSUQuTmFtZSA9IFwib3V0Y29tZUlEXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVJRC5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgb3V0Y29tZUlELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgb3V0Y29tZU5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIG91dGNvbWVOYW1lLk5hbWUgPSBcIm91dGNvbWVOYW1lXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIG91dGNvbWVOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgb3V0Y29tZU5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVEZWNpc2lvblN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuTmFtZSA9IFwib3V0Y29tZURlY2lzaW9uU3lzTmFtZVwiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLkxhYmVsS2V5ID0gXCJEZWNpc2lvblN5c05hbWVcIjtcclxuICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLk5hbWUgPSBcIm91dGNvbWVOZXh0QWN0aXZpdHlUeXBlc1wiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuTGFiZWxLZXkgPSBcIkFjdGl2aXR5XCJcclxuICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5EYXRhU291cmNlID0gdGhpcy5uZXh0QWN0aXZpdHlMaXN0XHJcbiAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVDYW5BZGRDb21tZW50ID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTmFtZSA9IFwib3V0Y29tZUNhbkFkZENvbW1lbnRcIiArIGluZGV4O1xyXG4gICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTGFiZWxLZXkgPSBcIkNhbkFkZENvbW1lbnRcIjtcclxuXHJcbiAgICBsZXQgb3V0Y29tZUNhbkVkaXQ6IGJvb2xlYW47XHJcbiAgICBvdXRjb21lQ2FuRWRpdCA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVIaWRkZW5lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZUhpZGRlbmVTeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVIaWRkZW5lU3lzTmFtZVwiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgIGxldCBvdXRjb21lQ2FuRWRpdFN5c05hbWUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICBvdXRjb21lQ2FuRWRpdFN5c05hbWUuTmFtZSA9IFwib3V0Y29tZUNhbkVkaXRTeXNOYW1lXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVDYW5FZGl0U3lzTmFtZS5WYWx1ZSA9IHRydWU7XHJcblxyXG4gICAgb2JqZWN0T3V0Y29tZU9wdGlvbnMucHVzaChvdXRjb21lSUQsIG91dGNvbWVOYW1lLCBvdXRjb21lRGVjaXNpb25TeXNOYW1lLCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMsIG91dGNvbWVDYW5BZGRDb21tZW50LFxyXG4gICAgICBvdXRjb21lQ2FuRWRpdCwgb3V0Y29tZUhpZGRlbmVTeXNOYW1lLCBvdXRjb21lQ2FuRWRpdFN5c05hbWUpO1xyXG5cclxuICAgIHRoaXMub3V0Y29tZXNPcHRpb25zLnB1c2gob2JqZWN0T3V0Y29tZU9wdGlvbnMpO1xyXG4gICAgdGhpcy5vdXRjb21lc0NvdW50ICs9IDE7XHJcblxyXG4gIH1cclxuICBkZWxldGVPdXRjb21lKGRlbGV0ZWRPdXRjb21lOiBhbnkpIHtcclxuICAgIGxldCBkZWxldGVkT3V0Y29tZUluZGV4OiBudW1iZXIgPSB0aGlzLm91dGNvbWVzT3B0aW9ucy5pbmRleE9mKGRlbGV0ZWRPdXRjb21lKTtcclxuICAgIGlmIChkZWxldGVkT3V0Y29tZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLm91dGNvbWVzT3B0aW9ucy5zcGxpY2UoZGVsZXRlZE91dGNvbWVJbmRleCwgMSk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRlZE91dGNvbWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKGRlbGV0ZWRPdXRjb21lW2ldLk5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL09uIGNoYW5nZXMgZXZlbnRzXHJcbiAgYWN0aXZpdHlUeXBlT25DaGFuZ2UoYWN0aXZpdHlUeXBlKSB7XHJcbiAgICBhY3Rpdml0eVR5cGUgPSBhY3Rpdml0eVR5cGU/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAvL1Jlc2V0IGNvbnRyb2xzLCBvdXRjb21lcyBhbmQgZmxhZ3NcclxuICAgIHRoaXMucmVzZXRBbGxBY3Rpdml0eVR5cGVDb250cm9scygpO1xyXG4gICAgdGhpcy5vdXRjb21lc09wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMub3V0Y29tZXNDb3VudCA9IDA7XHJcbiAgICB0aGlzLnNob3dQYXJ0aWNpcGFudENvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93RHluYW1pY0NvbnRyb2xzID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdGF0aWNDb250cm9scyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q29uZGl0aW9uQ29udHJvbHMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5hY3Rpdml0eVR5cGVJRCA9IGFjdGl2aXR5VHlwZTtcclxuICAgIHRoaXMud29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UuZ2V0QWN0aXZpdHlPdXRjb21lcyh0aGlzLnZlcnNpb25JRCwgYWN0aXZpdHlUeXBlKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgdmFyIG1vZGVsID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICB2YXIgbGlzdCA9IHJlc3VsdE9iai5saXN0O1xyXG4gICAgICB0aGlzLm5leHRBY3Rpdml0eUxpc3QgPSBsaXN0LmFjdGl2aXRpZXM7XHJcblxyXG4gICAgICBzd2l0Y2ggKGFjdGl2aXR5VHlwZSkge1xyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFjdGlvbjpcclxuICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5QZXJjZW50YWdlVGFzazpcclxuICAgICAgICAgIHRoaXMudGFza1R5cGVMaXN0ID0gbGlzdC50YXNrcztcclxuICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50VHlwZXM7XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50RGF0YUxpc3QgPSBsaXN0LnBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudERhdGE7XHJcblxyXG4gICAgICAgICAgLy9Jbml0aWFsaXplIHJlcXVpcmVkIGNvbnRyb2xzIGZvciBhcHByb3ZhbFxyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLk5hbWUgPSBcInBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLkxhYmVsS2V5ID0gXCJQYXJ0aWNpcGFudFR5cGVzXCJcclxuICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5EYXRhU291cmNlID0gdGhpcy5wYXJ0aWNpcGFudFR5cGVMaXN0XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5OYW1lID0gXCJkeW5hbWljVGFza05hbWVcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJUYXNrTmFtZUluQXJhYmljXCI7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tOYW1lSW5FbmdsaXNoXCI7XHJcblxyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uLk5hbWUgPSBcImR5bmFtaWNUYXNrRGVzY3JpcHRpb25cIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5BcmFiaWNMYWJlbEtleSA9IFwiVGFza0Rlc2NyaXB0aW9uSW5BcmFiaWNcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG5cclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTmFtZSA9IFwiZHluYW1pY1Rhc2tVUkxcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTGFiZWxLZXkgPSBcIlRhc2tVUkxcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuTmFtZSA9IFwiZHluYW1pY1Rhc2tUeXBlXCJcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkxhYmVsS2V5ID0gXCJUYXNrVHlwZVwiXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5EYXRhU291cmNlID0gdGhpcy50YXNrVHlwZUxpc3RcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZSA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLk5hbWUgPSBcImR5bmFtaWNDYW5Db21wbGV0ZVwiO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuTGFiZWxLZXkgPSBcIkNhbkNvbXBsZXRlRnJvbVRNRVwiO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5WYWx1ZSA9IG1vZGVsLmNhbkNvbXBsZXRlRnJvbVRNRTtcclxuXHJcbiAgICAgICAgICBsZXQgb3V0Y29tZXNSZXN1bHQ6IGFueSA9IHRoaXMuZ2V0QWN0aXZpdHlPdXRjb21lc09wdGlvbnMobW9kZWwub3V0Y29tZXMsIGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMub3V0Y29tZXNPcHRpb25zID0gb3V0Y29tZXNSZXN1bHRbMF07XHJcbiAgICAgICAgICB0aGlzLm91dGNvbWVzQ291bnQgPSBvdXRjb21lc1Jlc3VsdFsxXTtcclxuXHJcbiAgICAgICAgICB0aGlzLnNob3dEeW5hbWljQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UGFydGljaXBhbnRDb250YWluZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93T3V0Y29tZXNDb250YWluZXIgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuRW1haWw6XHJcbiAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuU2xlZXA6XHJcbiAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICBuYW1lLkFyYWJpYyA9IG1vZGVsLm5vcm1hbE91dGNvbWVOYW1lLmFyYWJpYztcclxuICAgICAgICAgIG5hbWUuRW5nbGlzaCA9IG1vZGVsLm5vcm1hbE91dGNvbWVOYW1lLmVuZ2xpc2g7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5OYW1lID0gXCJzdGF0aWNPdXRjb21lTmFtZVwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiT3V0Y29tZU5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk91dGNvbWVOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5WYWx1ZSA9IG5hbWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5OYW1lID0gXCJzdGF0aWNPdXRjb21lU3lzTmFtZVwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5Lk5hbWUgPSBcInN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHlcIlxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LkxhYmVsS2V5ID0gXCJOZXh0QWN0aXZpdHlcIlxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LkRhdGFTb3VyY2UgPSB0aGlzLm5leHRBY3Rpdml0eUxpc3RcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50ID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5OYW1lID0gXCJzdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudFwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5MYWJlbEtleSA9IFwiQ2FuQWRkQ29tbWVudFwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQuVmFsdWUgPSBtb2RlbC5jYW5BZGRDb21tZW50O1xyXG5cclxuICAgICAgICAgIHRoaXMuc2hvd1N0YXRpY0NvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkNvbmRpdGlvbjpcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTV0ZWYXJpYWJsZUxpc3QgPSBsaXN0LndmVmFyaWFibGVzO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdCA9IGxpc3Qud2ZWYXJpYWJsZXM7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVMaXN0ID0gbGlzdC5yaHNUeXBlcztcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTGlzdCA9IGxpc3QuY29uZGl0aW9ucztcclxuXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5OYW1lID0gXCJjb25kaXRpb25MSFNEcm9wRG93blwiXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uTEhTV0ZWYXJpYWJsZUxpc3RcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbnNEcm9wRG93blwiXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiQ29uZGl0aW9uXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvbkxpc3RcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbnNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBsZXQgc2VsZWN0ZWRSSFNUeXBlID0gdGhpcy5jb25kaXRpb25SSFNUeXBlTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5Py50b0xvd2VyQ2FzZSgpID09IFJpZ2h0aGFuZHNpZGV0eXBlLlZhcmlhYmxlOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTVHlwZURyb3BEb3duXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1R5cGVMaXN0XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5TZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRSSFNUeXBlO1xyXG5cclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvblJIU0Ryb3BEb3duXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICBsZXQgY29uZGl0aW9uT3V0Y29tZXNSZXN1bHQ6IGFueSA9IHRoaXMuZ2V0QWN0aXZpdHlPdXRjb21lc09wdGlvbnMobW9kZWwub3V0Y29tZXMsIGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMub3V0Y29tZXNPcHRpb25zID0gY29uZGl0aW9uT3V0Y29tZXNSZXN1bHRbMF07XHJcbiAgICAgICAgICB0aGlzLm91dGNvbWVzQ291bnQgPSBjb25kaXRpb25PdXRjb21lc1Jlc3VsdFsxXTtcclxuXHJcbiAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25Db250cm9scyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25SSFNXRlZhcmlhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2FuQWRkT3V0Y29tZSA9IHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID8gbW9kZWwuY2FuQWRkT3V0Y29tZSA6IGZhbHNlO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgY29uZGl0aW9uUkhTVHlwZU9uQ2hhbmdlKHR5cGUpIHtcclxuICAgIHR5cGUgPSB0eXBlPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYgKHR5cGUgPT0gUmlnaHRoYW5kc2lkZXR5cGUuVmFyaWFibGUpIHtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcImNvbmRpdGlvblJIU1ZhbHVlXCIpXHJcblxyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvblJIU0Ryb3BEb3duXCJcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLnNob3dDb25kaXRpb25SSFNXRlZhcmlhYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiY29uZGl0aW9uUkhTRHJvcERvd25cIilcclxuXHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5OYW1lID0gXCJjb25kaXRpb25SSFNWYWx1ZVwiO1xyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuUGxhY2Vob2xkZXIgPSBcIlZhbHVlXCI7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5zaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgcGFydGljaXBhbnRUeXBlT25DaGFuZ2UocGFydGljaXBhbnRUeXBlKSB7XHJcbiAgICBwYXJ0aWNpcGFudFR5cGUgPSBwYXJ0aWNpcGFudFR5cGU/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAocGFydGljaXBhbnRUeXBlID09IFBhcnRpY2lwYW50VHlwZS5QZXJtaXNzaW9uU2V0KSB7XHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5OYW1lID0gXCJwYXJ0aWNpcGFudFBlcm1pc3Npb25TZXRcIlxyXG4gICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkRhdGFTb3VyY2UgPSB0aGlzLnBhcnRpY2lwYW50RGF0YUxpc3RcclxuICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50UGVybXNzaW9uU2V0ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwicGFydGljaXBhbnRQZXJtaXNzaW9uU2V0XCIpO1xyXG4gICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudFBlcm1zc2lvblNldCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvL1Jlc2V0IHR5cGVcclxuICByZXNldEFsbEFjdGl2aXR5VHlwZUNvbnRyb2xzKCkge1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInBhcnRpY2lwYW50VHlwZXNcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwicGFydGljaXBhbnRQZXJtaXNzaW9uU2V0XCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza05hbWVcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza1VSTFwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza1R5cGVcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiZHluYW1pY0NhbkNvbXBsZXRlXCIpO1xyXG5cclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lTmFtZVwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lU3lzTmFtZVwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5XCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50XCIpO1xyXG5cclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJjb25kaXRpb25MSFNEcm9wRG93blwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJjb25kaXRpb25zRHJvcERvd25cIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiY29uZGl0aW9uUkhTVHlwZURyb3BEb3duXCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcImNvbmRpdGlvblJIU0Ryb3BEb3duXCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcImNvbmRpdGlvblJIU1ZhbHVlXCIpO1xyXG5cclxuICAgIC8vUmVtb3ZlIG91dGNvbWVzIGNvbnRyb2xzXHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS52YWx1ZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vdXRjb21lc0NvdW50OyBpKyspIHtcclxuICAgICAgbGV0IG91dGNvbWVJRCA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZUlEXCIgKyBpXTtcclxuICAgICAgaWYgKG91dGNvbWVJRCA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwib3V0Y29tZUlEXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVOYW1lXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVEZWNpc2lvblN5c05hbWVcIiArIGkpO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwib3V0Y29tZUhpZGRlbmVTeXNOYW1lXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVOZXh0QWN0aXZpdHlUeXBlc1wiICsgaSk7XHJcbiAgICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJvdXRjb21lQ2FuQWRkQ29tbWVudFwiICsgaSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9DYW5jZWxcclxuICBjYW5jZWxFZGl0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vV29ya2Zsb3dzL3dvcmtmbG93LyddKTtcclxuICB9XHJcblxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIiAqbmdJZj1cImlzRWRpdEZvcm1Mb2FkZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8IS0tU3RhcnQgc2hhcmVkIGNvbnRyb2xzIGNvbnRhaW5lci0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJuYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhaXNQdWJsaXNoZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzeXNOYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzaG93QWN0aXZpdHlUeXBlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCIgKE9uQ2hhbmdlKT1cImFjdGl2aXR5VHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgc2hhcmVkIGNvbnRyb2xzIGNvbnRhaW5lci0tPlxyXG4gICAgICAgIDwhLS1TdGFydCBwYXJ0aWNpcGFudCBjb250YWluZXItLT5cclxuICAgICAgICA8ZGl2IGlkPVwicGFydGljaXBhbnRDb250YWluZXJcIiAqbmdJZj1cInNob3dQYXJ0aWNpcGFudENvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cInBhcnRpY2lwYW50VHlwZXNcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCIgKE9uQ2hhbmdlKT1cInBhcnRpY2lwYW50VHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93UGFydGljaXBhbnRQZXJtc3Npb25TZXRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgcGFydGljaXBhbnQgY29udGFpbmVyLS0+XHJcbiAgICAgICAgPCEtLVN0YXJ0IHN0YXRpYyBjb250cm9scy0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93U3RhdGljQ29udHJvbHNcIiBpZD1cInN0YXRpY0NvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJzdGF0aWNPdXRjb21lTmFtZVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInN0YXRpY091dGNvbWVTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5XCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwic3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnRcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgc3RhdGljIGNvbnRyb2xzLS0+XHJcbiAgICAgICAgPCEtLVN0YXJ0IGR5bmFtaWMgY29udHJvbHMtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0R5bmFtaWNDb250cm9sc1wiIGlkPVwiZHluYW1pY0NvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJkeW5hbWljVGFza05hbWVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJkeW5hbWljVGFza1VSTFwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZHluYW1pY1Rhc2tUeXBlXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZHluYW1pY0NhbkNvbXBsZXRlXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tRW5kIGR5bmFtaWMgY29udHJvbHMtLT5cclxuICAgICAgICA8IS0tU3RhcnQgY29uZGl0aW9uIGNvbnRyb2xzLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDb25kaXRpb25Db250cm9sc1wiIGlkPVwiY29uZGl0aW9uQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlciB0YWJsZS13LWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxlZnRIYW5kU2lkZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDb25kaXRpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmlnaHRIYW5kU2lkZVR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmlnaHRIYW5kU2lkZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb25kaXRpb25MSFNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbmRpdGlvbnNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbmRpdGlvblJIU1R5cGVEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIiAoT25DaGFuZ2UpPVwiY29uZGl0aW9uUkhTVHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJzaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZTsgZWxzZSBjb25kaXRpb25UeHRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb25kaXRpb25SSFNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmRpdGlvblR4dFZhbHVlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiY29uZGl0aW9uUkhTVmFsdWVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLUVuZCBjb25kaXRpb24gY29udHJvbHMtLT5cclxuICAgICAgICA8IS0tU3RhcnQgb3V0Y29tZXMgY29udGFpbmVyLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dPdXRjb21lc0NvbnRhaW5lclwiIGlkPVwib3V0Y29tZXNDb250YWluZXJcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyIHRhYmxlLXctY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVjaXNpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiIWlzUHVibGlzaGVkXCIgY2xhc3M9XCJtaW4tdy0xNTBweFwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIiFpc1B1Ymxpc2hlZFwiIGNsYXNzPVwibWluLXctMTUwcHhcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIhaXNQdWJsaXNoZWRcIiBjbGFzcz1cIm1pbi13LTE1MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIiAqbmdJZj1cImlzUHVibGlzaGVkO2Vsc2Ugbm90UHVibGlzaGVkT3V0Y29tZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHRyICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG91dGNvbWVzT3B0aW9ucztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tSUQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW2hpZGRlbl09XCJ0cnVlXCIgW29wdGlvbnNdPVwib3B0aW9uWzBdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJvcHRpb25bMV1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS1OZXh0QWN0aXZpdHktLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMl1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90Ym9keT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdFB1Ymxpc2hlZE91dGNvbWVzPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvdXRjb21lc09wdGlvbnM7bGV0IGk9aW5kZXg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tSUQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbaGlkZGVuXT1cInRydWVcIiBbb3B0aW9uc109XCJvcHRpb25bMF1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsxXVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tU3lzTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsyXVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1oaWRkZW4gU3lzTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtoaWRkZW5dPVwidHJ1ZVwiIFtvcHRpb25zXT1cIm9wdGlvbls2XVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1jYW4gZWRpdCBTeXNOYW1lLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtoaWRkZW5dPVwidHJ1ZVwiIFtvcHRpb25zXT1cIm9wdGlvbls3XVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLU5leHRBY3Rpdml0eS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwib3B0aW9uWzNdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLUNhbkFkZENvbW1lbnQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwib3B0aW9uWzRdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWlmIG91dGNvbWUgQ2FuIEVkaXQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJvcHRpb25bNV1cIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tbGlnaHQtZGFuZ2VyIGJ0bi1zbVwiIChjbGljayk9XCJkZWxldGVPdXRjb21lKG9wdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIiBmYSBmYS10cmFzaCBoaWRkZW5cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJjYW5BZGRPdXRjb21lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ3LTEwMCBidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwiYWRkV0ZBY3Rpdml0eU91dGNvbWUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZE5ld1JlY29yZFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLUVuZCBvdXRjb21lcyBjb250YWluZXItLT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJjYW5jZWxFZGl0KClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
848
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYWN0aXZpdHktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3dvcmtmbG93cy9hY3Rpdml0eS93b3JrZmxvdy1hY3Rpdml0eS1lZGl0L3dvcmtmbG93LWFjdGl2aXR5LWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy93b3JrZmxvd3MvYWN0aXZpdHkvd29ya2Zsb3ctYWN0aXZpdHktZWRpdC93b3JrZmxvdy1hY3Rpdml0eS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdqTyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBT3RHLE1BQU0sT0FBTyw2QkFBNkI7SUFz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VTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxZQUFZO0lBQ1osV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzsySEF6OEJVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLGtFQ2xCMUMsODFYQTJQQTs0RkR6T2EsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSx5Q0FBeUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEVuZ2xpc2hBcmFiaWNEVE8sIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucywgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsIFRleHRCb3hPcHRpb25zLCBUb2dnbGVTbGlkZU9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQWN0aXZpdHlUeXBlLCBQYXJ0aWNpcGFudFR5cGUsIFJpZ2h0aGFuZHNpZGV0eXBlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENvbmRpdGlvblJIU1R5cGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvRW51bXMvQ29uZGl0aW9uUkhTVHlwZSc7XHJcbmltcG9ydCB7IFBhcnRpY2lwYW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL0ltcGVyc29uYXRpb25SdWxlTW9kZWxzL1BhcnRpY2lwYW50TW9kZWwnO1xyXG5pbXBvcnQgeyBXRkFjdGl2aXR5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL1dvcmtmbG93TW9kZWxzL1dGQWN0aXZpdHlNb2RlbCc7XHJcbmltcG9ydCB7IFdGQWN0aXZpdHlPdXRjb21lTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL1dvcmtmbG93TW9kZWxzL1dGQWN0aXZpdHlPdXRjb21lTW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd0FjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9Xb3JrZmxvd0FjdGl2aXR5U2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWFjdGl2aXR5LWVkaXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1hY3Rpdml0eS1lZGl0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dBY3Rpdml0eUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBpc0VkaXRGb3JtTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmVyc2lvbklEOiBzdHJpbmc7XHJcbiAgYWN0aXZpdHlJRDogc3RyaW5nO1xyXG4gIGFjdGl2aXR5TW9kZWw6IGFueTtcclxuICBpc1B1Ymxpc2hlZDogYm9vbGVhbjtcclxuXHJcbiAgLy9FZGl0IEFjdGl2aXR5IHNoYXJlZCBjb250cm9sc1xyXG4gIGVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnM7XHJcbiAgbmFtZTogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnM7XHJcbiAgY2FuQWRkT3V0Y29tZTogYm9vbGVhbjtcclxuICBhY3Rpdml0eVR5cGVJRDogc3RyaW5nO1xyXG4gIHNob3dBY3Rpdml0eVR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9Ob24gcHVibGlzaGVkIEFjdGl2aXR5IGNvbnRyb2xzXHJcbiAgc3lzTmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgYWN0aXZpdHlUeXBlOiBEcm9wZG93bk9wdGlvbnM7XHJcblxyXG4gIC8vU2hhcmVkIFBhcnRpY2lwYW50IHR5cGUgYW5kIGRhdGEgKE5vbiBQdWJsaXNoZWQgb25seSlcclxuICBzaG93UGFydGljaXBhbnRDb250YWluZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UGFydGljaXBhbnRQZXJtc3Npb25TZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwYXJ0aWNpcGFudFR5cGVzOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgcGFydGljaXBhbnRQZXJtaXNzaW9uU2V0OiBEcm9wZG93bk9wdGlvbnM7XHJcblxyXG4gIC8vRHluYW1pYyBUeXBlcyBDb250cm9scyAvLyhBcHByb3ZhbCxBY3Rpb24sUGVyY2VudGFnZSlcclxuICBzaG93RHluYW1pY0NvbnRyb2xzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHluYW1pY1Rhc2tOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBkeW5hbWljVGFza0Rlc2NyaXB0aW9uOiBNdWx0aUxpbmd1YWxUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZHluYW1pY1Rhc2tVUkw6IFRleHRCb3hPcHRpb25zO1xyXG4gIGR5bmFtaWNUYXNrVHlwZTogRHJvcGRvd25PcHRpb25zO1xyXG4gIGR5bmFtaWNDYW5Db21wbGV0ZTogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG5cclxuICAvL1N0YXRpYyB0eXBlcyBjb250cm9scyAoRW1haWwsU2xlZXApIChOb24gcHVibGlzaGVkIG9ubHkpXHJcbiAgLy9FbWFpbCBUeXBlIENvbnRyb2xzIC8vKyBpbml0aWFsaXplIHBhcnRpY2lwYW50XHJcbiAgc2hvd1N0YXRpY0NvbnRyb2xzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhdGljT3V0Y29tZU5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHN0YXRpY091dGNvbWVTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5OiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQ6IFRvZ2dsZVNsaWRlT3B0aW9ucztcclxuXHJcbiAgLy9Db25kaXRpb24gdHlwZSBjb250cm9sc1xyXG4gIHNob3dDb25kaXRpb25Db250cm9sczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmRpdGlvbkxIU0Ryb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uc0Ryb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uUkhTVHlwZURyb3BEb3duOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgY29uZGl0aW9uUkhTRHJvcERvd246IERyb3Bkb3duT3B0aW9ucztcclxuICBjb25kaXRpb25SSFNWYWx1ZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9TaGFyZWQgcmVxdWlyZWQgbGlzdHNcclxuICBBY3Rpdml0eVR5cGVMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICAvL091dGNvbWVzIChkeW5hbWljLGNvbmRpdGlvbilcclxuICBvdXRjb21lc09wdGlvbnM6IGFueVtdID0gW107XHJcbiAgb3V0Y29tZXNDb3VudDogbnVtYmVyID0gMDtcclxuICBzaG93T3V0Y29tZXNDb250YWluZXIgPSBmYWxzZTtcclxuXHJcbiAgLy9SZXF1aXJlZExpc3RzXHJcbiAgdGFza1R5cGVMaXN0ID0gW107XHJcbiAgcGFydGljaXBhbnRUeXBlTGlzdCA9IFtdO1xyXG4gIHBhcnRpY2lwYW50RGF0YUxpc3QgPSBbXTtcclxuICBuZXh0QWN0aXZpdHlMaXN0ID0gW107XHJcblxyXG4gIC8vQ29uZGl0aW9uVHlwZVJlcXVpcmVkTGlzdHNcclxuICBjb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdCA9IFtdO1xyXG4gIGNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0ID0gW107XHJcbiAgY29uZGl0aW9uUkhTVHlwZUxpc3QgPSBbXTtcclxuICBjb25kaXRpb25MaXN0ID0gW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3b3JrZmxvd0FjdGl2aXR5U2VydmljZTogV29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UsIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy5hY3Rpdml0eUlEID0gcGFyYW1zWydhY3Rpdml0eWlkJ107XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFdvcmtmbG93QWN0aXZpdHlcIik7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiV29ya0Zsb3dzXCIpLCBwYXRoOiAnL0FkbWluL1dvcmtmbG93cy93b3JrZmxvdycsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcbiAgICBdO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlVGl0bGUoKTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICAvL0luaXRpYWxpemUgZWRpdCBtb2RlbCBhbmQgcmVxdWlyZWQgRERMc1xyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy53b3JrZmxvd0FjdGl2aXR5U2VydmljZS5nZXRFZGl0V29ya0Zsb3dBY3Rpdml0eURhdGEodGhpcy5hY3Rpdml0eUlEKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgdGhpcy5hY3Rpdml0eU1vZGVsID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICB2YXIgbGlzdCA9IHJlc3VsdE9iai5saXN0O1xyXG4gICAgICB0aGlzLkFjdGl2aXR5VHlwZUxpc3QgPSByZXN1bHRPYmouYWN0aXZpdHlMaXN0O1xyXG4gICAgICB0aGlzLm5leHRBY3Rpdml0eUxpc3QgPSBsaXN0LmFjdGl2aXRpZXM7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlUeXBlSUQgPSB0aGlzLmFjdGl2aXR5TW9kZWwuYWN0aXZpdHlUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuaXNQdWJsaXNoZWQgPSB0aGlzLmFjdGl2aXR5TW9kZWwuaXNQdWJsaXNoZWQ7XHJcbiAgICAgIHRoaXMudmVyc2lvbklEID0gdGhpcy5hY3Rpdml0eU1vZGVsLnZlcnNpb25JRF9HVUlEO1xyXG5cclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXHJcbiAgICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0V0ZBY3Rpdml0eU1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0V0ZBY3Rpdml0eUZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25FZGl0U3VjY2VzcztcclxuXHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLm5hbWUuZW5nbGlzaDtcclxuICAgICAgbmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubmFtZS5hcmFiaWM7XHJcbiAgICAgIHRoaXMubmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLm5hbWUuTmFtZSA9IFwibmFtZVwiO1xyXG4gICAgICB0aGlzLm5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLm5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgIHRoaXMubmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5uYW1lLlZhbHVlID0gbmFtZTtcclxuICAgICAgdGhpcy5uYW1lLk1heExlbmd0aCA9IDI1NTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lc1Jlc3VsdDogYW55ID0gdGhpcy5nZXRBY3Rpdml0eU91dGNvbWVzT3B0aW9ucyh0aGlzLmFjdGl2aXR5TW9kZWwub3V0Y29tZXMsIHRoaXMuaXNQdWJsaXNoZWQpO1xyXG4gICAgICB0aGlzLm91dGNvbWVzT3B0aW9ucyA9IG91dGNvbWVzUmVzdWx0WzBdO1xyXG4gICAgICB0aGlzLm91dGNvbWVzQ291bnQgPSBvdXRjb21lc1Jlc3VsdFsxXTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0FjdGl2aXR5VHlwZSA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNQdWJsaXNoZWQpIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZpdHlUeXBlSUQpIHtcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQWN0aW9uOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuUGVyY2VudGFnZVRhc2s6XHJcbiAgICAgICAgICAgIHRoaXMudGFza1R5cGVMaXN0ID0gbGlzdC50YXNrcztcclxuICAgICAgICAgICAgbGV0IHRhc2tOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICAgICAgdGFza05hbWUuRW5nbGlzaCA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrTmFtZS5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrTmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwudGFza05hbWUuYXJhYmljO1xyXG5cclxuICAgICAgICAgICAgbGV0IHRhc2tEZXNjcmlwdGlvbiA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICAgIHRhc2tEZXNjcmlwdGlvbi5FbmdsaXNoID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgICB0YXNrRGVzY3JpcHRpb24uQXJhYmljID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tEZXNjcmlwdGlvbi5hcmFiaWM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5OYW1lID0gXCJkeW5hbWljVGFza05hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJUYXNrTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5WYWx1ZSA9IHRhc2tOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5NYXhMZW5ndGggPSAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24gPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5OYW1lID0gXCJkeW5hbWljVGFza0Rlc2NyaXB0aW9uXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5BcmFiaWNMYWJlbEtleSA9IFwiVGFza0Rlc2NyaXB0aW9uSW5BcmFiaWNcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uLkVuZ2xpc2hMYWJlbEtleSA9IFwiVGFza0Rlc2NyaXB0aW9uSW5FbmdsaXNoXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5WYWx1ZSA9IHRhc2tEZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uLk1heExlbmd0aCA9IDI1NTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5OYW1lID0gXCJkeW5hbWljVGFza1VSTFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLkxhYmVsS2V5ID0gXCJUYXNrVVJMXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tVUkw7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTWF4TGVuZ3RoID0gMjA4MztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5OYW1lID0gXCJkeW5hbWljVGFza1R5cGVcIlxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5MYWJlbEtleSA9IFwiVGFza1R5cGVcIlxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5EYXRhU291cmNlID0gdGhpcy50YXNrVHlwZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrQ29ycmxUeXBlSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZSA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuTmFtZSA9IFwiZHluYW1pY0NhbkNvbXBsZXRlXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLkxhYmVsS2V5ID0gXCJDYW5Db21wbGV0ZUZyb21UTUVcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLmNhbkNvbXBsZXRlRnJvbVRNRTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0R5bmFtaWNDb250cm9scyA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQ29uZGl0aW9uOlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU1dGVmFyaWFibGVMaXN0ID0gbGlzdC53ZlZhcmlhYmxlcztcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdCA9IGxpc3Qud2ZWYXJpYWJsZXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZUxpc3QgPSBsaXN0LnJoc1R5cGVzO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxpc3QgPSBsaXN0LmNvbmRpdGlvbnM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbkxIU0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubGhzVmFyaWFibGVJRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbnNEcm9wRG93blwiXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIkNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvbkxpc3RcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwub3BlcmF0b3JUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTVHlwZURyb3BEb3duXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25SSFNUeXBlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5yaHNUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlNb2RlbC5SSFNUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCkgPT0gUmlnaHRoYW5kc2lkZXR5cGUuVmFyaWFibGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTRHJvcERvd25cIlxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnJoc1ZhcmlhYmxlSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuTmFtZSA9IFwiY29uZGl0aW9uUkhTVmFsdWVcIjtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5QbGFjZWhvbGRlciA9IFwiVmFsdWVcIjtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuVmFsdWUgPSB0aGlzLmFjdGl2aXR5TW9kZWwucmhzVmFsdWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5NYXhMZW5ndGggPSA1MTI7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zaG93Q29uZGl0aW9uQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLnN5c05hbWUuTmFtZSA9IFwic3lzTmFtZVwiO1xyXG4gICAgICAgIHRoaXMuc3lzTmFtZS5MYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICAgIHRoaXMuc3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5zeXNOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3lzTmFtZS5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC5zeXNOYW1lO1xyXG4gICAgICAgIHRoaXMuc3lzTmFtZS5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2aXR5VHlwZUlEICE9IEFjdGl2aXR5VHlwZS5TdGFydCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93QWN0aXZpdHlUeXBlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLk5hbWUgPSBcImFjdGl2aXR5VHlwZVwiXHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZS5MYWJlbEtleSA9IFwiQWN0aXZpdHlUeXBlXCJcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLkRhdGFTb3VyY2UgPSB0aGlzLkFjdGl2aXR5VHlwZUxpc3RcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZS5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2aXR5VHlwZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5VHlwZUlEO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2aXR5VHlwZUlEKSB7XHJcbiAgICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5BcHByb3ZhbDpcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFjdGlvbjpcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlBlcmNlbnRhZ2VUYXNrOlxyXG4gICAgICAgICAgICB0aGlzLnRhc2tUeXBlTGlzdCA9IGxpc3QudGFza3M7XHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50VHlwZXM7XHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnREYXRhTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50RGF0YTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0YXNrTmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgICAgICAgIHRhc2tOYW1lLkVuZ2xpc2ggPSB0aGlzLmFjdGl2aXR5TW9kZWwudGFza05hbWUuZW5nbGlzaDtcclxuICAgICAgICAgICAgdGFza05hbWUuQXJhYmljID0gdGhpcy5hY3Rpdml0eU1vZGVsLnRhc2tOYW1lLmFyYWJpYztcclxuXHJcbiAgICAgICAgICAgIGxldCB0YXNrRGVzY3JpcHRpb24gPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgICAgICB0YXNrRGVzY3JpcHRpb24uRW5nbGlzaCA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrRGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgICAgdGFza0Rlc2NyaXB0aW9uLkFyYWJpYyA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrRGVzY3JpcHRpb24uYXJhYmljO1xyXG4gICAgICAgICAgICAvL0luaXRpYWxpemUgcmVxdWlyZWQgY29udHJvbHMgZm9yIGFwcHJvdmFsXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcyA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLk5hbWUgPSBcInBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuTGFiZWxLZXkgPSBcIlBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuRGF0YVNvdXJjZSA9IHRoaXMucGFydGljaXBhbnRUeXBlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwucGFydGljaXBhbnRUeXBlSXRlbUlEc1N0cmluZ0xpc3Q7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpdml0eU1vZGVsLnBhcnRpY2lwYW50VHlwZUl0ZW1JRHNTdHJpbmdMaXN0LmluY2x1ZGVzKFBhcnRpY2lwYW50VHlwZS5QZXJtaXNzaW9uU2V0KSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0Lk5hbWUgPSBcInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiXHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuTGFiZWxLZXkgPSBcIlBlcm1pc3Npb25TZXRcIlxyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkRhdGFTb3VyY2UgPSB0aGlzLnBhcnRpY2lwYW50RGF0YUxpc3RcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5TaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5wYXJ0aWNpcGFudFBlcm1zZXRzSURzU3RyaW5nO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50UGVybXNzaW9uU2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuTmFtZSA9IFwiZHluYW1pY1Rhc2tOYW1lXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJUYXNrTmFtZUluQXJhYmljXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiVGFza05hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuVmFsdWUgPSB0YXNrTmFtZTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza05hbWUuTWF4TGVuZ3RoID0gMjU1O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uTmFtZSA9IFwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uQXJhYmljTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluQXJhYmljXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrRGVzY3JpcHRpb24uVmFsdWUgPSB0YXNrRGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5NYXhMZW5ndGggPSAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTmFtZSA9IFwiZHluYW1pY1Rhc2tVUkxcIjtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5MYWJlbEtleSA9IFwiVGFza1VSTFwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1VSTC5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC50YXNrVVJMO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLk1heExlbmd0aCA9IDIwODM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuTmFtZSA9IFwiZHluYW1pY1Rhc2tUeXBlXCJcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuTGFiZWxLZXkgPSBcIlRhc2tUeXBlXCJcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuRGF0YVNvdXJjZSA9IHRoaXMudGFza1R5cGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwudGFza0NvcnJsVHlwZUlEPy50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLk5hbWUgPSBcImR5bmFtaWNDYW5Db21wbGV0ZVwiO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5MYWJlbEtleSA9IFwiQ2FuQ29tcGxldGVGcm9tVE1FXCI7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5WYWx1ZSA9IHRoaXMuYWN0aXZpdHlNb2RlbC5jYW5Db21wbGV0ZUZyb21UTUU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNob3dEeW5hbWljQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudENvbnRhaW5lciA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5TdGFydDpcclxuICAgICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkVtYWlsOlxyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuU2xlZXA6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2aXR5VHlwZUlEID09IEFjdGl2aXR5VHlwZS5FbWFpbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50VHlwZXM7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudERhdGFMaXN0ID0gbGlzdC5wYXJ0aWNpcGFudHMucGFydGljaXBhbnREYXRhO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLk5hbWUgPSBcInBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5MYWJlbEtleSA9IFwiUGFydGljaXBhbnRUeXBlc1wiXHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLkRhdGFTb3VyY2UgPSB0aGlzLnBhcnRpY2lwYW50VHlwZUxpc3RcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwucGFydGljaXBhbnRUeXBlSXRlbUlEc1N0cmluZ0xpc3RcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlNb2RlbC5wYXJ0aWNpcGFudFR5cGVJdGVtSURzU3RyaW5nTGlzdC5pbmNsdWRlcyhQYXJ0aWNpcGFudFR5cGUuUGVybWlzc2lvblNldCkpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0Lk5hbWUgPSBcInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5EYXRhU291cmNlID0gdGhpcy5wYXJ0aWNpcGFudERhdGFMaXN0XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5TaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwucGFydGljaXBhbnRQZXJtc2V0c0lEc1N0cmluZztcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50UGVybXNzaW9uU2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93UGFydGljaXBhbnRDb250YWluZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgICAgICAgbmFtZS5BcmFiaWMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubm9ybWFsT3V0Y29tZU5hbWUuYXJhYmljO1xyXG4gICAgICAgICAgICBuYW1lLkVuZ2xpc2ggPSB0aGlzLmFjdGl2aXR5TW9kZWwubm9ybWFsT3V0Y29tZU5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5OYW1lID0gXCJzdGF0aWNPdXRjb21lTmFtZVwiO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJPdXRjb21lTmFtZUluQXJhYmljXCI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJPdXRjb21lTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOYW1lLlZhbHVlID0gbmFtZTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5NYXhMZW5ndGggPSAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuTmFtZSA9IFwic3RhdGljT3V0Y29tZVN5c05hbWVcIjtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLm91dGNvbWVTeXNOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5Lk5hbWUgPSBcInN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHlcIlxyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuTGFiZWxLZXkgPSBcIk5leHRBY3Rpdml0eVwiXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5EYXRhU291cmNlID0gdGhpcy5uZXh0QWN0aXZpdHlMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eS5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLm5leHRBY3Rpdml0eUlEX0dVSUQ/LnRvTG93ZXJDYXNlKClcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQuTmFtZSA9IFwic3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnRcIjtcclxuICAgICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5MYWJlbEtleSA9IFwiQ2FuQWRkQ29tbWVudFwiO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50LlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLmNhbkFkZENvbW1lbnQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNob3dTdGF0aWNDb250cm9scyA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQ29uZGl0aW9uOlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU1dGVmFyaWFibGVMaXN0ID0gbGlzdC53ZlZhcmlhYmxlcztcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdCA9IGxpc3Qud2ZWYXJpYWJsZXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZUxpc3QgPSBsaXN0LnJoc1R5cGVzO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxpc3QgPSBsaXN0LmNvbmRpdGlvbnM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbkxIU0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIldvcmtmbG93VmFyaWFibGVzXCJcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwubGhzVmFyaWFibGVJRF9HVUlEPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbnNEcm9wRG93blwiXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uUGxhY2Vob2xkZXIgPSBcIkNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvbkxpc3RcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLlNlbGVjdGVkSXRlbXMgPSB0aGlzLmFjdGl2aXR5TW9kZWwub3BlcmF0b3JUeXBlSXRlbUlEX0dVSUQ/LnRvTG93ZXJDYXNlKClcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5OYW1lID0gXCJjb25kaXRpb25SSFNUeXBlRHJvcERvd25cIlxyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1R5cGVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5TZWxlY3RlZEl0ZW1zID0gdGhpcy5hY3Rpdml0eU1vZGVsLnJoc1R5cGVJdGVtSURfR1VJRD8udG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2aXR5TW9kZWwucmhzVHlwZUl0ZW1JRF9HVUlEPy50b0xvd2VyQ2FzZSgpID09IFJpZ2h0aGFuZHNpZGV0eXBlLlZhcmlhYmxlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvblJIU0Ryb3BEb3duXCJcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlBsYWNlaG9sZGVyID0gXCJXb3JrZmxvd1ZhcmlhYmxlc1wiXHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25SSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uU2VsZWN0ZWRJdGVtcyA9IHRoaXMuYWN0aXZpdHlNb2RlbC5yaHNWYXJpYWJsZUlEX0dVSUQ/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLk5hbWUgPSBcImNvbmRpdGlvblJIU1ZhbHVlXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuUGxhY2Vob2xkZXIgPSBcIlZhbHVlXCI7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLlZhbHVlID0gdGhpcy5hY3Rpdml0eU1vZGVsLnJoc1ZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuTWF4TGVuZ3RoID0gNTEyO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnNob3dDb25kaXRpb25SSFNXRlZhcmlhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Q29uZGl0aW9uQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdXRjb21lc0NvbnRhaW5lciA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pc0VkaXRGb3JtTG9hZGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9FZGl0IGZ1bmN0aW9uc1xyXG4gIGdldEVkaXRXRkFjdGl2aXR5TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnZhbHVlO1xyXG4gICAgbGV0IGVkaXRNb2RlbCA9IG5ldyBXRkFjdGl2aXR5TW9kZWwoKTtcclxuICAgIGVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5hY3Rpdml0eUlEO1xyXG4gICAgZWRpdE1vZGVsLk5hbWUuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLm5hbWUuRW5nbGlzaDtcclxuICAgIGVkaXRNb2RlbC5OYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLm5hbWUuQXJhYmljO1xyXG4gICAgZWRpdE1vZGVsLlZlcnNpb25JRF9HVUlEID0gdGhpcy52ZXJzaW9uSUQ7XHJcbiAgICBlZGl0TW9kZWwuQWN0aXZpdHlUeXBlSXRlbUlEX0dVSUQgPSB0aGlzLmFjdGl2aXR5VHlwZUlEO1xyXG4gICAgZWRpdE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5zeXNOYW1lXHJcblxyXG4gICAgLy9JZiBwYXJ0aWNpcGFudCBleGlzdHNcclxuICAgIGlmIChSZXN1bHRNb2RlbC5wYXJ0aWNpcGFudFR5cGVzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBlZGl0TW9kZWwuUGFydGljaXBhbnREVE8gPSBuZXcgUGFydGljaXBhbnRNb2RlbCgpO1xyXG4gICAgICBlZGl0TW9kZWwuUGFydGljaXBhbnREVE8gPSBuZXcgUGFydGljaXBhbnRNb2RlbCgpO1xyXG4gICAgICBlZGl0TW9kZWwuUGFydGljaXBhbnREVE8uUGFydGljaXBhbnRUeXBlSXRlbUlEc1N0cmluZyA9IFJlc3VsdE1vZGVsLnBhcnRpY2lwYW50VHlwZXMudG9TdHJpbmcoKTtcclxuICAgICAgaWYgKFJlc3VsdE1vZGVsLnBhcnRpY2lwYW50VHlwZXMuaW5jbHVkZXMoUGFydGljaXBhbnRUeXBlLlBlcm1pc3Npb25TZXQpKSB7XHJcbiAgICAgICAgZWRpdE1vZGVsLlBhcnRpY2lwYW50RFRPLlBlcm1pc3Npb25TZXRJRHNTdHJpbmcgPSBSZXN1bHRNb2RlbC5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLmFjdGl2aXR5VHlwZUlEKSB7XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5BY3Rpb246XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlBlcmNlbnRhZ2VUYXNrOlxyXG4gICAgICAgIGVkaXRNb2RlbC5UYXNrTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tOYW1lLkVuZ2xpc2g7XHJcbiAgICAgICAgZWRpdE1vZGVsLlRhc2tOYW1lLkFyYWJpYyA9IFJlc3VsdE1vZGVsLmR5bmFtaWNUYXNrTmFtZS5BcmFiaWM7XHJcbiAgICAgICAgZWRpdE1vZGVsLlRhc2tEZXNjcmlwdGlvbi5FbmdsaXNoID0gUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoO1xyXG4gICAgICAgIGVkaXRNb2RlbC5UYXNrRGVzY3JpcHRpb24uQXJhYmljID0gUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5BcmFiaWM7XHJcbiAgICAgICAgZWRpdE1vZGVsLlRhc2tVUkwgPSBSZXN1bHRNb2RlbC5keW5hbWljVGFza1VSTDtcclxuICAgICAgICBlZGl0TW9kZWwuVGFza0NvcnJsVHlwZUlEID0gUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tUeXBlICE9IG51bGwgPyBOdW1iZXIoUmVzdWx0TW9kZWwuZHluYW1pY1Rhc2tUeXBlKSA6IG51bGw7XHJcbiAgICAgICAgZWRpdE1vZGVsLkNhbkNvbXBsZXRlRnJvbVRNRSA9IFJlc3VsdE1vZGVsLmR5bmFtaWNDYW5Db21wbGV0ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuU3RhcnQ6XHJcbiAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkVtYWlsOlxyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5TbGVlcDpcclxuICAgICAgICBpZiAoIXRoaXMuaXNQdWJsaXNoZWQpIHtcclxuICAgICAgICAgIGVkaXRNb2RlbC5Ob3JtYWxPdXRjb21lTmFtZS5FbmdsaXNoID0gUmVzdWx0TW9kZWwuc3RhdGljT3V0Y29tZU5hbWUuRW5nbGlzaDtcclxuICAgICAgICAgIGVkaXRNb2RlbC5Ob3JtYWxPdXRjb21lTmFtZS5BcmFiaWMgPSBSZXN1bHRNb2RlbC5zdGF0aWNPdXRjb21lTmFtZS5BcmFiaWM7XHJcbiAgICAgICAgICBlZGl0TW9kZWwuT3V0Y29tZVN5c05hbWUgPSBSZXN1bHRNb2RlbC5zdGF0aWNPdXRjb21lU3lzTmFtZTtcclxuICAgICAgICAgIGVkaXRNb2RlbC5OZXh0QWN0aXZpdHlJRF9HVUlEID0gUmVzdWx0TW9kZWwuc3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eTtcclxuICAgICAgICAgIGVkaXRNb2RlbC5DYW5BZGRDb21tZW50ID0gUmVzdWx0TW9kZWwuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEFjdGl2aXR5VHlwZS5Db25kaXRpb246XHJcbiAgICAgICAgZWRpdE1vZGVsLkxIU1ZhcmlhYmxlSURfR1VJRCA9IFJlc3VsdE1vZGVsLmNvbmRpdGlvbkxIU0Ryb3BEb3duO1xyXG4gICAgICAgIGVkaXRNb2RlbC5SSFNWYXJpYWJsZUlEX0dVSUQgPSBSZXN1bHRNb2RlbC5jb25kaXRpb25SSFNEcm9wRG93bjtcclxuICAgICAgICBlZGl0TW9kZWwuUkhTVHlwZUl0ZW1JRF9HVUlEID0gUmVzdWx0TW9kZWwuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duXHJcbiAgICAgICAgZWRpdE1vZGVsLk9wZXJhdG9yVHlwZUl0ZW1JRF9HVUlEID0gUmVzdWx0TW9kZWwuY29uZGl0aW9uc0Ryb3BEb3duXHJcbiAgICAgICAgZWRpdE1vZGVsLlJIU1ZhbHVlID0gUmVzdWx0TW9kZWwuY29uZGl0aW9uUkhTVmFsdWUgIT0gdW5kZWZpbmVkID8gUmVzdWx0TW9kZWwuY29uZGl0aW9uUkhTVmFsdWUgOiBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgLy9TZXQgT3V0Y29tZXMgKGR5bmFtaWMsY29uZGl0aW9uIHR5cGVzKVxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLm91dGNvbWVzQ291bnQ7IGorKykge1xyXG4gICAgICBsZXQgb3V0Y29tZUlEID0gUmVzdWx0TW9kZWxbXCJvdXRjb21lSURcIiArIGpdO1xyXG4gICAgICBpZiAob3V0Y29tZUlEID09IHVuZGVmaW5lZClcclxuICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lTmFtZSA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZU5hbWVcIiArIGpdO1xyXG5cclxuICAgICAgbGV0IG91dGNvbWVTeXNOYW1lOiBzdHJpbmc7XHJcbiAgICAgIGxldCBvdXRDb21lQ2FuRWRpdFN5c05hbWUgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVDYW5FZGl0U3lzTmFtZVwiICsgal07XHJcbiAgICAgIGlmIChvdXRDb21lQ2FuRWRpdFN5c05hbWUpXHJcbiAgICAgICAgb3V0Y29tZVN5c05hbWUgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVEZWNpc2lvblN5c05hbWVcIiArIGpdO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb3V0Y29tZVN5c05hbWUgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVIaWRkZW5lU3lzTmFtZVwiICsgal07XHJcblxyXG4gICAgICBsZXQgb3V0Y29tZUFjdGl2aXR5ID0gUmVzdWx0TW9kZWxbXCJvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXNcIiArIGpdO1xyXG4gICAgICBsZXQgb3V0Y29tZUNhbkFkZENvbW1lbnQgPSBSZXN1bHRNb2RlbFtcIm91dGNvbWVDYW5BZGRDb21tZW50XCIgKyBqXTtcclxuICAgICAgbGV0IGFjdGl2aXR5T3V0Y29tZTogV0ZBY3Rpdml0eU91dGNvbWVNb2RlbCA9IG5ldyBXRkFjdGl2aXR5T3V0Y29tZU1vZGVsKCk7XHJcbiAgICAgIGFjdGl2aXR5T3V0Y29tZS5JRF9HVUlEID0gb3V0Y29tZUlEO1xyXG4gICAgICBhY3Rpdml0eU91dGNvbWUuTmFtZUVOID0gb3V0Y29tZU5hbWUuRW5nbGlzaDtcclxuICAgICAgYWN0aXZpdHlPdXRjb21lLk5hbWVBUiA9IG91dGNvbWVOYW1lLkFyYWJpYztcclxuICAgICAgYWN0aXZpdHlPdXRjb21lLk91dGNvbWVTeXNOYW1lID0gb3V0Y29tZVN5c05hbWU7XHJcbiAgICAgIGFjdGl2aXR5T3V0Y29tZS5OZXh0QWN0aXZpdHlJRF9HVUlEID0gb3V0Y29tZUFjdGl2aXR5XHJcbiAgICAgIGFjdGl2aXR5T3V0Y29tZS5DYW5BZGRDb21tZW50ID0gb3V0Y29tZUNhbkFkZENvbW1lbnQ7XHJcbiAgICAgIGVkaXRNb2RlbC5PdXRjb21lcy5wdXNoKGFjdGl2aXR5T3V0Y29tZSk7XHJcbiAgICB9XHJcbiAgICBwYXJhbUFycmF5LnB1c2goZWRpdE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuICBnZXRFZGl0V0ZBY3Rpdml0eUZ1bmN0aW9uID0gKGVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBpZiAodGhpcy5pc1B1Ymxpc2hlZClcclxuICAgICAgcmV0dXJuIHRoaXMud29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UuZWRpdFB1Ymxpc2hlZEFjdGl2aXR5KGVkaXRNb2RlbCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0aGlzLndvcmtmbG93QWN0aXZpdHlTZXJ2aWNlLmVkaXRBY3Rpdml0eShlZGl0TW9kZWwpO1xyXG4gIH1cclxuICBvbkVkaXRTdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgdGhpcy5jYW5jZWxFZGl0KCk7XHJcbiAgfVxyXG5cclxuICAvL091dGNvbWUgZnVuY3Rpb25zXHJcbiAgZ2V0QWN0aXZpdHlPdXRjb21lc09wdGlvbnMob3V0Q29tZXM6IGFueVtdLCBpc1B1Ymxpc2hlZDogYm9vbGVhbikge1xyXG4gICAgbGV0IG91dGNvbWVzT3B0aW9uczogYW55W10gPSBbXTtcclxuICAgIGxldCBvdXRjb21lc0NvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0Q29tZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGN1cnJlbnRPdXRjb21lID0gb3V0Q29tZXNbaV07XHJcbiAgICAgIGxldCBvYmplY3RPdXRjb21lT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lSUQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgb3V0Y29tZUlELk5hbWUgPSBcIm91dGNvbWVJRFwiICsgaTtcclxuICAgICAgb3V0Y29tZUlELkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIG91dGNvbWVJRC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIG91dGNvbWVJRC5WYWx1ZSA9IGN1cnJlbnRPdXRjb21lLmlEX0dVSUQ7XHJcblxyXG4gICAgICBsZXQgbmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIG5hbWUuRW5nbGlzaCA9IGN1cnJlbnRPdXRjb21lLm5hbWVFTjtcclxuICAgICAgbmFtZS5BcmFiaWMgPSBjdXJyZW50T3V0Y29tZS5uYW1lQVI7XHJcblxyXG4gICAgICBsZXQgb3V0Y29tZU5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgb3V0Y29tZU5hbWUuTmFtZSA9IFwib3V0Y29tZU5hbWVcIiArIGk7XHJcbiAgICAgIG91dGNvbWVOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgb3V0Y29tZU5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgIG91dGNvbWVOYW1lLlZhbHVlID0gbmFtZTtcclxuICAgICAgb3V0Y29tZU5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIG91dGNvbWVOYW1lLk1heExlbmd0aCA9IDI1NTtcclxuXHJcbiAgICAgIGxldCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5OYW1lID0gXCJvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXNcIiArIGk7XHJcbiAgICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5MYWJlbEtleSA9IFwiQWN0aXZpdHlcIlxyXG4gICAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuRGF0YVNvdXJjZSA9IHRoaXMubmV4dEFjdGl2aXR5TGlzdFxyXG4gICAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLlNlbGVjdGVkSXRlbXMgPSBjdXJyZW50T3V0Y29tZS5uZXh0QWN0aXZpdHlJRF9HVUlEPy50b0xvd2VyQ2FzZSgpXHJcblxyXG4gICAgICBsZXQgb3V0Y29tZUNhbkVkaXQ6IGJvb2xlYW47XHJcbiAgICAgIG91dGNvbWVDYW5FZGl0ID0gY3VycmVudE91dGNvbWUuY2FuRWRpdDtcclxuICAgICAgbGV0IG91dGNvbWVIaWRkZW5lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuTmFtZSA9IFwib3V0Y29tZUhpZGRlbmVTeXNOYW1lXCIgKyBpO1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVmFsdWUgPSBjdXJyZW50T3V0Y29tZS5vdXRjb21lU3lzTmFtZTtcclxuICAgICAgbGV0IG91dGNvbWVDYW5FZGl0U3lzTmFtZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgb3V0Y29tZUNhbkVkaXRTeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVDYW5FZGl0U3lzTmFtZVwiICsgaTtcclxuICAgICAgb3V0Y29tZUNhbkVkaXRTeXNOYW1lLlZhbHVlID0gY3VycmVudE91dGNvbWUuY2FuRWRpdFN5c05hbWU7XHJcblxyXG4gICAgICBpZiAoIWlzUHVibGlzaGVkKSB7XHJcbiAgICAgICAgbGV0IG91dGNvbWVEZWNpc2lvblN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVEZWNpc2lvblN5c05hbWVcIiArIGk7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5WYWx1ZSA9IGN1cnJlbnRPdXRjb21lLm91dGNvbWVTeXNOYW1lO1xyXG4gICAgICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuSXNEaXNhYmxlZCA9ICFjdXJyZW50T3V0Y29tZS5jYW5FZGl0U3lzTmFtZTtcclxuICAgICAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgICBsZXQgb3V0Y29tZUNhbkFkZENvbW1lbnQgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTmFtZSA9IFwib3V0Y29tZUNhbkFkZENvbW1lbnRcIiArIGk7XHJcbiAgICAgICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuVmFsdWUgPSBjdXJyZW50T3V0Y29tZS5jYW5BZGRDb21tZW50O1xyXG4gICAgICAgIG91dGNvbWVDYW5BZGRDb21tZW50LkxhYmVsS2V5ID0gXCJDYW5BZGRDb21tZW50XCI7XHJcblxyXG4gICAgICAgIG9iamVjdE91dGNvbWVPcHRpb25zLnB1c2gob3V0Y29tZUlELCBvdXRjb21lTmFtZSwgb3V0Y29tZURlY2lzaW9uU3lzTmFtZSwgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLCBvdXRjb21lQ2FuQWRkQ29tbWVudCwgb3V0Y29tZUNhbkVkaXQsIG91dGNvbWVIaWRkZW5lU3lzTmFtZSwgb3V0Y29tZUNhbkVkaXRTeXNOYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgb2JqZWN0T3V0Y29tZU9wdGlvbnMucHVzaChvdXRjb21lSUQsIG91dGNvbWVOYW1lLCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMsIG91dGNvbWVDYW5FZGl0LCBvdXRjb21lSGlkZGVuZVN5c05hbWUsIG91dGNvbWVDYW5FZGl0U3lzTmFtZSk7XHJcblxyXG4gICAgICBvdXRjb21lc09wdGlvbnMucHVzaChvYmplY3RPdXRjb21lT3B0aW9ucyk7XHJcbiAgICAgIG91dGNvbWVzQ291bnQgKz0gMTtcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gW291dGNvbWVzT3B0aW9ucywgb3V0Y29tZXNDb3VudF07XHJcbiAgfVxyXG4gIGFkZFdGQWN0aXZpdHlPdXRjb21lKCkge1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5vdXRjb21lc0NvdW50O1xyXG5cclxuICAgIGxldCBvYmplY3RPdXRjb21lT3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICBsZXQgb3V0Y29tZUlEID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBvdXRjb21lSUQuTmFtZSA9IFwib3V0Y29tZUlEXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVJRC5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgb3V0Y29tZUlELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuXHJcbiAgICBsZXQgb3V0Y29tZU5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIG91dGNvbWVOYW1lLk5hbWUgPSBcIm91dGNvbWVOYW1lXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIG91dGNvbWVOYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgb3V0Y29tZU5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVEZWNpc2lvblN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuTmFtZSA9IFwib3V0Y29tZURlY2lzaW9uU3lzTmFtZVwiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lRGVjaXNpb25TeXNOYW1lLkxhYmVsS2V5ID0gXCJEZWNpc2lvblN5c05hbWVcIjtcclxuICAgIG91dGNvbWVEZWNpc2lvblN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgb3V0Y29tZURlY2lzaW9uU3lzTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZU5leHRBY3Rpdml0eVR5cGVzLk5hbWUgPSBcIm91dGNvbWVOZXh0QWN0aXZpdHlUeXBlc1wiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuTGFiZWxLZXkgPSBcIkFjdGl2aXR5XCJcclxuICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5EYXRhU291cmNlID0gdGhpcy5uZXh0QWN0aXZpdHlMaXN0XHJcbiAgICBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIG91dGNvbWVOZXh0QWN0aXZpdHlUeXBlcy5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVDYW5BZGRDb21tZW50ID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTmFtZSA9IFwib3V0Y29tZUNhbkFkZENvbW1lbnRcIiArIGluZGV4O1xyXG4gICAgb3V0Y29tZUNhbkFkZENvbW1lbnQuTGFiZWxLZXkgPSBcIkNhbkFkZENvbW1lbnRcIjtcclxuXHJcbiAgICBsZXQgb3V0Y29tZUNhbkVkaXQ6IGJvb2xlYW47XHJcbiAgICBvdXRjb21lQ2FuRWRpdCA9IHRydWU7XHJcblxyXG4gICAgbGV0IG91dGNvbWVIaWRkZW5lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgb3V0Y29tZUhpZGRlbmVTeXNOYW1lLk5hbWUgPSBcIm91dGNvbWVIaWRkZW5lU3lzTmFtZVwiICsgaW5kZXg7XHJcbiAgICBvdXRjb21lSGlkZGVuZVN5c05hbWUuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG5cclxuICAgIGxldCBvdXRjb21lQ2FuRWRpdFN5c05hbWUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICBvdXRjb21lQ2FuRWRpdFN5c05hbWUuTmFtZSA9IFwib3V0Y29tZUNhbkVkaXRTeXNOYW1lXCIgKyBpbmRleDtcclxuICAgIG91dGNvbWVDYW5FZGl0U3lzTmFtZS5WYWx1ZSA9IHRydWU7XHJcblxyXG4gICAgb2JqZWN0T3V0Y29tZU9wdGlvbnMucHVzaChvdXRjb21lSUQsIG91dGNvbWVOYW1lLCBvdXRjb21lRGVjaXNpb25TeXNOYW1lLCBvdXRjb21lTmV4dEFjdGl2aXR5VHlwZXMsIG91dGNvbWVDYW5BZGRDb21tZW50LFxyXG4gICAgICBvdXRjb21lQ2FuRWRpdCwgb3V0Y29tZUhpZGRlbmVTeXNOYW1lLCBvdXRjb21lQ2FuRWRpdFN5c05hbWUpO1xyXG5cclxuICAgIHRoaXMub3V0Y29tZXNPcHRpb25zLnB1c2gob2JqZWN0T3V0Y29tZU9wdGlvbnMpO1xyXG4gICAgdGhpcy5vdXRjb21lc0NvdW50ICs9IDE7XHJcblxyXG4gIH1cclxuICBkZWxldGVPdXRjb21lKGRlbGV0ZWRPdXRjb21lOiBhbnkpIHtcclxuICAgIGxldCBkZWxldGVkT3V0Y29tZUluZGV4OiBudW1iZXIgPSB0aGlzLm91dGNvbWVzT3B0aW9ucy5pbmRleE9mKGRlbGV0ZWRPdXRjb21lKTtcclxuICAgIGlmIChkZWxldGVkT3V0Y29tZUluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLm91dGNvbWVzT3B0aW9ucy5zcGxpY2UoZGVsZXRlZE91dGNvbWVJbmRleCwgMSk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRlZE91dGNvbWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKGRlbGV0ZWRPdXRjb21lW2ldLk5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL09uIGNoYW5nZXMgZXZlbnRzXHJcbiAgYWN0aXZpdHlUeXBlT25DaGFuZ2UoYWN0aXZpdHlUeXBlKSB7XHJcbiAgICBhY3Rpdml0eVR5cGUgPSBhY3Rpdml0eVR5cGU/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAvL1Jlc2V0IGNvbnRyb2xzLCBvdXRjb21lcyBhbmQgZmxhZ3NcclxuICAgIHRoaXMucmVzZXRBbGxBY3Rpdml0eVR5cGVDb250cm9scygpO1xyXG4gICAgdGhpcy5vdXRjb21lc09wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMub3V0Y29tZXNDb3VudCA9IDA7XHJcbiAgICB0aGlzLnNob3dQYXJ0aWNpcGFudENvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93RHluYW1pY0NvbnRyb2xzID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdGF0aWNDb250cm9scyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q29uZGl0aW9uQ29udHJvbHMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5hY3Rpdml0eVR5cGVJRCA9IGFjdGl2aXR5VHlwZTtcclxuICAgIHRoaXMud29ya2Zsb3dBY3Rpdml0eVNlcnZpY2UuZ2V0QWN0aXZpdHlPdXRjb21lcyh0aGlzLnZlcnNpb25JRCwgYWN0aXZpdHlUeXBlKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB2YXIgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgdmFyIG1vZGVsID0gcmVzdWx0T2JqLm1vZGVsO1xyXG4gICAgICB2YXIgbGlzdCA9IHJlc3VsdE9iai5saXN0O1xyXG4gICAgICB0aGlzLm5leHRBY3Rpdml0eUxpc3QgPSBsaXN0LmFjdGl2aXRpZXM7XHJcblxyXG4gICAgICBzd2l0Y2ggKGFjdGl2aXR5VHlwZSkge1xyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFwcHJvdmFsOlxyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkFjdGlvbjpcclxuICAgICAgICBjYXNlIEFjdGl2aXR5VHlwZS5QZXJjZW50YWdlVGFzazpcclxuICAgICAgICAgIHRoaXMudGFza1R5cGVMaXN0ID0gbGlzdC50YXNrcztcclxuICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlTGlzdCA9IGxpc3QucGFydGljaXBhbnRzLnBhcnRpY2lwYW50VHlwZXM7XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50RGF0YUxpc3QgPSBsaXN0LnBhcnRpY2lwYW50cy5wYXJ0aWNpcGFudERhdGE7XHJcblxyXG4gICAgICAgICAgLy9Jbml0aWFsaXplIHJlcXVpcmVkIGNvbnRyb2xzIGZvciBhcHByb3ZhbFxyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLk5hbWUgPSBcInBhcnRpY2lwYW50VHlwZXNcIlxyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLkxhYmVsS2V5ID0gXCJQYXJ0aWNpcGFudFR5cGVzXCJcclxuICAgICAgICAgIHRoaXMucGFydGljaXBhbnRUeXBlcy5EYXRhU291cmNlID0gdGhpcy5wYXJ0aWNpcGFudFR5cGVMaXN0XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBhcnRpY2lwYW50VHlwZXMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFR5cGVzLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5OYW1lID0gXCJkeW5hbWljVGFza05hbWVcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tOYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJUYXNrTmFtZUluQXJhYmljXCI7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrTmFtZS5NYXhMZW5ndGggPSAyNTU7XHJcblxyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uID0gbmV3IE11bHRpTGluZ3VhbFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uLk5hbWUgPSBcImR5bmFtaWNUYXNrRGVzY3JpcHRpb25cIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5BcmFiaWNMYWJlbEtleSA9IFwiVGFza0Rlc2NyaXB0aW9uSW5BcmFiaWNcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tEZXNjcmlwdGlvbi5FbmdsaXNoTGFiZWxLZXkgPSBcIlRhc2tEZXNjcmlwdGlvbkluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza0Rlc2NyaXB0aW9uLk1heExlbmd0aCA9IDI1NTtcclxuXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLk5hbWUgPSBcImR5bmFtaWNUYXNrVVJMXCI7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLkxhYmVsS2V5ID0gXCJUYXNrVVJMXCI7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tVUkwuTWF4TGVuZ3RoID0gMjA4MztcclxuXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1Rhc2tUeXBlLk5hbWUgPSBcImR5bmFtaWNUYXNrVHlwZVwiXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5MYWJlbEtleSA9IFwiVGFza1R5cGVcIlxyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuRGF0YVNvdXJjZSA9IHRoaXMudGFza1R5cGVMaXN0XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNUYXNrVHlwZS5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljVGFza1R5cGUuSXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNDYW5Db21wbGV0ZS5OYW1lID0gXCJkeW5hbWljQ2FuQ29tcGxldGVcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLkxhYmVsS2V5ID0gXCJDYW5Db21wbGV0ZUZyb21UTUVcIjtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0NhbkNvbXBsZXRlLlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljQ2FuQ29tcGxldGUuVmFsdWUgPSBtb2RlbC5jYW5Db21wbGV0ZUZyb21UTUU7XHJcblxyXG4gICAgICAgICAgbGV0IG91dGNvbWVzUmVzdWx0OiBhbnkgPSB0aGlzLmdldEFjdGl2aXR5T3V0Y29tZXNPcHRpb25zKG1vZGVsLm91dGNvbWVzLCBmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLm91dGNvbWVzT3B0aW9ucyA9IG91dGNvbWVzUmVzdWx0WzBdO1xyXG4gICAgICAgICAgdGhpcy5vdXRjb21lc0NvdW50ID0gb3V0Y29tZXNSZXN1bHRbMV07XHJcblxyXG4gICAgICAgICAgdGhpcy5zaG93RHluYW1pY0NvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50Q29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd091dGNvbWVzQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLkVtYWlsOlxyXG4gICAgICAgIGNhc2UgQWN0aXZpdHlUeXBlLlNsZWVwOlxyXG4gICAgICAgICAgbGV0IG5hbWUgPSBuZXcgRW5nbGlzaEFyYWJpY0RUTygpO1xyXG4gICAgICAgICAgbmFtZS5BcmFiaWMgPSBtb2RlbC5ub3JtYWxPdXRjb21lTmFtZS5hcmFiaWM7XHJcbiAgICAgICAgICBuYW1lLkVuZ2xpc2ggPSBtb2RlbC5ub3JtYWxPdXRjb21lTmFtZS5lbmdsaXNoO1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuTmFtZSA9IFwic3RhdGljT3V0Y29tZU5hbWVcIjtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk91dGNvbWVOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJPdXRjb21lTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZU5hbWUuVmFsdWUgPSBuYW1lO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmFtZS5NYXhMZW5ndGggPSAyNTU7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5OYW1lID0gXCJzdGF0aWNPdXRjb21lU3lzTmFtZVwiO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lU3lzTmFtZS5MYWJlbEtleSA9IFwiRGVjaXNpb25TeXNOYW1lXCI7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZVN5c05hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVTeXNOYW1lLk1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuTmFtZSA9IFwic3RhdGljT3V0Y29tZU5leHRBY3Rpdml0eVwiXHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuTGFiZWxLZXkgPSBcIk5leHRBY3Rpdml0eVwiXHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuRGF0YVNvdXJjZSA9IHRoaXMubmV4dEFjdGl2aXR5TGlzdFxyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVOZXh0QWN0aXZpdHkuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5LklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuc3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnQgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50Lk5hbWUgPSBcInN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50XCI7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50LkxhYmVsS2V5ID0gXCJDYW5BZGRDb21tZW50XCI7XHJcbiAgICAgICAgICB0aGlzLnN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgICAgICAgdGhpcy5zdGF0aWNPdXRjb21lQ2FuQWRkQ29tbWVudC5WYWx1ZSA9IG1vZGVsLmNhbkFkZENvbW1lbnQ7XHJcblxyXG4gICAgICAgICAgdGhpcy5zaG93U3RhdGljQ29udHJvbHMgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBBY3Rpdml0eVR5cGUuQ29uZGl0aW9uOlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdCA9IGxpc3Qud2ZWYXJpYWJsZXM7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0ID0gbGlzdC53ZlZhcmlhYmxlcztcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZUxpc3QgPSBsaXN0LnJoc1R5cGVzO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MaXN0ID0gbGlzdC5jb25kaXRpb25zO1xyXG5cclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLk5hbWUgPSBcImNvbmRpdGlvbkxIU0Ryb3BEb3duXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uTEhTRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5EYXRhU291cmNlID0gdGhpcy5jb25kaXRpb25MSFNXRlZhcmlhYmxlTGlzdFxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5TaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25MSFNEcm9wRG93bi5BbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbkxIU0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uc0Ryb3BEb3duXCJcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLlBsYWNlaG9sZGVyID0gXCJDb25kaXRpb25cIlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uTGlzdFxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25zRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uc0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIGxldCBzZWxlY3RlZFJIU1R5cGUgPSB0aGlzLmNvbmRpdGlvblJIU1R5cGVMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXk/LnRvTG93ZXJDYXNlKCkgPT0gUmlnaHRoYW5kc2lkZXR5cGUuVmFyaWFibGU7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdO1xyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5OYW1lID0gXCJjb25kaXRpb25SSFNUeXBlRHJvcERvd25cIlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNUeXBlRHJvcERvd24uRGF0YVNvdXJjZSA9IHRoaXMuY29uZGl0aW9uUkhTVHlwZUxpc3RcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU1R5cGVEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTVHlwZURyb3BEb3duLlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFJIU1R5cGU7XHJcblxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93biA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTRHJvcERvd25cIlxyXG4gICAgICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5IaWRlTGFiZWwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlBsYWNlaG9sZGVyID0gXCJXb3JrZmxvd1ZhcmlhYmxlc1wiXHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIGxldCBjb25kaXRpb25PdXRjb21lc1Jlc3VsdDogYW55ID0gdGhpcy5nZXRBY3Rpdml0eU91dGNvbWVzT3B0aW9ucyhtb2RlbC5vdXRjb21lcywgZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5vdXRjb21lc09wdGlvbnMgPSBjb25kaXRpb25PdXRjb21lc1Jlc3VsdFswXTtcclxuICAgICAgICAgIHRoaXMub3V0Y29tZXNDb3VudCA9IGNvbmRpdGlvbk91dGNvbWVzUmVzdWx0WzFdO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvbkNvbnRyb2xzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93T3V0Y29tZXNDb250YWluZXIgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jYW5BZGRPdXRjb21lID0gdGhpcy5zaG93T3V0Y29tZXNDb250YWluZXIgPyBtb2RlbC5jYW5BZGRPdXRjb21lIDogZmFsc2U7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBjb25kaXRpb25SSFNUeXBlT25DaGFuZ2UodHlwZSkge1xyXG4gICAgdHlwZSA9IHR5cGU/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAodHlwZSA9PSBSaWdodGhhbmRzaWRldHlwZS5WYXJpYWJsZSkge1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiY29uZGl0aW9uUkhTVmFsdWVcIilcclxuXHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24gPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uTmFtZSA9IFwiY29uZGl0aW9uUkhTRHJvcERvd25cIlxyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5QbGFjZWhvbGRlciA9IFwiV29ya2Zsb3dWYXJpYWJsZXNcIlxyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU0Ryb3BEb3duLkRhdGFTb3VyY2UgPSB0aGlzLmNvbmRpdGlvblJIU1dGVmFyaWFibGVMaXN0XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTRHJvcERvd24uU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNEcm9wRG93bi5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd0NvbmRpdGlvblJIU1dGVmFyaWFibGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJjb25kaXRpb25SSFNEcm9wRG93blwiKVxyXG5cclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmNvbmRpdGlvblJIU1ZhbHVlLk5hbWUgPSBcImNvbmRpdGlvblJIU1ZhbHVlXCI7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5QbGFjZWhvbGRlciA9IFwiVmFsdWVcIjtcclxuICAgICAgdGhpcy5jb25kaXRpb25SSFNWYWx1ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29uZGl0aW9uUkhTVmFsdWUuTWF4TGVuZ3RoID0gNTEyO1xyXG5cclxuICAgICAgdGhpcy5zaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgcGFydGljaXBhbnRUeXBlT25DaGFuZ2UocGFydGljaXBhbnRUeXBlKSB7XHJcbiAgICBwYXJ0aWNpcGFudFR5cGUgPSBwYXJ0aWNpcGFudFR5cGU/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAocGFydGljaXBhbnRUeXBlID09IFBhcnRpY2lwYW50VHlwZS5QZXJtaXNzaW9uU2V0KSB7XHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5OYW1lID0gXCJwYXJ0aWNpcGFudFBlcm1pc3Npb25TZXRcIlxyXG4gICAgICB0aGlzLnBhcnRpY2lwYW50UGVybWlzc2lvblNldC5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkRhdGFTb3VyY2UgPSB0aGlzLnBhcnRpY2lwYW50RGF0YUxpc3RcclxuICAgICAgdGhpcy5wYXJ0aWNpcGFudFBlcm1pc3Npb25TZXQuU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucGFydGljaXBhbnRQZXJtaXNzaW9uU2V0LkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuc2hvd1BhcnRpY2lwYW50UGVybXNzaW9uU2V0ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwicGFydGljaXBhbnRQZXJtaXNzaW9uU2V0XCIpO1xyXG4gICAgICB0aGlzLnNob3dQYXJ0aWNpcGFudFBlcm1zc2lvblNldCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvL1Jlc2V0IHR5cGVcclxuICByZXNldEFsbEFjdGl2aXR5VHlwZUNvbnRyb2xzKCkge1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInBhcnRpY2lwYW50VHlwZXNcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwicGFydGljaXBhbnRQZXJtaXNzaW9uU2V0XCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza05hbWVcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza1VSTFwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJkeW5hbWljVGFza1R5cGVcIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiZHluYW1pY0NhbkNvbXBsZXRlXCIpO1xyXG5cclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lTmFtZVwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lU3lzTmFtZVwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5XCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcInN0YXRpY091dGNvbWVDYW5BZGRDb21tZW50XCIpO1xyXG5cclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJjb25kaXRpb25MSFNEcm9wRG93blwiKTtcclxuICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJjb25kaXRpb25zRHJvcERvd25cIik7XHJcbiAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwiY29uZGl0aW9uUkhTVHlwZURyb3BEb3duXCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcImNvbmRpdGlvblJIU0Ryb3BEb3duXCIpO1xyXG4gICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcImNvbmRpdGlvblJIU1ZhbHVlXCIpO1xyXG5cclxuICAgIC8vUmVtb3ZlIG91dGNvbWVzIGNvbnRyb2xzXHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS52YWx1ZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vdXRjb21lc0NvdW50OyBpKyspIHtcclxuICAgICAgbGV0IG91dGNvbWVJRCA9IFJlc3VsdE1vZGVsW1wib3V0Y29tZUlEXCIgKyBpXTtcclxuICAgICAgaWYgKG91dGNvbWVJRCA9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwib3V0Y29tZUlEXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVOYW1lXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVEZWNpc2lvblN5c05hbWVcIiArIGkpO1xyXG4gICAgICB0aGlzLmVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybS5yZW1vdmVDb250cm9sKFwib3V0Y29tZUhpZGRlbmVTeXNOYW1lXCIgKyBpKTtcclxuICAgICAgdGhpcy5lZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm0ucmVtb3ZlQ29udHJvbChcIm91dGNvbWVOZXh0QWN0aXZpdHlUeXBlc1wiICsgaSk7XHJcbiAgICAgIHRoaXMuZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtLnJlbW92ZUNvbnRyb2woXCJvdXRjb21lQ2FuQWRkQ29tbWVudFwiICsgaSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9DYW5jZWxcclxuICBjYW5jZWxFZGl0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vV29ya2Zsb3dzL3dvcmtmbG93LyddKTtcclxuICB9XHJcblxyXG4gIC8vT24gZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIiAqbmdJZj1cImlzRWRpdEZvcm1Mb2FkZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8IS0tU3RhcnQgc2hhcmVkIGNvbnRyb2xzIGNvbnRhaW5lci0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJuYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhaXNQdWJsaXNoZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzeXNOYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzaG93QWN0aXZpdHlUeXBlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCIgKE9uQ2hhbmdlKT1cImFjdGl2aXR5VHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgc2hhcmVkIGNvbnRyb2xzIGNvbnRhaW5lci0tPlxyXG4gICAgICAgIDwhLS1TdGFydCBwYXJ0aWNpcGFudCBjb250YWluZXItLT5cclxuICAgICAgICA8ZGl2IGlkPVwicGFydGljaXBhbnRDb250YWluZXJcIiAqbmdJZj1cInNob3dQYXJ0aWNpcGFudENvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cInBhcnRpY2lwYW50VHlwZXNcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCIgKE9uQ2hhbmdlKT1cInBhcnRpY2lwYW50VHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93UGFydGljaXBhbnRQZXJtc3Npb25TZXRcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cInBhcnRpY2lwYW50UGVybWlzc2lvblNldFwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgcGFydGljaXBhbnQgY29udGFpbmVyLS0+XHJcbiAgICAgICAgPCEtLVN0YXJ0IHN0YXRpYyBjb250cm9scy0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93U3RhdGljQ29udHJvbHNcIiBpZD1cInN0YXRpY0NvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJzdGF0aWNPdXRjb21lTmFtZVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInN0YXRpY091dGNvbWVTeXNOYW1lXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJzdGF0aWNPdXRjb21lTmV4dEFjdGl2aXR5XCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwic3RhdGljT3V0Y29tZUNhbkFkZENvbW1lbnRcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgPC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1FbmQgc3RhdGljIGNvbnRyb2xzLS0+XHJcbiAgICAgICAgPCEtLVN0YXJ0IGR5bmFtaWMgY29udHJvbHMtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0R5bmFtaWNDb250cm9sc1wiIGlkPVwiZHluYW1pY0NvbnRhaW5lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJkeW5hbWljVGFza05hbWVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWEgW29wdGlvbnNdPVwiZHluYW1pY1Rhc2tEZXNjcmlwdGlvblwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEFyZWE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJkeW5hbWljVGFza1VSTFwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiZHluYW1pY1Rhc2tUeXBlXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZHluYW1pY0NhbkNvbXBsZXRlXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tRW5kIGR5bmFtaWMgY29udHJvbHMtLT5cclxuICAgICAgICA8IS0tU3RhcnQgY29uZGl0aW9uIGNvbnRyb2xzLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDb25kaXRpb25Db250cm9sc1wiIGlkPVwiY29uZGl0aW9uQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlciB0YWJsZS13LWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxlZnRIYW5kU2lkZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDb25kaXRpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmlnaHRIYW5kU2lkZVR5cGVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmlnaHRIYW5kU2lkZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb25kaXRpb25MSFNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbmRpdGlvbnNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbmRpdGlvblJIU1R5cGVEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIiAoT25DaGFuZ2UpPVwiY29uZGl0aW9uUkhTVHlwZU9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJzaG93Q29uZGl0aW9uUkhTV0ZWYXJpYWJsZTsgZWxzZSBjb25kaXRpb25UeHRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJjb25kaXRpb25SSFNEcm9wRG93blwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmRpdGlvblR4dFZhbHVlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiY29uZGl0aW9uUkhTVmFsdWVcIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLUVuZCBjb25kaXRpb24gY29udHJvbHMtLT5cclxuICAgICAgICA8IS0tU3RhcnQgb3V0Y29tZXMgY29udGFpbmVyLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dPdXRjb21lc0NvbnRhaW5lclwiIGlkPVwib3V0Y29tZXNDb250YWluZXJcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgPCEtLSBiZWdpbjo6VGFibGUgLS0+XHJcbiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyIHRhYmxlLXctY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVjaXNpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiIWlzUHVibGlzaGVkXCIgY2xhc3M9XCJtaW4tdy0xNTBweFwiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIiFpc1B1Ymxpc2hlZFwiIGNsYXNzPVwibWluLXctMTUwcHhcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIhaXNQdWJsaXNoZWRcIiBjbGFzcz1cIm1pbi13LTE1MHB4XCI+PC90aD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIiAqbmdJZj1cImlzUHVibGlzaGVkO2Vsc2Ugbm90UHVibGlzaGVkT3V0Y29tZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPHRyICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG91dGNvbWVzT3B0aW9ucztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tSUQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW2hpZGRlbl09XCJ0cnVlXCIgW29wdGlvbnNdPVwib3B0aW9uWzBdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJvcHRpb25bMV1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwhLS1OZXh0QWN0aXZpdHktLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMl1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90Ym9keT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdFB1Ymxpc2hlZE91dGNvbWVzPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvdXRjb21lc09wdGlvbnM7bGV0IGk9aW5kZXg7XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tSUQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbaGlkZGVuXT1cInRydWVcIiBbb3B0aW9uc109XCJvcHRpb25bMF1cIiBbZ3JvdXBdPVwiZWRpdHdvcmtmbG93QWN0aXZpdHlGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsxXVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tU3lzTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsyXVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1oaWRkZW4gU3lzTmFtZS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtoaWRkZW5dPVwidHJ1ZVwiIFtvcHRpb25zXT1cIm9wdGlvbls2XVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS1jYW4gZWRpdCBTeXNOYW1lLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtoaWRkZW5dPVwidHJ1ZVwiIFtvcHRpb25zXT1cIm9wdGlvbls3XVwiIFtncm91cF09XCJlZGl0d29ya2Zsb3dBY3Rpdml0eUZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLU5leHRBY3Rpdml0eS0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwib3B0aW9uWzNdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLUNhbkFkZENvbW1lbnQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwib3B0aW9uWzRdXCIgW2dyb3VwXT1cImVkaXR3b3JrZmxvd0FjdGl2aXR5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLWlmIG91dGNvbWUgQ2FuIEVkaXQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJvcHRpb25bNV1cIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tbGlnaHQtZGFuZ2VyIGJ0bi1zbVwiIChjbGljayk9XCJkZWxldGVPdXRjb21lKG9wdGlvbilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIiBmYSBmYS10cmFzaCBoaWRkZW5cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJjYW5BZGRPdXRjb21lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ3LTEwMCBidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwiYWRkV0ZBY3Rpdml0eU91dGNvbWUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZE5ld1JlY29yZFwiKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLUVuZCBvdXRjb21lcyBjb250YWluZXItLT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJjYW5jZWxFZGl0KClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==