@bnsights/bbsf-controls 1.0.131 → 1.0.132
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/esm2022/lib/Shared/Enums/Enums.mjs +3 -1
- package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +1 -1
- package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +1 -1
- package/esm2022/lib/Shared/services/ControlUtility.mjs +5 -5
- package/esm2022/lib/Shared/services/render-component-service.service.mjs +3 -1
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +1 -1
- package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +3 -3
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +3 -3
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +25 -1
- package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +3 -3
- package/fesm2022/bnsights-bbsf-controls.mjs +45 -19
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/Shared/Enums/Enums.d.ts +3 -1
- package/lib/Shared/Models/ControlOptionsBase.d.ts +2 -0
- package/package.json +1 -1
- package/bnsights-bbsf-controls-1.0.131.tgz +0 -0
package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs
CHANGED
|
@@ -25,6 +25,8 @@ import { PhoneComponent } from '../../Phone/Phone.component';
|
|
|
25
25
|
import { TextAreaComponent } from '../../TextArea/TextArea.component';
|
|
26
26
|
import { TextboxComponent } from '../../TextBox/TextBox.component';
|
|
27
27
|
import { ToggleslideComponent } from '../../Toggleslide/Toggleslide.component';
|
|
28
|
+
import { CheckBoxOptions } from '../../../Shared/Models/CheckBoxOptions';
|
|
29
|
+
import { CheckBoxComponent } from '../../CheckBox/CheckBox.component';
|
|
28
30
|
import * as i0 from "@angular/core";
|
|
29
31
|
import * as i1 from "../../../Shared/services/render-component-service.service";
|
|
30
32
|
import * as i2 from "@angular/forms";
|
|
@@ -384,6 +386,17 @@ export class RepeaterFieldBuilderComponent {
|
|
|
384
386
|
location.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
|
|
385
387
|
this.renderComponentService.renderDynamicComponent(this.item, MapAutoCompleteComponent, this.group, location);
|
|
386
388
|
break;
|
|
389
|
+
case DataType.CheckBox:
|
|
390
|
+
let checkBox = new CheckBoxOptions();
|
|
391
|
+
checkBox.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
392
|
+
checkBox.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
393
|
+
checkBox.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
394
|
+
checkBox.viewType = this.repeaterField.controlOptions.viewType;
|
|
395
|
+
checkBox.outputFunction = this.repeaterField.controlOptions.outputFunction;
|
|
396
|
+
checkBox.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
|
|
397
|
+
checkBox.value = this.repeaterField.controlOptions.value;
|
|
398
|
+
this.renderComponentService.renderDynamicComponent(this.item, CheckBoxComponent, this.group, checkBox);
|
|
399
|
+
break;
|
|
387
400
|
default:
|
|
388
401
|
break;
|
|
389
402
|
}
|
|
@@ -722,6 +735,17 @@ export class RepeaterFieldBuilderComponent {
|
|
|
722
735
|
Location.value = value;
|
|
723
736
|
this.renderComponentService.renderDynamicComponent(this.item, MapAutoCompleteComponent, this.group, Location);
|
|
724
737
|
break;
|
|
738
|
+
case DataType.CheckBox:
|
|
739
|
+
let checkBox = new CheckBoxOptions();
|
|
740
|
+
checkBox.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
741
|
+
checkBox.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
742
|
+
checkBox.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
743
|
+
checkBox.viewType = this.repeaterField.controlOptions.viewType;
|
|
744
|
+
checkBox.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : "";
|
|
745
|
+
checkBox.outputFunction = this.repeaterField.controlOptions.outputFunction;
|
|
746
|
+
checkBox.value = this.repeaterField.controlOptions.value;
|
|
747
|
+
this.renderComponentService.renderDynamicComponent(this.item, CheckBoxComponent, this.group, checkBox);
|
|
748
|
+
break;
|
|
725
749
|
default:
|
|
726
750
|
break;
|
|
727
751
|
}
|
|
@@ -747,4 +771,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
747
771
|
}], itemsValue: [{
|
|
748
772
|
type: Input
|
|
749
773
|
}] } });
|
|
750
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItZmllbGQtYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9SZXBlYXRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUF5QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFF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Z0JBQWdCLGtEQ3hDN0MseUNBQ0E7OzJGRHFDYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0Usd0JBQXdCOzRIQUthLElBQUk7c0JBQWxELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNwQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL0lucHV0VHlwZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9MYW5ndWFnZVZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBQaWNrZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL1BpY2tlclR5cGUnO1xyXG5pbXBvcnQgeyBTZWxlY3RNb2RlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL1NlbGVjdE1vZGUnO1xyXG5pbXBvcnQgeyBTdGFydFZpZXcgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvU3RhcnRWaWV3JztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0RhdGVQaWNrZXJPcHRpb25zJztcclxuaW1wb3J0IHsgRHJvcGRvd25PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9Ecm9wZG93bk9wdGlvbnMnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvRmlsZVVwbG9hZE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBIdG1sRWRpdG9yT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvSHRtbEVkaXRvck9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJbWFnZVVwbG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0ltYWdlVXBsb2FkT3B0aW9ucyc7XHJcbmltcG9ydCB7IE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL01hcEF1dG9Db21wbGV0ZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBQaG9uZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1Bob25lT3B0aW9ucyc7XHJcbmltcG9ydCB7IFJhbmdlTnVtYmVyIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9SYW5nZU51bWJlcic7XHJcbmltcG9ydCB7IFJlcGVhdGVyRmllbGQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1JlcGVhdGVyRmllbGQnO1xyXG5pbXBvcnQgeyBUZXh0QXJlYU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1RleHRBcmVhT3B0aW9ucyc7XHJcbmltcG9ydCB7IFRleHRCb3hPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9UZXh0Qm94T3B0aW9ucyc7XHJcbmltcG9ydCB7IFRvZ2dsZVNsaWRlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvVG9nZ2xlU2xpZGVPcHRpb25zJztcclxuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9yZW5kZXItY29tcG9uZW50LXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL0Ryb3Bkb3duTGlzdC9Ecm9wZG93bkxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL0ZpbGVVcGxhb2QvRmlsZVVwbGFvZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIdG1sRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vSHRtbEVkaXRvci9IdG1sRWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9JbWFnZVVwbG9hZC9JbWFnZVVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9NYXBBdXRvQ29tcGxldGUvTWFwQXV0b0NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBob25lQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vUGhvbmUvUGhvbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuLi8uLi9UZXh0QXJlYS9UZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vVGV4dEJveC9UZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZXNsaWRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vVG9nZ2xlc2xpZGUvVG9nZ2xlc2xpZGUuY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGVhdGVyRmllbGRCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcIkl0ZW1cIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGl0ZW06IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBpdGVtTnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgY29udHJvbE51bWJlcjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHJlcGVhdGVyRmllbGQ6IFJlcGVhdGVyRmllbGQ7XHJcbiAgQElucHV0KCkgaXRlbXNWYWx1ZTogYW55W10gPSBbXTtcclxuICBpdGVtVmFsdWU6IGFueSA9IG51bGw7XHJcbiAgdmFsdWU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJDb21wb25lbnRTZXJ2aWNlOiBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLCBwdWJsaWMgdGV4dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pdGVtc1ZhbHVlLmxlbmd0aCA+IDApXHJcbiAgICAgICAgdGhpcy5pdGVtVmFsdWUgPSB0aGlzLml0ZW1zVmFsdWVbdGhpcy5pdGVtTnVtYmVyXVxyXG4gICAgICBpZiAodGhpcy5pdGVtVmFsdWUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLml0ZW1WYWx1ZSkge1xyXG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLml0ZW1WYWx1ZSwga2V5KSAmJiBrZXkgPT0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLk5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaXRlbVZhbHVlW2tleV07XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBlbGVtZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLml0ZW0uY2xlYXIoKVxyXG4gICAgICBzd2l0Y2ggKHRoaXMucmVwZWF0ZXJGaWVsZD8uY29udHJvbFR5cGUpIHtcclxuICAgICAgICAvLy9UZXh0Qm94XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5UZXh0OlxyXG4gICAgICAgICAgbGV0IFRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIFRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIFRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgVGV4dC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBUZXh0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIFRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgVGV4dC5sYW5ndWFnZVZhbGlkYXRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFuZ3VhZ2VWYWxpZGF0aW9uO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgVGV4dC52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBUZXh0LmlzUmVhZG9ubHkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZWFkb25seTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgVGV4dClcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgbmFtZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBuYW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG5hbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBuYW1lLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIG5hbWUubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIG5hbWUubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgbmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBuYW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkVtYWlsOlxyXG4gICAgICAgICAgbGV0IGVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBlbWFpbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgZW1haWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgIGVtYWlsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGVtYWlsLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgZW1haWwubGFuZ3VhZ2VWYWxpZGF0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhbmd1YWdlVmFsaWRhdGlvbjtcclxuICAgICAgICAgIGVtYWlsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgZW1haWwudHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgICAgICAgIGVtYWlsLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgZW1haWwpXHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBudW1iZXIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIG51bWJlci5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBudW1iZXIubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBudW1iZXIubGFuZ3VhZ2VWYWxpZGF0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhbmd1YWdlVmFsaWRhdGlvbjtcclxuICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIG51bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm51bWJlclJhbmdlKSB7XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLnRvID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm51bWJlclJhbmdlLnRvXHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UuZnJvbVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbnVtYmVyLm51bWJlclJhbmdlID0gcmFuZ2VOdW1iZXI7XHJcbiAgICAgICAgICBudW1iZXIudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgbnVtYmVyLmlzUmVhZG9ubHkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZWFkb25seTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbnVtYmVyKVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIC8vL0RhdGVUaW1lXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlOlxyXG4gICAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIGRhdGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIGRhdGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgZGF0ZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgZGF0ZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBkYXRlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgZGF0ZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIGRhdGUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQ2FsZW5kYXI7XHJcbiAgICAgICAgICBkYXRlLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZVxyXG4gICAgICAgICAgZGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGhcclxuICAgICAgICAgIGRhdGUudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgZGF0ZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgbGV0IGRhdGVUaW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBkYXRlVGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgZGF0ZVRpbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgZGF0ZVRpbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxLZXlcclxuICAgICAgICAgIGRhdGVUaW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGRhdGVUaW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgZGF0ZVRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBkYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgZGF0ZVRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICBkYXRlVGltZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGhcclxuICAgICAgICAgIGRhdGVUaW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGRhdGVUaW1lKVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuVGltZTpcclxuICAgICAgICAgIGxldCB0aW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICB0aW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICB0aW1lLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgIHRpbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgIHRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgdGltZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICB0aW1lLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLlRpbWVyO1xyXG4gICAgICAgICAgdGltZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGVcclxuICAgICAgICAgIHRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoXHJcbiAgICAgICAgICB0aW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRpbWUpXHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgLy9Ecm9wZG93blxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuU2luZ2xlU2VsZWN0OlxyXG4gICAgICAgICAgbGV0IHNpbmdsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2VcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlXHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2hcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHNpbmdsZVNlbGVjdClcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsaXBsZVNlbGVjdDpcclxuICAgICAgICAgIGxldCBtdWxpcGxlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Qudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuVmlld1R5cGU7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2VcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gZmFsc2VcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoXHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsaXBsZVNlbGVjdClcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuR29hbDpcclxuICAgICAgICAgIGxldCBnb2FsID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgZ29hbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgZ29hbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBnb2FsLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICBnb2FsLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGdvYWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBnb2FsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgZ29hbC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2VcclxuICAgICAgICAgIGdvYWwuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlXHJcbiAgICAgICAgICBnb2FsLnNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICBnb2FsLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaFxyXG4gICAgICAgICAgZ29hbC5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGdvYWwpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNoYWxsZW5nZTpcclxuICAgICAgICAgIGxldCBjaGFsbGVuZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIGNoYWxsZW5nZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgIGNoYWxsZW5nZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBjaGFsbGVuZ2UuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlXHJcbiAgICAgICAgICBjaGFsbGVuZ2UuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlXHJcbiAgICAgICAgICBjaGFsbGVuZ2Uuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlXHJcbiAgICAgICAgICBjaGFsbGVuZ2Uuc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgIGNoYWxsZW5nZS5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2hcclxuICAgICAgICAgIGNoYWxsZW5nZS5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNoYWxsZW5nZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSW5ub3ZhdGlvbkxhYjpcclxuICAgICAgICAgIGxldCBpbm5vdmF0aW9uTGFiID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2VcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlXHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaFxyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGlubm92YXRpb25MYWIpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNvdW50cnk6XHJcbiAgICAgICAgICBsZXQgY291bnRyeSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIGNvdW50cnkubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIGNvdW50cnkuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgY291bnRyeS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleVxyXG4gICAgICAgICAgY291bnRyeS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb3VudHJ5LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgY291bnRyeS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIGNvdW50cnkuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlXHJcbiAgICAgICAgICBjb3VudHJ5LnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZVxyXG4gICAgICAgICAgY291bnRyeS5zaG93Q2hlY2tib3ggPSBmYWxzZVxyXG4gICAgICAgICAgY291bnRyeS5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2hcclxuICAgICAgICAgIGNvdW50cnkuc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjb3VudHJ5KVxyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIC8vRmlsZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgIGxldCBmaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBmaWxlLmZpbGVNYXhTaXplSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIGZpbGUudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RmlsZVVwbG9hZENvbXBvbmVudD4odGhpcy5pdGVtLCBGaWxlVXBsb2FkQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBmaWxlKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICBsZXQgbXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5IaWRlTGFiZWxcclxuICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxLZXlcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Jc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBtdWx0aUZpbGUubWF4U2l6ZUZvckFsbEZpbGVzSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgIG11bHRpRmlsZS5tYXhOb09mRmlsZXMgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZUNvdW50XHJcbiAgICAgICAgICBtdWx0aUZpbGUuaXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9JbWFnZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSW1hZ2U6XHJcbiAgICAgICAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2VVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBpbWFnZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLk5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgaW1hZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkhpZGVMYWJlbFxyXG4gICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxLZXlcclxuICAgICAgICAgIGltYWdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSXNSZXF1aXJlZDtcclxuICAgICAgICAgIGltYWdlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLlZpZXdUeXBlO1xyXG4gICAgICAgICAgaW1hZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgaW1hZ2UuZmlsZU1heFNpemVJbk1CID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQlxyXG4gICAgICAgICAgaW1hZ2UudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSlcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuQ292ZXJQaG90bzpcclxuICAgICAgICAgIGxldCBjb3ZlclBob3RvID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgY292ZXJQaG90by5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLk5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgY292ZXJQaG90by5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSGlkZUxhYmVsXHJcbiAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsS2V5XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSXNSZXF1aXJlZDtcclxuICAgICAgICAgIGNvdmVyUGhvdG8udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuVmlld1R5cGU7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8uZmlsZU1heFNpemVJbk1CID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQlxyXG4gICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL01vYmlsZVxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuTW9iaWxlOlxyXG4gICAgICAgICAgbGV0IG1vYmlsZSA9IG5ldyBQaG9uZU9wdGlvbnMoKTtcclxuICAgICAgICAgIG1vYmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLk5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgbW9iaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5IaWRlTGFiZWxcclxuICAgICAgICAgIG1vYmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleVxyXG4gICAgICAgICAgbW9iaWxlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSXNSZXF1aXJlZDtcclxuICAgICAgICAgIG1vYmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIG1vYmlsZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIG1vYmlsZS5hbGxvd1NlYXJjaCA9IHRydWU7XHJcbiAgICAgICAgICBtb2JpbGUucGhvbmVWYWxpZGF0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIG1vYmlsZS5zZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLmVuYWJsZVBsYWNlaG9sZGVyID0gdHJ1ZVxyXG4gICAgICAgICAgbW9iaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFBob25lQ29tcG9uZW50Pih0aGlzLml0ZW0sIFBob25lQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtb2JpbGUpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgICBjYXNlIERhdGFUeXBlLk11bHRpbGluZVRleHQ6XHJcbiAgICAgICAgICBsZXQgbXVsdGlsaW5lVGV4dCA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkhpZGVMYWJlbFxyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleVxyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLklzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLlZpZXdUeXBlO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGhcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGhcclxuICAgICAgICAgIG11bHRpbGluZVRleHQucm93cyA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvblxyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0QXJlYUNvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0QXJlYUNvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlsaW5lVGV4dClcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vSFRNTFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgIGxldCBIVE1MID0gbmV3IEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICBIVE1MLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5IaWRlTGFiZWxcclxuICAgICAgICAgIEhUTUwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxLZXlcclxuICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Jc1JlcXVpcmVkO1xyXG4gICAgICAgICAgSFRNTC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgSFRNTC5tYXhMZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoXHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgSFRNTC5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICBIVE1MLmhlaWdodCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvblxyXG4gICAgICAgICAgSFRNTC52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxIdG1sRWRpdG9yQ29tcG9uZW50Pih0aGlzLml0ZW0sIEh0bWxFZGl0b3JDb21wb25lbnQsIHRoaXMuZ3JvdXAsIEhUTUwpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0Jvb2xlYW5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgICBsZXQgYm9vbGVhbiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgIGJvb2xlYW4ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIGJvb2xlYW4uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgYm9vbGVhbi5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgYm9vbGVhbi52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGJvb2xlYW4udmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgYm9vbGVhbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Mb2NhdGlvblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuTG9jYXRpb246XHJcbiAgICAgICAgICBsZXQgbG9jYXRpb24gPSBuZXcgTWFwQXV0b0NvbXBsZXRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgbG9jYXRpb24ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgIGxvY2F0aW9uLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgIGxvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICBsb2NhdGlvbi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBsb2NhdGlvbi52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGxvY2F0aW9uLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIGxvY2F0aW9uLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8TWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCwgdGhpcy5ncm91cCwgbG9jYXRpb24pXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5pdGVtTnVtYmVyKVxyXG4gICAgICBpZiAoY2hhbmdlcy5pdGVtTnVtYmVyLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICBsZXQgbmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIucHJldmlvdXNWYWx1ZS50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZ3JvdXAuY29udHJvbHNbbmFtZV0udmFsdWVcclxuICAgICAgICB0aGlzLml0ZW0uY2xlYXIoKVxyXG4gICAgICAgIHRoaXMuZ3JvdXAucmVtb3ZlQ29udHJvbChuYW1lKVxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xUeXBlKSB7XHJcbiAgICAgICAgICAvLy9UZXh0Qm94XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICAgIGxldCB0ZXh0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB0ZXh0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgICAgdGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICB0ZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgdGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgdGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgdGV4dC50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIHRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICB0ZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGhcclxuICAgICAgICAgICAgdGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRleHQpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTmFtZTpcclxuICAgICAgICAgICAgbGV0IG5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIG5hbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBuYW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIG5hbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBuYW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgICBuYW1lLm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGhcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoXHJcbiAgICAgICAgICAgIG5hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICBuYW1lLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5FbWFpbDpcclxuICAgICAgICAgICAgbGV0IGVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGVtYWlsLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgZW1haWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBlbWFpbC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICBlbWFpbC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGVtYWlsLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBlbWFpbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgZW1haWwudHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgICAgICAgICAgZW1haWwudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbClcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICAgIGxldCBudW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbnVtYmVyLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgbnVtYmVyLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgICAgbnVtYmVyLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG51bWJlci52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbnVtYmVyLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBudW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgICAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpXHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLnRvID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgICByYW5nZU51bWJlci5mcm9tID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgICBudW1iZXIubnVtYmVyUmFuZ2UgPSByYW5nZU51bWJlcjtcclxuICAgICAgICAgICAgbnVtYmVyLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbnVtYmVyKVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvLy9EYXRlVGltZVxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBEYXRlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgRGF0ZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIERhdGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgRGF0ZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIERhdGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIERhdGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIERhdGUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQ2FsZW5kYXI7XHJcbiAgICAgICAgICAgIERhdGUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICAgIERhdGUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoXHJcbiAgICAgICAgICAgIERhdGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgRGF0ZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgICAgbGV0IGRhdGVUaW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgZGF0ZVRpbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBkYXRlVGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICBkYXRlVGltZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgZGF0ZVRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQm90aDtcclxuICAgICAgICAgICAgZGF0ZVRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aFxyXG4gICAgICAgICAgICBkYXRlVGltZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBkYXRlVGltZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5UaW1lOlxyXG4gICAgICAgICAgICBsZXQgdGltZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgICB0aW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgdGltZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIHRpbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgdGltZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIHRpbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIHRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIHRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuVGltZXI7XHJcbiAgICAgICAgICAgIHRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlXHJcbiAgICAgICAgICAgIHRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoXHJcbiAgICAgICAgICAgIHRpbWUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RGF0ZUlucHV0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgdGltZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgLy9Ecm9wZG93blxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5TaW5nbGVTZWxlY3Q6XHJcbiAgICAgICAgICAgIGxldCBzaW5nbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Qudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZVxyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaFxyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBzaW5nbGVTZWxlY3QpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWxpcGxlU2VsZWN0OlxyXG4gICAgICAgICAgICBsZXQgbXVsaXBsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlXHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2hcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG11bGlwbGVTZWxlY3QpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Hb2FsOlxyXG4gICAgICAgICAgICBsZXQgR29hbCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgR29hbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIEdvYWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBHb2FsLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIEdvYWwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBHb2FsLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBHb2FsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBHb2FsLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgICBHb2FsLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZVxyXG4gICAgICAgICAgICBHb2FsLnNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICAgIEdvYWwuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoXHJcbiAgICAgICAgICAgIEdvYWwuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBHb2FsKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuQ2hhbGxlbmdlOlxyXG4gICAgICAgICAgICBsZXQgY2hhbGxlbmdlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2VcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgICBjaGFsbGVuZ2Uuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlXHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5zaG93Q2hlY2tib3ggPSBmYWxzZVxyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoXHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNoYWxsZW5nZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLklubm92YXRpb25MYWI6XHJcbiAgICAgICAgICAgIGxldCBpbm5vdmF0aW9uTGFiID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlXHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlXHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuc2hvd0NoZWNrYm94ID0gZmFsc2VcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2hcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGlubm92YXRpb25MYWIpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3VudHJ5OlxyXG4gICAgICAgICAgICBsZXQgY291bnRyeSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY291bnRyeS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIGNvdW50cnkuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBjb3VudHJ5LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIGNvdW50cnkuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjb3VudHJ5LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBjb3VudHJ5LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgICBjb3VudHJ5LnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZVxyXG4gICAgICAgICAgICBjb3VudHJ5LnNob3dDaGVja2JveCA9IGZhbHNlXHJcbiAgICAgICAgICAgIGNvdW50cnkuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoXHJcbiAgICAgICAgICAgIGNvdW50cnkuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBjb3VudHJ5KVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgICAgbGV0IGZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIGZpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBmaWxlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBmaWxlLmZpbGVNYXhTaXplSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgICAgZmlsZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxGaWxlVXBsb2FkQ29tcG9uZW50Pih0aGlzLml0ZW0sIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGZpbGUpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICAgIGxldCBtdWx0aUZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIGZpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBmaWxlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBtdWx0aUZpbGUubWF4U2l6ZUZvckFsbEZpbGVzSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgICAgbXVsdGlGaWxlLm1heE5vT2ZGaWxlcyA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlQ291bnRcclxuICAgICAgICAgICAgbXVsdGlGaWxlLmlzTXVsdGlwbGVGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vSW1hZ2VVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuSW1hZ2U6XHJcbiAgICAgICAgICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICBpbWFnZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIGltYWdlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIGltYWdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgaW1hZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgICBpbWFnZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CXHJcbiAgICAgICAgICAgIGltYWdlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEltYWdlVXBsb2FkZXJDb21wb25lbnQ+KHRoaXMuaXRlbSwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgdGhpcy5ncm91cCwgaW1hZ2UpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3ZlclBob3RvOlxyXG4gICAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY292ZXJQaG90by5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpXHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgICBjb3ZlclBob3RvLmZpbGVNYXhTaXplSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUJcclxuICAgICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy9Nb2JpbGVcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTW9iaWxlOlxyXG4gICAgICAgICAgICBsZXQgbW9iaWxlID0gbmV3IFBob25lT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBtb2JpbGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICBtb2JpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBtb2JpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgbW9iaWxlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbW9iaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBtb2JpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIG1vYmlsZS5hbGxvd1NlYXJjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIG1vYmlsZS5waG9uZVZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUuc2VsZWN0Rmlyc3RDb3VudHJ5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgbW9iaWxlLmVuYWJsZVBsYWNlaG9sZGVyID0gdHJ1ZVxyXG4gICAgICAgICAgICBtb2JpbGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UGhvbmVDb21wb25lbnQ+KHRoaXMuaXRlbSwgUGhvbmVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG1vYmlsZSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTXVsdGlsaW5lVGV4dDpcclxuICAgICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5tYXhMZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG11bHRpbGluZVRleHQubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aFxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvblxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRBcmVhQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWx0aWxpbmVUZXh0KVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vSFRNTFxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5IVE1MOlxyXG4gICAgICAgICAgICBsZXQgSFRNTCA9IG5ldyBIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgSFRNTC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsXHJcbiAgICAgICAgICAgIEhUTUwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXlcclxuICAgICAgICAgICAgSFRNTC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIEhUTUwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIEhUTUwubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aFxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGhcclxuICAgICAgICAgICAgSFRNTC5oZWlnaHQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvblxyXG4gICAgICAgICAgICBIVE1MLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEh0bWxFZGl0b3JDb21wb25lbnQ+KHRoaXMuaXRlbSwgSHRtbEVkaXRvckNvbXBvbmVudCwgdGhpcy5ncm91cCwgSFRNTClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvL0Jvb2xlYW5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgbGV0IGJvb2xlYW4gPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICBib29sZWFuLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWxcclxuICAgICAgICAgICAgYm9vbGVhbi5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICBib29sZWFuLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBib29sZWFuLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICBib29sZWFuLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vTG9jYXRpb25cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTG9jYXRpb246XHJcbiAgICAgICAgICAgIGxldCBMb2NhdGlvbiA9IG5ldyBNYXBBdXRvQ29tcGxldGVPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgTG9jYXRpb24uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbFxyXG4gICAgICAgICAgICBMb2NhdGlvbi5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleVxyXG4gICAgICAgICAgICBMb2NhdGlvbi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIExvY2F0aW9uLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCJcclxuICAgICAgICAgICAgTG9jYXRpb24udmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8TWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCwgdGhpcy5ncm91cCwgTG9jYXRpb24pXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgI0l0ZW0+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
774
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0ZXItZmllbGQtYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9SZXBlYXRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUF5QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFF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S2EsSUFBSTtzQkFBbEQsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3BDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL0VudW1zL0lucHV0VHlwZSc7XHJcbmltcG9ydCB7IFBpY2tlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvUGlja2VyVHlwZSc7XHJcbmltcG9ydCB7IFNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvRW51bXMvU2VsZWN0TW9kZSc7XHJcbmltcG9ydCB7IFN0YXJ0VmlldyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9FbnVtcy9TdGFydFZpZXcnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvRGF0ZVBpY2tlck9wdGlvbnMnO1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0Ryb3Bkb3duT3B0aW9ucyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9GaWxlVXBsb2FkT3B0aW9ucyc7XHJcbmltcG9ydCB7IEh0bWxFZGl0b3JPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9IdG1sRWRpdG9yT3B0aW9ucyc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvSW1hZ2VVcGxvYWRPcHRpb25zJztcclxuaW1wb3J0IHsgTWFwQXV0b0NvbXBsZXRlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvTWFwQXV0b0NvbXBsZXRlT3B0aW9ucyc7XHJcbmltcG9ydCB7IFBob25lT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvUGhvbmVPcHRpb25zJztcclxuaW1wb3J0IHsgUmFuZ2VOdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1JhbmdlTnVtYmVyJztcclxuaW1wb3J0IHsgUmVwZWF0ZXJGaWVsZCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvUmVwZWF0ZXJGaWVsZCc7XHJcbmltcG9ydCB7IFRleHRBcmVhT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9Nb2RlbHMvVGV4dEFyZWFPcHRpb25zJztcclxuaW1wb3J0IHsgVGV4dEJveE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL1RleHRCb3hPcHRpb25zJztcclxuaW1wb3J0IHsgVG9nZ2xlU2xpZGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL01vZGVscy9Ub2dnbGVTbGlkZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBSZW5kZXJDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL3NlcnZpY2VzL3JlbmRlci1jb21wb25lbnQtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vRGF0ZVRpbWVQaWNrZXIvRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vRHJvcGRvd25MaXN0L0Ryb3Bkb3duTGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vRmlsZVVwbGFvZC9GaWxlVXBsYW9kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9IdG1sRWRpdG9yL0h0bWxFZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL01hcEF1dG9Db21wbGV0ZS9NYXBBdXRvQ29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGhvbmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9QaG9uZS9QaG9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL1RleHRBcmVhL1RleHRBcmVhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRib3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9UZXh0Qm94L1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlc2xpZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9Ub2dnbGVzbGlkZS9Ub2dnbGVzbGlkZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja0JveE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvTW9kZWxzL0NoZWNrQm94T3B0aW9ucyc7XHJcbmltcG9ydCB7IENoZWNrQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vQ2hlY2tCb3gvQ2hlY2tCb3guY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGVhdGVyRmllbGRCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChcIkl0ZW1cIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGl0ZW06IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBpdGVtTnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgY29udHJvbE51bWJlcjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHJlcGVhdGVyRmllbGQ6IFJlcGVhdGVyRmllbGQ7XHJcbiAgQElucHV0KCkgaXRlbXNWYWx1ZTogYW55W10gPSBbXTtcclxuICBpdGVtVmFsdWU6IGFueSA9IG51bGw7XHJcbiAgdmFsdWU6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJDb21wb25lbnRTZXJ2aWNlOiBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLCBwdWJsaWMgdGV4dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pdGVtc1ZhbHVlLmxlbmd0aCA+IDApXHJcbiAgICAgICAgdGhpcy5pdGVtVmFsdWUgPSB0aGlzLml0ZW1zVmFsdWVbdGhpcy5pdGVtTnVtYmVyXTtcclxuICAgICAgaWYgKHRoaXMuaXRlbVZhbHVlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5pdGVtVmFsdWUpIHtcclxuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5pdGVtVmFsdWUsIGtleSkgJiYga2V5ID09IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLml0ZW1WYWx1ZVtrZXldO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZWxlbWVudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pdGVtLmNsZWFyKCk7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5yZXBlYXRlckZpZWxkPy5jb250cm9sVHlwZSkge1xyXG4gICAgICAgIC8vL1RleHRCb3hcclxuICAgICAgICBjYXNlIERhdGFUeXBlLlRleHQ6XHJcbiAgICAgICAgICBsZXQgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIFRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIFRleHQubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBUZXh0LmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIFRleHQudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIFRleHQudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgVGV4dC5sYW5ndWFnZVZhbGlkYXRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFuZ3VhZ2VWYWxpZGF0aW9uO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIFRleHQuaXNSZWFkb25seSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlYWRvbmx5O1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLk5hbWU6XHJcbiAgICAgICAgICBsZXQgbmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIG5hbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG5hbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBuYW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIG5hbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBuYW1lLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBuYW1lLm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgbmFtZS5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgbmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBuYW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5FbWFpbDpcclxuICAgICAgICAgIGxldCBlbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgZW1haWwubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBlbWFpbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZW1haWwubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBlbWFpbC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBlbWFpbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGVtYWlsLmxhbmd1YWdlVmFsaWRhdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYW5ndWFnZVZhbGlkYXRpb247XHJcbiAgICAgICAgICBlbWFpbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBlbWFpbC50eXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgZW1haWwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dGJveENvbXBvbmVudD4odGhpcy5pdGVtLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBlbWFpbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICBsZXQgbnVtYmVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBudW1iZXIubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBudW1iZXIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIG51bWJlci5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBudW1iZXIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBudW1iZXIubGFuZ3VhZ2VWYWxpZGF0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhbmd1YWdlVmFsaWRhdGlvbjtcclxuICAgICAgICAgIG51bWJlci5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBudW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UpIHtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIudG8gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UudG87XHJcbiAgICAgICAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubnVtYmVyUmFuZ2UuZnJvbTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG51bWJlci5udW1iZXJSYW5nZSA9IHJhbmdlTnVtYmVyO1xyXG4gICAgICAgICAgbnVtYmVyLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIG51bWJlci5pc1JlYWRvbmx5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVhZG9ubHk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG51bWJlcik7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgLy8vRGF0ZVRpbWVcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkRhdGU6XHJcbiAgICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgZGF0ZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGRhdGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGRhdGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBkYXRlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGRhdGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBkYXRlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGRhdGUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQ2FsZW5kYXI7XHJcbiAgICAgICAgICBkYXRlLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgIGRhdGUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgZGF0ZS52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBkYXRlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgbGV0IGRhdGVUaW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBkYXRlVGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGRhdGVUaW1lLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBkYXRlVGltZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgIGRhdGVUaW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGRhdGVUaW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgZGF0ZVRpbWUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZGF0ZVRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQm90aDtcclxuICAgICAgICAgIGRhdGVUaW1lLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgIGRhdGVUaW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgIGRhdGVUaW1lLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGRhdGVUaW1lKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIERhdGFUeXBlLlRpbWU6XHJcbiAgICAgICAgICBsZXQgdGltZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgdGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIHRpbWUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIHRpbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICB0aW1lLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIHRpbWUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICB0aW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIHRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuVGltZXI7XHJcbiAgICAgICAgICB0aW1lLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgIHRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgdGltZS52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aW1lKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAvL0Ryb3Bkb3duXHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5TaW5nbGVTZWxlY3Q6XHJcbiAgICAgICAgICBsZXQgc2luZ2xlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3QuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgc2luZ2xlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIHNpbmdsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICBzaW5nbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBzaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWxpcGxlU2VsZWN0OlxyXG4gICAgICAgICAgbGV0IG11bGlwbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBtdWxpcGxlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIG11bGlwbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgbXVsaXBsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG11bGlwbGVTZWxlY3QpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5Hb2FsOlxyXG4gICAgICAgICAgbGV0IGdvYWwgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBnb2FsLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZ29hbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZ29hbC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGdvYWwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZ29hbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGdvYWwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZ29hbC5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBnb2FsLnNpbmdsZVNlbGVjdGlvbiA9ICF0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNNdWx0aXBsZTtcclxuICAgICAgICAgIGdvYWwuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBnb2FsLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgIGdvYWwuc2VsZWN0ZWRJdGVtcyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBnb2FsKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuQ2hhbGxlbmdlOlxyXG4gICAgICAgICAgbGV0IGNoYWxsZW5nZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGNoYWxsZW5nZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGNoYWxsZW5nZS5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICBjaGFsbGVuZ2Uuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBjaGFsbGVuZ2UuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgY2hhbGxlbmdlLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgY2hhbGxlbmdlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSW5ub3ZhdGlvbkxhYjpcclxuICAgICAgICAgIGxldCBpbm5vdmF0aW9uTGFiID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlubm92YXRpb25MYWIuZGF0YVNvdXJjZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgaW5ub3ZhdGlvbkxhYi5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgaW5ub3ZhdGlvbkxhYik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNvdW50cnk6XHJcbiAgICAgICAgICBsZXQgY291bnRyeSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIGNvdW50cnkubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjb3VudHJ5LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICBjb3VudHJ5LmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsS2V5O1xyXG4gICAgICAgICAgY291bnRyeS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb3VudHJ5LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgY291bnRyeS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBjb3VudHJ5LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGNvdW50cnkuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgY291bnRyeS5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIGNvdW50cnkuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgY291bnRyeS5zZWxlY3RlZEl0ZW1zID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdW50cnkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIC8vRmlsZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgIGxldCBmaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgZmlsZS52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxGaWxlVXBsb2FkQ29tcG9uZW50Pih0aGlzLml0ZW0sIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGZpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICBsZXQgbXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBmaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgZmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSGlkZUxhYmVsO1xyXG4gICAgICAgICAgZmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Jc1JlcXVpcmVkO1xyXG4gICAgICAgICAgZmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIGZpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLm1heE5vT2ZGaWxlcyA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlQ291bnQ7XHJcbiAgICAgICAgICBtdWx0aUZpbGUuaXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vSW1hZ2VVcGxvYWRcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkltYWdlOlxyXG4gICAgICAgICAgbGV0IGltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgaW1hZ2UubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBpbWFnZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSGlkZUxhYmVsO1xyXG4gICAgICAgICAgaW1hZ2UubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxLZXk7XHJcbiAgICAgICAgICBpbWFnZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLklzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBpbWFnZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIGltYWdlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICBpbWFnZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgaW1hZ2UudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SW1hZ2VVcGxvYWRlckNvbXBvbmVudD4odGhpcy5pdGVtLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBpbWFnZSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNvdmVyUGhvdG86XHJcbiAgICAgICAgICBsZXQgY292ZXJQaG90byA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIGNvdmVyUGhvdG8ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5IaWRlTGFiZWw7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsS2V5O1xyXG4gICAgICAgICAgY292ZXJQaG90by5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLklzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBjb3ZlclBob3RvLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLlZpZXdUeXBlO1xyXG4gICAgICAgICAgY292ZXJQaG90by5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQilcclxuICAgICAgICAgICAgY292ZXJQaG90by5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Nb2JpbGVcclxuICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgIGxldCBtb2JpbGUgPSBuZXcgUGhvbmVPcHRpb25zKCk7XHJcbiAgICAgICAgICBtb2JpbGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5OYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBtb2JpbGUuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkhpZGVMYWJlbDtcclxuICAgICAgICAgIG1vYmlsZS5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLklzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBtb2JpbGUudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuVmlld1R5cGU7XHJcbiAgICAgICAgICBtb2JpbGUubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgIG1vYmlsZS5waG9uZVZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnNlbGVjdEZpcnN0Q291bnRyeSA9IHRydWU7XHJcbiAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgbW9iaWxlLnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFBob25lQ29tcG9uZW50Pih0aGlzLml0ZW0sIFBob25lQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtb2JpbGUpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9NdWx0aWxpbmVUZXh0XHJcbiAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aWxpbmVUZXh0OlxyXG4gICAgICAgICAgbGV0IG11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSGlkZUxhYmVsO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Jc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbXVsdGlsaW5lVGV4dC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIG11bHRpbGluZVRleHQubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnJvd3MgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgIG11bHRpbGluZVRleHQuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuRm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICBtdWx0aWxpbmVUZXh0LnZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRBcmVhQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWx0aWxpbmVUZXh0KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vSFRNTFxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuSFRNTDpcclxuICAgICAgICAgIGxldCBIVE1MID0gbmV3IEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgSFRNTC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuSGlkZUxhYmVsO1xyXG4gICAgICAgICAgSFRNTC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgIEhUTUwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Jc1JlcXVpcmVkO1xyXG4gICAgICAgICAgSFRNTC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5WaWV3VHlwZTtcclxuICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIEhUTUwubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBIVE1MLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBIVE1MLmhlaWdodCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgIEhUTUwudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8SHRtbEVkaXRvckNvbXBvbmVudD4odGhpcy5pdGVtLCBIdG1sRWRpdG9yQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBIVE1MKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vQm9vbGVhblxyXG4gICAgICAgIGNhc2UgRGF0YVR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIGxldCBib29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGJvb2xlYW4uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBib29sZWFuLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgYm9vbGVhbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBib29sZWFuLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vTG9jYXRpb25cclxuICAgICAgICBjYXNlIERhdGFUeXBlLkxvY2F0aW9uOlxyXG4gICAgICAgICAgbGV0IGxvY2F0aW9uID0gbmV3IE1hcEF1dG9Db21wbGV0ZU9wdGlvbnMoKTtcclxuICAgICAgICAgIGxvY2F0aW9uLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgdGhpcy5pdGVtTnVtYmVyLnRvU3RyaW5nKCkgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgbG9jYXRpb24uaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgIGxvY2F0aW9uLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgbG9jYXRpb24uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgbG9jYXRpb24udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICBsb2NhdGlvbi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICBsb2NhdGlvbi5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxNYXBBdXRvQ29tcGxldGVDb21wb25lbnQ+KHRoaXMuaXRlbSwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBsb2NhdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIERhdGFUeXBlLkNoZWNrQm94OlxyXG4gICAgICAgICAgbGV0IGNoZWNrQm94ID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgY2hlY2tCb3gubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyB0aGlzLml0ZW1OdW1iZXIudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICBjaGVja0JveC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgY2hlY2tCb3gubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICBjaGVja0JveC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgIGNoZWNrQm94Lm91dHB1dEZ1bmN0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm91dHB1dEZ1bmN0aW9uO1xyXG4gICAgICAgICAgY2hlY2tCb3gubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgY2hlY2tCb3gudmFsdWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxDaGVja0JveENvbXBvbmVudD4odGhpcy5pdGVtLCBDaGVja0JveENvbXBvbmVudCwgdGhpcy5ncm91cCwgY2hlY2tCb3gpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlcilcclxuICAgICAgaWYgKGNoYW5nZXMuaXRlbU51bWJlci5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuTmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLnByZXZpb3VzVmFsdWUudG9TdHJpbmcoKSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5ncm91cC5jb250cm9sc1tuYW1lXS52YWx1ZTtcclxuICAgICAgICB0aGlzLml0ZW0uY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmdyb3VwLnJlbW92ZUNvbnRyb2wobmFtZSk7XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbFR5cGUpIHtcclxuICAgICAgICAgIC8vL1RleHRCb3hcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuVGV4dDpcclxuICAgICAgICAgICAgbGV0IHRleHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGV4dC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0ZXh0LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIHRleHQubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIHRleHQuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICB0ZXh0LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICB0ZXh0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgdGV4dC50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICAgIHRleHQubWF4TGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgICAgdGV4dC5taW5MZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgICB0ZXh0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgdGV4dCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuTmFtZTpcclxuICAgICAgICAgICAgbGV0IG5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbmFtZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBuYW1lLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIG5hbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIG5hbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBuYW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBuYW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgICAgbmFtZS5tYXhMZW5ndGggPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgICBuYW1lLm1pbkxlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICAgIG5hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgICAgICBuYW1lLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRleHRib3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dGJveENvbXBvbmVudCwgdGhpcy5ncm91cCwgbmFtZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRW1haWw6XHJcbiAgICAgICAgICAgIGxldCBlbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICBlbWFpbC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBlbWFpbC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBlbWFpbC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgZW1haWwuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBlbWFpbC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgZW1haWwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBlbWFpbC50eXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgICBlbWFpbC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGVtYWlsKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgICAgIGxldCBudW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbnVtYmVyLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG51bWJlci5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBudW1iZXIubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIG51bWJlci5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG51bWJlci52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbnVtYmVyLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbnVtYmVyLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICAgICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgICAgICAgcmFuZ2VOdW1iZXIudG8gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgICByYW5nZU51bWJlci5mcm9tID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgICAgbnVtYmVyLm51bWJlclJhbmdlID0gcmFuZ2VOdW1iZXI7XHJcbiAgICAgICAgICAgIG51bWJlci52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih0aGlzLml0ZW0sIFRleHRib3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG51bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIC8vL0RhdGVUaW1lXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkRhdGU6XHJcbiAgICAgICAgICAgIGxldCBEYXRlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIERhdGUubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgRGF0ZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBEYXRlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBEYXRlLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgRGF0ZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgRGF0ZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIERhdGUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQ2FsZW5kYXI7XHJcbiAgICAgICAgICAgIERhdGUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgICBEYXRlLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgICAgRGF0ZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBEYXRlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgICAgbGV0IGRhdGVUaW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBkYXRlVGltZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBkYXRlVGltZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkJvdGg7XHJcbiAgICAgICAgICAgIGRhdGVUaW1lLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgICAgZGF0ZVRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgICBkYXRlVGltZS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRGF0ZUlucHV0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBkYXRlVGltZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuVGltZTpcclxuICAgICAgICAgICAgbGV0IHRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgICAgdGltZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aW1lLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIHRpbWUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIHRpbWUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICB0aW1lLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICB0aW1lLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgdGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5UaW1lcjtcclxuICAgICAgICAgICAgdGltZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGU7XHJcbiAgICAgICAgICAgIHRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgICB0aW1lLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERhdGVJbnB1dENvbXBvbmVudD4odGhpcy5pdGVtLCBEYXRlSW5wdXRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRpbWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvL0Ryb3Bkb3duXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLlNpbmdsZVNlbGVjdDpcclxuICAgICAgICAgICAgbGV0IHNpbmdsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBzaW5nbGVTZWxlY3QubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIHNpbmdsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgICAgc2luZ2xlU2VsZWN0LnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgc2luZ2xlU2VsZWN0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk11bGlwbGVTZWxlY3Q6XHJcbiAgICAgICAgICAgIGxldCBtdWxpcGxlU2VsZWN0ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3Qudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3QubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBtdWxpcGxlU2VsZWN0LmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5zaW5nbGVTZWxlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgbXVsaXBsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oYXNTZWFyY2g7XHJcbiAgICAgICAgICAgIG11bGlwbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEcm9wZG93bkxpc3RDb21wb25lbnQ+KHRoaXMuaXRlbSwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCBtdWxpcGxlU2VsZWN0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkdvYWw6XHJcbiAgICAgICAgICAgIGxldCBHb2FsID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBHb2FsLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIEdvYWwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgR29hbC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgR29hbC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIEdvYWwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIEdvYWwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLkxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBHb2FsLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgR29hbC5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICAgIEdvYWwuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIEdvYWwuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBHb2FsLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgR29hbCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5DaGFsbGVuZ2U6XHJcbiAgICAgICAgICAgIGxldCBjaGFsbGVuZ2UgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2UuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjaGFsbGVuZ2Uudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICAgIGNoYWxsZW5nZS5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgICAgY2hhbGxlbmdlLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgY2hhbGxlbmdlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLklubm92YXRpb25MYWI6XHJcbiAgICAgICAgICAgIGxldCBpbm5vdmF0aW9uTGFiID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLmRhdGFTb3VyY2UgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgICAgaW5ub3ZhdGlvbkxhYi5zaW5nbGVTZWxlY3Rpb24gPSAhdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzTXVsdGlwbGU7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlubm92YXRpb25MYWIuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGFzU2VhcmNoO1xyXG4gICAgICAgICAgICBpbm5vdmF0aW9uTGFiLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8RHJvcGRvd25MaXN0Q29tcG9uZW50Pih0aGlzLml0ZW0sIERyb3Bkb3duTGlzdENvbXBvbmVudCwgdGhpcy5ncm91cCwgaW5ub3ZhdGlvbkxhYik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Db3VudHJ5OlxyXG4gICAgICAgICAgICBsZXQgY291bnRyeSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgICAgY291bnRyeS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGNvdW50cnkubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNvdW50cnkuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBjb3VudHJ5LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgY291bnRyeS5kYXRhU291cmNlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICAgIGNvdW50cnkuc2luZ2xlU2VsZWN0aW9uID0gIXRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc011bHRpcGxlO1xyXG4gICAgICAgICAgICBjb3VudHJ5LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb3VudHJ5LmFsbG93U2VhcmNoRmlsdGVyID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhhc1NlYXJjaDtcclxuICAgICAgICAgICAgY291bnRyeS5zZWxlY3RlZEl0ZW1zID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odGhpcy5pdGVtLCBEcm9wZG93bkxpc3RDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdW50cnkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuRmlsZTpcclxuICAgICAgICAgICAgbGV0IGZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgZmlsZS5maWxlTWF4U2l6ZUluTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBmaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgZmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5NdWx0aUZpbGU6XHJcbiAgICAgICAgICAgIGxldCBtdWx0aUZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgICAgZmlsZS5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBmaWxlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGZpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGZpbGUuaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBmaWxlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBmaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgICBtdWx0aUZpbGUubWF4Tm9PZkZpbGVzID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLmlzTXVsdGlwbGVGaWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbXVsdGlGaWxlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHRoaXMuaXRlbSwgRmlsZVVwbG9hZENvbXBvbmVudCwgdGhpcy5ncm91cCwgbXVsdGlGaWxlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvL0ltYWdlVXBsb2FkXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkltYWdlOlxyXG4gICAgICAgICAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2VVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGltYWdlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGltYWdlLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGltYWdlLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBpbWFnZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIGltYWdlLnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBpbWFnZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICAgIGltYWdlLmZpbGVNYXhTaXplSW5NQiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhGaWxlU2l6ZUluTUI7XHJcbiAgICAgICAgICAgIGltYWdlLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEltYWdlVXBsb2FkZXJDb21wb25lbnQ+KHRoaXMuaXRlbSwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgdGhpcy5ncm91cCwgaW1hZ2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRGF0YVR5cGUuQ292ZXJQaG90bzpcclxuICAgICAgICAgICAgbGV0IGNvdmVyUGhvdG8gPSBuZXcgSW1hZ2VVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICAgIGNvdmVyUGhvdG8ubmFtZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5uYW1lICsgXCIuXCIgKyBjaGFuZ2VzLml0ZW1OdW1iZXIuY3VycmVudFZhbHVlICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgY292ZXJQaG90by5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmxhYmVsS2V5ID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsS2V5O1xyXG4gICAgICAgICAgICBjb3ZlclBob3RvLmlzUmVxdWlyZWQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgICAgY292ZXJQaG90by52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgY292ZXJQaG90by5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICAgIGNvdmVyUGhvdG8uZmlsZU1heFNpemVJbk1CID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heEZpbGVTaXplSW5NQjtcclxuICAgICAgICAgICAgY292ZXJQaG90by52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih0aGlzLml0ZW0sIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNvdmVyUGhvdG8pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vTW9iaWxlXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk1vYmlsZTpcclxuICAgICAgICAgICAgbGV0IG1vYmlsZSA9IG5ldyBQaG9uZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgbW9iaWxlLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBtb2JpbGUubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIG1vYmlsZS5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG1vYmlsZS52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgbW9iaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA/IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uIDogXCJcIjtcclxuICAgICAgICAgICAgbW9iaWxlLmFsbG93U2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgbW9iaWxlLnBob25lVmFsaWRhdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIG1vYmlsZS5zZWxlY3RGaXJzdENvdW50cnkgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUuZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICBtb2JpbGUudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UGhvbmVDb21wb25lbnQ+KHRoaXMuaXRlbSwgUGhvbmVDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG1vYmlsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy9NdWx0aWxpbmVUZXh0XHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLk11bHRpbGluZVRleHQ6XHJcbiAgICAgICAgICAgIGxldCBtdWx0aWxpbmVUZXh0ID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5MYWJlbEtleTtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgICBtdWx0aWxpbmVUZXh0Lm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICAgIG11bHRpbGluZVRleHQubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgICAgbXVsdGlsaW5lVGV4dC5yb3dzID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnJvd3M7XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQuZm9yY2VEaXJlY3Rpb24gPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuRm9yY2VEaXJlY3Rpb247XHJcbiAgICAgICAgICAgIG11bHRpbGluZVRleHQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dEFyZWFDb21wb25lbnQ+KHRoaXMuaXRlbSwgVGV4dEFyZWFDb21wb25lbnQsIHRoaXMuZ3JvdXAsIG11bHRpbGluZVRleHQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vSFRNTFxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5IVE1MOlxyXG4gICAgICAgICAgICBsZXQgSFRNTCA9IG5ldyBIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBIVE1MLm5hbWUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubmFtZSArIFwiLlwiICsgY2hhbmdlcy5pdGVtTnVtYmVyLmN1cnJlbnRWYWx1ZSArIFwiLlwiICsgdGhpcy5jb250cm9sTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIEhUTUwuaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgSFRNTC5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgSFRNTC5pc1JlcXVpcmVkID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICAgIEhUTUwudmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIEhUTUwubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgICBIVE1MLm1heExlbmd0aCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICAgIEhUTUwubWluTGVuZ3RoID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgICAgSFRNTC5oZWlnaHQgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMucm93cztcclxuICAgICAgICAgICAgSFRNTC5mb3JjZURpcmVjdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5Gb3JjZURpcmVjdGlvbjtcclxuICAgICAgICAgICAgSFRNTC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxIdG1sRWRpdG9yQ29tcG9uZW50Pih0aGlzLml0ZW0sIEh0bWxFZGl0b3JDb21wb25lbnQsIHRoaXMuZ3JvdXAsIEhUTUwpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIC8vQm9vbGVhblxyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICBsZXQgYm9vbGVhbiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgICAgICAgYm9vbGVhbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBib29sZWFuLmhpZGVMYWJlbCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5oaWRlTGFiZWw7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGJvb2xlYW4udmlld1R5cGUgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMudmlld1R5cGU7XHJcbiAgICAgICAgICAgIGJvb2xlYW4ubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBib29sZWFuLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih0aGlzLml0ZW0sIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBib29sZWFuKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAvL0xvY2F0aW9uXHJcbiAgICAgICAgICBjYXNlIERhdGFUeXBlLkxvY2F0aW9uOlxyXG4gICAgICAgICAgICBsZXQgTG9jYXRpb24gPSBuZXcgTWFwQXV0b0NvbXBsZXRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIGNoYW5nZXMuaXRlbU51bWJlci5jdXJyZW50VmFsdWUgKyBcIi5cIiArIHRoaXMuY29udHJvbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5oaWRlTGFiZWwgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMuaGlkZUxhYmVsO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi5sYWJlbEtleSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbEtleTtcclxuICAgICAgICAgICAgTG9jYXRpb24uaXNSZXF1aXJlZCA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi52aWV3VHlwZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52aWV3VHlwZTtcclxuICAgICAgICAgICAgTG9jYXRpb24ubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy5sYWJlbERlc2NyaXB0aW9uID8gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gOiBcIlwiO1xyXG4gICAgICAgICAgICBMb2NhdGlvbi52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxNYXBBdXRvQ29tcGxldGVDb21wb25lbnQ+KHRoaXMuaXRlbSwgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLmdyb3VwLCBMb2NhdGlvbik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBEYXRhVHlwZS5DaGVja0JveDpcclxuICAgICAgICAgICAgbGV0IGNoZWNrQm94ID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgICBjaGVja0JveC5uYW1lID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm5hbWUgKyBcIi5cIiArIHRoaXMuaXRlbU51bWJlci50b1N0cmluZygpICsgXCIuXCIgKyB0aGlzLmNvbnRyb2xOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgY2hlY2tCb3guaGlkZUxhYmVsID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmhpZGVMYWJlbDtcclxuICAgICAgICAgICAgY2hlY2tCb3gubGFiZWxLZXkgPSB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxLZXk7XHJcbiAgICAgICAgICAgIGNoZWNrQm94LnZpZXdUeXBlID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLnZpZXdUeXBlO1xyXG4gICAgICAgICAgICBjaGVja0JveC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLmxhYmVsRGVzY3JpcHRpb24gPyB0aGlzLnJlcGVhdGVyRmllbGQuY29udHJvbE9wdGlvbnMubGFiZWxEZXNjcmlwdGlvbiA6IFwiXCI7XHJcbiAgICAgICAgICAgIGNoZWNrQm94Lm91dHB1dEZ1bmN0aW9uID0gdGhpcy5yZXBlYXRlckZpZWxkLmNvbnRyb2xPcHRpb25zLm91dHB1dEZ1bmN0aW9uO1xyXG4gICAgICAgICAgICBjaGVja0JveC52YWx1ZSA9IHRoaXMucmVwZWF0ZXJGaWVsZC5jb250cm9sT3B0aW9ucy52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8Q2hlY2tCb3hDb21wb25lbnQ+KHRoaXMuaXRlbSwgQ2hlY2tCb3hDb21wb25lbnQsIHRoaXMuZ3JvdXAsIGNoZWNrQm94KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAjSXRlbT48L25nLWNvbnRhaW5lcj5cclxuIl19
|