@heartlandone/vega-angular 2.32.0 → 2.33.0
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/dist/esm2020/lib/stencil-generated/components.mjs +7 -7
- package/dist/fesm2015/heartlandone-vega-angular.mjs +6 -6
- package/dist/fesm2015/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/fesm2020/heartlandone-vega-angular.mjs +6 -6
- package/dist/fesm2020/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/lib/stencil-generated/components.d.ts +2 -2
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/src/lib/stencil-generated/components.ts +4 -4
|
@@ -322,11 +322,11 @@ let VegaButtonLink = class VegaButtonLink {
|
|
|
322
322
|
}
|
|
323
323
|
};
|
|
324
324
|
VegaButtonLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaButtonLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
325
|
-
VegaButtonLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaButtonLink, selector: "vega-button-link", inputs: { danger: "danger", disabled: "disabled", eventful: "eventful", icon: "icon", iconAlign: "iconAlign", iconType: "iconType", label: "label", link: "link", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
325
|
+
VegaButtonLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaButtonLink, selector: "vega-button-link", inputs: { danger: "danger", disabled: "disabled", eventful: "eventful", icon: "icon", iconAlign: "iconAlign", iconType: "iconType", label: "label", link: "link", size: "size", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
326
326
|
VegaButtonLink = __decorate([
|
|
327
327
|
ProxyCmp({
|
|
328
328
|
defineCustomElementFn: undefined,
|
|
329
|
-
inputs: ['danger', 'disabled', 'eventful', 'icon', 'iconAlign', 'iconType', 'label', 'link', 'size']
|
|
329
|
+
inputs: ['danger', 'disabled', 'eventful', 'icon', 'iconAlign', 'iconType', 'label', 'link', 'size', 'target']
|
|
330
330
|
})
|
|
331
331
|
], VegaButtonLink);
|
|
332
332
|
export { VegaButtonLink };
|
|
@@ -336,7 +336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
336
336
|
selector: 'vega-button-link',
|
|
337
337
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
338
338
|
template: '<ng-content></ng-content>',
|
|
339
|
-
inputs: ['danger', 'disabled', 'eventful', 'icon', 'iconAlign', 'iconType', 'label', 'link', 'size']
|
|
339
|
+
inputs: ['danger', 'disabled', 'eventful', 'icon', 'iconAlign', 'iconType', 'label', 'link', 'size', 'target']
|
|
340
340
|
}]
|
|
341
341
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
342
342
|
let VegaCalendar = class VegaCalendar {
|
|
@@ -633,11 +633,11 @@ let VegaDatePicker = class VegaDatePicker {
|
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
635
|
VegaDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaDatePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
636
|
-
VegaDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaDatePicker, selector: "vega-date-picker", inputs: { allowRepick: "allowRepick", autoValidation: "autoValidation", clearButton: "clearButton", disabled: "disabled", dropdownConfig: "dropdownConfig", format: "format", isValid: "isValid", label: "label", maxDate: "maxDate", minDate: "minDate", mode: "mode", placeholder: "placeholder", readOnly: "readOnly", required: "required", size: "size", validationRules: "validationRules", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
636
|
+
VegaDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaDatePicker, selector: "vega-date-picker", inputs: { allowRepick: "allowRepick", autoValidation: "autoValidation", clearButton: "clearButton", disabled: "disabled", dropdownConfig: "dropdownConfig", format: "format", isValid: "isValid", label: "label", maxDate: "maxDate", minDate: "minDate", mode: "mode", placeholder: "placeholder", readOnly: "readOnly", required: "required", showClearIcon: "showClearIcon", size: "size", validationRules: "validationRules", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
637
637
|
VegaDatePicker = __decorate([
|
|
638
638
|
ProxyCmp({
|
|
639
639
|
defineCustomElementFn: undefined,
|
|
640
|
-
inputs: ['allowRepick', 'autoValidation', 'clearButton', 'disabled', 'dropdownConfig', 'format', 'isValid', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'readOnly', 'required', 'size', 'validationRules', 'value'],
|
|
640
|
+
inputs: ['allowRepick', 'autoValidation', 'clearButton', 'disabled', 'dropdownConfig', 'format', 'isValid', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'readOnly', 'required', 'showClearIcon', 'size', 'validationRules', 'value'],
|
|
641
641
|
methods: ['doClose', 'doOpen']
|
|
642
642
|
})
|
|
643
643
|
], VegaDatePicker);
|
|
@@ -648,7 +648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
648
648
|
selector: 'vega-date-picker',
|
|
649
649
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
650
650
|
template: '<ng-content></ng-content>',
|
|
651
|
-
inputs: ['allowRepick', 'autoValidation', 'clearButton', 'disabled', 'dropdownConfig', 'format', 'isValid', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'readOnly', 'required', 'size', 'validationRules', 'value']
|
|
651
|
+
inputs: ['allowRepick', 'autoValidation', 'clearButton', 'disabled', 'dropdownConfig', 'format', 'isValid', 'label', 'maxDate', 'minDate', 'mode', 'placeholder', 'readOnly', 'required', 'showClearIcon', 'size', 'validationRules', 'value']
|
|
652
652
|
}]
|
|
653
653
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
654
654
|
let VegaDatePickerCalendar = class VegaDatePickerCalendar {
|
|
@@ -2613,4 +2613,4 @@ export default [
|
|
|
2613
2613
|
VegaTooltipContentBox,
|
|
2614
2614
|
VegaVirtualScroll,
|
|
2615
2615
|
];
|
|
2616
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUE4QjFELGFBQWEsU0FBYixhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUE7MEdBUFksYUFBYTs4RkFBYixhQUFhLDRTQUhkLDJCQUEyQjtBQUcxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RJLENBQUM7R0FPVyxhQUFhLENBT3pCO1NBUFksYUFBYTsyRkFBYixhQUFhO2tCQU56QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FB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UTtJQUNSLFlBQVk7SUFDWixjQUFjO0lBQ2Qsc0JBQXNCO0lBQ3RCLGdCQUFnQjtJQUNoQixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLGlCQUFpQjtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYSc7XG5cblxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBleHBhbmQgZXZlbnQgb2YgdGhlIGFjY29yZGlvbi4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGV4cGFuZCBldmVudCBvZiB0aGUgYWNjb3JkaW9uLlxuZXhwYW5kIGlzIGFuIGF0dHJpYnV0ZSwgc28gdGhlIGV2ZW50IG5hbWUgaGVyZSB1c2VzIGFjY29yZGlvbkV4cGFuZCBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGFjY29yZGlvbkV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjY29yZGlvblRpdGxlJywgJ2RyYXdzQmFja2dyb3VuZCcsICdleHBhbmQnLCAnZXhwYW5kSWNvbkFsaWduJywgJ2dyb3VwSWQnLCAnaWNvblBvc2l0aW9uJywgJ3ByZWZpeEljb24nLCAnc2hvd0V4cGFuZEljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY2NvcmRpb25UaXRsZScsICdkcmF3c0JhY2tncm91bmQnLCAnZXhwYW5kJywgJ2V4cGFuZEljb25BbGlnbicsICdncm91cElkJywgJ2ljb25Qb3NpdGlvbicsICdwcmVmaXhJY29uJywgJ3Nob3dFeHBhbmRJY29uJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FFeHBhbmQnLCAnYWNjb3JkaW9uRXhwYW5kJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FBcHBGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FBcHBGb290ZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhZGRpdGlvbmFsTGlua3MnLCAnY29udGVudCcsICdkaXNjbGFpbWVyVXJsVGFyZ2V0JywgJ2hpZGVEZWZhdWx0TGlua3MnLCAncHJpdmFjeVBvbGljeUxhYmVsJywgJ3ByaXZhY3lQb2xpY3lVcmwnLCAncHJpdmFjeVBvbGljeVVybFRhcmdldCcsICdzaG93RGlzY2xhaW1lcicsICd0ZXJtT2ZVc2VMYWJlbCcsICd0ZXJtT2ZVc2VVcmwnLCAndGVybU9mVXNlVXJsVGFyZ2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFwcC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FkZGl0aW9uYWxMaW5rcycsICdjb250ZW50JywgJ2Rpc2NsYWltZXJVcmxUYXJnZXQnLCAnaGlkZURlZmF1bHRMaW5rcycsICdwcml2YWN5UG9saWN5TGFiZWwnLCAncHJpdmFjeVBvbGljeVVybCcsICdwcml2YWN5UG9saWN5VXJsVGFyZ2V0JywgJ3Nob3dEaXNjbGFpbWVyJywgJ3Rlcm1PZlVzZUxhYmVsJywgJ3Rlcm1PZlVzZVVybCcsICd0ZXJtT2ZVc2VVcmxUYXJnZXQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQXBwRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUFwcEhlYWRlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUFwcEhlYWRlckJ1dHRvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYW4gYXBwIGhlYWRlciBidXR0b24uIEB2ZWdhVmVyc2lvbiAxLjExLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGFuIGFwcCBoZWFkZXIgYnV0dG9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSBkcm9wZG93biBpdGVtXG4gICBpbiB0aGUgYXBwIGhlYWRlci4gQHZlZ2FWZXJzaW9uIDEuMjMuMFxuICAgKi9cbiAgdmVnYURyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIGRyb3Bkb3duIGl0ZW1cbiAgIGluIHRoZSBhcHAgaGVhZGVyLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGRyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F2YXRhcicsICdhdmF0YXJQb3NpdGlvbicsICdkcm9wZG93bicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaG93Qm9yZGVyJywgJ3Nob3dMYWJlbCcsICdzaG93TWVudUFycm93SWNvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFwcC1oZWFkZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdmF0YXInLCAnYXZhdGFyUG9zaXRpb24nLCAnZHJvcGRvd24nLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAnc2hvd0JvcmRlcicsICdzaG93TGFiZWwnLCAnc2hvd01lbnVBcnJvd0ljb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FBcHBIZWFkZXJCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snLCAndmVnYURyb3Bkb3duQ2xpY2snLCAnZHJvcGRvd25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQmFja2Ryb3AgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCYWNrZHJvcCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJhY2tkcm9wLiBAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2R1cmF0aW9uJywgJ3Zpc2libGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYmFja2Ryb3AnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2R1cmF0aW9uJywgJ3Zpc2libGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQmFja2Ryb3Age1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhQmFubmVyQWN0aW9uQnV0dG9uVHlwZSBhcyBJVmVnYUJhbm5lclZlZ2FCYW5uZXJBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWJhbm5lci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhbm5lciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJhbm5lciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmFubmVyIGNsb3NlIGV2ZW50LiBAdmVnYVZlcnNpb24gMS4xMy4wXG4gICAqL1xuICB2ZWdhQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBiYW5uZXIgY2xvc2UgZXZlbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjguMFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBiYW5uZXIgYWN0aW9uIGJ1dHRvbiBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMi4xOC4wXG4gICAqL1xuICB2ZWdhQWN0aW9uQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUJhbm5lclZlZ2FCYW5uZXJBY3Rpb25CdXR0b25UeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmFubmVyIGFjdGlvbiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMTguMFxuICAgKi9cbiAgYWN0aW9uQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUJhbm5lclZlZ2FCYW5uZXJBY3Rpb25CdXR0b25UeXBlPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3Rpb25CdXR0b25zJywgJ2Jhbm5lclRpdGxlJywgJ2NvbnRlbnQnLCAnaXNPcGVuJywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnZG9DbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FjdGlvbkJ1dHRvbnMnLCAnYmFubmVyVGl0bGUnLCAnY29udGVudCcsICdpc09wZW4nLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsb3NlJywgJ2Nsb3NlJywgJ3ZlZ2FBY3Rpb25CdXR0b25DbGljaycsICdhY3Rpb25CdXR0b25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQmFyQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCYXJDaGFydCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ29wdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYmFyLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhckNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJveCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWduU2VsZicsICdiYWNrZ3JvdW5kQ29sb3InLCAnYm9yZGVyJywgJ2JvcmRlckNvbG9yJywgJ2JvcmRlclN0eWxlJywgJ2Nvcm5lcnMnLCAnZGlzcGxheScsICdmbGV4JywgJ2ZsZXhCYXNpcycsICdmbGV4R3JvdycsICdmbGV4U2hyaW5rJywgJ2dyaWRBcmVhJywgJ2dyaWRDb2x1bW4nLCAnZ3JpZFJvdycsICdoZWlnaHQnLCAnanVzdGlmeVNlbGYnLCAnbWFyZ2luJywgJ21heEhlaWdodCcsICdtaW5IZWlnaHQnLCAnb3JkZXInLCAncGFkZGluZycsICdyZXNwb25zaXZlQ2xhc3MnLCAnc2hhZG93JywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25TZWxmJywgJ2JhY2tncm91bmRDb2xvcicsICdib3JkZXInLCAnYm9yZGVyQ29sb3InLCAnYm9yZGVyU3R5bGUnLCAnY29ybmVycycsICdkaXNwbGF5JywgJ2ZsZXgnLCAnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnLCAnZ3JpZEFyZWEnLCAnZ3JpZENvbHVtbicsICdncmlkUm93JywgJ2hlaWdodCcsICdqdXN0aWZ5U2VsZicsICdtYXJnaW4nLCAnbWF4SGVpZ2h0JywgJ21pbkhlaWdodCcsICdvcmRlcicsICdwYWRkaW5nJywgJ3Jlc3BvbnNpdmVDbGFzcycsICdzaGFkb3cnLCAnd2lkdGgnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhQnJlYWRjcnVtYkl0ZW1UeXBlIGFzIElWZWdhQnJlYWRjcnVtYlZlZ2FCcmVhZGNydW1iSXRlbVR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtYnJlYWRjcnVtYi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJyZWFkY3J1bWIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCcmVhZGNydW1iIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBicmVhZGNydW1iIGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDEuNDEuMFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCcmVhZGNydW1iVmVnYUJyZWFkY3J1bWJJdGVtVHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGJyZWFkY3J1bWIgaXRlbSBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCcmVhZGNydW1iVmVnYUJyZWFkY3J1bWJJdGVtVHlwZT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbWF4SXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbWF4SXRlbXMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBAdmVnYVZlcnNpb24gMS4wLjExXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydibG9jaycsICdkYW5nZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQWxpZ24nLCAnbGFiZWwnLCAnbG9hZGluZycsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ2RhbmdlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25BbGlnbicsICdsYWJlbCcsICdsb2FkaW5nJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnV0dG9uQ2lyY2xlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uQ2lyY2xlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2lyY3VsYXIgYnV0dG9uLiBAdmVnYVZlcnNpb24gMS4wLjExXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2lyY3VsYXIgYnV0dG9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkYW5nZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnbGFiZWwnLCAnc2hvd1Rvb2x0aXAnLCAnc2l6ZScsICd0b29sdGlwJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tY2lyY2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkYW5nZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnbGFiZWwnLCAnc2hvd1Rvb2x0aXAnLCAnc2l6ZScsICd0b29sdGlwJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b25DaXJjbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uR3JvdXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBidXR0b24gZ3JvdXAuIEB2ZWdhVmVyc2lvbiAyLjUuMFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJ1dHRvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuNS4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbkFsaWduJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb25BbGlnbicsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkdyb3VwSXRlbSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbkdyb3VwSXRlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Ryb3Bkb3duUHJvcHMnLCAnZHJvcGRvd25Tb3VyY2UnLCAnaWNvbicsICdpY29uT25seScsICdpdGVtS2V5JywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJ1dHRvbi1ncm91cC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkcm9wZG93blByb3BzJywgJ2Ryb3Bkb3duU291cmNlJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaXRlbUtleScsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b25Hcm91cEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnV0dG9uTGluayBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbkxpbmsge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBidXR0b24uIEB2ZWdhVmVyc2lvbiAxLjAuMTFcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBidXR0b24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdldmVudGZ1bCcsICdpY29uJywgJ2ljb25BbGlnbicsICdpY29uVHlwZScsICdsYWJlbCcsICdsaW5rJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnV0dG9uLWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdldmVudGZ1bCcsICdpY29uJywgJ2ljb25BbGlnbicsICdpY29uVHlwZScsICdsYWJlbCcsICdsaW5rJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FDYWxlbmRhckNoYW5nZUV2ZW50VHlwZSBhcyBJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyQ2hhbmdlRXZlbnRUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWNhbGVuZGFyL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYUNhbGVuZGFyRXZlbnRDbGlja0luZm8gYXMgSVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckV2ZW50Q2xpY2tJbmZvIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWNhbGVuZGFyL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYUNhbGVuZGFyRGF0ZUNsaWNrSW5mbyBhcyBJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyRGF0ZUNsaWNrSW5mbyB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1jYWxlbmRhci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FsZW5kYXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBvbmVudCB2aWV3IGNvbnRlbnQgY2hhbmdlIGFmdGVyIGEgc3dpdGNoIHBhbmVsIGNsaWNrLiBAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckNoYW5nZUV2ZW50VHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBvbmVudCB2aWV3IGNvbnRlbnQgY2hhbmdlIGFmdGVyIGEgc3dpdGNoIHBhbmVsIGNsaWNrLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyQ2hhbmdlRXZlbnRUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY29tcG9uZW50IGV2ZW50IGl0ZW0gaXMgY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDIuMTQuMFxuICAgKi9cbiAgdmVnYUV2ZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyRXZlbnRDbGlja0luZm8+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjb21wb25lbnQgZXZlbnQgaXRlbSBpcyBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICBldmVudENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckV2ZW50Q2xpY2tJbmZvPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY2FsZW5kYXIgZGF0ZSBpdGVtIGhhcyBiZWVuIGRvdWJsZS1jbGlja2VkLiBAdmVnYVZlcnNpb24gMi4xNy4wXG4gICAqL1xuICB2ZWdhRGF0ZURibENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckRhdGVDbGlja0luZm8+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjYWxlbmRhciBkYXRlIGl0ZW0gaGFzIGJlZW4gZG91YmxlLWNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjE3LjBcbiAgICovXG4gIGRhdGVEYmxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQ2FsZW5kYXJWZWdhQ2FsZW5kYXJEYXRlQ2xpY2tJbmZvPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY2FsZW5kYXIgbW9yZSBhY3Rpb24gbWVudSBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAyLjIwLjBcbiAgICovXG4gIHZlZ2FNb3JlQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjYWxlbmRhciBtb3JlIGFjdGlvbiBtZW51IGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjAuMFxuICAgKi9cbiAgbW9yZUFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydldmVudHMnLCAnbW9yZUFjdGlvbkRyb3Bkb3duUHJvcHMnLCAnc2hvd0V2ZW50Q29sb3JCYXInLCAnc2hvd1dlZWtlbmRzJywgJ3RpbWVGb3JtYXQnLCAndmlld01vZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2V2ZW50cycsICdtb3JlQWN0aW9uRHJvcGRvd25Qcm9wcycsICdzaG93RXZlbnRDb2xvckJhcicsICdzaG93V2Vla2VuZHMnLCAndGltZUZvcm1hdCcsICd2aWV3TW9kZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FFdmVudENsaWNrJywgJ2V2ZW50Q2xpY2snLCAndmVnYURhdGVEYmxDbGljaycsICdkYXRlRGJsQ2xpY2snLCAndmVnYU1vcmVBY3Rpb25DbGljaycsICdtb3JlQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyRXZlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDYWxlbmRhckV2ZW50IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FsZW5kYXJFdmVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYWxlbmRhci1ldmVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FsZW5kYXJFdmVudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhckV2ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyRXZlbnRTbG90IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FsZW5kYXJFdmVudFNsb3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydldmVudEtleSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYWxlbmRhci1ldmVudC1zbG90JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydldmVudEtleSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhckV2ZW50U2xvdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FyZCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvcicsICdtYXJnaW4nLCAncGFkZGluZycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvcicsICdtYXJnaW4nLCAncGFkZGluZycsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdHJhbnNpdGlvbiBvZiB0aGUgY2Fyb3VzZWwgdG8gYW5vdGhlciBwYWdlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYVBhZ2VVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSB0cmFuc2l0aW9uIG9mIHRoZSBjYXJvdXNlbCB0byBhbm90aGVyIHBhZ2UsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBwYWdlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5Td2lwZScsICdpdGVtc1BlclBhZ2UnLCAncGVyUGFnZScsICdzaG93U2xpZGVyJywgJ3NwYWNpbmcnXSxcbiAgbWV0aG9kczogWyduZXh0UGFnZScsICdwcmV2UGFnZScsICdnb1RvUGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuU3dpcGUnLCAnaXRlbXNQZXJQYWdlJywgJ3BlclBhZ2UnLCAnc2hvd1NsaWRlcicsICdzcGFjaW5nJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVBhZ2VVcGRhdGUnLCAncGFnZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDaGVja2JveCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgY2hlY2tib3gsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMC4xMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjaGVja2JveCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWRlbnRpZmllcicsICdpc1ZhbGlkJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZGVudGlmaWVyJywgJ2lzVmFsaWQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDaGVja2JveEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2hlY2tib3hHcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZVxuICBvZiBhbnkgbmVzdGVkIGNoZWNrYm94IHdpdGhpbiB0aGUgY2hlY2tib3ggZ3JvdXAsXG4gIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaFxuICB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlXG4gIG9mIGFueSBuZXN0ZWQgY2hlY2tib3ggd2l0aGluIHRoZSBjaGVja2JveCBncm91cCxcbiAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoXG4gIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoZWNrYm94LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FGbGV4UHJvcCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGVja2JveEdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDaGlwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2xvc2UgYnV0dG9uIG9mIHRoZSBjaGlwLlxuXG5UaGlzIGV2ZW50IGlzIG9ubHkgZGlzcGF0Y2hlZCB3aGVuIHRoZSBgc2hvd0Nsb3NlSWNvbmAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYUNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBjbG9zZSBidXR0b24gb2YgdGhlIGNoaXAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNoaXAuXG5cblRoaXMgZXZlbnQgaXMgb25seSBkaXNwYXRjaGVkIHdoZW4gdGhlIGBjbGlja2FibGVgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuIEB2ZWdhVmVyc2lvbiAxLjExLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2hpcC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xvc2UnLCAnY2xvc2UnLCAndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb2xvclBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbG9yUGlja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjb2xvciBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMTMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIGNvbG9yIHBpY2tlcixcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnY29sb3JzJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNJbmxpbmUnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY29sb3ItcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdjb2xvcnMnLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc0lubGluZScsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb2xvclBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb21ib0JveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbWJvQm94IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIGl0ZW1zIG9mIHRoZSBjb21ibyBib3ggdmFsdWUsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBpdGVtcyBvZiB0aGUgY29tYm8gYm94IHZhbHVlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHdoZW4gdGhlIHVzZXIgaGFzIGNob3NlbiB0byBhZGQgYSBuZXcgdmFsdWVcbiAgIHRvIHRoZSBzb3VyY2UgYW5kIHZhbHVlIG9mIHRoZSBjb21ibyBib3guXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBuZXcgdmFsdWUuXG5cblRoZSBjb21ibyBib3ggX2RvZXMgbm90XyBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IHZhbHVlIHRvIGl0cyBgc291cmNlYCBhbmQgYHZhbHVlYC4gQHZlZ2FWZXJzaW9uIDEuMTQuMFxuICAgKi9cbiAgdmVnYUNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgd2hlbiB0aGUgdXNlciBoYXMgY2hvc2VuIHRvIGFkZCBhIG5ldyB2YWx1ZVxuICAgdG8gdGhlIHNvdXJjZSBhbmQgdmFsdWUgb2YgdGhlIGNvbWJvIGJveC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIG5ldyB2YWx1ZS5cblxuVGhlIGNvbWJvIGJveCBfZG9lcyBub3RfIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgdmFsdWUgdG8gaXRzIGBzb3VyY2VgIGFuZCBgdmFsdWVgLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHVzZXIncyBzZWFyY2ggYWN0aW9uIGluIHRoZSBjb21ibyBib3gsXG4gICBidXQgb25seSBpZiB0aGUgYHVzZURlZmF1bHRGaWx0ZXJgIHByb3BlcnR5IGlzIHNldCB0byBgZmFsc2VgLiBAdmVnYVZlcnNpb24gMS4yNC4wXG4gICAqL1xuICB2ZWdhU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdXNlcidzIHNlYXJjaCBhY3Rpb24gaW4gdGhlIGNvbWJvIGJveCxcbiAgIGJ1dCBvbmx5IGlmIHRoZSBgdXNlRGVmYXVsdEZpbHRlcmAgcHJvcGVydHkgaXMgc2V0IHRvIGBmYWxzZWAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgc2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzb3VyY2UnLCAndXNlRGVmYXVsdEZpbHRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXSxcbiAgbWV0aG9kczogWydjbG9zZScsICdvcGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNvbWJvLWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc291cmNlJywgJ3VzZURlZmF1bHRGaWx0ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNvbWJvQm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYUNyZWF0ZScsICdjcmVhdGUnLCAndmVnYVNlYXJjaCcsICdzZWFyY2gnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNvdW50ZXJCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvdW50ZXJCYWRnZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvdW50JywgJ2RvdCcsICdvZmZzZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY291bnRlci1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY291bnQnLCAnZG90JywgJ29mZnNldCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb3VudGVyQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRGF0ZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYURhdGVQaWNrZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBvZiB0aGUgdmFsdWUgaW4gdGhlIGRhdGUgcGlja2VyLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZSB2YWx1ZSBpbiB0aGUgZGF0ZSBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxsb3dSZXBpY2snLCAnYXV0b1ZhbGlkYXRpb24nLCAnY2xlYXJCdXR0b24nLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Db25maWcnLCAnZm9ybWF0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydkb0Nsb3NlJywgJ2RvT3BlbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kYXRlLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxsb3dSZXBpY2snLCAnYXV0b1ZhbGlkYXRpb24nLCAnY2xlYXJCdXR0b24nLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Db25maWcnLCAnZm9ybWF0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRGF0ZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEYXRlUGlja2VyQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEYXRlUGlja2VyQ2FsZW5kYXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRhdGUtcGlja2VyLWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYURhdGVQaWNrZXJDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEaWFsb2cge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5jZWxCdXR0b24nLCAnY29udGVudCcsICdkaWFsb2dUaXRsZScsICdoYW5kbGVDYW5jZWwnLCAnaGFuZGxlT2snLCAnbW9kYWxQcm9wcycsICdva0J1dHRvbicsICdzaG93Q2FuY2VsJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjYW5jZWxCdXR0b24nLCAnY29udGVudCcsICdkaWFsb2dUaXRsZScsICdoYW5kbGVDYW5jZWwnLCAnaGFuZGxlT2snLCAnbW9kYWxQcm9wcycsICdva0J1dHRvbicsICdzaG93Q2FuY2VsJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYURpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEaXZpZGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlyZWN0aW9uJywgJ21hcmdpbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2RpcmVjdGlvbicsICdtYXJnaW4nLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWwgYXMgSVZlZ2FEcm9wZG93blZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1kcm9wZG93bi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYURyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRHJvcGRvd24ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGRyb3Bkb3duIGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIGtleSBvZiB0aGUgY2xpY2tlZCBpdGVtLiBAdmVnYVZlcnNpb24gMS4xMS4wXG4gICAqL1xuICB2ZWdhRHJvcGRvd25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGRyb3Bkb3duIGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIGtleSBvZiB0aGUgY2xpY2tlZCBpdGVtLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGRyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGRyb3Bkb3duIGhhcyBiZWVuIGRpc3BsYXllZCxcbiAgIGVpdGhlciBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FTaG93OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBkcm9wZG93biBoYXMgYmVlbiBkaXNwbGF5ZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gVGhlIG5hbWUgaXMgbm90IGBzaG93YCBiZWNhdXNlIGFscmVhZHkgaGFzIGEgbWV0aG9kIGBzaG93YC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBkcm9wZG93blNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGRyb3Bkb3duIGhhcyBiZWVuIGRpc21pc3NlZCxcbiAgIGVpdGhlciBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBkcm9wZG93biBoYXMgYmVlbiBkaXNtaXNzZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gVGhlIG5hbWUgaXMgbm90IGBoaWRlYCBiZWNhdXNlIGFscmVhZHkgaGFzIGEgbWV0aG9kIGBoaWRlYC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBkcm9wZG93bkhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBhZGRpdGlvbiBvZiBhIG5ldyB2YWx1ZVxuICAgdG8gdGhlIGRyb3Bkb3duIHNvdXJjZSBsaXN0LlxuXG5UaGUgZXZlbnQncyBgZGV0YWlsYCBwcm9wZXJ0eSBjb250YWlucyB0aGUgbmV3IHZhbHVlLlxuXG5UaGUgZHJvcGRvd24gX2RvZXMgbm90XyBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IHZhbHVlIHRvIHRoZSBzb3VyY2UgbGlzdC4gQHZlZ2FWZXJzaW9uIDEuMTQuMFxuICAgKi9cbiAgdmVnYUNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbHVlXG4gICB0byB0aGUgZHJvcGRvd24gc291cmNlIGxpc3QuXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBuZXcgdmFsdWUuXG5cblRoZSBkcm9wZG93biBfZG9lcyBub3RfIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgdmFsdWUgdG8gdGhlIHNvdXJjZSBsaXN0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCBpbiB0aGUgZHJvcGRvd24sXG4gICBidXQgb25seSBpZiBgdXNlRGVmYXVsdEZpbHRlcmAgaXMgc2V0IHRvIGBmYWxzZWAuIEB2ZWdhVmVyc2lvbiAxLjI0LjBcbiAgICovXG4gIHZlZ2FTZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggZXZlbnQgaW4gdGhlIGRyb3Bkb3duLFxuICAgYnV0IG9ubHkgaWYgYHVzZURlZmF1bHRGaWx0ZXJgIGlzIHNldCB0byBgZmFsc2VgLiBUaGUgbmFtZSBpcyBub3QgYHNlYXJjaGAgYmVjYXVzZSBhbHJlYWR5IGhhcyBhIG1ldGhvZCBgc2VhcmNoYC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBkcm9wZG93blNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCB0cmlnZ2VyZWQgd2l0aGluIHRoZSBkcm9wZG93bixcbiAgIGJ1dCBvbmx5IGlmIGB1c2VEZWZhdWx0RmlsdGVyYCBpcyBzZXQgdG8gYGZhbHNlYC5cblVubGlrZSB0aGUgVmVnYXNlYXJjaCBldmVudCwgdGhpcyBldmVudCBpbmNsdWRlcyB0aGUgZGV0YWlscyBvZiB0aGUgdXNlciB3aG8gdHJpZ2dlcmVkIGl0LlxuSXQgY2FuIGJlIHRyaWdnZXJlZCBpbiB0d28gd2F5czogYnkgcHJlc3NpbmcgXCJFbnRlclwiIG9yIHRocm91Z2ggdXNlciBpbnB1dC4gQHZlZ2FWZXJzaW9uIDIuMzAuMFxuICAgKi9cbiAgdmVnYVNlYXJjaFRyaWdnZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYURyb3Bkb3duVmVnYURyb3Bkb3duU2VhcmNoVHJpZ2dlckV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VhcmNoIGV2ZW50IHRyaWdnZXJlZCB3aXRoaW4gdGhlIGRyb3Bkb3duLFxuICAgYnV0IG9ubHkgaWYgYHVzZURlZmF1bHRGaWx0ZXJgIGlzIHNldCB0byBgZmFsc2VgLlxuVW5saWtlIHRoZSBWZWdhc2VhcmNoIGV2ZW50LCB0aGlzIGV2ZW50IGluY2x1ZGVzIHRoZSBkZXRhaWxzIG9mIHRoZSB1c2VyIHdobyB0cmlnZ2VyZWQgaXQuXG5JdCBjYW4gYmUgdHJpZ2dlcmVkIGluIHR3byB3YXlzOiBieSBwcmVzc2luZyBcIkVudGVyXCIgb3IgdGhyb3VnaCB1c2VyIGlucHV0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4zMC4wXG4gICAqL1xuICBzZWFyY2hUcmlnZ2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FEcm9wZG93blZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2Nhc2VTZW5zaXRpdmUnLCAnZHluYW1pY09wdGlvbicsICdpc0xhenlMb2FkaW5nJywgJ2lzTG9hZGluZycsICdpdGVtRGlzcGxheVJ1bGUnLCAnbWF0Y2hDb250YWluZXJIZWlnaHQnLCAnbWF0Y2hUYXJnZXRXaWR0aCcsICdtYXhIZWlnaHQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdwcmVmaXhJY29uU2xvdCcsICdzZWFyY2hUcmlnZ2VyQnknLCAnc2VhcmNoYWJsZScsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkU291cmNlS2V5JywgJ3NpemUnLCAnc291cmNlJywgJ3RyYW5zbG9jYXRpb24nLCAndHJpZ2dlcicsICd1c2VEZWZhdWx0RmlsdGVyJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3NlYXJjaCcsICdjbGVhclNlbGVjdGlvbicsICdnZXRTZWxlY3Rpb24nLCAnc2V0U2VsZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnY2FzZVNlbnNpdGl2ZScsICdkeW5hbWljT3B0aW9uJywgJ2lzTGF6eUxvYWRpbmcnLCAnaXNMb2FkaW5nJywgJ2l0ZW1EaXNwbGF5UnVsZScsICdtYXRjaENvbnRhaW5lckhlaWdodCcsICdtYXRjaFRhcmdldFdpZHRoJywgJ21heEhlaWdodCcsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3ByZWZpeEljb25TbG90JywgJ3NlYXJjaFRyaWdnZXJCeScsICdzZWFyY2hhYmxlJywgJ3NlbGVjdFR5cGUnLCAnc2VsZWN0ZWRTb3VyY2VLZXknLCAnc2l6ZScsICdzb3VyY2UnLCAndHJhbnNsb2NhdGlvbicsICd0cmlnZ2VyJywgJ3VzZURlZmF1bHRGaWx0ZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhRHJvcGRvd25DbGljaycsICdkcm9wZG93bkNsaWNrJywgJ3ZlZ2FTaG93JywgJ2Ryb3Bkb3duU2hvdycsICd2ZWdhSGlkZScsICdkcm9wZG93bkhpZGUnLCAndmVnYUNyZWF0ZScsICdjcmVhdGUnLCAndmVnYVNlYXJjaCcsICdkcm9wZG93blNlYXJjaCcsICd2ZWdhU2VhcmNoVHJpZ2dlcicsICdzZWFyY2hUcmlnZ2VyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEcm9wZG93bkNvbnRlbnRCb3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEcm9wZG93bkNvbnRlbnRCb3gge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRyb3Bkb3duLWNvbnRlbnQtYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYURyb3Bkb3duQ29udGVudEJveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEcm9wZG93bkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRHJvcGRvd25Hcm91cCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RpdmlkZScsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kcm9wZG93bi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGl2aWRlJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURyb3Bkb3duR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FEcm9wZG93bkl0ZW1DbGlja0V2ZW50IGFzIElWZWdhRHJvcGRvd25JdGVtVmVnYURyb3Bkb3duSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtZHJvcGRvd24vdmVnYS1kcm9wZG93bi1pdGVtL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRHJvcGRvd25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRHJvcGRvd25JdGVtIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBkcm9wZG93biBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAxLjQ3LjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRHJvcGRvd25JdGVtVmVnYURyb3Bkb3duSXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBkcm9wZG93biBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYURyb3Bkb3duSXRlbVZlZ2FEcm9wZG93bkl0ZW1DbGlja0V2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb3VudCcsICdkYW5nZXInLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2l0ZW1LZXknLCAnbGFiZWwnLCAncHJlZml4SWNvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kcm9wZG93bi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb3VudCcsICdkYW5nZXInLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2l0ZW1LZXknLCAnbGFiZWwnLCAncHJlZml4SWNvbiddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEcm9wZG93bkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZpZWxkRXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGaWVsZEVycm9yIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1maWVsZC1lcnJvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGaWVsZEVycm9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZpZWxkTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGaWVsZExhYmVsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGZpZWxkIGxhYmVsIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAxLjQzLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgc3VmZml4IGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGxhYmVsIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FMYWJlbEJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBzdWZmaXggYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbGFiZWwgaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgbGFiZWxCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaXNGaWVsZFJlcXVpcmVkJywgJ2xhYmVsJywgJ3N1ZmZpeEJ1dHRvblByb3BzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZpZWxkLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpc0ZpZWxkUmVxdWlyZWQnLCAnbGFiZWwnLCAnc3VmZml4QnV0dG9uUHJvcHMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRmllbGRMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICd2ZWdhTGFiZWxCdXR0b25DbGljaycsICdsYWJlbEJ1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYUZpbGVVcGxvYWRlckZpbGVzIGFzIElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGVzIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWZpbGUtdXBsb2FkZXIvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBWZWdhRmlsZVVwbG9hZGVyRmlsZSBhcyBJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWZpbGUtdXBsb2FkZXIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FGaWxlVXBsb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGaWxlVXBsb2FkZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSBjaGFuZ2UgaW4gdGhlIGZpbGUgbGlzdC4gQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGVzPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNoYW5nZSBpbiB0aGUgZmlsZSBsaXN0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yNS4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlcz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSBmaWxlIHNlbGVjdGlvbiBjaGFuZ2UuIEJ5IGRlZmF1bHQsIHRoZSBjb21wb25lbnQgdmFsdWVcbiAgaXMgdXBkYXRlZCwgYnV0IHRoaXMgYmVoYXZpb3IgY2FuIGJlIHByZXZlbnRlZC4gQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgdmVnYVNlbGVjdGVkRmlsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGVzPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGZpbGUgc2VsZWN0aW9uIGNoYW5nZS4gQnkgZGVmYXVsdCwgdGhlIGNvbXBvbmVudCB2YWx1ZVxuICBpcyB1cGRhdGVkLCBidXQgdGhpcyBiZWhhdmlvciBjYW4gYmUgcHJldmVudGVkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yNS4wXG4gICAqL1xuICBzZWxlY3RlZEZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlcz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIHNlbGVjdGVkIGZpbGUgd2lsbCBiZSByZW1vdmVkLiBCeSBkZWZhdWx0LCB0aGUgY29tcG9uZW50IHZhbHVlXG4gIGlzIHVwZGF0ZWQsIGJ1dCB0aGlzIGJlaGF2aW9yIGNhbiBiZSBwcmV2ZW50ZWQuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgc2VsZWN0ZWQgZmlsZSB3aWxsIGJlIHJlbW92ZWQuIEJ5IGRlZmF1bHQsIHRoZSBjb21wb25lbnQgdmFsdWVcbiAgaXMgdXBkYXRlZCwgYnV0IHRoaXMgYmVoYXZpb3IgY2FuIGJlIHByZXZlbnRlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgcmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGZpbGUgd2lsbCBiZSByZS11cGxvYWRlZC4gQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgdmVnYVJldHJ5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGZpbGUgd2lsbCBiZSByZS11cGxvYWRlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgcmV0cnk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgZmlsZSB3aWxsIGJlIG9wZW5lZCBmb3IgcHJldmlldy4gQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgdmVnYVByZXZpZXc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgZmlsZSB3aWxsIGJlIG9wZW5lZCBmb3IgcHJldmlldy4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgcHJldmlldzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZmlsZS11cGxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGaWxlVXBsb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhU2VsZWN0ZWRGaWxlQ2hhbmdlJywgJ3NlbGVjdGVkRmlsZUNoYW5nZScsICd2ZWdhUmVtb3ZlJywgJ3JlbW92ZScsICd2ZWdhUmV0cnknLCAncmV0cnknLCAndmVnYVByZXZpZXcnLCAncHJldmlldyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRmxleCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZsZXgge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnbkl0ZW1zJywgJ2JyZWFrcG9pbnQnLCAnZGlyZWN0aW9uJywgJ2ZsZXgnLCAnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnLCAnZmxleFdyYXAnLCAnZ2FwJywgJ2p1c3RpZnlDb250ZW50JywgJ21hcmdpbicsICd1c2VOYXRpdmVGbGV4J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZsZXgnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsaWduSXRlbXMnLCAnYnJlYWtwb2ludCcsICdkaXJlY3Rpb24nLCAnZmxleCcsICdmbGV4QmFzaXMnLCAnZmxleEdyb3cnLCAnZmxleFNocmluaycsICdmbGV4V3JhcCcsICdnYXAnLCAnanVzdGlmeUNvbnRlbnQnLCAnbWFyZ2luJywgJ3VzZU5hdGl2ZUZsZXgnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRmxleCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FGb250IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRm9udCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FzJywgJ2NvbG9yJywgJ2Rpc2FibGVSZXNwb25zaXZlJywgJ3RleHRBbGlnbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZvbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FzJywgJ2NvbG9yJywgJ2Rpc2FibGVSZXNwb25zaXZlJywgJ3RleHRBbGlnbicsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUZvbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRm9ybSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZvcm0ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIEB2ZWdhVmVyc2lvbiAxLjkuMVxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgdmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc3VibWlzc2lvbiBvZiB0aGUgZm9ybS4gQHZlZ2FWZXJzaW9uIDEuMjQuMFxuICAgKi9cbiAgdmVnYUZvcm1TdWJtaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmtub3duPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc3VibWlzc2lvbiBvZiB0aGUgZm9ybS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBmb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5rbm93bj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlc2V0IG9mIHRoZSBmb3JtLiBAdmVnYVZlcnNpb24gMS4yNC4wXG4gICAqL1xuICB2ZWdhRm9ybVJlc2V0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVzZXQgb2YgdGhlIGZvcm0uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZm9ybVJlc2V0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpc1RvdWNoZWQnLCAnaXNWYWxpZCddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJywgJ2dldFZhbHVlJywgJ3NldFZhbHVlJywgJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZvcm0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2lzVG91Y2hlZCcsICdpc1ZhbGlkJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhVmFsaWRhdGUnLCAndmFsaWRhdGUnLCAndmVnYUZvcm1TdWJtaXQnLCAnZm9ybVN1Ym1pdCcsICd2ZWdhRm9ybVJlc2V0JywgJ2Zvcm1SZXNldCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhR3JpZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUdyaWQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2x1bW4nLCAnZ2FwJywgJ3JvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2x1bW4nLCAnZ2FwJywgJ3JvdyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUhpbnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FIaW50IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1oaW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYUhpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSWNvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUljb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xvcicsICdpY29uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FGaWxlT3B0aW9uYWwgYXMgSVZlZ2FJbWFnZVVwbG9hZGVyVmVnYUZpbGVPcHRpb25hbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1pbWFnZS11cGxvYWRlci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUltYWdlVXBsb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbWFnZVVwbG9hZGVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAdmVnYVZlcnNpb24gMS4xNC4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbWFnZVVwbG9hZGVyVmVnYUZpbGVPcHRpb25hbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVtb3ZhbCBvZiBhIHZhbHVlLiBAdmVnYVZlcnNpb24gMS4xNC4wXG4gICAqL1xuICB2ZWdhUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVtb3ZhbCBvZiBhIHZhbHVlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNhbmNlbGxhdGlvbiBvZiBhbiB1cGxvYWRpbmcgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjE0LjBcbiAgICovXG4gIHZlZ2FDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSByZW1vdmFsIG9mIGEgdmFsdWUuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYWN0aW9uU3ViVGl0bGUnLCAnYWN0aW9uVGl0bGUnLCAnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaG93UHJldmlld0J1dHRvbicsICdzaG93UmVtb3ZlQnV0dG9uJywgJ3Nob3dSZXBsYWNlQnV0dG9uJywgJ3N0YXR1cycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAnd2lkdGgnXSxcbiAgbWV0aG9kczogWydnZXRDb250ZW50VVJMJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWltYWdlLXVwbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYWN0aW9uU3ViVGl0bGUnLCAnYWN0aW9uVGl0bGUnLCAnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaG93UHJldmlld0J1dHRvbicsICdzaG93UmVtb3ZlQnV0dG9uJywgJ3Nob3dSZXBsYWNlQnV0dG9uJywgJ3N0YXR1cycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAnd2lkdGgnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW1hZ2VVcGxvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FSZW1vdmUnLCAncmVtb3ZlJywgJ3ZlZ2FDYW5jZWwnLCAnY2FuY2VsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBibHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZm9jdXMgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQuIEB2ZWdhVmVyc2lvbiAxLjEyLjBcbiAgICovXG4gIHZlZ2FGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBzdWZmaXggYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbGFiZWwgaGFzIGJlZW4gY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgdmVnYUxhYmVsQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIHN1ZmZpeCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBsYWJlbCBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yNS4wXG4gICAqL1xuICBsYWJlbEJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdhdXRvY29tcGxldGUnLCAnZGlzYWJsZUNvcHlQYXN0ZScsICdkaXNhYmxlZCcsICdlbWFpbCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxTdWZmaXhCdXR0b25Qcm9wcycsICdtYXNrQ29uZmlnJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFySWNvbicsICdzaXplJywgJ3R5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZhbHVlVXBkYXRlVHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ2RvRm9jdXMnLCAnZG9CbHVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdhdXRvY29tcGxldGUnLCAnZGlzYWJsZUNvcHlQYXN0ZScsICdkaXNhYmxlZCcsICdlbWFpbCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxTdWZmaXhCdXR0b25Qcm9wcycsICdtYXNrQ29uZmlnJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFySWNvbicsICdzaXplJywgJ3R5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZhbHVlVXBkYXRlVHJpZ2dlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FCbHVyJywgJ2JsdXInLCAndmVnYUZvY3VzJywgJ2ZvY3VzJywgJ3ZlZ2FMYWJlbEJ1dHRvbkNsaWNrJywgJ2xhYmVsQnV0dG9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUlucHV0Q3JlZGl0Q2FyZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0Q3JlZGl0Q2FyZCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDEuMjYuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQSBuYXRpdmUgY2hhbmdlIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGNyZWRpdCBjYXJkIGVsZW1lbnQuIEB2ZWdhVmVyc2lvbiAxLjI2LjBcbiAgICovXG4gIHZlZ2FCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBldmVudCBvZiB0aGUgY3JlZGl0IGNhcmQgZWxlbWVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBibHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZm9jdXMgb2YgdGhlIGNyZWRpdCBjYXJkIGVsZW1lbnQuIEB2ZWdhVmVyc2lvbiAxLjI2LjBcbiAgICovXG4gIHZlZ2FGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBjcmVkaXQgY2FyZCBlbGVtZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaWRlQ2FyZE51bWJlck9uQmx1cicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaW5wdXQtY3JlZGl0LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpZGVDYXJkTnVtYmVyT25CbHVyJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dENyZWRpdENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhQmx1cicsICdibHVyJywgJ3ZlZ2FGb2N1cycsICdmb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXROdW1lcmljIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW5wdXROdW1lcmljIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAdmVnYVZlcnNpb24gMi4yOS4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjkuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2ludGVnZXJPbmx5JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWFqb3JJbmNyZW1lbnQnLCAnbWlub3JJbmNyZW1lbnQnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdwcmVmaXhUZXh0JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3VmZml4VGV4dCcsICd0aG91c2FuZENvbW1hJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1udW1lcmljJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2ludGVnZXJPbmx5JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWFqb3JJbmNyZW1lbnQnLCAnbWlub3JJbmNyZW1lbnQnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdwcmVmaXhUZXh0JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3VmZml4VGV4dCcsICd0aG91c2FuZENvbW1hJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dE51bWVyaWMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FDb3VudHJ5VHlwZSBhcyBJVmVnYUlucHV0UGhvbmVOdW1iZXJWZWdhQ291bnRyeVR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW5wdXQtcGhvbmUtbnVtYmVyL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXRQaG9uZU51bWJlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0UGhvbmVOdW1iZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAyLjE4LjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xOC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgY291bnRyeSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAyLjE4LjBcbiAgICovXG4gIHZlZ2FDb3VudHJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFBob25lTnVtYmVyVmVnYUNvdW50cnlUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNvdW50cnkgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xOC4wXG4gICAqL1xuICBjb3VudHJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFBob25lTnVtYmVyVmVnYUNvdW50cnlUeXBlPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGxvd2VkQ291bnRyeUNvZGVzJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2NvdW50cnlDb2RlJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1waG9uZS1udW1iZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsbG93ZWRDb3VudHJ5Q29kZXMnLCAnYXV0b1ZhbGlkYXRpb24nLCAnY291bnRyeUNvZGUnLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0UGhvbmVOdW1iZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhQ291bnRyeUNoYW5nZScsICdjb3VudHJ5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW5wdXRSYW5nZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDIuMi4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8W251bWJlciwgbnVtYmVyXT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjIuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8W251bWJlciwgbnVtYmVyXT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzaG93Q2xlYXJJY29uJywgJ3NpemUnLCAnc3RhY2snLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0LXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckljb24nLCAnc2l6ZScsICdzdGFjaycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXRSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU2VsZWN0VmFsdWVUeXBlIGFzIElWZWdhSW5wdXRTZWxlY3RTZWxlY3RWYWx1ZVR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW5wdXQtc2VsZWN0L3R5cGVzJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0VHlwZSBhcyBJVmVnYUlucHV0U2VsZWN0U2VsZWN0VHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1pbnB1dC1zZWxlY3QvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBWZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWwgYXMgSVZlZ2FJbnB1dFNlbGVjdFZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1kcm9wZG93bi90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUlucHV0U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW5wdXRTZWxlY3Qge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBvZiB0aGUgc2VsZWN0IHZhbHVlLiBAdmVnYVZlcnNpb24gMS4wLjExXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFZhbHVlVHlwZTxJVmVnYUlucHV0U2VsZWN0U2VsZWN0VHlwZT4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlIHNlbGVjdCB2YWx1ZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUlucHV0U2VsZWN0U2VsZWN0VmFsdWVUeXBlPElWZWdhSW5wdXRTZWxlY3RTZWxlY3RUeXBlPj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBvZiB0aGUgZHJvcGRvd24uIEB2ZWdhVmVyc2lvbiAxLjUwLjBcbiAgICovXG4gIHZlZ2FTZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggb2YgdGhlIGRyb3Bkb3duLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCB0cmlnZ2VyZWQgd2l0aGluIHRoZSBkcm9wZG93bixcbiAgIGJ1dCBvbmx5IGlmIGB1c2VEZWZhdWx0RmlsdGVyYCBpcyBzZXQgdG8gYGZhbHNlYC5cblVubGlrZSB0aGUgVmVnYXNlYXJjaCBldmVudCwgdGhpcyBldmVudCBpbmNsdWRlcyB0aGUgZGV0YWlscyBvZiB0aGUgdXNlciB3aG8gdHJpZ2dlcmVkIGl0LlxuSXQgY2FuIGJlIHRyaWdnZXJlZCBpbiB0d28gd2F5czogYnkgcHJlc3NpbmcgXCJFbnRlclwiIG9yIHRocm91Z2ggdXNlciBpbnB1dC4gQHZlZ2FWZXJzaW9uIDIuMzAuMFxuICAgKi9cbiAgdmVnYVNlYXJjaFRyaWdnZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUlucHV0U2VsZWN0VmVnYURyb3Bkb3duU2VhcmNoVHJpZ2dlckV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VhcmNoIGV2ZW50IHRyaWdnZXJlZCB3aXRoaW4gdGhlIGRyb3Bkb3duLFxuVW5saWtlIHRoZSBWZWdhc2VhcmNoIGV2ZW50LCB0aGlzIGV2ZW50IGluY2x1ZGVzIHRoZSBkZXRhaWxzIG9mIHRoZSB1c2VyIHdobyB0cmlnZ2VyZWQgaXQuXG5JdCBjYW4gYmUgdHJpZ2dlcmVkIGluIHR3byB3YXlzOiBieSBwcmVzc2luZyBcIkVudGVyXCIgb3IgdGhyb3VnaCB1c2VyIGlucHV0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4zMC4wXG4gICAqL1xuICBzZWFyY2hUcmlnZ2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFNlbGVjdFZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgaW5wdXQtc2VsZWN0IGhhcyBiZWVuIG9wZW5lZCxcbiAgIGVpdGhlciBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gX19WRUdBX1ZFUlNJT05fX1xuICAgKi9cbiAgdmVnYVNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGlucHV0LXNlbGVjdCBoYXMgYmVlbiBkaXNtaXNzZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIF9fVkVHQV9WRVJTSU9OX19cbiAgICovXG4gIHZlZ2FIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkTGFiZWwnLCAnc2l6ZScsICdzb3VyY2UnLCAnc291cmNlTGF6eUxvYWRDYWxsYmFjaycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXSxcbiAgbWV0aG9kczogWydkb0Nsb3NlJywgJ2RvT3BlbicsICdkb0NoYW5nZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAnc2VsZWN0ZWRMYWJlbCcsICdzaXplJywgJ3NvdXJjZScsICdzb3VyY2VMYXp5TG9hZENhbGxiYWNrJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2ZWdhRHJvcGRvd25Qcm9wcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FTZWFyY2gnLCAnc2VhcmNoJywgJ3ZlZ2FTZWFyY2hUcmlnZ2VyJywgJ3NlYXJjaFRyaWdnZXInLCAndmVnYVNob3cnLCAndmVnYUhpZGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUl0ZW1Ub2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJdGVtVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFuIGl0ZW0gdG9nZ2xlIGV2ZW50LiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FUb2dnbGVTdGF0dXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhbiBpdGVtIHRvZ2dsZSBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICB0b2dnbGVTdGF0dXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpc1RvZ2dsZWQnLCAnaXRlbVRvZ2dsZVN0YXR1c01hcCcsICdzdGF0dXNNYXAnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaXRlbS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2lzVG9nZ2xlZCcsICdpdGVtVG9nZ2xlU3RhdHVzTWFwJywgJ3N0YXR1c01hcCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJdGVtVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVRvZ2dsZVN0YXR1cycsICd0b2dnbGVTdGF0dXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxlZnROYXYgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGxlZnQtbmF2J3Mgb3BlbiBzdGF0ZSBoYXMgY2hhbmdlZC4gQHZlZ2FWZXJzaW9uIDEuMzEuMFxuICAgKi9cbiAgdmVnYVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBsZWZ0LW5hdidzIG9wZW4gc3RhdGUgaGFzIGNoYW5nZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgc3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9Db2xsYXBzZUdyb3VwcycsICdhdXRvQ29sbGFwc2VPbk92ZXJsYXknLCAnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW4nLCAnc2hvd0FzT3ZlcmxheScsICdzb3VyY2UnXSxcbiAgbWV0aG9kczogWyd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGVmdC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9Db2xsYXBzZUdyb3VwcycsICdhdXRvQ29sbGFwc2VPbk92ZXJsYXknLCAnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW4nLCAnc2hvd0FzT3ZlcmxheScsICdzb3VyY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FTdGF0ZVVwZGF0ZScsICdzdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGVmdE5hdkdyb3VwIHtcbiAgLyoqXG4gICAqIGV2ZW50IGVtaXR0ZXIgdXNlZCBmb3Igbm90aWZ5aW5nIGNvbnN1bWVycyB0aGUgY2xpY2sgZXZlbnQgKiBAdmVnYVZlcnNpb24gMS40MS4wXG4gICAqL1xuICB2ZWdhR3JvdXBDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciB1c2VkIGZvciBub3RpZnlpbmcgY29uc3VtZXJzIHRoZSBjbGljayBldmVudCBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGdyb3VwQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGVmdC1uYXYtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUdyb3VwQ2xpY2snLCAnZ3JvdXBDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdkxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2TGluayB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbGluayBjbGljayBldmVudC4gKiBAdmVnYVZlcnNpb24gMS4zMS4wXG4gICAqL1xuICB2ZWdhTWVudUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbGluayBjbGljayBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBtZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvdW50ZXJCYWRnZScsICdpY29uJywgJ3NlbGVjdGVkJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sZWZ0LW5hdi1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb3VudGVyQmFkZ2UnLCAnaWNvbicsICdzZWxlY3RlZCcsICd1cmwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdkxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhTWVudUNsaWNrJywgJ21lbnVDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdlNlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2U2VjdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYWN0aW9uIGNsaWNrIGV2ZW50IHdoZW4gdGhlIGFjdGlvbiBsaW5rIGlzIG5vdCBjb25maWd1cmVkLiBAdmVnYVZlcnNpb24gMi4xMS4wXG4gICAqL1xuICB2ZWdhQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBhY3Rpb24gY2xpY2sgZXZlbnQgd2hlbiB0aGUgYWN0aW9uIGxpbmsgaXMgbm90IGNvbmZpZ3VyZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjExLjBcbiAgICovXG4gIGFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzZWN0aW9uSGVhZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2LXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3NlY3Rpb25IZWFkZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdlNlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQWN0aW9uQ2xpY2snLCAnYWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxpbmVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxpbmVDaGFydCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ29wdGlvbnMnXSxcbiAgbWV0aG9kczogWydyZVJlbmRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1saW5lLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUxpbmVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMb2FkZXJXcmFwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTG9hZGVyV3JhcHBlciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbG9hZGVyLXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhTG9hZGVyV3JhcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMb2FkaW5nSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTG9hZGluZ0luZGljYXRvciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2hpbnQnLCAnbGFiZWwnLCAnbW9kZScsICdwZXJjZW50JywgJ3NoYXBlJywgJ3NpemUnLCAnc3RhdHVzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxvYWRpbmctaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydoaW50JywgJ2xhYmVsJywgJ21vZGUnLCAncGVyY2VudCcsICdzaGFwZScsICdzaXplJywgJ3N0YXR1cyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMb2FkaW5nSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYU1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTW9kYWwge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIG1vZGFsIGNsb3NlIGV2ZW50LiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBtb2RhbCBjbG9zZSBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIG1vZGFsIG9wZW4gZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjAuMTBcbiAgICovXG4gIHZlZ2FPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbW9kYWwgb3BlbiBldmVudC4gVGhlIGV2ZW50IG5hbWUgaXMgbm90IGBvcGVuYCBiZWNhdXNlIGFscmVhZHkgaGFzIGEgcHJvcGVydHkgYG9wZW5gIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgbW9kYWxPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BDb2xvcicsICdjb250ZW50TWF4SGVpZ2h0JywgJ2hhbmRsZUNsb3NlJywgJ2lzVmVydGljYWxseUNlbnRlcicsICdpc1ZlcnRpY2FsbHlDZW50ZXJlZCcsICdtb2RhbFRpdGxlJywgJ29wZW4nLCAncGFkZGluZycsICdzaG93Q2xvc2VCdXR0b24nLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ21vZGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BDb2xvcicsICdjb250ZW50TWF4SGVpZ2h0JywgJ2hhbmRsZUNsb3NlJywgJ2lzVmVydGljYWxseUNlbnRlcicsICdpc1ZlcnRpY2FsbHlDZW50ZXJlZCcsICdtb2RhbFRpdGxlJywgJ29wZW4nLCAncGFkZGluZycsICdzaG93Q2xvc2VCdXR0b24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbG9zZScsICdjbG9zZScsICd2ZWdhT3BlbicsICdtb2RhbE9wZW4nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYU5hdkNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FOYXZDYXJkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnbWF4SGVpZ2h0JywgJ3NvdXJjZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1uYXYtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbWF4SGVpZ2h0JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FOYXZDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVBhZ2VOb3RpZmljYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FQYWdlTm90aWZpY2F0aW9uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWN0aW9uQnV0dG9ucycsICdkdXJhdGlvbicsICdtZXNzYWdlJywgJ25vdGlmaWNhdGlvblRpdGxlJywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcGFnZS1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FjdGlvbkJ1dHRvbnMnLCAnZHVyYXRpb24nLCAnbWVzc2FnZScsICdub3RpZmljYXRpb25UaXRsZScsICdzaG93Q2xvc2VCdXR0b24nLCAndHlwZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQYWdlTm90aWZpY2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVBhZ2VOb3RpZmljYXRpb25MaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnZU5vdGlmaWNhdGlvbkxpc3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBhZ2Utbm90aWZpY2F0aW9uLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhUGFnZU5vdGlmaWNhdGlvbkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBhZ2luYXRpb24ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGN1cnJlbnQgcGFnZSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGN1cnJlbnQgcGFnZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNoYW5nZSBpbiB0aGUgbnVtYmVyIG9mXG4gICBkYXRhIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZS4gQHZlZ2FWZXJzaW9uIDEuMjUuMFxuICAgKi9cbiAgdmVnYVBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNoYW5nZSBpbiB0aGUgbnVtYmVyIG9mXG4gICBkYXRhIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBwYWdlU2l6ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY3VycmVudCcsICdleHRlbnNpb25zJywgJ3BhZ2VTaXplJywgJ3BhZ2VTaXplU2VsZWN0b3JPcHRpb25zJywgJ3RvdGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnLCAnZXh0ZW5zaW9ucycsICdwYWdlU2l6ZScsICdwYWdlU2l6ZVNlbGVjdG9yT3B0aW9ucycsICd0b3RhbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYVBhZ2VTaXplQ2hhbmdlJywgJ3BhZ2VTaXplQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQaWVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBpZUNoYXJ0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddLFxuICBtZXRob2RzOiBbJ3JlUmVuZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBpZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQaWVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcG9wb3ZlciBzaG93IGV2ZW50LiBAdmVnYVZlcnNpb24gMS4yMi4wXG4gICAqL1xuICB2ZWdhUG9wb3ZlclNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBwb3BvdmVyIHNob3cgZXZlbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgcG9wb3ZlclNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBwb3BvdmVyIGhpZGUgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjIyLjBcbiAgICovXG4gIHZlZ2FQb3BvdmVySGlkZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHBvcG92ZXIgaGlkZSBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBwb3BvdmVySGlkZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2hvd0Fycm93JywgJ3NpemUnLCAndHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1wb3BvdmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaG93QXJyb3cnLCAnc2l6ZScsICd0cmlnZ2VyJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVBvcG92ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhUG9wb3ZlclNob3cnLCAncG9wb3ZlclNob3cnLCAndmVnYVBvcG92ZXJIaWRlJywgJ3BvcG92ZXJIaWRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQb3BvdmVyQ29udGVudEJveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBvcG92ZXJDb250ZW50Qm94IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnc2hvd0Fycm93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBvcG92ZXItY29udGVudC1ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3Nob3dBcnJvdyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQb3BvdmVyQ29udGVudEJveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQcm9ncmVzc1RyYWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FQcm9ncmVzc1RyYWNrZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgY3VycmVudCBzdGVwIGhhcyBjaGFuZ2VkLiBAdmVnYVZlcnNpb24gMS41LjBcbiAgICovXG4gIHZlZ2FDdXJyZW50U3RlcFVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgY3VycmVudCBzdGVwIGhhcyBjaGFuZ2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGN1cnJlbnRTdGVwVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5DbGlja1N0ZXAnLCAnY29tcGxldGVkU3RlcEFycmF5JywgJ2NvbXBsZXRlZFN0ZXBzJywgJ2N1cnJlbnQnLCAnZGlyZWN0aW9uJywgJ3N0ZXBzJ10sXG4gIG1ldGhvZHM6IFsnbmV4dFN0ZXAnLCAncHJldlN0ZXAnLCAnc2V0Q3VycmVudCcsICdnZXRDdXJyZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXByb2dyZXNzLXRyYWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NhbkNsaWNrU3RlcCcsICdjb21wbGV0ZWRTdGVwQXJyYXknLCAnY29tcGxldGVkU3RlcHMnLCAnY3VycmVudCcsICdkaXJlY3Rpb24nLCAnc3RlcHMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUHJvZ3Jlc3NUcmFja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUN1cnJlbnRTdGVwVXBkYXRlJywgJ2N1cnJlbnRTdGVwVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuVmVnYVJhZGlvIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBldmVudCBvZiB0aGUgcmFkaW8gaW5wdXQuIEB2ZWdhVmVyc2lvbiAxLjAuN1xuICAgKi9cbiAgdmVnYUZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZm9jdXMgZXZlbnQgb2YgdGhlIHJhZGlvIGlucHV0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBldmVudCBvZiB0aGUgcmFkaW8gaW5wdXQuIEB2ZWdhVmVyc2lvbiAxLjAuN1xuICAgKi9cbiAgdmVnYUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBibHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIGluIHRoZSBjaGVjayBzdGF0dXNcbiAgIG9mIHRoZSByYWRpbyBpbnB1dC4gQHZlZ2FWZXJzaW9uIDEuMC4xMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIGNoZWNrIHN0YXR1c1xuICAgb2YgdGhlIHJhZGlvIGlucHV0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FGb2N1cycsICdmb2N1cycsICd2ZWdhQmx1cicsICdibHVyJywgJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FSYWRpb0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW9Hcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZVxuICAgY2hlY2tlZCByYWRpbyBidXR0b24gaW4gdGhlIHJhZGlvIGdyb3VwLiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZVxuICAgY2hlY2tlZCByYWRpbyBidXR0b24gaW4gdGhlIHJhZGlvIGdyb3VwLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FGbGV4UHJvcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1yYWRpby1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FGbGV4UHJvcCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FSYWRpb0dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNlY3Rpb25UaXRsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNlY3Rpb25UaXRsZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3RpdGxlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zZWN0aW9uLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdpY29uJywgJ2ljb25BbGlnbicsICd0aXRsZVRleHQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2VjdGlvblRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNlZ21lbnRDb250cm9sIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2VnbWVudENvbnRyb2wge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlc1xuICAgaW4gdGhlIHNlbGVjdGVkIHNlZ21lbnQuIEB2ZWdhVmVyc2lvbiAyLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQSBuYXRpdmUgZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlc1xuICAgaW4gdGhlIHNlbGVjdGVkIHNlZ21lbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjMuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydibG9jaycsICdzZWdtZW50cycsICdzZWxlY3RlZCcsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2VnbWVudC1jb250cm9sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydibG9jaycsICdzZWdtZW50cycsICdzZWxlY3RlZCcsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2VnbWVudENvbnRyb2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2VsZWN0aW9uQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNlbGVjdGlvbkNoaXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiBjaGlwLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAyLjIyLjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3Rpb24gY2hpcCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yMi4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWRUb29sdGlwJywgJ2xhYmVsJywgJ3NpemUnLCAnc3dhdGNoQ29sb3InLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zZWxlY3Rpb24tY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYmxvY2snLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdkaXNhYmxlZFRvb2x0aXAnLCAnbGFiZWwnLCAnc2l6ZScsICdzd2F0Y2hDb2xvcicsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNlbGVjdGlvbkNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2VsZWN0aW9uQ2hpcEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2VsZWN0aW9uQ2hpcEdyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3Rpb24gY2hpcCBncm91cCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gMi4yMi4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGNoaXAgZ3JvdXAsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjIuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2VsZWN0VHlwZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2VsZWN0aW9uLWNoaXAtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzZWxlY3RUeXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTZWxlY3Rpb25DaGlwR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2VsZWN0aW9uVGlsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNlbGVjdGlvblRpbGUge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiB0aWxlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAyLjcuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiB0aWxlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjcuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25vdGUnLCAncHJlZml4SWNvbicsICdzZWxlY3RUeXBlJywgJ3RpdGxlVGV4dCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zZWxlY3Rpb24tdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdub3RlJywgJ3ByZWZpeEljb24nLCAnc2VsZWN0VHlwZScsICd0aXRsZVRleHQnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2VsZWN0aW9uVGlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTZWxlY3Rpb25UaWxlR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTZWxlY3Rpb25UaWxlR3JvdXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiB0aWxlIGdyb3VwLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAyLjcuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiB0aWxlIGdyb3VwLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjcuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbGF5b3V0JywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNlbGVjdGlvbi10aWxlLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbGF5b3V0JywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNlbGVjdGlvblRpbGVHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWRlbmF2IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lkZW5hdiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY29tcGxldGlvbiBvZiBhIG5hdmlnYXRpb24gbWVudSBzdGF0ZSBjaGFuZ2UgKG9wZW4gb3IgY2xvc2UpLiBAdmVnYVZlcnNpb24gMSwgdjIuMjkuMFxuICAgKi9cbiAgdmVnYVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY29tcGxldGlvbiBvZiBhIG5hdmlnYXRpb24gbWVudSBzdGF0ZSBjaGFuZ2UgKG9wZW4gb3IgY2xvc2UpLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMSwgdjIuMjkuMFxuICAgKi9cbiAgc3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Zvb3Rub3RlJywgJ2hlYWRlckNvbmZpZycsICdvcGVuQnlEZWZhdWx0JywgJ3NvdXJjZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zaWRlbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydmb290bm90ZScsICdoZWFkZXJDb25maWcnLCAnb3BlbkJ5RGVmYXVsdCcsICdzb3VyY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2lkZW5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FTdGF0ZVVwZGF0ZScsICdzdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2lkZW5hdkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lkZW5hdkdyb3VwIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zaWRlbmF2LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNpZGVuYXZHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWRlbmF2TGluayBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNpZGVuYXZMaW5rIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFib3V0IHRoZSBvY2N1cnJlbmNlIG9mIGEgY2xpY2sgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLCB2Mi4yOS4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFib3V0IHRoZSBvY2N1cnJlbmNlIG9mIGEgY2xpY2sgZXZlbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAxLCB2Mi4yOS4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdzZWxlY3RlZCcsICdzaG93U2lkZUJhck9uQ2xpY2tMaW5rJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zaWRlbmF2LWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnc2VsZWN0ZWQnLCAnc2hvd1NpZGVCYXJPbkNsaWNrTGluaycsICd1cmwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2lkZW5hdkxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhU2lnbmF0dXJlVmFsdWUgYXMgSVZlZ2FTaWduYXR1cmVDYXB0dXJlVmVnYVNpZ25hdHVyZVZhbHVlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXNpZ25hdHVyZS1jYXB0dXJlL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2lnbmF0dXJlQ2FwdHVyZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNpZ25hdHVyZUNhcHR1cmUge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAyLjE5LjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVNpZ25hdHVyZUNhcHR1cmVWZWdhU2lnbmF0dXJlVmFsdWU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xOS4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVNpZ25hdHVyZUNhcHR1cmVWZWdhU2lnbmF0dXJlVmFsdWU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hlaWdodCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncGxhY2Vob2xkZXJJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckJ0bicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjbGVhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zaWduYXR1cmUtY2FwdHVyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwbGFjZWhvbGRlckljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFyQnRuJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTaWduYXR1cmVDYXB0dXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNrZWxldG9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2tlbGV0b24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdoZWlnaHQnLCAndHlwZScsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1za2VsZXRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnaGVpZ2h0JywgJ3R5cGUnLCAnd2lkdGgnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2tlbGV0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2xvdENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNsb3RDb250YWluZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNsb3QtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNsb3RDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYVN0ZXBwZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHN0ZXBwZXIgY29tcG9uZW50LiBAdmVnYVZlcnNpb24gMS4wLjhcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBzdGVwcGVyIGNvbXBvbmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2J1dHRvblZhcmlhbnQnLCAnZGlzYWJsZWQnLCAnaW5wdXREaXNhYmxlZCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnc3RlcHBlcklkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2J1dHRvblZhcmlhbnQnLCAnZGlzYWJsZWQnLCAnaW5wdXREaXNhYmxlZCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnc3RlcHBlcklkJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVN0ZXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFiR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJHcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSB0YWJcbiAgIGluIHRoZSB0YWIgZ3JvdXAuIEB2ZWdhVmVyc2lvbiAxLjEuMFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSB0YWJcbiAgIGluIHRoZSB0YWIgZ3JvdXAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2dhcCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2VsZWN0ZWRUYWJEYXRhVGFyZ2V0JywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0YWJJdGVtcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZ2FwJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzZWxlY3RlZFRhYkRhdGFUYXJnZXQnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3RhYkl0ZW1zJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYkdyb3VwUGFuZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJHcm91cFBhbmVsIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNBY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGFiLWdyb3VwLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc0FjdGl2ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJHcm91cFBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVDaGFuZ2VQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dFeHBhbmRFdmVudERldGFpbCBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93RXhwYW5kRXZlbnREZXRhaWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93U2VsZWN0UHJvcCBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93U2VsZWN0UHJvcCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVTZWxlY3RBbGxQcm9wIGFzIElWZWdhVGFibGVWZWdhVGFibGVTZWxlY3RBbGxQcm9wIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVJvd1NlbGVjdEV2ZW50RGV0YWlsIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RFdmVudERldGFpbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dTZWxlY3RBbGxFdmVudERldGFpbCBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93U2VsZWN0QWxsRXZlbnREZXRhaWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB0YWJsZSBkYXRhLiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHRhYmxlIGRhdGEuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZUNoYW5nZVByb3BUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSByb3dcbiAgIGluIHRoZSB0YWJsZS4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhUm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGEgcm93XG4gICBpbiB0aGUgdGFibGUuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGV4cGFuZGVkIGV2ZW50IG9mIGEgcm93XG4gICBpbiB0aGUgdGFibGUuIEB2ZWdhVmVyc2lvbiAyLjI0LjBcbiAgICovXG4gIHZlZ2FSb3dFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93RXhwYW5kRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBleHBhbmRlZCBldmVudCBvZiBhIHJvd1xuICAgaW4gdGhlIHRhYmxlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yNC4wXG4gICAqL1xuICByb3dFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93RXhwYW5kRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHdoZW4gdGhlIHJvdyBzZWxlY3Rpb24gY2hhbmdlcy4gQHZlZ2FWZXJzaW9uIDEuMTguMFxuICAgKi9cbiAgdmVnYVNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB3aGVuIHRoZSBzZWxlY3Rpb24gc3RhdGUgb2YgYWxsIHJvd3MgY2hhbmdlcy4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBzZWxlY3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93U2VsZWN0UHJvcD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgc2VsZWN0aW9uIG9mIGNoZWNrYm94ZXMsXG4gICBwYXJ0aWN1bGFybHkgdGhlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IGluIHRoZSB0YWJsZSBoZWFkZXIuIEB2ZWdhVmVyc2lvbiAxLjE4LjBcbiAgICovXG4gIHZlZ2FTZWxlY3RBbGxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlU2VsZWN0QWxsUHJvcD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgc2VsZWN0aW9uIG9mIGNoZWNrYm94ZXMsXG4gICBwYXJ0aWN1bGFybHkgdGhlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IGluIHRoZSB0YWJsZSBoZWFkZXIuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgc2VsZWN0QWxsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3A+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGJlZm9yZSB0aGUgc2VsZWN0ZWQgY2hhbmdlIHdoZW4gc2VsZWN0L2Rlc2VsZWN0IG9uZSByb3cgQHZlZ2FWZXJzaW9uIDIuMjMuMFxuICAgKi9cbiAgdmVnYVJvd1NlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYmVmb3JlIHRoZSBzZWxlY3RlZCBjaGFuZ2Ugd2hlbiBzZWxlY3QvZGVzZWxlY3Qgb25lIHJvdyBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yMy4wXG4gICAqL1xuICByb3dTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93U2VsZWN0RXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGJlZm9yZSB0aGUgc2VsZWN0ZWQgY2hhbmdlIHdoZW4gc2VsZWN0L2Rlc2VsZWN0IGFsbCByb3dzIEB2ZWdhVmVyc2lvbiAyLjIzLjBcbiAgICovXG4gIHZlZ2FSb3dTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlUm93U2VsZWN0QWxsRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGJlZm9yZSB0aGUgc2VsZWN0ZWQgY2hhbmdlIHdoZW4gc2VsZWN0L2Rlc2VsZWN0IGFsbCByb3dzIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjIzLjBcbiAgICovXG4gIHJvd1NlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RBbGxFdmVudERldGFpbD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sdW1uRGl2aWRlcicsICdjb2x1bW5zJywgJ2RhdGFTb3VyY2UnLCAnZGVuc2l0eScsICdlbXB0eURlc2NyaXB0aW9uJywgJ3BhZGRpbmdYJywgJ3BhZ2luYXRpb24nLCAncm93Q2xpY2thYmxlJywgJ3Jvd0RpdmlkZXInLCAncm93RXhwYW5kYWJsZScsICdyb3dLZXknLCAncm93U2VsZWN0aW9uJywgJ3Njcm9sbENvbmZpZycsICdzaG93SGVhZGVyJywgJ3NvcnRDb25maWcnLCAnc3RyaXBlZCddLFxuICBtZXRob2RzOiBbJ29wZW5FeHBhbmRSb3cnLCAnY2xvc2VFeHBhbmRSb3cnLCAnY2xvc2VBbGxFeHBhbmRSb3cnLCAndG9nZ2xlRXhwYW5kUm93JywgJ2NsZWFyU2VsZWN0aW9uJywgJ2dldFNlbGVjdGlvbicsICdzZXRTZWxlY3Rpb24nLCAnc3RhcnRSb3dFZGl0TW9kZScsICdzdG9wUm93RWRpdE1vZGUnLCAnc3RvcEFsbFJvd0VkaXRNb2RlJywgJ2dldFJvd0RhdGEnLCAnZ2V0Um93c0RhdGEnLCAnZ2V0Rm9ybVJlZicsICdhZGROZXdSb3cnLCAnc2F2ZUVkaXRSb3cnLCAnc2F2ZUFsbEVkaXRSb3dzJywgJ2dldEVkaXRpbmdSb3dzS2V5JywgJ3JlbW92ZVJvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sdW1uRGl2aWRlcicsICdjb2x1bW5zJywgJ2RhdGFTb3VyY2UnLCAnZGVuc2l0eScsICdlbXB0eURlc2NyaXB0aW9uJywgJ3BhZGRpbmdYJywgJ3BhZ2luYXRpb24nLCAncm93Q2xpY2thYmxlJywgJ3Jvd0RpdmlkZXInLCAncm93RXhwYW5kYWJsZScsICdyb3dLZXknLCAncm93U2VsZWN0aW9uJywgJ3Njcm9sbENvbmZpZycsICdzaG93SGVhZGVyJywgJ3NvcnRDb25maWcnLCAnc3RyaXBlZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FSb3dDbGljaycsICdyb3dDbGljaycsICd2ZWdhUm93RXhwYW5kJywgJ3Jvd0V4cGFuZCcsICd2ZWdhU2VsZWN0Q2hhbmdlJywgJ3NlbGVjdENoYW5nZScsICd2ZWdhU2VsZWN0QWxsQ2hhbmdlJywgJ3NlbGVjdEFsbENoYW5nZScsICd2ZWdhUm93U2VsZWN0JywgJ3Jvd1NlbGVjdCcsICd2ZWdhUm93U2VsZWN0QWxsJywgJ3Jvd1NlbGVjdEFsbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVCb2R5IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUNlbGwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydicmVha3BvaW50JywgJ292ZXJmbG93JywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydicmVha3BvaW50JywgJ292ZXJmbG93JywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVFeHBhbmRSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUV4cGFuZFJvdyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3Jvd0tleSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1leHBhbmQtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydyb3dLZXknXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFibGVFeHBhbmRSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVIZWFkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVIZWFkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1oZWFkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlSGVhZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlSGVhZENlbGxDbGlja0V2ZW50IGFzIElWZWdhVGFibGVIZWFkQ2VsbFZlZ2FUYWJsZUhlYWRDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUhlYWRDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVIZWFkQ2VsbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBoZWFkIGNlbGwgaGFzIGJlZW4gY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDEuNDQuMFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZUhlYWRDZWxsVmVnYVRhYmxlSGVhZENlbGxDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBoZWFkIGNlbGwgaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVIZWFkQ2VsbFZlZ2FUYWJsZUhlYWRDZWxsQ2xpY2tFdmVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYnJlYWtwb2ludCcsICdzb3J0T3JkZXInLCAnc29ydGVyJywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1oZWFkLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnc29ydE9yZGVyJywgJ3NvcnRlcicsICd0ZXh0QWxpZ24nLCAnd2lkdGgnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFibGVIZWFkQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVIZWFkUm93IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVIZWFkUm93IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaGlkZVNlbGVjdEFsbCcsICdzZWxlY3RBbGxEaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1oZWFkLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaGlkZVNlbGVjdEFsbCcsICdzZWxlY3RBbGxEaXNhYmxlZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUhlYWRSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVJvd0NsaWNrRXZlbnQgYXMgSVZlZ2FUYWJsZVJvd1ZlZ2FUYWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93RXhwYW5kRXZlbnQgYXMgSVZlZ2FUYWJsZVJvd1ZlZ2FUYWJsZVJvd0V4cGFuZEV2ZW50IH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYmxlUm93IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVSb3cge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgcm93IGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAxLjQ0LjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVSb3dWZWdhVGFibGVSb3dDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSByb3cgaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVSb3dWZWdhVGFibGVSb3dDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBleHBhbmQgaWNvbiBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMi4yMC4wXG4gICAqL1xuICB2ZWdhRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVJvd1ZlZ2FUYWJsZVJvd0V4cGFuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBleHBhbmQgaWNvbiBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yMC4wXG4gICAqL1xuICBleHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlUm93VmVnYVRhYmxlUm93RXhwYW5kRXZlbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3Jvd0tleSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3Jvd0tleSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljaycsICd2ZWdhRXhwYW5kJywgJ2V4cGFuZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGV4dCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRleHQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvdmVyZmxvdycsICd0b29sdGlwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ292ZXJmbG93JywgJ3Rvb2x0aXAnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRleHRhcmVhIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFib3V0IGNoYW5nZXMgaW4gdGhlIHZhbHVlXG4gICBvZiB0aGUgdGV4dCBhcmVhLiBAdmVnYVZlcnNpb24gMS4xMS4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhYm91dCBjaGFuZ2VzIGluIHRoZSB2YWx1ZVxuICAgb2YgdGhlIHRleHQgYXJlYS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSBpbm5lclxuICAgdGV4dGFyZWEgZWxlbWVudCB3aXRoaW4gdGhlIHRleHQgYXJlYS4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSBpbm5lclxuICAgdGV4dGFyZWEgZWxlbWVudCB3aXRoaW4gdGhlIHRleHQgYXJlYS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBibHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdyZXNpemFibGUnLCAnc2hvd0NvdW50ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdyZXNpemFibGUnLCAnc2hvd0NvdW50ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYUJsdXInLCAnYmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGltZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRpbWVQaWNrZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHRpbWUgcGlja2VyLiBAdmVnYVZlcnNpb24gMS4xMi4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSB0aW1lIHBpY2tlci4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaW5jcmVtZW50cycsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndGltZUZvcm1hdCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGltZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2luY3JlbWVudHMnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtb2RlJywgJ3BsYWNlaG9sZGVyJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdyZXF1aXJlZCcsICdzaXplJywgJ3RpbWVGb3JtYXQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRpbWVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGltZVBpY2tlckRyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGltZVBpY2tlckRyb3Bkb3duIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10aW1lLXBpY2tlci1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUaW1lUGlja2VyRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVG9nZ2xlU3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVG9nZ2xlU3dpdGNoIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHRvZ2dsZSBzd2l0Y2guIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHRvZ2dsZSBzd2l0Y2guIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRvZ2dsZS1zd2l0Y2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUb2dnbGVTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRvb2x0aXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnY29udGVudCcsICdkaXNhYmxlSW50ZXJhY3RpdmUnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaXplJywgJ3RleHQnLCAndHJpZ2dlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnY29udGVudCcsICdkaXNhYmxlSW50ZXJhY3RpdmUnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaXplJywgJ3RleHQnLCAndHJpZ2dlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRvb2x0aXBDb250ZW50Qm94IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVG9vbHRpcENvbnRlbnRCb3gge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWyd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRvb2x0aXAtY29udGVudC1ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3RleHQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVG9vbHRpcENvbnRlbnRCb3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVmlydHVhbFNjcm9sbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVZpcnR1YWxTY3JvbGwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhcHByb3hJdGVtSGVpZ2h0JywgJ2lzTG9hZGluZycsICdyZW5kZXJJdGVtJywgJ3NvdXJjZScsICdzb3VyY2VJdGVtSWRlbnRpZmllcicsICd2aWV3cG9ydE1heEhlaWdodCcsICd2aXJ0dWFsaXphdGlvblRocmVzaG9sZCddLFxuICBtZXRob2RzOiBbJ3Njcm9sbFRvSW5kZXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdmlydHVhbC1zY3JvbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FwcHJveEl0ZW1IZWlnaHQnLCAnaXNMb2FkaW5nJywgJ3JlbmRlckl0ZW0nLCAnc291cmNlJywgJ3NvdXJjZUl0ZW1JZGVudGlmaWVyJywgJ3ZpZXdwb3J0TWF4SGVpZ2h0JywgJ3ZpcnR1YWxpemF0aW9uVGhyZXNob2xkJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVZpcnR1YWxTY3JvbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBbXG4gIFZlZ2FBY2NvcmRpb24sXG4gIFZlZ2FBcHBGb290ZXIsXG4gIFZlZ2FBcHBIZWFkZXJCdXR0b24sXG4gIFZlZ2FCYWNrZHJvcCxcbiAgVmVnYUJhbm5lcixcbiAgVmVnYUJhckNoYXJ0LFxuICBWZWdhQm94LFxuICBWZWdhQnJlYWRjcnVtYixcbiAgVmVnYUJ1dHRvbixcbiAgVmVnYUJ1dHRvbkNpcmNsZSxcbiAgVmVnYUJ1dHRvbkdyb3VwLFxuICBWZWdhQnV0dG9uR3JvdXBJdGVtLFxuICBWZWdhQnV0dG9uTGluayxcbiAgVmVnYUNhbGVuZGFyLFxuICBWZWdhQ2FsZW5kYXJFdmVudCxcbiAgVmVnYUNhbGVuZGFyRXZlbnRTbG90LFxuICBWZWdhQ2FyZCxcbiAgVmVnYUNhcm91c2VsLFxuICBWZWdhQ2hlY2tib3gsXG4gIFZlZ2FDaGVja2JveEdyb3VwLFxuICBWZWdhQ2hpcCxcbiAgVmVnYUNvbG9yUGlja2VyLFxuICBWZWdhQ29tYm9Cb3gsXG4gIFZlZ2FDb3VudGVyQmFkZ2UsXG4gIFZlZ2FEYXRlUGlja2VyLFxuICBWZWdhRGF0ZVBpY2tlckNhbGVuZGFyLFxuICBWZWdhRGlhbG9nLFxuICBWZWdhRGl2aWRlcixcbiAgVmVnYURyb3Bkb3duLFxuICBWZWdhRHJvcGRvd25Db250ZW50Qm94LFxuICBWZWdhRHJvcGRvd25Hcm91cCxcbiAgVmVnYURyb3Bkb3duSXRlbSxcbiAgVmVnYUZpZWxkRXJyb3IsXG4gIFZlZ2FGaWVsZExhYmVsLFxuICBWZWdhRmlsZVVwbG9hZGVyLFxuICBWZWdhRmxleCxcbiAgVmVnYUZvbnQsXG4gIFZlZ2FGb3JtLFxuICBWZWdhR3JpZCxcbiAgVmVnYUhpbnQsXG4gIFZlZ2FJY29uLFxuICBWZWdhSW1hZ2VVcGxvYWRlcixcbiAgVmVnYUlucHV0LFxuICBWZWdhSW5wdXRDcmVkaXRDYXJkLFxuICBWZWdhSW5wdXROdW1lcmljLFxuICBWZWdhSW5wdXRQaG9uZU51bWJlcixcbiAgVmVnYUlucHV0UmFuZ2UsXG4gIFZlZ2FJbnB1dFNlbGVjdCxcbiAgVmVnYUl0ZW1Ub2dnbGUsXG4gIFZlZ2FMZWZ0TmF2LFxuICBWZWdhTGVmdE5hdkdyb3VwLFxuICBWZWdhTGVmdE5hdkxpbmssXG4gIFZlZ2FMZWZ0TmF2U2VjdGlvbixcbiAgVmVnYUxpbmVDaGFydCxcbiAgVmVnYUxvYWRlcldyYXBwZXIsXG4gIFZlZ2FMb2FkaW5nSW5kaWNhdG9yLFxuICBWZWdhTW9kYWwsXG4gIFZlZ2FOYXZDYXJkLFxuICBWZWdhUGFnZU5vdGlmaWNhdGlvbixcbiAgVmVnYVBhZ2VOb3RpZmljYXRpb25MaXN0LFxuICBWZWdhUGFnaW5hdGlvbixcbiAgVmVnYVBpZUNoYXJ0LFxuICBWZWdhUG9wb3ZlcixcbiAgVmVnYVBvcG92ZXJDb250ZW50Qm94LFxuICBWZWdhUHJvZ3Jlc3NUcmFja2VyLFxuICBWZWdhUmFkaW8sXG4gIFZlZ2FSYWRpb0dyb3VwLFxuICBWZWdhU2VjdGlvblRpdGxlLFxuICBWZWdhU2VnbWVudENvbnRyb2wsXG4gIFZlZ2FTZWxlY3Rpb25DaGlwLFxuICBWZWdhU2VsZWN0aW9uQ2hpcEdyb3VwLFxuICBWZWdhU2VsZWN0aW9uVGlsZSxcbiAgVmVnYVNlbGVjdGlvblRpbGVHcm91cCxcbiAgVmVnYVNpZGVuYXYsXG4gIFZlZ2FTaWRlbmF2R3JvdXAsXG4gIFZlZ2FTaWRlbmF2TGluayxcbiAgVmVnYVNpZ25hdHVyZUNhcHR1cmUsXG4gIFZlZ2FTa2VsZXRvbixcbiAgVmVnYVNsb3RDb250YWluZXIsXG4gIFZlZ2FTdGVwcGVyLFxuICBWZWdhVGFiR3JvdXAsXG4gIFZlZ2FUYWJHcm91cFBhbmVsLFxuICBWZWdhVGFibGUsXG4gIFZlZ2FUYWJsZUJvZHksXG4gIFZlZ2FUYWJsZUNlbGwsXG4gIFZlZ2FUYWJsZUV4cGFuZFJvdyxcbiAgVmVnYVRhYmxlSGVhZCxcbiAgVmVnYVRhYmxlSGVhZENlbGwsXG4gIFZlZ2FUYWJsZUhlYWRSb3csXG4gIFZlZ2FUYWJsZVJvdyxcbiAgVmVnYVRleHQsXG4gIFZlZ2FUZXh0YXJlYSxcbiAgVmVnYVRpbWVQaWNrZXIsXG4gIFZlZ2FUaW1lUGlja2VyRHJvcGRvd24sXG4gIFZlZ2FUb2dnbGVTd2l0Y2gsXG4gIFZlZ2FUb29sdGlwLFxuICBWZWdhVG9vbHRpcENvbnRlbnRCb3gsXG4gIFZlZ2FWaXJ0dWFsU2Nyb2xsLFxuXTsiXX0=
|
|
2616
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUE4QjFELGFBQWEsU0FBYixhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUE7MEdBUFksYUFBYTs4RkFBYixhQUFhLDRTQUhkLDJCQUEyQjtBQUcxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RJLENBQUM7R0FPVyxhQUFhLENBT3pCO1NBUFksYUFBYTsyRkFBYixhQUFhO2tCQU56QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FB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LGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLFFBQVE7SUFDUixZQUFZO0lBQ1osY0FBYztJQUNkLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLHFCQUFxQjtJQUNyQixpQkFBaUI7Q0FDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EnO1xuXG5cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUFjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZXhwYW5kIGV2ZW50IG9mIHRoZSBhY2NvcmRpb24uIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBleHBhbmQgZXZlbnQgb2YgdGhlIGFjY29yZGlvbi5cbmV4cGFuZCBpcyBhbiBhdHRyaWJ1dGUsIHNvIHRoZSBldmVudCBuYW1lIGhlcmUgdXNlcyBhY2NvcmRpb25FeHBhbmQgQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBhY2NvcmRpb25FeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NvcmRpb25UaXRsZScsICdkcmF3c0JhY2tncm91bmQnLCAnZXhwYW5kJywgJ2V4cGFuZEljb25BbGlnbicsICdncm91cElkJywgJ2ljb25Qb3NpdGlvbicsICdwcmVmaXhJY29uJywgJ3Nob3dFeHBhbmRJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uVGl0bGUnLCAnZHJhd3NCYWNrZ3JvdW5kJywgJ2V4cGFuZCcsICdleHBhbmRJY29uQWxpZ24nLCAnZ3JvdXBJZCcsICdpY29uUG9zaXRpb24nLCAncHJlZml4SWNvbicsICdzaG93RXhwYW5kSWNvbiddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhRXhwYW5kJywgJ2FjY29yZGlvbkV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQXBwRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQXBwRm9vdGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWRkaXRpb25hbExpbmtzJywgJ2NvbnRlbnQnLCAnZGlzY2xhaW1lclVybFRhcmdldCcsICdoaWRlRGVmYXVsdExpbmtzJywgJ3ByaXZhY3lQb2xpY3lMYWJlbCcsICdwcml2YWN5UG9saWN5VXJsJywgJ3ByaXZhY3lQb2xpY3lVcmxUYXJnZXQnLCAnc2hvd0Rpc2NsYWltZXInLCAndGVybU9mVXNlTGFiZWwnLCAndGVybU9mVXNlVXJsJywgJ3Rlcm1PZlVzZVVybFRhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1hcHAtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhZGRpdGlvbmFsTGlua3MnLCAnY29udGVudCcsICdkaXNjbGFpbWVyVXJsVGFyZ2V0JywgJ2hpZGVEZWZhdWx0TGlua3MnLCAncHJpdmFjeVBvbGljeUxhYmVsJywgJ3ByaXZhY3lQb2xpY3lVcmwnLCAncHJpdmFjeVBvbGljeVVybFRhcmdldCcsICdzaG93RGlzY2xhaW1lcicsICd0ZXJtT2ZVc2VMYWJlbCcsICd0ZXJtT2ZVc2VVcmwnLCAndGVybU9mVXNlVXJsVGFyZ2V0J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUFwcEZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FBcHBIZWFkZXJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FBcHBIZWFkZXJCdXR0b24ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGFuIGFwcCBoZWFkZXIgYnV0dG9uLiBAdmVnYVZlcnNpb24gMS4xMS4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhbiBhcHAgaGVhZGVyIGJ1dHRvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGEgZHJvcGRvd24gaXRlbVxuICAgaW4gdGhlIGFwcCBoZWFkZXIuIEB2ZWdhVmVyc2lvbiAxLjIzLjBcbiAgICovXG4gIHZlZ2FEcm9wZG93bkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSBkcm9wZG93biBpdGVtXG4gICBpbiB0aGUgYXBwIGhlYWRlci4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBkcm9wZG93bkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdmF0YXInLCAnYXZhdGFyUG9zaXRpb24nLCAnZHJvcGRvd24nLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAnc2hvd0JvcmRlcicsICdzaG93TGFiZWwnLCAnc2hvd01lbnVBcnJvd0ljb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1hcHAtaGVhZGVyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXZhdGFyJywgJ2F2YXRhclBvc2l0aW9uJywgJ2Ryb3Bkb3duJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3Nob3dCb3JkZXInLCAnc2hvd0xhYmVsJywgJ3Nob3dNZW51QXJyb3dJY29uJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQXBwSGVhZGVyQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJywgJ3ZlZ2FEcm9wZG93bkNsaWNrJywgJ2Ryb3Bkb3duQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhY2tkcm9wIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQmFja2Ryb3Age1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBiYWNrZHJvcC4gQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xvcicsICdkdXJhdGlvbicsICd2aXNpYmxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJhY2tkcm9wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2xvcicsICdkdXJhdGlvbicsICd2aXNpYmxlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhY2tkcm9wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYUJhbm5lckFjdGlvbkJ1dHRvblR5cGUgYXMgSVZlZ2FCYW5uZXJWZWdhQmFubmVyQWN0aW9uQnV0dG9uVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1iYW5uZXIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCYW5uZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJhbm5lciBjbG9zZSBldmVudC4gQHZlZ2FWZXJzaW9uIDEuMTMuMFxuICAgKi9cbiAgdmVnYUNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmFubmVyIGNsb3NlIGV2ZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi44LjBcbiAgICovXG4gIGNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmFubmVyIGFjdGlvbiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDIuMTguMFxuICAgKi9cbiAgdmVnYUFjdGlvbkJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCYW5uZXJWZWdhQmFubmVyQWN0aW9uQnV0dG9uVHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJhbm5lciBhY3Rpb24gYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjE4LjBcbiAgICovXG4gIGFjdGlvbkJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCYW5uZXJWZWdhQmFubmVyQWN0aW9uQnV0dG9uVHlwZT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWN0aW9uQnV0dG9ucycsICdiYW5uZXJUaXRsZScsICdjb250ZW50JywgJ2lzT3BlbicsICdzaG93Q2xvc2VCdXR0b24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ2RvQ2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3Rpb25CdXR0b25zJywgJ2Jhbm5lclRpdGxlJywgJ2NvbnRlbnQnLCAnaXNPcGVuJywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0eXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbG9zZScsICdjbG9zZScsICd2ZWdhQWN0aW9uQnV0dG9uQ2xpY2snLCAnYWN0aW9uQnV0dG9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhckNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQmFyQ2hhcnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJhci1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCYXJDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCb3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCb3gge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnblNlbGYnLCAnYmFja2dyb3VuZENvbG9yJywgJ2JvcmRlcicsICdib3JkZXJDb2xvcicsICdib3JkZXJTdHlsZScsICdjb3JuZXJzJywgJ2Rpc3BsYXknLCAnZmxleCcsICdmbGV4QmFzaXMnLCAnZmxleEdyb3cnLCAnZmxleFNocmluaycsICdncmlkQXJlYScsICdncmlkQ29sdW1uJywgJ2dyaWRSb3cnLCAnaGVpZ2h0JywgJ2p1c3RpZnlTZWxmJywgJ21hcmdpbicsICdtYXhIZWlnaHQnLCAnbWluSGVpZ2h0JywgJ29yZGVyJywgJ3BhZGRpbmcnLCAncmVzcG9uc2l2ZUNsYXNzJywgJ3NoYWRvdycsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsaWduU2VsZicsICdiYWNrZ3JvdW5kQ29sb3InLCAnYm9yZGVyJywgJ2JvcmRlckNvbG9yJywgJ2JvcmRlclN0eWxlJywgJ2Nvcm5lcnMnLCAnZGlzcGxheScsICdmbGV4JywgJ2ZsZXhCYXNpcycsICdmbGV4R3JvdycsICdmbGV4U2hyaW5rJywgJ2dyaWRBcmVhJywgJ2dyaWRDb2x1bW4nLCAnZ3JpZFJvdycsICdoZWlnaHQnLCAnanVzdGlmeVNlbGYnLCAnbWFyZ2luJywgJ21heEhlaWdodCcsICdtaW5IZWlnaHQnLCAnb3JkZXInLCAncGFkZGluZycsICdyZXNwb25zaXZlQ2xhc3MnLCAnc2hhZG93JywgJ3dpZHRoJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYUJyZWFkY3J1bWJJdGVtVHlwZSBhcyBJVmVnYUJyZWFkY3J1bWJWZWdhQnJlYWRjcnVtYkl0ZW1UeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWJyZWFkY3J1bWIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgYnJlYWRjcnVtYiBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAxLjQxLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQnJlYWRjcnVtYlZlZ2FCcmVhZGNydW1iSXRlbVR5cGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBicmVhZGNydW1iIGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQnJlYWRjcnVtYlZlZ2FCcmVhZGNydW1iSXRlbVR5cGU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ21heEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ21heEl0ZW1zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJ1dHRvbi4gQHZlZ2FWZXJzaW9uIDEuMC4xMVxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJ1dHRvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYmxvY2snLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2xhYmVsJywgJ2xvYWRpbmcnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydibG9jaycsICdkYW5nZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQWxpZ24nLCAnbGFiZWwnLCAnbG9hZGluZycsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAnY2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkNpcmNsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbkNpcmNsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNpcmN1bGFyIGJ1dHRvbi4gQHZlZ2FWZXJzaW9uIDEuMC4xMVxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNpcmN1bGFyIGJ1dHRvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3Nob3dUb29sdGlwJywgJ3NpemUnLCAndG9vbHRpcCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnV0dG9uLWNpcmNsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3Nob3dUb29sdGlwJywgJ3NpemUnLCAndG9vbHRpcCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uQ2lyY2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCdXR0b25Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbkdyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uIGdyb3VwLiBAdmVnYVZlcnNpb24gMi41LjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBidXR0b24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjUuMFxuICAgKi9cbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb25BbGlnbicsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnV0dG9uLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uQWxpZ24nLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJ1dHRvbkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCdXR0b25Hcm91cEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCdXR0b25Hcm91cEl0ZW0ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkcm9wZG93blByb3BzJywgJ2Ryb3Bkb3duU291cmNlJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaXRlbUtleScsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tZ3JvdXAtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZHJvcGRvd25Qcm9wcycsICdkcm9wZG93blNvdXJjZScsICdpY29uJywgJ2ljb25Pbmx5JywgJ2l0ZW1LZXknLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uR3JvdXBJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCdXR0b25MaW5rIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBAdmVnYVZlcnNpb24gMS4wLjExXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkYW5nZXInLCAnZGlzYWJsZWQnLCAnZXZlbnRmdWwnLCAnaWNvbicsICdpY29uQWxpZ24nLCAnaWNvblR5cGUnLCAnbGFiZWwnLCAnbGluaycsICdzaXplJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2V2ZW50ZnVsJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2ljb25UeXBlJywgJ2xhYmVsJywgJ2xpbmsnLCAnc2l6ZScsICd0YXJnZXQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FDYWxlbmRhckNoYW5nZUV2ZW50VHlwZSBhcyBJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyQ2hhbmdlRXZlbnRUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWNhbGVuZGFyL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYUNhbGVuZGFyRXZlbnRDbGlja0luZm8gYXMgSVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckV2ZW50Q2xpY2tJbmZvIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWNhbGVuZGFyL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYUNhbGVuZGFyRGF0ZUNsaWNrSW5mbyBhcyBJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyRGF0ZUNsaWNrSW5mbyB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1jYWxlbmRhci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FsZW5kYXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBvbmVudCB2aWV3IGNvbnRlbnQgY2hhbmdlIGFmdGVyIGEgc3dpdGNoIHBhbmVsIGNsaWNrLiBAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckNoYW5nZUV2ZW50VHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBvbmVudCB2aWV3IGNvbnRlbnQgY2hhbmdlIGFmdGVyIGEgc3dpdGNoIHBhbmVsIGNsaWNrLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyQ2hhbmdlRXZlbnRUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY29tcG9uZW50IGV2ZW50IGl0ZW0gaXMgY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDIuMTQuMFxuICAgKi9cbiAgdmVnYUV2ZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUNhbGVuZGFyVmVnYUNhbGVuZGFyRXZlbnRDbGlja0luZm8+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjb21wb25lbnQgZXZlbnQgaXRlbSBpcyBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4xNC4wXG4gICAqL1xuICBldmVudENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckV2ZW50Q2xpY2tJbmZvPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY2FsZW5kYXIgZGF0ZSBpdGVtIGhhcyBiZWVuIGRvdWJsZS1jbGlja2VkLiBAdmVnYVZlcnNpb24gMi4xNy4wXG4gICAqL1xuICB2ZWdhRGF0ZURibENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FDYWxlbmRhclZlZ2FDYWxlbmRhckRhdGVDbGlja0luZm8+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjYWxlbmRhciBkYXRlIGl0ZW0gaGFzIGJlZW4gZG91YmxlLWNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjE3LjBcbiAgICovXG4gIGRhdGVEYmxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQ2FsZW5kYXJWZWdhQ2FsZW5kYXJEYXRlQ2xpY2tJbmZvPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgY2FsZW5kYXIgbW9yZSBhY3Rpb24gbWVudSBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAyLjIwLjBcbiAgICovXG4gIHZlZ2FNb3JlQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBjYWxlbmRhciBtb3JlIGFjdGlvbiBtZW51IGl0ZW0gaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjAuMFxuICAgKi9cbiAgbW9yZUFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydldmVudHMnLCAnbW9yZUFjdGlvbkRyb3Bkb3duUHJvcHMnLCAnc2hvd0V2ZW50Q29sb3JCYXInLCAnc2hvd1dlZWtlbmRzJywgJ3RpbWVGb3JtYXQnLCAndmlld01vZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2V2ZW50cycsICdtb3JlQWN0aW9uRHJvcGRvd25Qcm9wcycsICdzaG93RXZlbnRDb2xvckJhcicsICdzaG93V2Vla2VuZHMnLCAndGltZUZvcm1hdCcsICd2aWV3TW9kZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJywgJ3ZlZ2FFdmVudENsaWNrJywgJ2V2ZW50Q2xpY2snLCAndmVnYURhdGVEYmxDbGljaycsICdkYXRlRGJsQ2xpY2snLCAndmVnYU1vcmVBY3Rpb25DbGljaycsICdtb3JlQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyRXZlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDYWxlbmRhckV2ZW50IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FsZW5kYXJFdmVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYWxlbmRhci1ldmVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FsZW5kYXJFdmVudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhckV2ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNhbGVuZGFyRXZlbnRTbG90IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FsZW5kYXJFdmVudFNsb3Qge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydldmVudEtleSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYWxlbmRhci1ldmVudC1zbG90JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydldmVudEtleSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDYWxlbmRhckV2ZW50U2xvdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FyZCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvcicsICdtYXJnaW4nLCAncGFkZGluZycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvcicsICdtYXJnaW4nLCAncGFkZGluZycsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdHJhbnNpdGlvbiBvZiB0aGUgY2Fyb3VzZWwgdG8gYW5vdGhlciBwYWdlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYVBhZ2VVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSB0cmFuc2l0aW9uIG9mIHRoZSBjYXJvdXNlbCB0byBhbm90aGVyIHBhZ2UsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBwYWdlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5Td2lwZScsICdpdGVtc1BlclBhZ2UnLCAncGVyUGFnZScsICdzaG93U2xpZGVyJywgJ3NwYWNpbmcnXSxcbiAgbWV0aG9kczogWyduZXh0UGFnZScsICdwcmV2UGFnZScsICdnb1RvUGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuU3dpcGUnLCAnaXRlbXNQZXJQYWdlJywgJ3BlclBhZ2UnLCAnc2hvd1NsaWRlcicsICdzcGFjaW5nJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVBhZ2VVcGRhdGUnLCAncGFnZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDaGVja2JveCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgY2hlY2tib3gsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMC4xMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjaGVja2JveCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWRlbnRpZmllcicsICdpc1ZhbGlkJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZGVudGlmaWVyJywgJ2lzVmFsaWQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDaGVja2JveEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2hlY2tib3hHcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZVxuICBvZiBhbnkgbmVzdGVkIGNoZWNrYm94IHdpdGhpbiB0aGUgY2hlY2tib3ggZ3JvdXAsXG4gIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaFxuICB1c2VyIGludGVyYWN0aW9uLiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlXG4gIG9mIGFueSBuZXN0ZWQgY2hlY2tib3ggd2l0aGluIHRoZSBjaGVja2JveCBncm91cCxcbiAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoXG4gIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoZWNrYm94LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FGbGV4UHJvcCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGVja2JveEdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDaGlwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2xvc2UgYnV0dG9uIG9mIHRoZSBjaGlwLlxuXG5UaGlzIGV2ZW50IGlzIG9ubHkgZGlzcGF0Y2hlZCB3aGVuIHRoZSBgc2hvd0Nsb3NlSWNvbmAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYUNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBjbG9zZSBidXR0b24gb2YgdGhlIGNoaXAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNoaXAuXG5cblRoaXMgZXZlbnQgaXMgb25seSBkaXNwYXRjaGVkIHdoZW4gdGhlIGBjbGlja2FibGVgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuIEB2ZWdhVmVyc2lvbiAxLjExLjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2hpcC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xvc2UnLCAnY2xvc2UnLCAndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb2xvclBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbG9yUGlja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjb2xvciBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMTMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIGNvbG9yIHBpY2tlcixcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnY29sb3JzJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNJbmxpbmUnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY29sb3ItcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdjb2xvcnMnLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc0lubGluZScsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb2xvclBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb21ib0JveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbWJvQm94IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIGl0ZW1zIG9mIHRoZSBjb21ibyBib3ggdmFsdWUsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBpdGVtcyBvZiB0aGUgY29tYm8gYm94IHZhbHVlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHdoZW4gdGhlIHVzZXIgaGFzIGNob3NlbiB0byBhZGQgYSBuZXcgdmFsdWVcbiAgIHRvIHRoZSBzb3VyY2UgYW5kIHZhbHVlIG9mIHRoZSBjb21ibyBib3guXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBuZXcgdmFsdWUuXG5cblRoZSBjb21ibyBib3ggX2RvZXMgbm90XyBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IHZhbHVlIHRvIGl0cyBgc291cmNlYCBhbmQgYHZhbHVlYC4gQHZlZ2FWZXJzaW9uIDEuMTQuMFxuICAgKi9cbiAgdmVnYUNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgd2hlbiB0aGUgdXNlciBoYXMgY2hvc2VuIHRvIGFkZCBhIG5ldyB2YWx1ZVxuICAgdG8gdGhlIHNvdXJjZSBhbmQgdmFsdWUgb2YgdGhlIGNvbWJvIGJveC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIG5ldyB2YWx1ZS5cblxuVGhlIGNvbWJvIGJveCBfZG9lcyBub3RfIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgdmFsdWUgdG8gaXRzIGBzb3VyY2VgIGFuZCBgdmFsdWVgLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHVzZXIncyBzZWFyY2ggYWN0aW9uIGluIHRoZSBjb21ibyBib3gsXG4gICBidXQgb25seSBpZiB0aGUgYHVzZURlZmF1bHRGaWx0ZXJgIHByb3BlcnR5IGlzIHNldCB0byBgZmFsc2VgLiBAdmVnYVZlcnNpb24gMS4yNC4wXG4gICAqL1xuICB2ZWdhU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdXNlcidzIHNlYXJjaCBhY3Rpb24gaW4gdGhlIGNvbWJvIGJveCxcbiAgIGJ1dCBvbmx5IGlmIHRoZSBgdXNlRGVmYXVsdEZpbHRlcmAgcHJvcGVydHkgaXMgc2V0IHRvIGBmYWxzZWAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgc2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzb3VyY2UnLCAndXNlRGVmYXVsdEZpbHRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXSxcbiAgbWV0aG9kczogWydjbG9zZScsICdvcGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNvbWJvLWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc291cmNlJywgJ3VzZURlZmF1bHRGaWx0ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNvbWJvQm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYUNyZWF0ZScsICdjcmVhdGUnLCAndmVnYVNlYXJjaCcsICdzZWFyY2gnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNvdW50ZXJCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvdW50ZXJCYWRnZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvdW50JywgJ2RvdCcsICdvZmZzZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY291bnRlci1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY291bnQnLCAnZG90JywgJ29mZnNldCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb3VudGVyQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRGF0ZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYURhdGVQaWNrZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBvZiB0aGUgdmFsdWUgaW4gdGhlIGRhdGUgcGlja2VyLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZSB2YWx1ZSBpbiB0aGUgZGF0ZSBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxsb3dSZXBpY2snLCAnYXV0b1ZhbGlkYXRpb24nLCAnY2xlYXJCdXR0b24nLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Db25maWcnLCAnZm9ybWF0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFySWNvbicsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2RvQ2xvc2UnLCAnZG9PcGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRhdGUtcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGxvd1JlcGljaycsICdhdXRvVmFsaWRhdGlvbicsICdjbGVhckJ1dHRvbicsICdkaXNhYmxlZCcsICdkcm9wZG93bkNvbmZpZycsICdmb3JtYXQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaG93Q2xlYXJJY29uJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURhdGVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRGF0ZVBpY2tlckNhbGVuZGFyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRGF0ZVBpY2tlckNhbGVuZGFyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kYXRlLXBpY2tlci1jYWxlbmRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEYXRlUGlja2VyQ2FsZW5kYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRGlhbG9nIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FuY2VsQnV0dG9uJywgJ2NvbnRlbnQnLCAnZGlhbG9nVGl0bGUnLCAnaGFuZGxlQ2FuY2VsJywgJ2hhbmRsZU9rJywgJ21vZGFsUHJvcHMnLCAnb2tCdXR0b24nLCAnc2hvd0NhbmNlbCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuY2VsQnV0dG9uJywgJ2NvbnRlbnQnLCAnZGlhbG9nVGl0bGUnLCAnaGFuZGxlQ2FuY2VsJywgJ2hhbmRsZU9rJywgJ21vZGFsUHJvcHMnLCAnb2tCdXR0b24nLCAnc2hvd0NhbmNlbCcsICd0eXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRGl2aWRlciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RpcmVjdGlvbicsICdtYXJnaW4nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXJlY3Rpb24nLCAnbWFyZ2luJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYURyb3Bkb3duU2VhcmNoVHJpZ2dlckV2ZW50RGV0YWlsIGFzIElWZWdhRHJvcGRvd25WZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtZHJvcGRvd24vdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVmVnYURyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBkcm9wZG93biBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBrZXkgb2YgdGhlIGNsaWNrZWQgaXRlbS4gQHZlZ2FWZXJzaW9uIDEuMTEuMFxuICAgKi9cbiAgdmVnYURyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBkcm9wZG93biBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBrZXkgb2YgdGhlIGNsaWNrZWQgaXRlbS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBkcm9wZG93bkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBkcm9wZG93biBoYXMgYmVlbiBkaXNwbGF5ZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhU2hvdzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgZHJvcGRvd24gaGFzIGJlZW4gZGlzcGxheWVkLFxuICAgZWl0aGVyIHByb2dyYW1tYXRpY2FsbHkgb3IgdmlhIHVzZXIgaW50ZXJhY3Rpb24uIFRoZSBuYW1lIGlzIG5vdCBgc2hvd2AgYmVjYXVzZSBhbHJlYWR5IGhhcyBhIG1ldGhvZCBgc2hvd2AuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZHJvcGRvd25TaG93OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBkcm9wZG93biBoYXMgYmVlbiBkaXNtaXNzZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhSGlkZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgZHJvcGRvd24gaGFzIGJlZW4gZGlzbWlzc2VkLFxuICAgZWl0aGVyIHByb2dyYW1tYXRpY2FsbHkgb3IgdmlhIHVzZXIgaW50ZXJhY3Rpb24uIFRoZSBuYW1lIGlzIG5vdCBgaGlkZWAgYmVjYXVzZSBhbHJlYWR5IGhhcyBhIG1ldGhvZCBgaGlkZWAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZHJvcGRvd25IaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYWRkaXRpb24gb2YgYSBuZXcgdmFsdWVcbiAgIHRvIHRoZSBkcm9wZG93biBzb3VyY2UgbGlzdC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIG5ldyB2YWx1ZS5cblxuVGhlIGRyb3Bkb3duIF9kb2VzIG5vdF8gYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUgc291cmNlIGxpc3QuIEB2ZWdhVmVyc2lvbiAxLjE0LjBcbiAgICovXG4gIHZlZ2FDcmVhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBhZGRpdGlvbiBvZiBhIG5ldyB2YWx1ZVxuICAgdG8gdGhlIGRyb3Bkb3duIHNvdXJjZSBsaXN0LlxuXG5UaGUgZXZlbnQncyBgZGV0YWlsYCBwcm9wZXJ0eSBjb250YWlucyB0aGUgbmV3IHZhbHVlLlxuXG5UaGUgZHJvcGRvd24gX2RvZXMgbm90XyBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IHZhbHVlIHRvIHRoZSBzb3VyY2UgbGlzdC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjcmVhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggZXZlbnQgaW4gdGhlIGRyb3Bkb3duLFxuICAgYnV0IG9ubHkgaWYgYHVzZURlZmF1bHRGaWx0ZXJgIGlzIHNldCB0byBgZmFsc2VgLiBAdmVnYVZlcnNpb24gMS4yNC4wXG4gICAqL1xuICB2ZWdhU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VhcmNoIGV2ZW50IGluIHRoZSBkcm9wZG93bixcbiAgIGJ1dCBvbmx5IGlmIGB1c2VEZWZhdWx0RmlsdGVyYCBpcyBzZXQgdG8gYGZhbHNlYC4gVGhlIG5hbWUgaXMgbm90IGBzZWFyY2hgIGJlY2F1c2UgYWxyZWFkeSBoYXMgYSBtZXRob2QgYHNlYXJjaGAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZHJvcGRvd25TZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggZXZlbnQgdHJpZ2dlcmVkIHdpdGhpbiB0aGUgZHJvcGRvd24sXG4gICBidXQgb25seSBpZiBgdXNlRGVmYXVsdEZpbHRlcmAgaXMgc2V0IHRvIGBmYWxzZWAuXG5Vbmxpa2UgdGhlIFZlZ2FzZWFyY2ggZXZlbnQsIHRoaXMgZXZlbnQgaW5jbHVkZXMgdGhlIGRldGFpbHMgb2YgdGhlIHVzZXIgd2hvIHRyaWdnZXJlZCBpdC5cbkl0IGNhbiBiZSB0cmlnZ2VyZWQgaW4gdHdvIHdheXM6IGJ5IHByZXNzaW5nIFwiRW50ZXJcIiBvciB0aHJvdWdoIHVzZXIgaW5wdXQuIEB2ZWdhVmVyc2lvbiAyLjMwLjBcbiAgICovXG4gIHZlZ2FTZWFyY2hUcmlnZ2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FEcm9wZG93blZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCB0cmlnZ2VyZWQgd2l0aGluIHRoZSBkcm9wZG93bixcbiAgIGJ1dCBvbmx5IGlmIGB1c2VEZWZhdWx0RmlsdGVyYCBpcyBzZXQgdG8gYGZhbHNlYC5cblVubGlrZSB0aGUgVmVnYXNlYXJjaCBldmVudCwgdGhpcyBldmVudCBpbmNsdWRlcyB0aGUgZGV0YWlscyBvZiB0aGUgdXNlciB3aG8gdHJpZ2dlcmVkIGl0LlxuSXQgY2FuIGJlIHRyaWdnZXJlZCBpbiB0d28gd2F5czogYnkgcHJlc3NpbmcgXCJFbnRlclwiIG9yIHRocm91Z2ggdXNlciBpbnB1dC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMzAuMFxuICAgKi9cbiAgc2VhcmNoVHJpZ2dlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRHJvcGRvd25WZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWw+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdjYXNlU2Vuc2l0aXZlJywgJ2R5bmFtaWNPcHRpb24nLCAnaXNMYXp5TG9hZGluZycsICdpc0xvYWRpbmcnLCAnaXRlbURpc3BsYXlSdWxlJywgJ21hdGNoQ29udGFpbmVySGVpZ2h0JywgJ21hdGNoVGFyZ2V0V2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAncHJlZml4SWNvblNsb3QnLCAnc2VhcmNoVHJpZ2dlckJ5JywgJ3NlYXJjaGFibGUnLCAnc2VsZWN0VHlwZScsICdzZWxlY3RlZFNvdXJjZUtleScsICdzaXplJywgJ3NvdXJjZScsICd0cmFuc2xvY2F0aW9uJywgJ3RyaWdnZXInLCAndXNlRGVmYXVsdEZpbHRlciddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICdzZWFyY2gnLCAnY2xlYXJTZWxlY3Rpb24nLCAnZ2V0U2VsZWN0aW9uJywgJ3NldFNlbGVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2Nhc2VTZW5zaXRpdmUnLCAnZHluYW1pY09wdGlvbicsICdpc0xhenlMb2FkaW5nJywgJ2lzTG9hZGluZycsICdpdGVtRGlzcGxheVJ1bGUnLCAnbWF0Y2hDb250YWluZXJIZWlnaHQnLCAnbWF0Y2hUYXJnZXRXaWR0aCcsICdtYXhIZWlnaHQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdwcmVmaXhJY29uU2xvdCcsICdzZWFyY2hUcmlnZ2VyQnknLCAnc2VhcmNoYWJsZScsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkU291cmNlS2V5JywgJ3NpemUnLCAnc291cmNlJywgJ3RyYW5zbG9jYXRpb24nLCAndHJpZ2dlcicsICd1c2VEZWZhdWx0RmlsdGVyJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYURyb3Bkb3duQ2xpY2snLCAnZHJvcGRvd25DbGljaycsICd2ZWdhU2hvdycsICdkcm9wZG93blNob3cnLCAndmVnYUhpZGUnLCAnZHJvcGRvd25IaWRlJywgJ3ZlZ2FDcmVhdGUnLCAnY3JlYXRlJywgJ3ZlZ2FTZWFyY2gnLCAnZHJvcGRvd25TZWFyY2gnLCAndmVnYVNlYXJjaFRyaWdnZXInLCAnc2VhcmNoVHJpZ2dlciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRHJvcGRvd25Db250ZW50Qm94IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRHJvcGRvd25Db250ZW50Qm94IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kcm9wZG93bi1jb250ZW50LWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEcm9wZG93bkNvbnRlbnRCb3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRHJvcGRvd25Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYURyb3Bkb3duR3JvdXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXZpZGUnLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZHJvcGRvd24tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2RpdmlkZScsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEcm9wZG93bkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhRHJvcGRvd25JdGVtQ2xpY2tFdmVudCBhcyBJVmVnYURyb3Bkb3duSXRlbVZlZ2FEcm9wZG93bkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWRyb3Bkb3duL3ZlZ2EtZHJvcGRvd24taXRlbS90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYURyb3Bkb3duSXRlbSBleHRlbmRzIENvbXBvbmVudHMuVmVnYURyb3Bkb3duSXRlbSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZHJvcGRvd24gaXRlbSBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMS40Ny4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYURyb3Bkb3duSXRlbVZlZ2FEcm9wZG93bkl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZHJvcGRvd24gaXRlbSBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FEcm9wZG93bkl0ZW1WZWdhRHJvcGRvd25JdGVtQ2xpY2tFdmVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY291bnQnLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2hlaWdodCcsICdpdGVtS2V5JywgJ2xhYmVsJywgJ3ByZWZpeEljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZHJvcGRvd24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY291bnQnLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2hlaWdodCcsICdpdGVtS2V5JywgJ2xhYmVsJywgJ3ByZWZpeEljb24nXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRHJvcGRvd25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FGaWVsZEVycm9yIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRmllbGRFcnJvciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZmllbGQtZXJyb3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRmllbGRFcnJvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FGaWVsZExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRmllbGRMYWJlbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBmaWVsZCBsYWJlbCBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMS40My4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIHN1ZmZpeCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBsYWJlbCBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMi4yNS4wXG4gICAqL1xuICB2ZWdhTGFiZWxCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgc3VmZml4IGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGxhYmVsIGhhcyBiZWVuIGNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIGxhYmVsQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2lzRmllbGRSZXF1aXJlZCcsICdsYWJlbCcsICdzdWZmaXhCdXR0b25Qcm9wcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1maWVsZC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaXNGaWVsZFJlcXVpcmVkJywgJ2xhYmVsJywgJ3N1ZmZpeEJ1dHRvblByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUZpZWxkTGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAndmVnYUxhYmVsQnV0dG9uQ2xpY2snLCAnbGFiZWxCdXR0b25DbGljayddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FGaWxlVXBsb2FkZXJGaWxlcyBhcyBJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlcyB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1maWxlLXVwbG9hZGVyL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYUZpbGVVcGxvYWRlckZpbGUgYXMgSVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1maWxlLXVwbG9hZGVyL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRmlsZVVwbG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRmlsZVVwbG9hZGVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgY2hhbmdlIGluIHRoZSBmaWxlIGxpc3QuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlcz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSBjaGFuZ2UgaW4gdGhlIGZpbGUgbGlzdC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZXM+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgZmlsZSBzZWxlY3Rpb24gY2hhbmdlLiBCeSBkZWZhdWx0LCB0aGUgY29tcG9uZW50IHZhbHVlXG4gIGlzIHVwZGF0ZWQsIGJ1dCB0aGlzIGJlaGF2aW9yIGNhbiBiZSBwcmV2ZW50ZWQuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FTZWxlY3RlZEZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlcz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSBmaWxlIHNlbGVjdGlvbiBjaGFuZ2UuIEJ5IGRlZmF1bHQsIHRoZSBjb21wb25lbnQgdmFsdWVcbiAgaXMgdXBkYXRlZCwgYnV0IHRoaXMgYmVoYXZpb3IgY2FuIGJlIHByZXZlbnRlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgc2VsZWN0ZWRGaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZXM+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBzZWxlY3RlZCBmaWxlIHdpbGwgYmUgcmVtb3ZlZC4gQnkgZGVmYXVsdCwgdGhlIGNvbXBvbmVudCB2YWx1ZVxuICBpcyB1cGRhdGVkLCBidXQgdGhpcyBiZWhhdmlvciBjYW4gYmUgcHJldmVudGVkLiBAdmVnYVZlcnNpb24gMi4yNS4wXG4gICAqL1xuICB2ZWdhUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIHNlbGVjdGVkIGZpbGUgd2lsbCBiZSByZW1vdmVkLiBCeSBkZWZhdWx0LCB0aGUgY29tcG9uZW50IHZhbHVlXG4gIGlzIHVwZGF0ZWQsIGJ1dCB0aGlzIGJlaGF2aW9yIGNhbiBiZSBwcmV2ZW50ZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBmaWxlIHdpbGwgYmUgcmUtdXBsb2FkZWQuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FSZXRyeTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhRmlsZVVwbG9hZGVyVmVnYUZpbGVVcGxvYWRlckZpbGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBmaWxlIHdpbGwgYmUgcmUtdXBsb2FkZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHJldHJ5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGZpbGUgd2lsbCBiZSBvcGVuZWQgZm9yIHByZXZpZXcuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FQcmV2aWV3OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FGaWxlVXBsb2FkZXJWZWdhRmlsZVVwbG9hZGVyRmlsZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGZpbGUgd2lsbCBiZSBvcGVuZWQgZm9yIHByZXZpZXcuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHByZXZpZXc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUZpbGVVcGxvYWRlclZlZ2FGaWxlVXBsb2FkZXJGaWxlPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZpbGUtdXBsb2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRmlsZVVwbG9hZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYVNlbGVjdGVkRmlsZUNoYW5nZScsICdzZWxlY3RlZEZpbGVDaGFuZ2UnLCAndmVnYVJlbW92ZScsICdyZW1vdmUnLCAndmVnYVJldHJ5JywgJ3JldHJ5JywgJ3ZlZ2FQcmV2aWV3JywgJ3ByZXZpZXcnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZsZXggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGbGV4IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25JdGVtcycsICdicmVha3BvaW50JywgJ2RpcmVjdGlvbicsICdmbGV4JywgJ2ZsZXhCYXNpcycsICdmbGV4R3JvdycsICdmbGV4U2hyaW5rJywgJ2ZsZXhXcmFwJywgJ2dhcCcsICdqdXN0aWZ5Q29udGVudCcsICdtYXJnaW4nLCAndXNlTmF0aXZlRmxleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1mbGV4JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbkl0ZW1zJywgJ2JyZWFrcG9pbnQnLCAnZGlyZWN0aW9uJywgJ2ZsZXgnLCAnZmxleEJhc2lzJywgJ2ZsZXhHcm93JywgJ2ZsZXhTaHJpbmsnLCAnZmxleFdyYXAnLCAnZ2FwJywgJ2p1c3RpZnlDb250ZW50JywgJ21hcmdpbicsICd1c2VOYXRpdmVGbGV4J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUZsZXgge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRm9udCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZvbnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhcycsICdjb2xvcicsICdkaXNhYmxlUmVzcG9uc2l2ZScsICd0ZXh0QWxpZ24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1mb250JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhcycsICdjb2xvcicsICdkaXNhYmxlUmVzcG9uc2l2ZScsICd0ZXh0QWxpZ24nLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGb250IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZvcm0gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGb3JtIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBAdmVnYVZlcnNpb24gMS45LjFcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uIEB2ZWdhVmVyc2lvbiAxLjI0LjBcbiAgICovXG4gIHZlZ2FGb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5rbm93bj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVua25vd24+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSByZXNldCBvZiB0aGUgZm9ybS4gQHZlZ2FWZXJzaW9uIDEuMjQuMFxuICAgKi9cbiAgdmVnYUZvcm1SZXNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlc2V0IG9mIHRoZSBmb3JtLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGZvcm1SZXNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNUb3VjaGVkJywgJ2lzVmFsaWQnXSxcbiAgbWV0aG9kczogWyd2YWxpZCcsICdnZXRWYWx1ZScsICdzZXRWYWx1ZScsICdyZXNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc1RvdWNoZWQnLCAnaXNWYWxpZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGb3JtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVZhbGlkYXRlJywgJ3ZhbGlkYXRlJywgJ3ZlZ2FGb3JtU3VibWl0JywgJ2Zvcm1TdWJtaXQnLCAndmVnYUZvcm1SZXNldCcsICdmb3JtUmVzZXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FHcmlkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sdW1uJywgJ2dhcCcsICdyb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sdW1uJywgJ2dhcCcsICdyb3cnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FIaW50IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSGludCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaGludCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FIaW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUljb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJY29uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhRmlsZU9wdGlvbmFsIGFzIElWZWdhSW1hZ2VVcGxvYWRlclZlZ2FGaWxlT3B0aW9uYWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW1hZ2UtdXBsb2FkZXIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbWFnZVVwbG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW1hZ2VVcGxvYWRlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDEuMTQuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW1hZ2VVcGxvYWRlclZlZ2FGaWxlT3B0aW9uYWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlbW92YWwgb2YgYSB2YWx1ZS4gQHZlZ2FWZXJzaW9uIDEuMTQuMFxuICAgKi9cbiAgdmVnYVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlbW92YWwgb2YgYSB2YWx1ZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICByZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjYW5jZWxsYXRpb24gb2YgYW4gdXBsb2FkaW5nIGV2ZW50LiBAdmVnYVZlcnNpb24gMS4xNC4wXG4gICAqL1xuICB2ZWdhQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVtb3ZhbCBvZiBhIHZhbHVlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNhbmNlbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjdGlvblN1YlRpdGxlJywgJ2FjdGlvblRpdGxlJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hlaWdodCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2hvd1ByZXZpZXdCdXR0b24nLCAnc2hvd1JlbW92ZUJ1dHRvbicsICdzaG93UmVwbGFjZUJ1dHRvbicsICdzdGF0dXMnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Q29udGVudFVSTCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbWFnZS11cGxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjdGlvblN1YlRpdGxlJywgJ2FjdGlvblRpdGxlJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hlaWdodCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2hvd1ByZXZpZXdCdXR0b24nLCAnc2hvd1JlbW92ZUJ1dHRvbicsICdzaG93UmVwbGFjZUJ1dHRvbicsICdzdGF0dXMnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3dpZHRoJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUltYWdlVXBsb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhUmVtb3ZlJywgJ3JlbW92ZScsICd2ZWdhQ2FuY2VsJywgJ2NhbmNlbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDEuMC4xMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgYmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiBAdmVnYVZlcnNpb24gMS4xMi4wXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBmb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgc3VmZml4IGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGxhYmVsIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAyLjI1LjBcbiAgICovXG4gIHZlZ2FMYWJlbEJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBzdWZmaXggYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgbGFiZWwgaGFzIGJlZW4gY2xpY2tlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjUuMFxuICAgKi9cbiAgbGFiZWxCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVDb3B5UGFzdGUnLCAnZGlzYWJsZWQnLCAnZW1haWwnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsU3VmZml4QnV0dG9uUHJvcHMnLCAnbWFza0NvbmZpZycsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckljb24nLCAnc2l6ZScsICd0eXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2YWx1ZVVwZGF0ZVRyaWdnZXInXSxcbiAgbWV0aG9kczogWydkb0ZvY3VzJywgJ2RvQmx1ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVDb3B5UGFzdGUnLCAnZGlzYWJsZWQnLCAnZW1haWwnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsU3VmZml4QnV0dG9uUHJvcHMnLCAnbWFza0NvbmZpZycsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckljb24nLCAnc2l6ZScsICd0eXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2YWx1ZVVwZGF0ZVRyaWdnZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhQmx1cicsICdibHVyJywgJ3ZlZ2FGb2N1cycsICdmb2N1cycsICd2ZWdhTGFiZWxCdXR0b25DbGljaycsICdsYWJlbEJ1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dENyZWRpdENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dENyZWRpdENhcmQge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAxLjI2LjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEEgbmF0aXZlIGNoYW5nZSBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSBjcmVkaXQgY2FyZCBlbGVtZW50LiBAdmVnYVZlcnNpb24gMS4yNi4wXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGNyZWRpdCBjYXJkIGVsZW1lbnQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgYmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBjcmVkaXQgY2FyZCBlbGVtZW50LiBAdmVnYVZlcnNpb24gMS4yNi4wXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgY3JlZGl0IGNhcmQgZWxlbWVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBmb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGlkZUNhcmROdW1iZXJPbkJsdXInLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0LWNyZWRpdC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaWRlQ2FyZE51bWJlck9uQmx1cicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXRDcmVkaXRDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYUJsdXInLCAnYmx1cicsICd2ZWdhRm9jdXMnLCAnZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUlucHV0TnVtZXJpYyBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0TnVtZXJpYyB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDIuMjkuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI5LjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpbnRlZ2VyT25seScsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21ham9ySW5jcmVtZW50JywgJ21pbm9ySW5jcmVtZW50JywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncHJlZml4VGV4dCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N1ZmZpeFRleHQnLCAndGhvdXNhbmRDb21tYScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaW5wdXQtbnVtZXJpYycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpbnRlZ2VyT25seScsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21ham9ySW5jcmVtZW50JywgJ21pbm9ySW5jcmVtZW50JywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncHJlZml4VGV4dCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N1ZmZpeFRleHQnLCAndGhvdXNhbmRDb21tYScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXROdW1lcmljIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhQ291bnRyeVR5cGUgYXMgSVZlZ2FJbnB1dFBob25lTnVtYmVyVmVnYUNvdW50cnlUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWlucHV0LXBob25lLW51bWJlci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUlucHV0UGhvbmVOdW1iZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dFBob25lTnVtYmVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAdmVnYVZlcnNpb24gMi4xOC4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMTguMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNvdW50cnkgY2hhbmdlLiBAdmVnYVZlcnNpb24gMi4xOC4wXG4gICAqL1xuICB2ZWdhQ291bnRyeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW5wdXRQaG9uZU51bWJlclZlZ2FDb3VudHJ5VHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSBjb3VudHJ5IGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMTguMFxuICAgKi9cbiAgY291bnRyeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW5wdXRQaG9uZU51bWJlclZlZ2FDb3VudHJ5VHlwZT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxsb3dlZENvdW50cnlDb2RlcycsICdhdXRvVmFsaWRhdGlvbicsICdjb3VudHJ5Q29kZScsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaW5wdXQtcGhvbmUtbnVtYmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGxvd2VkQ291bnRyeUNvZGVzJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2NvdW50cnlDb2RlJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dFBob25lTnVtYmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYUNvdW50cnlDaGFuZ2UnLCAnY291bnRyeUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXRSYW5nZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0UmFuZ2Uge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEB2ZWdhVmVyc2lvbiAyLjIuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PFtudW1iZXIsIG51bWJlcl0+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PFtudW1iZXIsIG51bWJlcl0+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFySWNvbicsICdzaXplJywgJ3N0YWNrJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1yYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzaG93Q2xlYXJJY29uJywgJ3NpemUnLCAnc3RhY2snLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0UmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFNlbGVjdFZhbHVlVHlwZSBhcyBJVmVnYUlucHV0U2VsZWN0U2VsZWN0VmFsdWVUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWlucHV0LXNlbGVjdC90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdFR5cGUgYXMgSVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW5wdXQtc2VsZWN0L3R5cGVzJztcbmltcG9ydCB0eXBlIHsgVmVnYURyb3Bkb3duU2VhcmNoVHJpZ2dlckV2ZW50RGV0YWlsIGFzIElWZWdhSW5wdXRTZWxlY3RWZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtZHJvcGRvd24vdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dFNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0U2VsZWN0IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlIHNlbGVjdCB2YWx1ZS4gQHZlZ2FWZXJzaW9uIDEuMC4xMVxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW5wdXRTZWxlY3RTZWxlY3RWYWx1ZVR5cGU8SVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFR5cGU+Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZSBzZWxlY3QgdmFsdWUuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFZhbHVlVHlwZTxJVmVnYUlucHV0U2VsZWN0U2VsZWN0VHlwZT4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggb2YgdGhlIGRyb3Bkb3duLiBAdmVnYVZlcnNpb24gMS41MC4wXG4gICAqL1xuICB2ZWdhU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VhcmNoIG9mIHRoZSBkcm9wZG93bi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBzZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggZXZlbnQgdHJpZ2dlcmVkIHdpdGhpbiB0aGUgZHJvcGRvd24sXG4gICBidXQgb25seSBpZiBgdXNlRGVmYXVsdEZpbHRlcmAgaXMgc2V0IHRvIGBmYWxzZWAuXG5Vbmxpa2UgdGhlIFZlZ2FzZWFyY2ggZXZlbnQsIHRoaXMgZXZlbnQgaW5jbHVkZXMgdGhlIGRldGFpbHMgb2YgdGhlIHVzZXIgd2hvIHRyaWdnZXJlZCBpdC5cbkl0IGNhbiBiZSB0cmlnZ2VyZWQgaW4gdHdvIHdheXM6IGJ5IHByZXNzaW5nIFwiRW50ZXJcIiBvciB0aHJvdWdoIHVzZXIgaW5wdXQuIEB2ZWdhVmVyc2lvbiAyLjMwLjBcbiAgICovXG4gIHZlZ2FTZWFyY2hUcmlnZ2VyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFNlbGVjdFZlZ2FEcm9wZG93blNlYXJjaFRyaWdnZXJFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCB0cmlnZ2VyZWQgd2l0aGluIHRoZSBkcm9wZG93bixcblVubGlrZSB0aGUgVmVnYXNlYXJjaCBldmVudCwgdGhpcyBldmVudCBpbmNsdWRlcyB0aGUgZGV0YWlscyBvZiB0aGUgdXNlciB3aG8gdHJpZ2dlcmVkIGl0LlxuSXQgY2FuIGJlIHRyaWdnZXJlZCBpbiB0d28gd2F5czogYnkgcHJlc3NpbmcgXCJFbnRlclwiIG9yIHRocm91Z2ggdXNlciBpbnB1dC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMzAuMFxuICAgKi9cbiAgc2VhcmNoVHJpZ2dlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW5wdXRTZWxlY3RWZWdhRHJvcGRvd25TZWFyY2hUcmlnZ2VyRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGlucHV0LXNlbGVjdCBoYXMgYmVlbiBvcGVuZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDIuMzIuMFxuICAgKi9cbiAgdmVnYVNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGlucHV0LXNlbGVjdCBoYXMgYmVlbiBkaXNtaXNzZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDIuMzIuMFxuICAgKi9cbiAgdmVnYUhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAnc2VsZWN0ZWRMYWJlbCcsICdzaXplJywgJ3NvdXJjZScsICdzb3VyY2VMYXp5TG9hZENhbGxiYWNrJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2ZWdhRHJvcGRvd25Qcm9wcyddLFxuICBtZXRob2RzOiBbJ2RvQ2xvc2UnLCAnZG9PcGVuJywgJ2RvQ2hhbmdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0LXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncmVxdWlyZWQnLCAnc2VsZWN0VHlwZScsICdzZWxlY3RlZExhYmVsJywgJ3NpemUnLCAnc291cmNlJywgJ3NvdXJjZUxhenlMb2FkQ2FsbGJhY2snLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0U2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYVNlYXJjaCcsICdzZWFyY2gnLCAndmVnYVNlYXJjaFRyaWdnZXInLCAnc2VhcmNoVHJpZ2dlcicsICd2ZWdhU2hvdycsICd2ZWdhSGlkZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSXRlbVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUl0ZW1Ub2dnbGUge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYW4gaXRlbSB0b2dnbGUgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYVRvZ2dsZVN0YXR1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFuIGl0ZW0gdG9nZ2xlIGV2ZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHRvZ2dsZVN0YXR1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2lzVG9nZ2xlZCcsICdpdGVtVG9nZ2xlU3RhdHVzTWFwJywgJ3N0YXR1c01hcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pdGVtLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaXNUb2dnbGVkJywgJ2l0ZW1Ub2dnbGVTdGF0dXNNYXAnLCAnc3RhdHVzTWFwJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUl0ZW1Ub2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhVG9nZ2xlU3RhdHVzJywgJ3RvZ2dsZVN0YXR1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxlZnROYXYge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgbGVmdC1uYXYncyBvcGVuIHN0YXRlIGhhcyBjaGFuZ2VkLiBAdmVnYVZlcnNpb24gMS4zMS4wXG4gICAqL1xuICB2ZWdhU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGxlZnQtbmF2J3Mgb3BlbiBzdGF0ZSBoYXMgY2hhbmdlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBzdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b0NvbGxhcHNlR3JvdXBzJywgJ2F1dG9Db2xsYXBzZU9uT3ZlcmxheScsICdmb290bm90ZScsICdoZWFkZXJDb25maWcnLCAnb3BlbicsICdzaG93QXNPdmVybGF5JywgJ3NvdXJjZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sZWZ0LW5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b0NvbGxhcHNlR3JvdXBzJywgJ2F1dG9Db2xsYXBzZU9uT3ZlcmxheScsICdmb290bm90ZScsICdoZWFkZXJDb25maWcnLCAnb3BlbicsICdzaG93QXNPdmVybGF5JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVN0YXRlVXBkYXRlJywgJ3N0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2R3JvdXAge1xuICAvKipcbiAgICogZXZlbnQgZW1pdHRlciB1c2VkIGZvciBub3RpZnlpbmcgY29uc3VtZXJzIHRoZSBjbGljayBldmVudCAqIEB2ZWdhVmVyc2lvbiAxLjQxLjBcbiAgICovXG4gIHZlZ2FHcm91cENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIHVzZWQgZm9yIG5vdGlmeWluZyBjb25zdW1lcnMgdGhlIGNsaWNrIGV2ZW50IEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZ3JvdXBDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sZWZ0LW5hdi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2R3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhR3JvdXBDbGljaycsICdncm91cENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2TGluayBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxlZnROYXZMaW5rIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBsaW5rIGNsaWNrIGV2ZW50LiAqIEB2ZWdhVmVyc2lvbiAxLjMxLjBcbiAgICovXG4gIHZlZ2FNZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBsaW5rIGNsaWNrIGV2ZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIG1lbnVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY291bnRlckJhZGdlJywgJ2ljb24nLCAnc2VsZWN0ZWQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2LWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvdW50ZXJCYWRnZScsICdpY29uJywgJ3NlbGVjdGVkJywgJ3VybCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FNZW51Q2xpY2snLCAnbWVudUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2U2VjdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxlZnROYXZTZWN0aW9uIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBhY3Rpb24gY2xpY2sgZXZlbnQgd2hlbiB0aGUgYWN0aW9uIGxpbmsgaXMgbm90IGNvbmZpZ3VyZWQuIEB2ZWdhVmVyc2lvbiAyLjExLjBcbiAgICovXG4gIHZlZ2FBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGFjdGlvbiBjbGljayBldmVudCB3aGVuIHRoZSBhY3Rpb24gbGluayBpcyBub3QgY29uZmlndXJlZC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMTEuMFxuICAgKi9cbiAgYWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3NlY3Rpb25IZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGVmdC1uYXYtc2VjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnc2VjdGlvbkhlYWRlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2U2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FBY3Rpb25DbGljaycsICdhY3Rpb25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGluZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGluZUNoYXJ0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddLFxuICBtZXRob2RzOiBbJ3JlUmVuZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxpbmUtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ29wdGlvbnMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGluZUNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxvYWRlcldyYXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMb2FkZXJXcmFwcGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sb2FkZXItd3JhcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMb2FkZXJXcmFwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxvYWRpbmdJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMb2FkaW5nSW5kaWNhdG9yIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaGludCcsICdsYWJlbCcsICdtb2RlJywgJ3BlcmNlbnQnLCAnc2hhcGUnLCAnc2l6ZScsICdzdGF0dXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbG9hZGluZy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2hpbnQnLCAnbGFiZWwnLCAnbW9kZScsICdwZXJjZW50JywgJ3NoYXBlJywgJ3NpemUnLCAnc3RhdHVzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUxvYWRpbmdJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FNb2RhbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbW9kYWwgY2xvc2UgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjAuMTBcbiAgICovXG4gIHZlZ2FDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIG1vZGFsIGNsb3NlIGV2ZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbW9kYWwgb3BlbiBldmVudC4gQHZlZ2FWZXJzaW9uIDEuMC4xMFxuICAgKi9cbiAgdmVnYU9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBtb2RhbCBvcGVuIGV2ZW50LiBUaGUgZXZlbnQgbmFtZSBpcyBub3QgYG9wZW5gIGJlY2F1c2UgYWxyZWFkeSBoYXMgYSBwcm9wZXJ0eSBgb3BlbmAgQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBtb2RhbE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdiYWNrZHJvcCcsICdiYWNrZHJvcENvbG9yJywgJ2NvbnRlbnRNYXhIZWlnaHQnLCAnaGFuZGxlQ2xvc2UnLCAnaXNWZXJ0aWNhbGx5Q2VudGVyJywgJ2lzVmVydGljYWxseUNlbnRlcmVkJywgJ21vZGFsVGl0bGUnLCAnb3BlbicsICdwYWRkaW5nJywgJ3Nob3dDbG9zZUJ1dHRvbicsICdzaXplJ10sXG4gIG1ldGhvZHM6IFsnbW9kYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdiYWNrZHJvcCcsICdiYWNrZHJvcENvbG9yJywgJ2NvbnRlbnRNYXhIZWlnaHQnLCAnaGFuZGxlQ2xvc2UnLCAnaXNWZXJ0aWNhbGx5Q2VudGVyJywgJ2lzVmVydGljYWxseUNlbnRlcmVkJywgJ21vZGFsVGl0bGUnLCAnb3BlbicsICdwYWRkaW5nJywgJ3Nob3dDbG9zZUJ1dHRvbicsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYU1vZGFsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsb3NlJywgJ2Nsb3NlJywgJ3ZlZ2FPcGVuJywgJ21vZGFsT3BlbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTmF2Q2FyZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYU5hdkNhcmQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydtYXhIZWlnaHQnLCAnc291cmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLW5hdi1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydtYXhIZWlnaHQnLCAnc291cmNlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYU5hdkNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhUGFnZU5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBhZ2VOb3RpZmljYXRpb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3Rpb25CdXR0b25zJywgJ2R1cmF0aW9uJywgJ21lc3NhZ2UnLCAnbm90aWZpY2F0aW9uVGl0bGUnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1wYWdlLW5vdGlmaWNhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWN0aW9uQnV0dG9ucycsICdkdXJhdGlvbicsICdtZXNzYWdlJywgJ25vdGlmaWNhdGlvblRpdGxlJywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0eXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVBhZ2VOb3RpZmljYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhUGFnZU5vdGlmaWNhdGlvbkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FQYWdlTm90aWZpY2F0aW9uTGlzdCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcGFnZS1ub3RpZmljYXRpb24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQYWdlTm90aWZpY2F0aW9uTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY3VycmVudCBwYWdlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY3VycmVudCBwYWdlIGNoYW5nZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgY2hhbmdlIGluIHRoZSBudW1iZXIgb2ZcbiAgIGRhdGEgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlLiBAdmVnYVZlcnNpb24gMS4yNS4wXG4gICAqL1xuICB2ZWdhUGFnZVNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgY2hhbmdlIGluIHRoZSBudW1iZXIgb2ZcbiAgIGRhdGEgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjdXJyZW50JywgJ2V4dGVuc2lvbnMnLCAncGFnZVNpemUnLCAncGFnZVNpemVTZWxlY3Rvck9wdGlvbnMnLCAndG90YWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY3VycmVudCcsICdleHRlbnNpb25zJywgJ3BhZ2VTaXplJywgJ3BhZ2VTaXplU2VsZWN0b3JPcHRpb25zJywgJ3RvdGFsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhUGFnZVNpemVDaGFuZ2UnLCAncGFnZVNpemVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVBpZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGllQ2hhcnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvcHRpb25zJ10sXG4gIG1ldGhvZHM6IFsncmVSZW5kZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcGllLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVBpZUNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVBvcG92ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FQb3BvdmVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBwb3BvdmVyIHNob3cgZXZlbnQuIEB2ZWdhVmVyc2lvbiAxLjIyLjBcbiAgICovXG4gIHZlZ2FQb3BvdmVyU2hvdzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHBvcG92ZXIgc2hvdyBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBwb3BvdmVyU2hvdzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHBvcG92ZXIgaGlkZSBldmVudC4gQHZlZ2FWZXJzaW9uIDEuMjIuMFxuICAgKi9cbiAgdmVnYVBvcG92ZXJIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcG9wb3ZlciBoaWRlIGV2ZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHBvcG92ZXJIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaG93QXJyb3cnLCAnc2l6ZScsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3Nob3dBcnJvdycsICdzaXplJywgJ3RyaWdnZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUG9wb3ZlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FQb3BvdmVyU2hvdycsICdwb3BvdmVyU2hvdycsICd2ZWdhUG9wb3ZlckhpZGUnLCAncG9wb3ZlckhpZGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVBvcG92ZXJDb250ZW50Qm94IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUG9wb3ZlckNvbnRlbnRCb3gge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzaG93QXJyb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcG9wb3Zlci1jb250ZW50LWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnc2hvd0Fycm93J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVBvcG92ZXJDb250ZW50Qm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVByb2dyZXNzVHJhY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYVByb2dyZXNzVHJhY2tlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBjdXJyZW50IHN0ZXAgaGFzIGNoYW5nZWQuIEB2ZWdhVmVyc2lvbiAxLjUuMFxuICAgKi9cbiAgdmVnYUN1cnJlbnRTdGVwVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBjdXJyZW50IHN0ZXAgaGFzIGNoYW5nZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY3VycmVudFN0ZXBVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NhbkNsaWNrU3RlcCcsICdjb21wbGV0ZWRTdGVwQXJyYXknLCAnY29tcGxldGVkU3RlcHMnLCAnY3VycmVudCcsICdkaXJlY3Rpb24nLCAnc3RlcHMnXSxcbiAgbWV0aG9kczogWyduZXh0U3RlcCcsICdwcmV2U3RlcCcsICdzZXRDdXJyZW50JywgJ2dldEN1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcHJvZ3Jlc3MtdHJhY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuQ2xpY2tTdGVwJywgJ2NvbXBsZXRlZFN0ZXBBcnJheScsICdjb21wbGV0ZWRTdGVwcycsICdjdXJyZW50JywgJ2RpcmVjdGlvbicsICdzdGVwcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQcm9ncmVzc1RyYWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ3VycmVudFN0ZXBVcGRhdGUnLCAnY3VycmVudFN0ZXBVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW8ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gQHZlZ2FWZXJzaW9uIDEuMC43XG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBldmVudCBvZiB0aGUgcmFkaW8gaW5wdXQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgZm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gQHZlZ2FWZXJzaW9uIDEuMC43XG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIHJhZGlvIGlucHV0LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIGNoZWNrIHN0YXR1c1xuICAgb2YgdGhlIHJhZGlvIGlucHV0LiBAdmVnYVZlcnNpb24gMS4wLjEwXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgY2hlY2sgc3RhdHVzXG4gICBvZiB0aGUgcmFkaW8gaW5wdXQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUZvY3VzJywgJ2ZvY3VzJywgJ3ZlZ2FCbHVyJywgJ2JsdXInLCAndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVJhZGlvR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FSYWRpb0dyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlXG4gICBjaGVja2VkIHJhZGlvIGJ1dHRvbiBpbiB0aGUgcmFkaW8gZ3JvdXAuIEB2ZWdhVmVyc2lvbiAxLjAuMTBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlXG4gICBjaGVja2VkIHJhZGlvIGJ1dHRvbiBpbiB0aGUgcmFkaW8gZ3JvdXAuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjAuMFxuICAgKi9cbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXJhZGlvLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVJhZGlvR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2VjdGlvblRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2VjdGlvblRpdGxlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaWNvbicsICdpY29uQWxpZ24nLCAndGl0bGVUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNlY3Rpb24tdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3RpdGxlVGV4dCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTZWN0aW9uVGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2VnbWVudENvbnRyb2wgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTZWdtZW50Q29udHJvbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzXG4gICBpbiB0aGUgc2VsZWN0ZWQgc2VnbWVudC4gQHZlZ2FWZXJzaW9uIDIuMy4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBIG5hdGl2ZSBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzXG4gICBpbiB0aGUgc2VsZWN0ZWQgc2VnbWVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMy4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ3NlZ21lbnRzJywgJ3NlbGVjdGVkJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zZWdtZW50LWNvbnRyb2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ3NlZ21lbnRzJywgJ3NlbGVjdGVkJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTZWdtZW50Q29udHJvbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTZWxlY3Rpb25DaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2VsZWN0aW9uQ2hpcCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGNoaXAsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDIuMjIuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiBjaGlwLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjIyLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYmxvY2snLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdkaXNhYmxlZFRvb2x0aXAnLCAnbGFiZWwnLCAnc2l6ZScsICdzd2F0Y2hDb2xvcicsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNlbGVjdGlvbi1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydibG9jaycsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkVG9vbHRpcCcsICdsYWJlbCcsICdzaXplJywgJ3N3YXRjaENvbG9yJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2VsZWN0aW9uQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTZWxlY3Rpb25DaGlwR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTZWxlY3Rpb25DaGlwR3JvdXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiBjaGlwIGdyb3VwLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIEB2ZWdhVmVyc2lvbiAyLjIyLjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3Rpb24gY2hpcCBncm91cCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4yMi4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzZWxlY3RUeXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1zZWxlY3Rpb24tY2hpcC1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNlbGVjdGlvbkNoaXBHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTZWxlY3Rpb25UaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2VsZWN0aW9uVGlsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIHRpbGUsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDIuNy4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIHRpbGUsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuNy4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbm90ZScsICdwcmVmaXhJY29uJywgJ3NlbGVjdFR5cGUnLCAndGl0bGVUZXh0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNlbGVjdGlvbi10aWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25vdGUnLCAncHJlZml4SWNvbicsICdzZWxlY3RUeXBlJywgJ3RpdGxlVGV4dCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTZWxlY3Rpb25UaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNlbGVjdGlvblRpbGVHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNlbGVjdGlvblRpbGVHcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIHRpbGUgZ3JvdXAsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQHZlZ2FWZXJzaW9uIDIuNy4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIHRpbGUgZ3JvdXAsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuNy4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdsYXlvdXQnLCAncmVxdWlyZWQnLCAnc2VsZWN0VHlwZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2VsZWN0aW9uLXRpbGUtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdsYXlvdXQnLCAncmVxdWlyZWQnLCAnc2VsZWN0VHlwZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2VsZWN0aW9uVGlsZUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNpZGVuYXYgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTaWRlbmF2IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjb21wbGV0aW9uIG9mIGEgbmF2aWdhdGlvbiBtZW51IHN0YXRlIGNoYW5nZSAob3BlbiBvciBjbG9zZSkuIEB2ZWdhVmVyc2lvbiAxLCB2Mi4yOS4wXG4gICAqL1xuICB2ZWdhU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjb21wbGV0aW9uIG9mIGEgbmF2aWdhdGlvbiBtZW51IHN0YXRlIGNoYW5nZSAob3BlbiBvciBjbG9zZSkuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAxLCB2Mi4yOS4wXG4gICAqL1xuICBzdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW5CeURlZmF1bHQnLCAnc291cmNlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Zvb3Rub3RlJywgJ2hlYWRlckNvbmZpZycsICdvcGVuQnlEZWZhdWx0JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTaWRlbmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVN0YXRlVXBkYXRlJywgJ3N0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWRlbmF2R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTaWRlbmF2R3JvdXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2lkZW5hdkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNpZGVuYXZMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lkZW5hdkxpbmsge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgdGhlIG9jY3VycmVuY2Ugb2YgYSBjbGljayBldmVudC4gQHZlZ2FWZXJzaW9uIDEsIHYyLjI5LjBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgdGhlIG9jY3VycmVuY2Ugb2YgYSBjbGljayBldmVudC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDEsIHYyLjI5LjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ3NlbGVjdGVkJywgJ3Nob3dTaWRlQmFyT25DbGlja0xpbmsnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvbicsICdzZWxlY3RlZCcsICdzaG93U2lkZUJhck9uQ2xpY2tMaW5rJywgJ3VybCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTaWRlbmF2TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FTaWduYXR1cmVWYWx1ZSBhcyBJVmVnYVNpZ25hdHVyZUNhcHR1cmVWZWdhU2lnbmF0dXJlVmFsdWUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2Etc2lnbmF0dXJlLWNhcHR1cmUvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWduYXR1cmVDYXB0dXJlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lnbmF0dXJlQ2FwdHVyZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gQHZlZ2FWZXJzaW9uIDIuMTkuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhU2lnbmF0dXJlQ2FwdHVyZVZlZ2FTaWduYXR1cmVWYWx1ZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjE5LjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhU2lnbmF0dXJlQ2FwdHVyZVZlZ2FTaWduYXR1cmVWYWx1ZT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGVpZ2h0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwbGFjZWhvbGRlckljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFyQnRuJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2NsZWFyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZ25hdHVyZS1jYXB0dXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoZWlnaHQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtb2RlJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlaG9sZGVySWNvbicsICdyZXF1aXJlZCcsICdzaG93Q2xlYXJCdG4nLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNpZ25hdHVyZUNhcHR1cmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2tlbGV0b24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTa2VsZXRvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2hlaWdodCcsICd0eXBlJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNrZWxldG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbmltYXRlZCcsICdoZWlnaHQnLCAndHlwZScsICd3aWR0aCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTa2VsZXRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTbG90Q29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2xvdENvbnRhaW5lciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZFxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2xvdC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2xvdENvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU3RlcHBlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgc3RlcHBlciBjb21wb25lbnQuIEB2ZWdhVmVyc2lvbiAxLjAuOFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHN0ZXBwZXIgY29tcG9uZW50LiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYnV0dG9uVmFyaWFudCcsICdkaXNhYmxlZCcsICdpbnB1dERpc2FibGVkJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdzdGVwcGVySWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYnV0dG9uVmFyaWFudCcsICdkaXNhYmxlZCcsICdpbnB1dERpc2FibGVkJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdzdGVwcGVySWQnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYkdyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHRhYlxuICAgaW4gdGhlIHRhYiBncm91cC4gQHZlZ2FWZXJzaW9uIDEuMS4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHRhYlxuICAgaW4gdGhlIHRhYiBncm91cC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZ2FwJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzZWxlY3RlZFRhYkRhdGFUYXJnZXQnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3RhYkl0ZW1zJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGFiLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydnYXAnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NlbGVjdGVkVGFiRGF0YVRhcmdldCcsICdzaG93Q2xvc2VCdXR0b24nLCAndGFiSXRlbXMnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICdjbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFiR3JvdXBQYW5lbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYkdyb3VwUGFuZWwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpc0FjdGl2ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWItZ3JvdXAtcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2lzQWN0aXZlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYkdyb3VwUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZUNoYW5nZVByb3BUeXBlIGFzIElWZWdhVGFibGVWZWdhVGFibGVDaGFuZ2VQcm9wVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVJvd0V4cGFuZEV2ZW50RGV0YWlsIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dFeHBhbmRFdmVudERldGFpbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dTZWxlY3RQcm9wIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgYXMgSVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93U2VsZWN0RXZlbnREZXRhaWwgYXMgSVZlZ2FUYWJsZVZlZ2FUYWJsZVJvd1NlbGVjdEV2ZW50RGV0YWlsIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVJvd1NlbGVjdEFsbEV2ZW50RGV0YWlsIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RBbGxFdmVudERldGFpbCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYmxlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHRhYmxlIGRhdGEuIEB2ZWdhVmVyc2lvbiAxLjMuMFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVDaGFuZ2VQcm9wVHlwZT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdGFibGUgZGF0YS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHJvd1xuICAgaW4gdGhlIHRhYmxlLiBAdmVnYVZlcnNpb24gMS4zLjBcbiAgICovXG4gIHZlZ2FSb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSByb3dcbiAgIGluIHRoZSB0YWJsZS4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICByb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZXhwYW5kZWQgZXZlbnQgb2YgYSByb3dcbiAgIGluIHRoZSB0YWJsZS4gQHZlZ2FWZXJzaW9uIDIuMjQuMFxuICAgKi9cbiAgdmVnYVJvd0V4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dFeHBhbmRFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGV4cGFuZGVkIGV2ZW50IG9mIGEgcm93XG4gICBpbiB0aGUgdGFibGUuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjI0LjBcbiAgICovXG4gIHJvd0V4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dFeHBhbmRFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgd2hlbiB0aGUgcm93IHNlbGVjdGlvbiBjaGFuZ2VzLiBAdmVnYVZlcnNpb24gMS4xOC4wXG4gICAqL1xuICB2ZWdhU2VsZWN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVJvd1NlbGVjdFByb3A+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHdoZW4gdGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiBhbGwgcm93cyBjaGFuZ2VzLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIHNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBzZWxlY3Rpb24gb2YgY2hlY2tib3hlcyxcbiAgIHBhcnRpY3VsYXJseSB0aGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggaW4gdGhlIHRhYmxlIGhlYWRlci4gQHZlZ2FWZXJzaW9uIDEuMTguMFxuICAgKi9cbiAgdmVnYVNlbGVjdEFsbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVTZWxlY3RBbGxQcm9wPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBzZWxlY3Rpb24gb2YgY2hlY2tib3hlcyxcbiAgIHBhcnRpY3VsYXJseSB0aGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggaW4gdGhlIHRhYmxlIGhlYWRlci4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBzZWxlY3RBbGxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlU2VsZWN0QWxsUHJvcD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYmVmb3JlIHRoZSBzZWxlY3RlZCBjaGFuZ2Ugd2hlbiBzZWxlY3QvZGVzZWxlY3Qgb25lIHJvdyBAdmVnYVZlcnNpb24gMi4yMy4wXG4gICAqL1xuICB2ZWdhUm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVJvd1NlbGVjdEV2ZW50RGV0YWlsPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBiZWZvcmUgdGhlIHNlbGVjdGVkIGNoYW5nZSB3aGVuIHNlbGVjdC9kZXNlbGVjdCBvbmUgcm93IEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjIzLjBcbiAgICovXG4gIHJvd1NlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYmVmb3JlIHRoZSBzZWxlY3RlZCBjaGFuZ2Ugd2hlbiBzZWxlY3QvZGVzZWxlY3QgYWxsIHJvd3MgQHZlZ2FWZXJzaW9uIDIuMjMuMFxuICAgKi9cbiAgdmVnYVJvd1NlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RBbGxFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYmVmb3JlIHRoZSBzZWxlY3RlZCBjaGFuZ2Ugd2hlbiBzZWxlY3QvZGVzZWxlY3QgYWxsIHJvd3MgQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMjMuMFxuICAgKi9cbiAgcm93U2VsZWN0QWxsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVJvd1NlbGVjdEFsbEV2ZW50RGV0YWlsPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2x1bW5EaXZpZGVyJywgJ2NvbHVtbnMnLCAnZGF0YVNvdXJjZScsICdkZW5zaXR5JywgJ2VtcHR5RGVzY3JpcHRpb24nLCAncGFkZGluZ1gnLCAncGFnaW5hdGlvbicsICdyb3dDbGlja2FibGUnLCAncm93RGl2aWRlcicsICdyb3dFeHBhbmRhYmxlJywgJ3Jvd0tleScsICdyb3dTZWxlY3Rpb24nLCAnc2Nyb2xsQ29uZmlnJywgJ3Nob3dIZWFkZXInLCAnc29ydENvbmZpZycsICdzdHJpcGVkJ10sXG4gIG1ldGhvZHM6IFsnb3BlbkV4cGFuZFJvdycsICdjbG9zZUV4cGFuZFJvdycsICdjbG9zZUFsbEV4cGFuZFJvdycsICd0b2dnbGVFeHBhbmRSb3cnLCAnY2xlYXJTZWxlY3Rpb24nLCAnZ2V0U2VsZWN0aW9uJywgJ3NldFNlbGVjdGlvbicsICdzdGFydFJvd0VkaXRNb2RlJywgJ3N0b3BSb3dFZGl0TW9kZScsICdzdG9wQWxsUm93RWRpdE1vZGUnLCAnZ2V0Um93RGF0YScsICdnZXRSb3dzRGF0YScsICdnZXRGb3JtUmVmJywgJ2FkZE5ld1JvdycsICdzYXZlRWRpdFJvdycsICdzYXZlQWxsRWRpdFJvd3MnLCAnZ2V0RWRpdGluZ1Jvd3NLZXknLCAncmVtb3ZlUm93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2x1bW5EaXZpZGVyJywgJ2NvbHVtbnMnLCAnZGF0YVNvdXJjZScsICdkZW5zaXR5JywgJ2VtcHR5RGVzY3JpcHRpb24nLCAncGFkZGluZ1gnLCAncGFnaW5hdGlvbicsICdyb3dDbGlja2FibGUnLCAncm93RGl2aWRlcicsICdyb3dFeHBhbmRhYmxlJywgJ3Jvd0tleScsICdyb3dTZWxlY3Rpb24nLCAnc2Nyb2xsQ29uZmlnJywgJ3Nob3dIZWFkZXInLCAnc29ydENvbmZpZycsICdzdHJpcGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICdjaGFuZ2UnLCAndmVnYVJvd0NsaWNrJywgJ3Jvd0NsaWNrJywgJ3ZlZ2FSb3dFeHBhbmQnLCAncm93RXhwYW5kJywgJ3ZlZ2FTZWxlY3RDaGFuZ2UnLCAnc2VsZWN0Q2hhbmdlJywgJ3ZlZ2FTZWxlY3RBbGxDaGFuZ2UnLCAnc2VsZWN0QWxsQ2hhbmdlJywgJ3ZlZ2FSb3dTZWxlY3QnLCAncm93U2VsZWN0JywgJ3ZlZ2FSb3dTZWxlY3RBbGwnLCAncm93U2VsZWN0QWxsJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUJvZHkge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYmxlQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYmxlQ2VsbCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnb3ZlcmZsb3cnLCAndGV4dEFsaWduJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnb3ZlcmZsb3cnLCAndGV4dEFsaWduJywgJ3dpZHRoJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUV4cGFuZFJvdyBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYmxlRXhwYW5kUm93IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsncm93S2V5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWV4cGFuZC1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3Jvd0tleSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUV4cGFuZFJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUhlYWQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUhlYWQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWhlYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFibGVIZWFkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVIZWFkQ2VsbENsaWNrRXZlbnQgYXMgSVZlZ2FUYWJsZUhlYWRDZWxsVmVnYVRhYmxlSGVhZENlbGxDbGlja0V2ZW50IH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYmxlSGVhZENlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUhlYWRDZWxsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGhlYWQgY2VsbCBoYXMgYmVlbiBjbGlja2VkLiBAdmVnYVZlcnNpb24gMS40NC4wXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlSGVhZENlbGxWZWdhVGFibGVIZWFkQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGhlYWQgY2VsbCBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZUhlYWRDZWxsVmVnYVRhYmxlSGVhZENlbGxDbGlja0V2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydicmVha3BvaW50JywgJ3NvcnRPcmRlcicsICdzb3J0ZXInLCAndGV4dEFsaWduJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWhlYWQtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYnJlYWtwb2ludCcsICdzb3J0T3JkZXInLCAnc29ydGVyJywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUhlYWRDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUhlYWRSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUhlYWRSb3cge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydoaWRlU2VsZWN0QWxsJywgJ3NlbGVjdEFsbERpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWhlYWQtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydoaWRlU2VsZWN0QWxsJywgJ3NlbGVjdEFsbERpc2FibGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlSGVhZFJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93Q2xpY2tFdmVudCBhcyBJVmVnYVRhYmxlUm93VmVnYVRhYmxlUm93Q2xpY2tFdmVudCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dFeHBhbmRFdmVudCBhcyBJVmVnYVRhYmxlUm93VmVnYVRhYmxlUm93RXhwYW5kRXZlbnQgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZVJvdyB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSByb3cgaGFzIGJlZW4gY2xpY2tlZC4gQHZlZ2FWZXJzaW9uIDEuNDQuMFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVJvd1ZlZ2FUYWJsZVJvd0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIHJvdyBoYXMgYmVlbiBjbGlja2VkLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVJvd1ZlZ2FUYWJsZVJvd0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGV4cGFuZCBpY29uIGhhcyBiZWVuIGNsaWNrZWQuIEB2ZWdhVmVyc2lvbiAyLjIwLjBcbiAgICovXG4gIHZlZ2FFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlUm93VmVnYVRhYmxlUm93RXhwYW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGV4cGFuZCBpY29uIGhhcyBiZWVuIGNsaWNrZWQuIEBldmVudFNlbWFudGljcyBuYW1lc3BhY2U6bmF0aXZlLEB2ZWdhVmVyc2lvbiAyLjIwLjBcbiAgICovXG4gIGV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVSb3dWZWdhVGFibGVSb3dFeHBhbmRFdmVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsncm93S2V5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsncm93S2V5J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlUm93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ2NsaWNrJywgJ3ZlZ2FFeHBhbmQnLCAnZXhwYW5kJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGV4dCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ292ZXJmbG93JywgJ3Rvb2x0aXAnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3ZlcmZsb3cnLCAndG9vbHRpcCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGV4dGFyZWEge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgY2hhbmdlcyBpbiB0aGUgdmFsdWVcbiAgIG9mIHRoZSB0ZXh0IGFyZWEuIEB2ZWdhVmVyc2lvbiAxLjExLjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFib3V0IGNoYW5nZXMgaW4gdGhlIHZhbHVlXG4gICBvZiB0aGUgdGV4dCBhcmVhLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGlubmVyXG4gICB0ZXh0YXJlYSBlbGVtZW50IHdpdGhpbiB0aGUgdGV4dCBhcmVhLiBAdmVnYVZlcnNpb24gMS4xMS4wXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGlubmVyXG4gICB0ZXh0YXJlYSBlbGVtZW50IHdpdGhpbiB0aGUgdGV4dCBhcmVhLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3Jlc2l6YWJsZScsICdzaG93Q291bnRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3Jlc2l6YWJsZScsICdzaG93Q291bnRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ2NoYW5nZScsICd2ZWdhQmx1cicsICdibHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUaW1lUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGltZVBpY2tlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgdGltZSBwaWNrZXIuIEB2ZWdhVmVyc2lvbiAxLjEyLjBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHRpbWUgcGlja2VyLiBAZXZlbnRTZW1hbnRpY3MgbmFtZXNwYWNlOm5hdGl2ZSxAdmVnYVZlcnNpb24gMi4wLjBcbiAgICovXG4gIGNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdpbmNyZW1lbnRzJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbW9kZScsICdwbGFjZWhvbGRlcicsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0aW1lRm9ybWF0JywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10aW1lLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaW5jcmVtZW50cycsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndGltZUZvcm1hdCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGltZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUaW1lUGlja2VyRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUaW1lUGlja2VyRHJvcGRvd24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRpbWUtcGlja2VyLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRpbWVQaWNrZXJEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUb2dnbGVTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUb2dnbGVTd2l0Y2gge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdG9nZ2xlIHN3aXRjaC4gQHZlZ2FWZXJzaW9uIDEuMy4wXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdG9nZ2xlIHN3aXRjaC4gQGV2ZW50U2VtYW50aWNzIG5hbWVzcGFjZTpuYXRpdmUsQHZlZ2FWZXJzaW9uIDIuMC4wXG4gICAqL1xuICBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdG9nZ2xlLXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRvZ2dsZVN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAnY2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVG9vbHRpcCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdjb250ZW50JywgJ2Rpc2FibGVJbnRlcmFjdGl2ZScsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnLCAndGV4dCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdjb250ZW50JywgJ2Rpc2FibGVJbnRlcmFjdGl2ZScsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnLCAndGV4dCcsICd0cmlnZ2VyJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVG9vbHRpcENvbnRlbnRCb3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUb29sdGlwQ29udGVudEJveCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdG9vbHRpcC1jb250ZW50LWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsndGV4dCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUb29sdGlwQ29udGVudEJveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FWaXJ0dWFsU2Nyb2xsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVmlydHVhbFNjcm9sbCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FwcHJveEl0ZW1IZWlnaHQnLCAnaXNMb2FkaW5nJywgJ3JlbmRlckl0ZW0nLCAnc291cmNlJywgJ3NvdXJjZUl0ZW1JZGVudGlmaWVyJywgJ3ZpZXdwb3J0TWF4SGVpZ2h0JywgJ3ZpcnR1YWxpemF0aW9uVGhyZXNob2xkJ10sXG4gIG1ldGhvZHM6IFsnc2Nyb2xsVG9JbmRleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS12aXJ0dWFsLXNjcm9sbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXBwcm94SXRlbUhlaWdodCcsICdpc0xvYWRpbmcnLCAncmVuZGVySXRlbScsICdzb3VyY2UnLCAnc291cmNlSXRlbUlkZW50aWZpZXInLCAndmlld3BvcnRNYXhIZWlnaHQnLCAndmlydHVhbGl6YXRpb25UaHJlc2hvbGQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVmlydHVhbFNjcm9sbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFtcbiAgVmVnYUFjY29yZGlvbixcbiAgVmVnYUFwcEZvb3RlcixcbiAgVmVnYUFwcEhlYWRlckJ1dHRvbixcbiAgVmVnYUJhY2tkcm9wLFxuICBWZWdhQmFubmVyLFxuICBWZWdhQmFyQ2hhcnQsXG4gIFZlZ2FCb3gsXG4gIFZlZ2FCcmVhZGNydW1iLFxuICBWZWdhQnV0dG9uLFxuICBWZWdhQnV0dG9uQ2lyY2xlLFxuICBWZWdhQnV0dG9uR3JvdXAsXG4gIFZlZ2FCdXR0b25Hcm91cEl0ZW0sXG4gIFZlZ2FCdXR0b25MaW5rLFxuICBWZWdhQ2FsZW5kYXIsXG4gIFZlZ2FDYWxlbmRhckV2ZW50LFxuICBWZWdhQ2FsZW5kYXJFdmVudFNsb3QsXG4gIFZlZ2FDYXJkLFxuICBWZWdhQ2Fyb3VzZWwsXG4gIFZlZ2FDaGVja2JveCxcbiAgVmVnYUNoZWNrYm94R3JvdXAsXG4gIFZlZ2FDaGlwLFxuICBWZWdhQ29sb3JQaWNrZXIsXG4gIFZlZ2FDb21ib0JveCxcbiAgVmVnYUNvdW50ZXJCYWRnZSxcbiAgVmVnYURhdGVQaWNrZXIsXG4gIFZlZ2FEYXRlUGlja2VyQ2FsZW5kYXIsXG4gIFZlZ2FEaWFsb2csXG4gIFZlZ2FEaXZpZGVyLFxuICBWZWdhRHJvcGRvd24sXG4gIFZlZ2FEcm9wZG93bkNvbnRlbnRCb3gsXG4gIFZlZ2FEcm9wZG93bkdyb3VwLFxuICBWZWdhRHJvcGRvd25JdGVtLFxuICBWZWdhRmllbGRFcnJvcixcbiAgVmVnYUZpZWxkTGFiZWwsXG4gIFZlZ2FGaWxlVXBsb2FkZXIsXG4gIFZlZ2FGbGV4LFxuICBWZWdhRm9udCxcbiAgVmVnYUZvcm0sXG4gIFZlZ2FHcmlkLFxuICBWZWdhSGludCxcbiAgVmVnYUljb24sXG4gIFZlZ2FJbWFnZVVwbG9hZGVyLFxuICBWZWdhSW5wdXQsXG4gIFZlZ2FJbnB1dENyZWRpdENhcmQsXG4gIFZlZ2FJbnB1dE51bWVyaWMsXG4gIFZlZ2FJbnB1dFBob25lTnVtYmVyLFxuICBWZWdhSW5wdXRSYW5nZSxcbiAgVmVnYUlucHV0U2VsZWN0LFxuICBWZWdhSXRlbVRvZ2dsZSxcbiAgVmVnYUxlZnROYXYsXG4gIFZlZ2FMZWZ0TmF2R3JvdXAsXG4gIFZlZ2FMZWZ0TmF2TGluayxcbiAgVmVnYUxlZnROYXZTZWN0aW9uLFxuICBWZWdhTGluZUNoYXJ0LFxuICBWZWdhTG9hZGVyV3JhcHBlcixcbiAgVmVnYUxvYWRpbmdJbmRpY2F0b3IsXG4gIFZlZ2FNb2RhbCxcbiAgVmVnYU5hdkNhcmQsXG4gIFZlZ2FQYWdlTm90aWZpY2F0aW9uLFxuICBWZWdhUGFnZU5vdGlmaWNhdGlvbkxpc3QsXG4gIFZlZ2FQYWdpbmF0aW9uLFxuICBWZWdhUGllQ2hhcnQsXG4gIFZlZ2FQb3BvdmVyLFxuICBWZWdhUG9wb3ZlckNvbnRlbnRCb3gsXG4gIFZlZ2FQcm9ncmVzc1RyYWNrZXIsXG4gIFZlZ2FSYWRpbyxcbiAgVmVnYVJhZGlvR3JvdXAsXG4gIFZlZ2FTZWN0aW9uVGl0bGUsXG4gIFZlZ2FTZWdtZW50Q29udHJvbCxcbiAgVmVnYVNlbGVjdGlvbkNoaXAsXG4gIFZlZ2FTZWxlY3Rpb25DaGlwR3JvdXAsXG4gIFZlZ2FTZWxlY3Rpb25UaWxlLFxuICBWZWdhU2VsZWN0aW9uVGlsZUdyb3VwLFxuICBWZWdhU2lkZW5hdixcbiAgVmVnYVNpZGVuYXZHcm91cCxcbiAgVmVnYVNpZGVuYXZMaW5rLFxuICBWZWdhU2lnbmF0dXJlQ2FwdHVyZSxcbiAgVmVnYVNrZWxldG9uLFxuICBWZWdhU2xvdENvbnRhaW5lcixcbiAgVmVnYVN0ZXBwZXIsXG4gIFZlZ2FUYWJHcm91cCxcbiAgVmVnYVRhYkdyb3VwUGFuZWwsXG4gIFZlZ2FUYWJsZSxcbiAgVmVnYVRhYmxlQm9keSxcbiAgVmVnYVRhYmxlQ2VsbCxcbiAgVmVnYVRhYmxlRXhwYW5kUm93LFxuICBWZWdhVGFibGVIZWFkLFxuICBWZWdhVGFibGVIZWFkQ2VsbCxcbiAgVmVnYVRhYmxlSGVhZFJvdyxcbiAgVmVnYVRhYmxlUm93LFxuICBWZWdhVGV4dCxcbiAgVmVnYVRleHRhcmVhLFxuICBWZWdhVGltZVBpY2tlcixcbiAgVmVnYVRpbWVQaWNrZXJEcm9wZG93bixcbiAgVmVnYVRvZ2dsZVN3aXRjaCxcbiAgVmVnYVRvb2x0aXAsXG4gIFZlZ2FUb29sdGlwQ29udGVudEJveCxcbiAgVmVnYVZpcnR1YWxTY3JvbGwsXG5dOyJdfQ==
|