@oiz/stzh-components-angular 3.3.0 → 3.4.0-beta2

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.
@@ -63,11 +63,11 @@ export let StzhActions = class StzhActions {
63
63
  this.el = r.nativeElement;
64
64
  }
65
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhActions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhActions, selector: "stzh-actions", inputs: { variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhActions, selector: "stzh-actions", inputs: { spaceBetween: "spaceBetween", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
67
  };
68
68
  StzhActions = __decorate([
69
69
  ProxyCmp({
70
- inputs: ['variant']
70
+ inputs: ['spaceBetween', 'variant']
71
71
  })
72
72
  ], StzhActions);
73
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhActions, decorators: [{
@@ -77,7 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
77
77
  changeDetection: ChangeDetectionStrategy.OnPush,
78
78
  template: '<ng-content></ng-content>',
79
79
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
80
- inputs: ['variant'],
80
+ inputs: ['spaceBetween', 'variant'],
81
81
  }]
82
82
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
83
83
  export let StzhActionset = class StzhActionset {
@@ -235,11 +235,11 @@ export let StzhArchivelist = class StzhArchivelist {
235
235
  proxyOutputs(this, this.el, ['stzhItemClick']);
236
236
  }
237
237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhArchivelist, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhArchivelist, selector: "stzh-archivelist", inputs: { items: "items", localization: "localization", showItems: "showItems", stepItems: "stepItems" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
238
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhArchivelist, selector: "stzh-archivelist", inputs: { heading: "heading", headingLevel: "headingLevel", items: "items", localization: "localization", showItems: "showItems", stepItems: "stepItems" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
239
239
  };
240
240
  StzhArchivelist = __decorate([
241
241
  ProxyCmp({
242
- inputs: ['items', 'localization', 'showItems', 'stepItems']
242
+ inputs: ['heading', 'headingLevel', 'items', 'localization', 'showItems', 'stepItems']
243
243
  })
244
244
  ], StzhArchivelist);
245
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhArchivelist, decorators: [{
@@ -249,7 +249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
249
249
  changeDetection: ChangeDetectionStrategy.OnPush,
250
250
  template: '<ng-content></ng-content>',
251
251
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
252
- inputs: ['items', 'localization', 'showItems', 'stepItems'],
252
+ inputs: ['heading', 'headingLevel', 'items', 'localization', 'showItems', 'stepItems'],
253
253
  }]
254
254
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
255
255
  export let StzhAudio = class StzhAudio {
@@ -361,11 +361,11 @@ export let StzhButton = class StzhButton {
361
361
  proxyOutputs(this, this.el, ['stzhFocus', 'stzhBlur', 'stzhChange', 'stzhClick']);
362
362
  }
363
363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
364
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhButton, selector: "stzh-button", inputs: { a11yControls: "a11yControls", a11yCurrent: "a11yCurrent", a11yDescribedby: "a11yDescribedby", a11yDisabled: "a11yDisabled", a11yExpanded: "a11yExpanded", a11yLabel: "a11yLabel", a11yTabindex: "a11yTabindex", active: "active", analyticsId: "analyticsId", badge: "badge", badgeEmpty: "badgeEmpty", badgePosition: "badgePosition", badgeType: "badgeType", buttonAccesskey: "buttonAccesskey", buttonId: "buttonId", checked: "checked", defaultChecked: "defaultChecked", disabled: "disabled", download: "download", effect: "effect", fullwidth: "fullwidth", href: "href", icon: "icon", iconOnly: "iconOnly", iconPosition: "iconPosition", label: "label", localization: "localization", name: "name", noPaddingLeft: "noPaddingLeft", noPaddingRight: "noPaddingRight", rel: "rel", rounded: "rounded", showToggleIcon: "showToggleIcon", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", target: "target", textAlign: "textAlign", type: "type", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhButton, selector: "stzh-button", inputs: { a11yControls: "a11yControls", a11yCurrent: "a11yCurrent", a11yDescribedby: "a11yDescribedby", a11yDisabled: "a11yDisabled", a11yExpanded: "a11yExpanded", a11yLabel: "a11yLabel", a11yTabindex: "a11yTabindex", active: "active", analyticsId: "analyticsId", badge: "badge", badgeEmpty: "badgeEmpty", badgePosition: "badgePosition", badgeType: "badgeType", buttonAccesskey: "buttonAccesskey", buttonId: "buttonId", checked: "checked", defaultChecked: "defaultChecked", disabled: "disabled", download: "download", effect: "effect", fullwidth: "fullwidth", href: "href", icon: "icon", iconOnly: "iconOnly", iconPosition: "iconPosition", label: "label", localization: "localization", name: "name", noHyphenation: "noHyphenation", noPaddingLeft: "noPaddingLeft", noPaddingRight: "noPaddingRight", rel: "rel", rounded: "rounded", showToggleIcon: "showToggleIcon", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", target: "target", textAlign: "textAlign", type: "type", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
365
365
  };
366
366
  StzhButton = __decorate([
367
367
  ProxyCmp({
368
- inputs: ['a11yControls', 'a11yCurrent', 'a11yDescribedby', 'a11yDisabled', 'a11yExpanded', 'a11yLabel', 'a11yTabindex', 'active', 'analyticsId', 'badge', 'badgeEmpty', 'badgePosition', 'badgeType', 'buttonAccesskey', 'buttonId', 'checked', 'defaultChecked', 'disabled', 'download', 'effect', 'fullwidth', 'href', 'icon', 'iconOnly', 'iconPosition', 'label', 'localization', 'name', 'noPaddingLeft', 'noPaddingRight', 'rel', 'rounded', 'showToggleIcon', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'target', 'textAlign', 'type', 'value', 'variant']
368
+ inputs: ['a11yControls', 'a11yCurrent', 'a11yDescribedby', 'a11yDisabled', 'a11yExpanded', 'a11yLabel', 'a11yTabindex', 'active', 'analyticsId', 'badge', 'badgeEmpty', 'badgePosition', 'badgeType', 'buttonAccesskey', 'buttonId', 'checked', 'defaultChecked', 'disabled', 'download', 'effect', 'fullwidth', 'href', 'icon', 'iconOnly', 'iconPosition', 'label', 'localization', 'name', 'noHyphenation', 'noPaddingLeft', 'noPaddingRight', 'rel', 'rounded', 'showToggleIcon', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'target', 'textAlign', 'type', 'value', 'variant']
369
369
  })
370
370
  ], StzhButton);
371
371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhButton, decorators: [{
@@ -375,7 +375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
375
375
  changeDetection: ChangeDetectionStrategy.OnPush,
376
376
  template: '<ng-content></ng-content>',
377
377
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
378
- inputs: ['a11yControls', 'a11yCurrent', 'a11yDescribedby', 'a11yDisabled', 'a11yExpanded', 'a11yLabel', 'a11yTabindex', 'active', 'analyticsId', 'badge', 'badgeEmpty', 'badgePosition', 'badgeType', 'buttonAccesskey', 'buttonId', 'checked', 'defaultChecked', 'disabled', 'download', 'effect', 'fullwidth', 'href', 'icon', 'iconOnly', 'iconPosition', 'label', 'localization', 'name', 'noPaddingLeft', 'noPaddingRight', 'rel', 'rounded', 'showToggleIcon', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'target', 'textAlign', 'type', 'value', 'variant'],
378
+ inputs: ['a11yControls', 'a11yCurrent', 'a11yDescribedby', 'a11yDisabled', 'a11yExpanded', 'a11yLabel', 'a11yTabindex', 'active', 'analyticsId', 'badge', 'badgeEmpty', 'badgePosition', 'badgeType', 'buttonAccesskey', 'buttonId', 'checked', 'defaultChecked', 'disabled', 'download', 'effect', 'fullwidth', 'href', 'icon', 'iconOnly', 'iconPosition', 'label', 'localization', 'name', 'noHyphenation', 'noPaddingLeft', 'noPaddingRight', 'rel', 'rounded', 'showToggleIcon', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'target', 'textAlign', 'type', 'value', 'variant'],
379
379
  }]
380
380
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
381
381
  export let StzhButtongroup = class StzhButtongroup {
@@ -434,11 +434,11 @@ export let StzhCard = class StzhCard {
434
434
  proxyOutputs(this, this.el, ['stzhClick', 'stzhCollapse', 'stzhSubtitleClick', 'stzhStarClick', 'stzhHeaderActionClick']);
435
435
  }
436
436
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
437
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhCard, selector: "stzh-card", inputs: { analyticsId: "analyticsId", checked: "checked", collapsed: "collapsed", collapsible: "collapsible", disabled: "disabled", footerActions: "footerActions", headerActions: "headerActions", headerActionsBadge: "headerActionsBadge", headerActionsBadgeType: "headerActionsBadgeType", heading: "heading", headingLevel: "headingLevel", hideMovementActions: "hideMovementActions", href: "href", localization: "localization", name: "name", selectable: "selectable", sortableDisabled: "sortableDisabled", starrable: "starrable", starred: "starred", subtitle: "subtitle", subtitleInteractive: "subtitleInteractive", target: "target", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
437
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhCard, selector: "stzh-card", inputs: { analyticsId: "analyticsId", checked: "checked", collapsed: "collapsed", collapsible: "collapsible", disabled: "disabled", footerActions: "footerActions", headerActions: "headerActions", headerActionsBadge: "headerActionsBadge", headerActionsBadgeType: "headerActionsBadgeType", heading: "heading", headingLevel: "headingLevel", hideMovementActions: "hideMovementActions", href: "href", hyphensEnabled: "hyphensEnabled", localization: "localization", name: "name", selectable: "selectable", sortableDisabled: "sortableDisabled", starrable: "starrable", starred: "starred", subtitle: "subtitle", subtitleInteractive: "subtitleInteractive", target: "target", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
438
438
  };
439
439
  StzhCard = __decorate([
440
440
  ProxyCmp({
441
- inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant']
441
+ inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'hyphensEnabled', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant']
442
442
  })
443
443
  ], StzhCard);
444
444
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhCard, decorators: [{
@@ -448,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
448
448
  changeDetection: ChangeDetectionStrategy.OnPush,
449
449
  template: '<ng-content></ng-content>',
450
450
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
451
- inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant'],
451
+ inputs: ['analyticsId', 'checked', 'collapsed', 'collapsible', 'disabled', 'footerActions', 'headerActions', 'headerActionsBadge', 'headerActionsBadgeType', 'heading', 'headingLevel', 'hideMovementActions', 'href', 'hyphensEnabled', 'localization', 'name', 'selectable', 'sortableDisabled', 'starrable', 'starred', 'subtitle', 'subtitleInteractive', 'target', 'value', 'variant'],
452
452
  }]
453
453
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
454
454
  export let StzhCardNavigation = class StzhCardNavigation {
@@ -1178,11 +1178,11 @@ export let StzhDropdown = class StzhDropdown {
1178
1178
  proxyOutputs(this, this.el, ['stzhChange', 'stzhItemAdd', 'stzhItemRemove', 'stzhOptionAdd', 'stzhOptionRemove', 'stzhOpen', 'stzhClose', 'stzhFocus', 'stzhBlur', 'stzhInit']);
1179
1179
  }
1180
1180
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1181
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDropdown, selector: "stzh-dropdown", inputs: { a11yDescribedby: "a11yDescribedby", allowEmptyOption: "allowEmptyOption", closeAfterSelect: "closeAfterSelect", defaultItems: "defaultItems", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", icon: "icon", iconAngle: "iconAngle", inline: "inline", invalid: "invalid", isOpen: "isOpen", items: "items", label: "label", labelField: "labelField", labelHidden: "labelHidden", load: "load", loadThrottle: "loadThrottle", localization: "localization", lockOptgroupOrder: "lockOptgroupOrder", maxOptions: "maxOptions", minCharacters: "minCharacters", multiple: "multiple", name: "name", noBackspaceDelete: "noBackspaceDelete", noSearch: "noSearch", open: "open", openOnFocus: "openOnFocus", optgroupField: "optgroupField", optgroupLabelField: "optgroupLabelField", optgroupValueField: "optgroupValueField", optgroups: "optgroups", options: "options", popoverFullwidth: "popoverFullwidth", popoverPlacement: "popoverPlacement", preload: "preload", required: "required", searchConjunction: "searchConjunction", searchField: "searchField", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", transformLoadQuery: "transformLoadQuery", value: "value", valueField: "valueField", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDropdown, selector: "stzh-dropdown", inputs: { a11yDescribedby: "a11yDescribedby", allowEmptyOption: "allowEmptyOption", closeAfterSelect: "closeAfterSelect", defaultItems: "defaultItems", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", icon: "icon", iconAngle: "iconAngle", inline: "inline", invalid: "invalid", isOpen: "isOpen", items: "items", label: "label", labelField: "labelField", labelHidden: "labelHidden", load: "load", loadThrottle: "loadThrottle", localization: "localization", lockOptgroupOrder: "lockOptgroupOrder", maxOptions: "maxOptions", minCharacters: "minCharacters", multiple: "multiple", name: "name", noBackspaceDelete: "noBackspaceDelete", noLabelTruncate: "noLabelTruncate", noSearch: "noSearch", noWrap: "noWrap", open: "open", openOnFocus: "openOnFocus", optgroupField: "optgroupField", optgroupLabelField: "optgroupLabelField", optgroupValueField: "optgroupValueField", optgroups: "optgroups", options: "options", popoverFullwidth: "popoverFullwidth", popoverPlacement: "popoverPlacement", preload: "preload", required: "required", searchConjunction: "searchConjunction", searchField: "searchField", size: "size", sizeLarge: "sizeLarge", sizeMedium: "sizeMedium", sizeSmall: "sizeSmall", sizeUltra: "sizeUltra", transformLoadQuery: "transformLoadQuery", value: "value", valueField: "valueField", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1182
1182
  };
1183
1183
  StzhDropdown = __decorate([
1184
1184
  ProxyCmp({
1185
- inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noSearch', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
1185
+ inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noLabelTruncate', 'noSearch', 'noWrap', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
1186
1186
  methods: ['getValue', 'setValue', 'resetLoadedSearches', 'getLoadedSearches', 'getItems', 'loadItems', 'show', 'hide']
1187
1187
  })
1188
1188
  ], StzhDropdown);
@@ -1193,7 +1193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1193
1193
  changeDetection: ChangeDetectionStrategy.OnPush,
1194
1194
  template: '<ng-content></ng-content>',
1195
1195
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1196
- inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noSearch', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
1196
+ inputs: ['a11yDescribedby', 'allowEmptyOption', 'closeAfterSelect', 'defaultItems', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'icon', 'iconAngle', 'inline', 'invalid', 'isOpen', 'items', 'label', 'labelField', 'labelHidden', 'load', 'loadThrottle', 'localization', 'lockOptgroupOrder', 'maxOptions', 'minCharacters', 'multiple', 'name', 'noBackspaceDelete', 'noLabelTruncate', 'noSearch', 'noWrap', 'open', 'openOnFocus', 'optgroupField', 'optgroupLabelField', 'optgroupValueField', 'optgroups', 'options', 'popoverFullwidth', 'popoverPlacement', 'preload', 'required', 'searchConjunction', 'searchField', 'size', 'sizeLarge', 'sizeMedium', 'sizeSmall', 'sizeUltra', 'transformLoadQuery', 'value', 'valueField', 'variant'],
1197
1197
  }]
1198
1198
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1199
1199
  export let StzhEditor = class StzhEditor {
@@ -1390,6 +1390,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1390
1390
  inputs: ['carouselAutoplay', 'carouselAutoplayTimeout', 'carouselDisabled', 'carouselWithTrack', 'excludeFirstImage', 'images', 'itemElement', 'localization', 'ratio', 'ratioLarge', 'ratioMedium', 'ratioSmall', 'ratioUltra', 'showItems', 'stepItems', 'variant'],
1391
1391
  }]
1392
1392
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1393
+ export let StzhGeoRefData = class StzhGeoRefData {
1394
+ constructor(c, r, z) {
1395
+ this.z = z;
1396
+ c.detach();
1397
+ this.el = r.nativeElement;
1398
+ proxyOutputs(this, this.el, ['stzhOverlayCloseClick']);
1399
+ }
1400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhGeoRefData, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhGeoRefData, selector: "stzh-geo-ref-data", inputs: { availableTags: "availableTags", baseUrlOverride: "baseUrlOverride", heading: "heading", mapDataUrl: "mapDataUrl", poiDataUrl: "poiDataUrl", resetTag: "resetTag", searchIndexFields: "searchIndexFields", searchIndexIdField: "searchIndexIdField" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1402
+ };
1403
+ StzhGeoRefData = __decorate([
1404
+ ProxyCmp({
1405
+ inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag', 'searchIndexFields', 'searchIndexIdField']
1406
+ })
1407
+ ], StzhGeoRefData);
1408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhGeoRefData, decorators: [{
1409
+ type: Component,
1410
+ args: [{
1411
+ selector: 'stzh-geo-ref-data',
1412
+ changeDetection: ChangeDetectionStrategy.OnPush,
1413
+ template: '<ng-content></ng-content>',
1414
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1415
+ inputs: ['availableTags', 'baseUrlOverride', 'heading', 'mapDataUrl', 'poiDataUrl', 'resetTag', 'searchIndexFields', 'searchIndexIdField'],
1416
+ }]
1417
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1393
1418
  export let StzhGhettobox = class StzhGhettobox {
1394
1419
  constructor(c, r, z) {
1395
1420
  this.z = z;
@@ -1618,11 +1643,11 @@ export let StzhInput = class StzhInput {
1618
1643
  proxyOutputs(this, this.el, ['stzhChange', 'stzhChanged', 'stzhFocus', 'stzhBlur']);
1619
1644
  }
1620
1645
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1621
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhInput, selector: "stzh-input", inputs: { a11yDescribedby: "a11yDescribedby", autocomplete: "autocomplete", clearable: "clearable", defaultValue: "defaultValue", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", inputmode: "inputmode", invalid: "invalid", label: "label", labelHidden: "labelHidden", localization: "localization", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", multiline: "multiline", name: "name", noAutocomplete: "noAutocomplete", readonly: "readonly", required: "required", rows: "rows", showSpin: "showSpin", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1646
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhInput, selector: "stzh-input", inputs: { a11yDescribedby: "a11yDescribedby", autocomplete: "autocomplete", clearable: "clearable", defaultValue: "defaultValue", description: "description", descriptionLong: "descriptionLong", descriptionLongTitle: "descriptionLongTitle", disabled: "disabled", error: "error", hideOptional: "hideOptional", inputmode: "inputmode", invalid: "invalid", label: "label", labelHidden: "labelHidden", localization: "localization", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", multiline: "multiline", name: "name", noAutocomplete: "noAutocomplete", noLabelTruncate: "noLabelTruncate", readonly: "readonly", required: "required", rows: "rows", showSpin: "showSpin", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1622
1647
  };
1623
1648
  StzhInput = __decorate([
1624
1649
  ProxyCmp({
1625
- inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value']
1650
+ inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'noLabelTruncate', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value']
1626
1651
  })
1627
1652
  ], StzhInput);
1628
1653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhInput, decorators: [{
@@ -1632,7 +1657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1632
1657
  changeDetection: ChangeDetectionStrategy.OnPush,
1633
1658
  template: '<ng-content></ng-content>',
1634
1659
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1635
- inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value'],
1660
+ inputs: ['a11yDescribedby', 'autocomplete', 'clearable', 'defaultValue', 'description', 'descriptionLong', 'descriptionLongTitle', 'disabled', 'error', 'hideOptional', 'inputmode', 'invalid', 'label', 'labelHidden', 'localization', 'max', 'maxlength', 'min', 'minlength', 'multiline', 'name', 'noAutocomplete', 'noLabelTruncate', 'readonly', 'required', 'rows', 'showSpin', 'size', 'step', 'type', 'value'],
1636
1661
  }]
1637
1662
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1638
1663
  export let StzhInvert = class StzhInvert {
@@ -1903,7 +1928,7 @@ export let StzhOlmap = class StzhOlmap {
1903
1928
  this.z = z;
1904
1929
  c.detach();
1905
1930
  this.el = r.nativeElement;
1906
- proxyOutputs(this, this.el, ['stzhInitialized', 'stzhPostRender', 'stzhMoveStart', 'stzhMoveEnd']);
1931
+ proxyOutputs(this, this.el, ['stzhInitialized', 'stzhPostRender', 'stzhMoveStart', 'stzhMoveEnd', 'stzhMovePanZoom']);
1907
1932
  }
1908
1933
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhOlmap, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1909
1934
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhOlmap, selector: "stzh-olmap", inputs: { center: "center", centerMarker: "centerMarker", hostname: "hostname", layer: "layer", layerControl: "layerControl", layers: "layers", localization: "localization", locationControl: "locationControl", pinchRotateThreshold: "pinchRotateThreshold", printControl: "printControl", resolutions: "resolutions", scaleControl: "scaleControl", zoom: "zoom", zoomLocation: "zoomLocation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -1911,7 +1936,7 @@ export let StzhOlmap = class StzhOlmap {
1911
1936
  StzhOlmap = __decorate([
1912
1937
  ProxyCmp({
1913
1938
  inputs: ['center', 'centerMarker', 'hostname', 'layer', 'layerControl', 'layers', 'localization', 'locationControl', 'pinchRotateThreshold', 'printControl', 'resolutions', 'scaleControl', 'zoom', 'zoomLocation'],
1914
- methods: ['getMap', 'addIconMarker', 'removeIconMarker', 'setIconMarkerActive', 'setIconMarkerInactive', 'enableLocationTracking', 'disableLocationTracking', 'getDistance']
1939
+ methods: ['getMap', 'getVisibleMarkers', 'findMarkerById', 'addIconMarker', 'addIconMarkers', 'updateViewToFitMarkers', 'removeAllIconMarkers', 'removeIconMarker', 'setIconMarkerActive', 'setIconMarkerInactive', 'setAllIconMarkersInactive', 'enableLocationTracking', 'disableLocationTracking', 'getDistance']
1915
1940
  })
1916
1941
  ], StzhOlmap);
1917
1942
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhOlmap, decorators: [{
@@ -2073,10 +2098,12 @@ export let StzhPagetitleHome = class StzhPagetitleHome {
2073
2098
  this.el = r.nativeElement;
2074
2099
  }
2075
2100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPagetitleHome, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2076
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPagetitleHome, selector: "stzh-pagetitle-home", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPagetitleHome, selector: "stzh-pagetitle-home", inputs: { hyphensEnabled: "hyphensEnabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2077
2102
  };
2078
2103
  StzhPagetitleHome = __decorate([
2079
- ProxyCmp({})
2104
+ ProxyCmp({
2105
+ inputs: ['hyphensEnabled']
2106
+ })
2080
2107
  ], StzhPagetitleHome);
2081
2108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPagetitleHome, decorators: [{
2082
2109
  type: Component,
@@ -2085,7 +2112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2085
2112
  changeDetection: ChangeDetectionStrategy.OnPush,
2086
2113
  template: '<ng-content></ng-content>',
2087
2114
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2088
- inputs: [],
2115
+ inputs: ['hyphensEnabled'],
2089
2116
  }]
2090
2117
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2091
2118
  export let StzhPagination = class StzhPagination {
@@ -2140,6 +2167,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2140
2167
  inputs: ['autoload', 'caption', 'copyright', 'heading', 'localization', 'orientationOnByDefault', 'scene', 'sceneFadeDuration', 'scenes', 'showControls', 'showHotspots'],
2141
2168
  }]
2142
2169
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2170
+ export let StzhPoicard = class StzhPoicard {
2171
+ constructor(c, r, z) {
2172
+ this.z = z;
2173
+ c.detach();
2174
+ this.el = r.nativeElement;
2175
+ }
2176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoicard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPoicard, selector: "stzh-poicard", inputs: { item: "item" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2178
+ };
2179
+ StzhPoicard = __decorate([
2180
+ ProxyCmp({
2181
+ inputs: ['item']
2182
+ })
2183
+ ], StzhPoicard);
2184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoicard, decorators: [{
2185
+ type: Component,
2186
+ args: [{
2187
+ selector: 'stzh-poicard',
2188
+ changeDetection: ChangeDetectionStrategy.OnPush,
2189
+ template: '<ng-content></ng-content>',
2190
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2191
+ inputs: ['item'],
2192
+ }]
2193
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2194
+ export let StzhPoilist = class StzhPoilist {
2195
+ constructor(c, r, z) {
2196
+ this.z = z;
2197
+ c.detach();
2198
+ this.el = r.nativeElement;
2199
+ }
2200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoilist, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhPoilist, selector: "stzh-poilist", inputs: { api: "api", localization: "localization" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2202
+ };
2203
+ StzhPoilist = __decorate([
2204
+ ProxyCmp({
2205
+ inputs: ['api', 'localization']
2206
+ })
2207
+ ], StzhPoilist);
2208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhPoilist, decorators: [{
2209
+ type: Component,
2210
+ args: [{
2211
+ selector: 'stzh-poilist',
2212
+ changeDetection: ChangeDetectionStrategy.OnPush,
2213
+ template: '<ng-content></ng-content>',
2214
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2215
+ inputs: ['api', 'localization'],
2216
+ }]
2217
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2143
2218
  export let StzhPopover = class StzhPopover {
2144
2219
  constructor(c, r, z) {
2145
2220
  this.z = z;
@@ -2389,6 +2464,7 @@ export let StzhSaptcha = class StzhSaptcha {
2389
2464
  this.z = z;
2390
2465
  c.detach();
2391
2466
  this.el = r.nativeElement;
2467
+ proxyOutputs(this, this.el, ['stzhChange']);
2392
2468
  }
2393
2469
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSaptcha, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2394
2470
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSaptcha, selector: "stzh-saptcha", inputs: { disabled: "disabled", error: "error", invalid: "invalid", localization: "localization", name: "name", numbers: "numbers", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -2438,11 +2514,11 @@ export let StzhSearch = class StzhSearch {
2438
2514
  proxyOutputs(this, this.el, ['stzhOverlayCloseClick']);
2439
2515
  }
2440
2516
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSearch, selector: "stzh-search", inputs: { api: "api", autofetchAsideFilters: "autofetchAsideFilters", autofetchMainFilters: "autofetchMainFilters", breakout: "breakout", debounceTime: "debounceTime", emptyLinkHref: "emptyLinkHref", emptyLinkLabel: "emptyLinkLabel", emptyText: "emptyText", heading: "heading", hideAsideFilters: "hideAsideFilters", hideMainFilters: "hideMainFilters", initialFetch: "initialFetch", limit: "limit", localization: "localization", preventUpdateUrl: "preventUpdateUrl", resultHeadingLevel: "resultHeadingLevel", templateResult: "templateResult", templateResultWrapperElement: "templateResultWrapperElement", templateResultWrapperProps: "templateResultWrapperProps", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2517
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSearch, selector: "stzh-search", inputs: { api: "api", autofetchAsideFilters: "autofetchAsideFilters", autofetchMainFilters: "autofetchMainFilters", breakout: "breakout", debounceTime: "debounceTime", emptyLinkHref: "emptyLinkHref", emptyLinkLabel: "emptyLinkLabel", emptyText: "emptyText", heading: "heading", hideAsideFilters: "hideAsideFilters", hideMainFilters: "hideMainFilters", hyphensEnabled: "hyphensEnabled", initialFetch: "initialFetch", limit: "limit", localization: "localization", preventUpdateUrl: "preventUpdateUrl", resultHeadingLevel: "resultHeadingLevel", subscribeAdditionalQueryParameters: "subscribeAdditionalQueryParameters", subscribeLabel: "subscribeLabel", subscribePath: "subscribePath", templateResult: "templateResult", templateResultWrapperElement: "templateResultWrapperElement", templateResultWrapperProps: "templateResultWrapperProps", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2442
2518
  };
2443
2519
  StzhSearch = __decorate([
2444
2520
  ProxyCmp({
2445
- inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant']
2521
+ inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'hyphensEnabled', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'subscribeAdditionalQueryParameters', 'subscribeLabel', 'subscribePath', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant']
2446
2522
  })
2447
2523
  ], StzhSearch);
2448
2524
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSearch, decorators: [{
@@ -2452,7 +2528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2452
2528
  changeDetection: ChangeDetectionStrategy.OnPush,
2453
2529
  template: '<ng-content></ng-content>',
2454
2530
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2455
- inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant'],
2531
+ inputs: ['api', 'autofetchAsideFilters', 'autofetchMainFilters', 'breakout', 'debounceTime', 'emptyLinkHref', 'emptyLinkLabel', 'emptyText', 'heading', 'hideAsideFilters', 'hideMainFilters', 'hyphensEnabled', 'initialFetch', 'limit', 'localization', 'preventUpdateUrl', 'resultHeadingLevel', 'subscribeAdditionalQueryParameters', 'subscribeLabel', 'subscribePath', 'templateResult', 'templateResultWrapperElement', 'templateResultWrapperProps', 'variant'],
2456
2532
  }]
2457
2533
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2458
2534
  export let StzhSection = class StzhSection {
@@ -2620,6 +2696,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2620
2696
  inputs: ['analyticsId', 'href', 'label', 'linkAccesskey', 'linkTitle'],
2621
2697
  }]
2622
2698
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2699
+ export let StzhSocialmediastream = class StzhSocialmediastream {
2700
+ constructor(c, r, z) {
2701
+ this.z = z;
2702
+ c.detach();
2703
+ this.el = r.nativeElement;
2704
+ }
2705
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSocialmediastream, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2706
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSocialmediastream, selector: "stzh-socialmediastream", inputs: { items: "items" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2707
+ };
2708
+ StzhSocialmediastream = __decorate([
2709
+ ProxyCmp({
2710
+ inputs: ['items']
2711
+ })
2712
+ ], StzhSocialmediastream);
2713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSocialmediastream, decorators: [{
2714
+ type: Component,
2715
+ args: [{
2716
+ selector: 'stzh-socialmediastream',
2717
+ changeDetection: ChangeDetectionStrategy.OnPush,
2718
+ template: '<ng-content></ng-content>',
2719
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2720
+ inputs: ['items'],
2721
+ }]
2722
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2723
+ export let StzhSocialmediastreamItem = class StzhSocialmediastreamItem {
2724
+ constructor(c, r, z) {
2725
+ this.z = z;
2726
+ c.detach();
2727
+ this.el = r.nativeElement;
2728
+ }
2729
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSocialmediastreamItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2730
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhSocialmediastreamItem, selector: "stzh-socialmediastream-item", inputs: { item: "item" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2731
+ };
2732
+ StzhSocialmediastreamItem = __decorate([
2733
+ ProxyCmp({
2734
+ inputs: ['item']
2735
+ })
2736
+ ], StzhSocialmediastreamItem);
2737
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhSocialmediastreamItem, decorators: [{
2738
+ type: Component,
2739
+ args: [{
2740
+ selector: 'stzh-socialmediastream-item',
2741
+ changeDetection: ChangeDetectionStrategy.OnPush,
2742
+ template: '<ng-content></ng-content>',
2743
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2744
+ inputs: ['item'],
2745
+ }]
2746
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2623
2747
  export let StzhSortable = class StzhSortable {
2624
2748
  constructor(c, r, z) {
2625
2749
  this.z = z;
@@ -3049,11 +3173,11 @@ export let StzhUpload = class StzhUpload {
3049
3173
  proxyOutputs(this, this.el, ['stzhFileAdded', 'stzhFilesAdded', 'stzhFileRemove', 'stzhFileRemoved', 'stzhSending', 'stzhSendingMultiple', 'stzhProcessing', 'stzhProcessingMultiple', 'stzhProgress', 'stzhProgressTotal', 'stzhError', 'stzhErrorMultiple', 'stzhSuccess', 'stzhSuccessMultiple', 'stzhCanceled', 'stzhCanceledMultiple', 'stzhComplete', 'stzhCompleteMultiple']);
3050
3174
  }
3051
3175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3052
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhUpload, selector: "stzh-upload", inputs: { accept: "accept", acceptedFiles: "acceptedFiles", autoProcessQueue: "autoProcessQueue", button: "button", buttonScan: "buttonScan", chunkSize: "chunkSize", chunking: "chunking", chunksUploaded: "chunksUploaded", defaultHeaders: "defaultHeaders", description: "description", disabled: "disabled", downloadDisabled: "downloadDisabled", downloadDisabledWhileProcessing: "downloadDisabledWhileProcessing", error: "error", existingFiles: "existingFiles", filesizeBase: "filesizeBase", forceChunking: "forceChunking", headers: "headers", heading: "heading", hiddenInputContainer: "hiddenInputContainer", hideProgress: "hideProgress", hideProgressWhileIdle: "hideProgressWhileIdle", invalid: "invalid", label: "label", localization: "localization", maxFiles: "maxFiles", maxFilesize: "maxFilesize", method: "method", name: "name", parallelChunkUploads: "parallelChunkUploads", parallelUploads: "parallelUploads", photographingEnabled: "photographingEnabled", preventHiddenInputClear: "preventHiddenInputClear", retryChunks: "retryChunks", retryChunksLimit: "retryChunksLimit", uploadMultiple: "uploadMultiple", url: "url", withCredentials: "withCredentials" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhUpload, selector: "stzh-upload", inputs: { accept: "accept", acceptedFiles: "acceptedFiles", autoProcessQueue: "autoProcessQueue", button: "button", buttonScan: "buttonScan", chunkSize: "chunkSize", chunking: "chunking", chunksUploaded: "chunksUploaded", defaultHeaders: "defaultHeaders", description: "description", disableToasts: "disableToasts", disabled: "disabled", downloadDisabled: "downloadDisabled", downloadDisabledWhileProcessing: "downloadDisabledWhileProcessing", error: "error", existingFiles: "existingFiles", filesizeBase: "filesizeBase", forceChunking: "forceChunking", headers: "headers", heading: "heading", hiddenInputContainer: "hiddenInputContainer", hideProgress: "hideProgress", hideProgressWhileIdle: "hideProgressWhileIdle", invalid: "invalid", label: "label", localization: "localization", maxFiles: "maxFiles", maxFilesize: "maxFilesize", method: "method", name: "name", parallelChunkUploads: "parallelChunkUploads", parallelUploads: "parallelUploads", photographingEnabled: "photographingEnabled", preventHiddenInputClear: "preventHiddenInputClear", retryChunks: "retryChunks", retryChunksLimit: "retryChunksLimit", uploadMultiple: "uploadMultiple", url: "url", withCredentials: "withCredentials" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3053
3177
  };
3054
3178
  StzhUpload = __decorate([
3055
3179
  ProxyCmp({
3056
- inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
3180
+ inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
3057
3181
  methods: ['processQueue', 'removeFile', 'removeAllFiles']
3058
3182
  })
3059
3183
  ], StzhUpload);
@@ -3064,7 +3188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3064
3188
  changeDetection: ChangeDetectionStrategy.OnPush,
3065
3189
  template: '<ng-content></ng-content>',
3066
3190
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3067
- inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
3191
+ inputs: ['accept', 'acceptedFiles', 'autoProcessQueue', 'button', 'buttonScan', 'chunkSize', 'chunking', 'chunksUploaded', 'defaultHeaders', 'description', 'disableToasts', 'disabled', 'downloadDisabled', 'downloadDisabledWhileProcessing', 'error', 'existingFiles', 'filesizeBase', 'forceChunking', 'headers', 'heading', 'hiddenInputContainer', 'hideProgress', 'hideProgressWhileIdle', 'invalid', 'label', 'localization', 'maxFiles', 'maxFilesize', 'method', 'name', 'parallelChunkUploads', 'parallelUploads', 'photographingEnabled', 'preventHiddenInputClear', 'retryChunks', 'retryChunksLimit', 'uploadMultiple', 'url', 'withCredentials'],
3068
3192
  }]
3069
3193
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3070
3194
  export let StzhVbzCarousel = class StzhVbzCarousel {
@@ -3282,4 +3406,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3282
3406
  inputs: ['cookie', 'cookieExpires', 'localization', 'skipPreview', 'skipPreviewIfCookieAccepted', 'url'],
3283
3407
  }]
3284
3408
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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USxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLEtBQUssQ0FBQztLQUN6RyxDQUFDO0dBUVcsV0FBVyxDQU12Qjs0RkFOWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsS0FBSyxDQUFDO2lCQUN6RyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnaGVhZGluZycsICdtdWx0aXNlbGVjdGFibGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEl0ZW1Gb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhWYXJpYW50Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY2NvcmRpb24ge1xuICAvKipcbiAgICogVmFyaWFudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdWJ0aXRsZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjY29yZGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBPcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWN0aW9ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWN0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2xvY2FsaXphdGlvbicsICdwb3BvdmVyQnV0dG9uU2l6ZScsICdwb3BvdmVyQnV0dG9uVmFyaWFudCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWN0aW9uc2V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2xvY2FsaXphdGlvbicsICdwb3BvdmVyQnV0dG9uU2l6ZScsICdwb3BvdmVyQnV0dG9uVmFyaWFudCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjdGlvbnNldCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhBY3Rpb25DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQWN0aW9uc2V0U3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjdGlvbnNldCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnNldCB7XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW1vdW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFtb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbW91bnRDaGFuZ2VFdmVudCBhcyBJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbW91bnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbW91bnQge1xuICAvKipcbiAgICogQW1vdW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW1vdW50U3R6aEFtb3VudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hbmNob3JuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQW5jaG9ybmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFuY2hvcm5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFuY2hvcm5hdiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBbmNob3JuYXZTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcEJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcEJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwLW5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBOYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQXBwTmF2SXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBcHBOYXZTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXBwTmF2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXBwTmF2IHtcbiAgLyoqXG4gICAqIEFwcE5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQXBwTmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcHBOYXZTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXBwb2ludG1lbnRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBvaW50bWVudHMnLCAnYXBwb2ludG1lbnRzVGl0bGUnLCAnY2FsZW5kYXJUaXRsZScsICdjdXJyZW50RGF0ZScsICdkYXRlQWRhcHRlcicsICdkaXNhYmxlU29ydCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzaG93SXRlbXMnLCAnc29ydEJ5JywgJ3N0ZXBJdGVtcycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwb2ludG1lbnRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50IGFzIElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcG9pbnRtZW50cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcG9pbnRtZW50cyB7XG4gIC8qKlxuICAgKiBBcHBvaW50bWVudHMgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcHBvaW50bWVudHNTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXJjaGl2ZWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcmNoaXZlbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXJjaGl2ZWxpc3RTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcmNoaXZlbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFyY2hpdmVsaXN0IHtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZG93bmxvYWRBbmFseXRpY3NJZCcsICdsb2NhbGl6YXRpb24nLCAncHJlbG9hZCcsICdzcmMnLCAndHJhbnNjcmlwdCcsICd0cmFuc2NyaXB0QW5hbHl0aWNzSWQnLCAndHJhbnNjcmlwdFNob3duJ10sXG4gIG1ldGhvZHM6IFsncGxheScsICdwYXVzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hdWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZG93bmxvYWRBbmFseXRpY3NJZCcsICdsb2NhbGl6YXRpb24nLCAncHJlbG9hZCcsICdzcmMnLCAndHJhbnNjcmlwdCcsICd0cmFuc2NyaXB0QW5hbHl0aWNzSWQnLCAndHJhbnNjcmlwdFNob3duJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBdWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhQbGF5JywgJ3N0emhQbGF5aW5nJywgJ3N0emhQYXVzZScsICdzdHpoUmVwbGF5JywgJ3N0emhFbmQnLCAnc3R6aEVuZGVkJywgJ3N0emhFcnJvciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGxheUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlpbmdFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QYXVzZUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QYXVzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9SZXBsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZEV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRW5kZWRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRXJyb3JFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBdWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEF1ZGlvIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHBhdXNlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkIGZyb20gdHJ1ZSB0byBmYWxzZSwgYXMgYSByZXN1bHQgb2YgdGhlIHBsYXkoKSBtZXRob2QsIG9yIHRoZSBhdXRvcGxheSBhdHRyaWJ1dGUuXG4gICAqL1xuICBzdHpoUGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgaXMgcmVhZHkgdG8gc3RhcnQgYWZ0ZXIgaGF2aW5nIGJlZW4gcGF1c2VkIG9yIGRlbGF5ZWQgZHVlIHRvIGxhY2sgb2YgZGF0YS5cbiAgICovXG4gIHN0emhQbGF5aW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBhIHJlcXVlc3QgdG8gcGF1c2UgYW4gYWN0aXZpdHkgaXMgaGFuZGxlZCBhbmQgdGhlIGFjdGl2aXR5IGhhcyBlbnRlcmVkIGl0cyBwYXVzZWQgc3RhdGUsIG1vc3QgY29tbW9ubHkgYWZ0ZXIgdGhlIG1lZGlhIGhhcyBiZWVuIHBhdXNlZCB0aHJvdWdoIGEgY2FsbCB0byB0aGUgcGF1c2UoKSBtZXRob2QuXG4gICAqL1xuICBzdHpoUGF1c2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBtZWRpYSBwbGF5YmFjayBzdGFydHMgYWdhaW4gYWZ0ZXIgYmVpbmcgaW4gYW4gZW5kZWQgc3RhdGUuIFRoaXMgaXMgZmlyZWQgd2hlbiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlIGFuZCBtZWRpYSBsb29wcywgd2hlcmVhcyB0aGUgdmRzLXBsYXkgZXZlbnQgaXMgbm90LlxuICAgKi9cbiAgc3R6aFJlcGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9SZXBsYXlFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgZWFjaCB0aW1lIG1lZGlhIHBsYXliYWNrIGhhcyByZWFjaGVkIHRoZSBlbmQuIFRoaXMgaXMgZmlyZWQgZXZlbiBpZiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlLCB3aGljaCBpcyBnZW5lcmFsbHkgd2hlbiB5b3UnZCByZWFjaCBmb3IgdGhpcyBldmVudCBvdmVyIHRoZSBNZWRpYUVuZGVkRXZlbnQgaWYgeW91IHdhbnQgdG8gYmUgbm90aWZpZWQgb2YgbWVkaWEgbG9vcGluZy5cbiAgICovXG4gIHN0emhFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgb3Igc3RyZWFtaW5nIGhhcyBzdG9wcGVkIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgbWVkaWEgd2FzIHJlYWNoZWQgb3IgYmVjYXVzZSBubyBmdXJ0aGVyIGRhdGEgaXMgYXZhaWxhYmxlLiBUaGlzIGlzIG5vdCBmaXJlZCBpZiBwbGF5YmFjayB3aWxsIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZyBhZ2FpbiBkdWUgdG8gdGhlIGxvb3AgcHJvcGVydHkgYmVpbmcgdHJ1ZSAoc2VlIE1lZGlhUmVwbGF5RXZlbnQgYW5kIE1lZGlhRW5kRXZlbnQpLlxuICAgKi9cbiAgc3R6aEVuZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgbG9hZGluZyBvciBwbGF5YmFjayBoYXMgZW5jb3VudGVyZWQgYW55IGlzc3VlcyAoZm9yIGV4YW1wbGUsIGEgbmV0d29yayBjb25uZWN0aXZpdHkgcHJvYmxlbSkuIFRoZSBldmVudCBkZXRhaWwgY29udGFpbnMgYSBwb3RlbnRpYWwgbWVzc2FnZSBjb250YWluaW5nIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yIChlbXB0eSBzdHJpbmcgaWYgbm90aGluZyBhdmFpbGFibGUpLCBhbmQgYSBjb2RlIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJhbCB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCYW5uZXJPcGVuRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyQ2xvc2VFdmVudCBhcyBJU3R6aEJhbm5lclN0emhCYW5uZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJhbm5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhbm5lciB7XG4gIC8qKlxuICAgKiBCYW5uZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJhbm5lciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgYXMgSVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2hhbmdlJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkZvY3VzRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkJsdXJFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25DaGFuZ2VFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNsaWNrRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCdXR0b24ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgKG9ubHkgY2FsbGVkIGlmIHR5cGUgaXMgcmFkaW8pXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJ1dHRvbmdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCdXR0b25ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b25ncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbmdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXNlZERheScsICdzZXREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaXJzdERheU9mV2VlaycsICdpc0RhdGVEaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduZXh0TW9udGhBbmFseXRpY3NJZCcsICdwcmV2TW9udGhBbmFseXRpY3NJZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FsZW5kYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCBhcyBJU3R6aENhbGVuZGFyU3R6aENhbGVuZGFyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjaGVja2VkJywgJ2NvbGxhcHNlZCcsICdjb2xsYXBzaWJsZScsICdkaXNhYmxlZCcsICdmb290ZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9uc0JhZGdlJywgJ2hlYWRlckFjdGlvbnNCYWRnZVR5cGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaGlkZU1vdmVtZW50QWN0aW9ucycsICdocmVmJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3NlbGVjdGFibGUnLCAnc29ydGFibGVEaXNhYmxlZCcsICdzdGFycmFibGUnLCAnc3RhcnJlZCcsICdzdWJ0aXRsZScsICdzdWJ0aXRsZUludGVyYWN0aXZlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NoZWNrZWQnLCAnY29sbGFwc2VkJywgJ2NvbGxhcHNpYmxlJywgJ2Rpc2FibGVkJywgJ2Zvb3RlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zQmFkZ2UnLCAnaGVhZGVyQWN0aW9uc0JhZGdlVHlwZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdoaWRlTW92ZW1lbnRBY3Rpb25zJywgJ2hyZWYnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2VsZWN0YWJsZScsICdzb3J0YWJsZURpc2FibGVkJywgJ3N0YXJyYWJsZScsICdzdGFycmVkJywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlSW50ZXJhY3RpdmUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aENvbGxhcHNlJywgJ3N0emhTdWJ0aXRsZUNsaWNrJywgJ3N0emhTdGFyQ2xpY2snLCAnc3R6aEhlYWRlckFjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENvbGxhcHNlRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDb2xsYXBzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdGFyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN1YnRpdGxlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3VidGl0bGVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBTdGFyIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3RhckNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdGFyQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRlckFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1uYXZpZ2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xlYWQnLCAndGFyZ2V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkTmF2aWdhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1zZWFyY2hyZXN1bHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFNlYXJjaHJlc3VsdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFNlYXJjaHJlc3VsdFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkU2VhcmNocmVzdWx0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZFNlYXJjaHJlc3VsdCB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLXN1cGVydGVhc2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdXBlcnRlYXNlckNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkU3VwZXJ0ZWFzZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU3VwZXJ0ZWFzZXIge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN1cGVydGVhc2VyU3R6aENhcmRTdXBlcnRlYXNlckNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZGxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2xheW91dCcsICdsb2NhbGl6YXRpb24nLCAnc2hvd1RvZ2dsZUxpbmsnLCAnc29ydGFibGVEYXRhSWRBdHRyaWJ1dGUnLCAnc29ydGFibGVFbmFibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDb2xsYXBzZUFsbCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCBhcyBJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRsaXN0IHtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGFsbCBldmVudFxuICAgKi9cbiAgc3R6aENvbGxhcHNlQWxsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkbGlzdFN0emhDYXJkbGlzdENvbGxhcHNlQWxsRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnYXV0b3BsYXlUaW1lb3V0JywgJ2Rpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdub1BlZWsnLCAnbm9uSW50ZXJhY3RpdmUnLCAncHJldmVudEF1dG9wbGF5UGF1c2UnLCAncHJldmVudEF1dG9wbGF5U3RvcCcsICdwcmV2ZW50TW91c2VEcmFnJywgJ3NsaWRlJywgJ3NsaWRlcycsICdzbGlkZXNMYXJnZScsICdzbGlkZXNNZWRpdW0nLCAnc2xpZGVzU21hbGwnLCAnc2xpZGVzVWx0cmEnLCAndGFiVGhyb3VnaCcsICd2YXJpYW50JywgJ3dpdGhUcmFjayddLFxuICBtZXRob2RzOiBbJ3NsaWRlVG8nLCAnc2xpZGVUb1ByZXZpb3VzJywgJ3NsaWRlVG9OZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTbGlkZVN0YXJ0JywgJ3N0emhTbGlkZVBhc3NlZCcsICdzdHpoU2xpZGVFbmQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudCBhcyBJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2Fyb3VzZWwge1xuICAvKipcbiAgICogU2xpZGUgc3RhcnQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgcGFzc2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVQYXNzZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVQYXNzZWRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVFbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdhbGlnblNlbGYnLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENlbGwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoYXJ0SWQnLCAnY3JlYXRlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGFydCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoYXJ0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEZvY3VzRXZlbnQgYXMgSVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEJsdXJFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hlY2tib3gge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hlY2tib3hncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZENoZWNrYm94JywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGVja2JveGdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94Z3JvdXBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94Z3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveGdyb3VwIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92YWJsZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdyZW1vdmVMYWJlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhSZW1vdmUnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcENsaWNrRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcFJlbW92ZUV2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwRm9jdXNFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQmx1ckV2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGlwIHtcbiAgLyoqXG4gICAqIENoaXAgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ2hpcCByZW1vdmUgZXZlbnRcbiAgICovXG4gIHN0emhSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcFJlbW92ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXBncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcGdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXBncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGF0YScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtdWx0aXBsZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXBzZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXBzZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50IGFzIElTdHpoQ2hpcHNlbGVjdFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcHNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBzZWxlY3Qge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jbGFtcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xhbXBlZCcsICdleHBhbmRlZCcsICdsaW5lcycsICdsaW5lc0xhcmdlJywgJ2xpbmVzTWVkaXVtJywgJ2xpbmVzU21hbGwnLCAnbGluZXNVbHRyYScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0V4cGFuZExpbmsnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENsYW1wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsYW1wJywgJ3N0emhFeHBhbmQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcENsYW1wRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcEV4cGFuZEV2ZW50IGFzIElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDbGFtcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENsYW1wIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gY2xhbXBpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aENsYW1wOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gZXhwYW5kaW5nIHN0YXRlIGNoYW5nZWRcbiAgICovXG4gIHN0emhFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wRXhwYW5kRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkcmVzcycsICdhdmFpbGFiaWxpdHknLCAnYXZhaWxhYmlsaXR5VGl0bGUnLCAnYXZhaWxhYmlsaXR5VGl0bGVMZXZlbCcsICdlbWFpbHMnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhdGlvbicsICdtYWluSGVhZGluZycsICdtYWluSGVhZGluZ0xldmVsJywgJ25hbWUnLCAnbmFtZUhlYWRpbmdMZXZlbCcsICdudW1iZXJzJywgJ3BvYm94JywgJ3BvYm94SGVhZGluZycsICdwb2JveExvY2F0aW9uJywgJ3BvYm94UG9zdGFsQ29kZScsICdwb2JveFRpdGxlJywgJ3Bvc3RhbENvZGUnLCAnc3RyZWV0JywgJ3N0cmVldEluZm8nLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICduYW1lSGVhZGluZ0xldmVsJywgJ251bWJlcnMnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhY3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QtY3YnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0Q3Yge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdEN2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFjdEN2IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25vTWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbm9NYXJnaW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJldmVudEVsZW1lbnRMYXlvdXQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ3NwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aENzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGVhZCcsICdzdGlja3lEaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhRm9jdXNFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQmx1ckV2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEN0YUNsaWNrRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDdGEge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnZ2V0Q3VycmVudERpcmVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sdW1ucycsICdjb2x1bW5zTGFyZ2UnLCAnY29sdW1uc01lZGl1bScsICdjb2x1bW5zU21hbGwnLCAnY29sdW1uc1VsdHJhJywgJ2RpcmVjdGlvbicsICdkaXJlY3Rpb25MYXJnZScsICdkaXJlY3Rpb25NZWRpdW0nLCAnZGlyZWN0aW9uU21hbGwnLCAnZGlyZWN0aW9uVWx0cmEnLCAnaXRlbXMnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVmFyaWFudENoYW5nZScsICdzdHpoRGlyZWN0aW9uQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RWYXJpYW50Q2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YWxpc3Qge1xuICAvKipcbiAgICogVmFyaWFudCBhdHRyaWJ1dGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoVmFyaWFudENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RWYXJpYW50Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpcmVjdGlvbiBhdHRyaWJ1dGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlyZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5RXhwYW5kZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5RXhwYW5kZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUFjdGlvbkNsaWNrJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdEl0ZW0ge1xuICAvKipcbiAgICogSXRlbSBhY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFtZXNzYWdlbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbWVzc2FnZWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nU3RhdHVzJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbCcsICd0YWdzJywgJ3RhcmdldCcsICd1bnJlYWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aEFjdGlvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnLCAnY3N2RHluYW1pY1R5cGluZycsICdjc3ZIZWFkZXInLCAnY3N2VXJsJywgJ2Rpc2FibGVNaW5XaWR0aCcsICdoaWRlQ29sdW1uSGVhZGluZ3MnLCAnaGlkZVNlYXJjaCcsICdpZEZpZWxkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3Jvd0hlYWRlckZpZWxkJywgJ3Jvd3MnLCAnc2hvd0xpc3QnLCAnc29ydEJ5JywgJ3NvcnREaXJlY3Rpb24nLCAndGFibGVMYXlvdXQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVTb3J0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGF0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YXRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFJvd0NsaWNrJywgJ3N0emhDZWxsQ2xpY2snLCAnc3R6aEhlYWRpbmdDZWxsQ2xpY2snLCAnc3R6aFNvcnRDbGljaycsICdzdHpoU29ydEJ5Q2hhbmdlJywgJ3N0emhTb3J0RGlyZWN0aW9uQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlQ2VsbENsaWNrRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlSGVhZGluZ0NlbGxDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0QnlDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0QnlDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YXRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YXRhYmxlIHtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSByb3cgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhSb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBjZWxsIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBoZWFkaW5nIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhIZWFkaW5nQ2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlSGVhZGluZ0NlbGxDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBieSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTb3J0QnlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0QnlDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIHNvcnQgZGlyZWN0aW9uIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnREaXJlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FsZW5kYXJJc0RhdGVEaXNhYmxlZCcsICdjYWxlbmRhck1heCcsICdjYWxlbmRhck1pbicsICdkYXRlQWRhcHRlcicsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbmxpbmUnLCAnaW50ZXJuYWxEYXRlQWRhcHRlcicsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXREYXRlJywgJ2dldFBvcG92ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0ZXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FsZW5kYXJJc0RhdGVEaXNhYmxlZCcsICdjYWxlbmRhck1heCcsICdjYWxlbmRhck1pbicsICdkYXRlQWRhcHRlcicsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbmxpbmUnLCAnaW50ZXJuYWxEYXRlQWRhcHRlcicsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0ZXBpY2tlckNoYW5nZUV2ZW50IGFzIElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGVwaWNrZXIge1xuICAvKipcbiAgICogRGF0ZXBpY2tlciBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGVwaWNrZXJTdHpoRGF0ZXBpY2tlckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAncmFuZ2VMaW5rcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAncmFuZ2VMaW5rcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGVyYW5nZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGVyYW5nZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydvcGVuJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEZXRhaWxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEZXRhaWxzIHtcbiAgLyoqXG4gICAqIE9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2ExMXlSb2xlJywgJ2Nsb3NlQW5hbHl0aWNzSWQnLCAnY2xvc2VPbkJhY2tkcm9wQ2xpY2snLCAnY2xvc2VPbkVzY2FwZUtleScsICdoZWFkaW5nJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdzaXplJywgJ3N0YXknXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nT3BlbkV2ZW50IGFzIElTdHpoRGlhbG9nU3R6aERpYWxvZ09wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpYWxvZ0Nsb3NlRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaWFsb2cge1xuICAvKipcbiAgICogRGlhbG9nIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ0Nsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRpc3R1cmJlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEaXN0dXJiZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGlzdHVyYmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGlzdHVyYmVyIHtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dFbXB0eU9wdGlvbicsICdjbG9zZUFmdGVyU2VsZWN0JywgJ2RlZmF1bHRJdGVtcycsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ljb24nLCAnaWNvbkFuZ2xlJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2lzT3BlbicsICdpdGVtcycsICdsYWJlbCcsICdsYWJlbEZpZWxkJywgJ2xhYmVsSGlkZGVuJywgJ2xvYWQnLCAnbG9hZFRocm90dGxlJywgJ2xvY2FsaXphdGlvbicsICdsb2NrT3B0Z3JvdXBPcmRlcicsICdtYXhPcHRpb25zJywgJ21pbkNoYXJhY3RlcnMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0JhY2tzcGFjZURlbGV0ZScsICdub1NlYXJjaCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2dldFZhbHVlJywgJ3NldFZhbHVlJywgJ3Jlc2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0SXRlbXMnLCAnbG9hZEl0ZW1zJywgJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93RW1wdHlPcHRpb24nLCAnY2xvc2VBZnRlclNlbGVjdCcsICdkZWZhdWx0SXRlbXMnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpY29uJywgJ2ljb25BbmdsZScsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpc09wZW4nLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGFiZWxGaWVsZCcsICdsYWJlbEhpZGRlbicsICdsb2FkJywgJ2xvYWRUaHJvdHRsZScsICdsb2NhbGl6YXRpb24nLCAnbG9ja09wdGdyb3VwT3JkZXInLCAnbWF4T3B0aW9ucycsICdtaW5DaGFyYWN0ZXJzJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9CYWNrc3BhY2VEZWxldGUnLCAnbm9TZWFyY2gnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoSXRlbUFkZCcsICdzdHpoSXRlbVJlbW92ZScsICdzdHpoT3B0aW9uQWRkJywgJ3N0emhPcHRpb25SZW1vdmUnLCAnc3R6aE9wZW4nLCAnc3R6aENsb3NlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoSW5pdCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcGVuRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3dDbG9zZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkZvY3VzRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkJsdXJFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0luaXRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGl0ZW0gYWRkZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSByZW1vdmVkIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wdGlvbiBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvbkFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhPcHRpb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZWRpdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRWRpdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEVkaXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEVkaXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRkYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRkYXRhIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRXZlbnRpbmZvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEV2ZW50aW5mbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEV2ZW50aW5mbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWVsZHNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxlZ2VuZCcsICdsZWdlbmQnLCAnbGVnZW5kQ3VydmUnLCAnbGVnZW5kTGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZWxkc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZWxkc2V0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmllbGRzZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWd1cmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2NvdW50ZXInLCAnZnVsbHdpZHRoJywgJ2hlYWRpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZ3VyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGaWd1cmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWd1cmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxuICBtZXRob2RzOiBbJ3JlcG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmx5aW5nZm9jdXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZseWluZ2ZvY3VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZseWluZ2ZvY3VzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmx5aW5nZm9jdXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29weXJpZ2h0JywgJ2xvY2FsaXphdGlvbicsICdtYWluVXJsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydvcGVuTGlnaHRib3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2FsbGVyeScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2Fyb3VzZWxBdXRvcGxheScsICdjYXJvdXNlbEF1dG9wbGF5VGltZW91dCcsICdjYXJvdXNlbERpc2FibGVkJywgJ2Nhcm91c2VsV2l0aFRyYWNrJywgJ2V4Y2x1ZGVGaXJzdEltYWdlJywgJ2ltYWdlcycsICdpdGVtRWxlbWVudCcsICdsb2NhbGl6YXRpb24nLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHYWxsZXJ5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdhbGxlcnkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHYWxsZXJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGRlblRpdGxlJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnbWFpblRpdGxlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdoZXR0b2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZGVuVGl0bGUnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdtYWluVGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdoZXR0b2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEdoZXR0b2JveE9wZW5FdmVudCBhcyBJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50IGFzIElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2hldHRvYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoR2hldHRvYm94IHtcbiAgLyoqXG4gICAqIEdoZXR0b2JveCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogR2hldHRvYm94IGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcE5hdkl0ZW1zJywgJ2hpZGVNZXRhYmFyJywgJ2hyZWYnLCAnbGFuZ3VhZ2VBY3RpdmUnLCAnbGFuZ3VhZ2VJZCcsICdsYW5ndWFnZVByZXZlbnRVcmxjaGFuZ2UnLCAnbGFuZ3VhZ2VTdGF5JywgJ2xhbmd1YWdlcycsICdsb2NhbGl6YXRpb24nLCAnbG9naW5FcnJvck1lc3NhZ2UnLCAnbG9nb0FuYWx5dGljc0lkJywgJ2xvZ29UeXBlJywgJ21lbnVCYWNrTGFiZWwnLCAnbWVudUlkJywgJ21lbnVJdGVtcycsICdtZXRhbmF2SWQnLCAnbWV0YW5hdkl0ZW1zJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnLCAnc3RpY2t5JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc0VuZHBvaW50JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc05vdExvZ2dlZEluJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlUG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE1ldGFuYXZJdGVtQ2xpY2snLCAnc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljaycsICdzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljaycsICdzdHpoTWVudUl0ZW1DbGljaycsICdzdHpoTGFuZ3VhZ2VDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRlciB7XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2hpbGQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGJ1dHRvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VydmUnLCAnbGV2ZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VydmUnLCAnbGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhvbWVwYWdlLXNlcnZpY2UtaGlnaGxpZ2h0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRMZWZ0JywgJ2Fyb3VuZFJpZ2h0JywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5VGl0bGUnLCAnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5VGl0bGUnLCAnbmFtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvdycsICdjb29raWUnLCAnY29va2llQ29uZmlybUljb24nLCAnY29va2llQ29uZmlybUxhYmVsJywgJ2Nvb2tpZUNvbmZpcm1UZXh0JywgJ2Nvb2tpZUV4cGlyZXMnLCAnaGVpZ2h0JywgJ2lmcmFtZUVycm9yVGV4dCcsICdpZnJhbWVJZCcsICdpZnJhbWVSZXNpemVySGVpZ2h0Q29ycmVjdGlvbicsICdpZnJhbWVSZXNpemVyU2Vjb25kbGV2ZWxEb21haW4nLCAnaWZyYW1lUmVzaXplclZhcmlhbnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmlld0ljb24nLCAncHJldmlld0xhYmVsJywgJ3JlZmVycmVycG9saWN5JywgJ3NhbmRib3gnLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3NyYycsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pZnJhbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJZnJhbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUHJldmlld1NraXAnLCAnc3R6aFZpZXdDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50IGFzIElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElmcmFtZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aElmcmFtZSB7XG4gIC8qKlxuICAgKiBQcmV2aWV3IHNraXAgKG9ubHkgZ2V0cyBleGVjdXRlZCBpZiBpdCBnb2VzIGRpcmVjdGx5IHRvIGlmcmFtZSBhbmQgbm90IGNvb2tpZXdhbGwpXG4gICAqL1xuICBzdHpoUHJldmlld1NraXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50Pj47XG4gIC8qKlxuICAgKiBWaWV3IGNoYW5nZVxuICAgKi9cbiAgc3R6aFZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2hpbnRMZWZ0JywgJ2hpbnRSaWdodCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW1hZ2Vjb21wYXJpc29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW1hZ2Vjb21wYXJpc29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IGFzIElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEltYWdlY29tcGFyaXNvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEltYWdlY29tcGFyaXNvbiB7XG5cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAnbm9BdXRvY29tcGxldGUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaG93U3BpbicsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aENoYW5nZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRDaGFuZ2VFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dENoYW5nZWRFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRGb2N1c0V2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRCbHVyRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dEJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aElucHV0IHtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbnZlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEludmVydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbnZlcnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnZlcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2Z1bGx3aWR0aCcsICdoZWlnaHQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtJZCcsICdsb2NhbGl6YXRpb24nLCAncmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rQ2xpY2tFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rRm9jdXNFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhMaW5rQmx1ckV2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaW5rIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFiZWwnLCAnbGFiZWwnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1sb2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbG9hZGluZ2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZVBlcmNlbnQnLCAnbGFiZWwnLCAncGVyY2VudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTG9hZGluZ2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMb2FkaW5nYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGluZ2JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZW51IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZScsICd0YXJnZXQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnbGFiZWwnLCAnc2l6ZScsICd0YXJnZXQnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1CbHVyRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lc3NhZ2VPcGVuRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlQ2xvc2VFdmVudCBhcyBJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lc3NhZ2Uge1xuICAvKipcbiAgICogTWVzc2FnZSBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXNzYWdlIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3RhZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWljcm9zaXRlLXRlYXNlcmxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tb250aHllYXJwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IGFzIElTdHpoTW9udGh5ZWFycGlja2VyU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1vbnRoeWVhcnBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIC8qKlxuICAgKiBNb250aHllYXJwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxuICBtZXRob2RzOiBbJ2dldE1hcCcsICdhZGRJY29uTWFya2VyJywgJ3JlbW92ZUljb25NYXJrZXInLCAnc2V0SWNvbk1hcmtlckFjdGl2ZScsICdzZXRJY29uTWFya2VySW5hY3RpdmUnLCAnZW5hYmxlTG9jYXRpb25UcmFja2luZycsICdkaXNhYmxlTG9jYXRpb25UcmFja2luZycsICdnZXREaXN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vbG1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2xtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSW5pdGlhbGl6ZWQnLCAnc3R6aFBvc3RSZW5kZXInLCAnc3R6aE1vdmVTdGFydCcsICdzdHpoTW92ZUVuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVTdGFydEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZUVuZEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2xtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPbG1hcCB7XG4gIC8qKlxuICAgKiBPbG1hcCBpbml0aWFsaXplZCBldmVudFxuICAgKi9cbiAgc3R6aEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIHBvc3RyZW5kZXIgZXZlbnRcbiAgICovXG4gIHN0emhQb3N0UmVuZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZXN0YXJ0IGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ29wZW4nLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vdmVybGF5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnb3BlbicsICdzdGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhPdmVybGF5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheU9wZW5FdmVudCBhcyBJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE92ZXJsYXlDbG9zZUV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhPdmVybGF5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT3ZlcmxheSB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlhbG9nIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZS1za2lwbGlua3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2VTa2lwbGlua3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZVNraXBsaW5rcyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2VTa2lwbGlua3Mge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ2xvZ29IcmVmJywgJ3ByaW50QW5hbHl0aWNzSWQnLCAnc2hhcmVEaXNhYmxlZCcsICdzaGFyZU1haWxCb2R5JywgJ3NoYXJlTWFpbFN1YmplY3QnLCAnc2hhcmVTZXJ2aWNlcycsICdzaGFyZVRpdGxlJywgJ3NoYXJlVXJsJywgJ3dpdGhQcmludCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlYm90dG9tJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbG9nb0hyZWYnLCAncHJpbnRBbmFseXRpY3NJZCcsICdzaGFyZURpc2FibGVkJywgJ3NoYXJlTWFpbEJvZHknLCAnc2hhcmVNYWlsU3ViamVjdCcsICdzaGFyZVNlcnZpY2VzJywgJ3NoYXJlVGl0bGUnLCAnc2hhcmVVcmwnLCAnd2l0aFByaW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdlYm90dG9tIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2Vib3R0b20gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlYm90dG9tIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vjb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdlY29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlY29udGVudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2Vjb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnZGF0ZWxpbmUnLCAnaHlwaGVuc0VuYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2RhdGVsaW5lJywgJ2h5cGhlbnNFbmFibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0lkJywgJ2xlYWRBdXRob3InLCAnc3VidGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZXRpdGxlLWhlcm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0lkJywgJ2xlYWRBdXRob3InLCAnc3VidGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZUhlcm8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSGVybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhlcm8ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZXRpdGxlLWhvbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2V0aXRsZUhvbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSG9tZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhvbWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZScsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdpbmF0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCBhcyBJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Vmlld2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhbm9yYW1hJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYW5vcmFtYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhMb2FkJywgJ3N0emhDaGFuZ2UnLCAnc3R6aEZ1bGxzY3JlZW5DaGFuZ2UnLCAnc3R6aFNjZW5lQ2hhbmdlJywgJ3N0emhab29tQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFMb2FkRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFub3JhbWEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYW5vcmFtYSB7XG4gIC8qKlxuICAgKiBMb2FkIGV2ZW50XG4gICAqL1xuICBzdHpoTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFMb2FkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGdWxsc2NyZWVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2NlbmUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2NlbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogWm9vbSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhab29tQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXN0YW5jZScsICdmdWxsd2lkdGgnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnLCAndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvcG92ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc3RhbmNlJywgJ2Z1bGx3aWR0aCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJPcGVuRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyT3BlbmVkRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJDbG9zZUV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJDbG9zZWRFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBvcG92ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQb3BvdmVyIHtcbiAgLyoqXG4gICAqIFBvcG92ZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5FdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcmludCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUHJpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUHJpbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQcmludCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SXRlbURhdGEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJvZ3Jlc3NiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrRGlzYWJsZWQnLCAnZGF0YScsICdpbmRleCcsICdsb2NhbGl6YXRpb24nLCAnc3RlcHMnLCAnc3RlcHNMYXJnZScsICdzdGVwc01lZGl1bScsICdzdGVwc1NtYWxsJywgJ3N0ZXBzVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByb2dyZXNzYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByb2dyZXNzYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJvZ3Jlc3NiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2xpY2tEaXNhYmxlZCcsICdjdXJyZW50JywgJ2Rpc2FibGVkJywgJ2RvdHRlZCcsICdmaXJzdCcsICdoaWRlJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wcm9ncmVzc2Jhci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdjbGlja0Rpc2FibGVkJywgJ2N1cnJlbnQnLCAnZGlzYWJsZWQnLCAnZG90dGVkJywgJ2ZpcnN0JywgJ2hpZGUnLCAnaWNvbicsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcm9ncmVzc2Jhckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aERvdHRlZENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUHJvZ3Jlc3NiYXJJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUHJvZ3Jlc3NiYXJJdGVtRG90dGVkQ2xpY2tFdmVudCBhcyBJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByb2dyZXNzYmFySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByb2dyZXNzYmFySXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQcm9ncmVzc2Jhckl0ZW1TdHpoUHJvZ3Jlc3NiYXJJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRG90dGVkIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoRG90dGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFByb2dyZXNzYmFySXRlbVN0emhQcm9ncmVzc2Jhckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9DaGFuZ2VFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0ZvY3VzRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0JsdXJFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW8ge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkUmFkaW8nLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW9ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpb2dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhZGlvZ3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYWRpb2dyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYXRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZml0JywgJ3BvcnRyYWl0JywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYXRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYXRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhdGlvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnXSxcbiAgbWV0aG9kczogWydvcGVuUGxheWVyJywgJ2Nsb3NlUGxheWVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJlYWRzcGVha2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydocmVmJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSZWFkc3BlYWtlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSZWFkc3BlYWtlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJlYWRzcGVha2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4dGVybmFsTGlua0ljb24nLCAnZXh0ZXJuYWxMaW5rU2VsZWN0b3InLCAnbG9jYWxpemF0aW9uJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmljaHRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4dGVybmFsTGlua0ljb24nLCAnZXh0ZXJuYWxMaW5rU2VsZWN0b3InLCAnbG9jYWxpemF0aW9uJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJpY2h0ZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJpY2h0ZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmljaHRleHQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSb3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdudW1iZXJzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNhcHRjaGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2FwdGNoYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTYXB0Y2hhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2FwdGNoYSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zY3JvbGx1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2Nyb2xsdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2Nyb2xsdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTY3JvbGx1cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2JyZWFrb3V0JywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2luaXRpYWxGZXRjaCcsICdsaW1pdCcsICdsb2NhbGl6YXRpb24nLCAncHJldmVudFVwZGF0ZVVybCcsICdyZXN1bHRIZWFkaW5nTGV2ZWwnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2F1dG9mZXRjaEFzaWRlRmlsdGVycycsICdhdXRvZmV0Y2hNYWluRmlsdGVycycsICdicmVha291dCcsICdkZWJvdW5jZVRpbWUnLCAnZW1wdHlMaW5rSHJlZicsICdlbXB0eUxpbmtMYWJlbCcsICdlbXB0eVRleHQnLCAnaGVhZGluZycsICdoaWRlQXNpZGVGaWx0ZXJzJywgJ2hpZGVNYWluRmlsdGVycycsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3RlbXBsYXRlUmVzdWx0JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlckVsZW1lbnQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyUHJvcHMnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE92ZXJsYXlDbG9zZUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCBhcyBJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNlYXJjaCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNlYXJjaCB7XG4gIC8qKlxuICAgKiBTZWFyY2ggb3ZlcmxheSBjbG9zZSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE92ZXJsYXlDbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTZWFyY2hTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2JyZWFrb3V0JywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnLCAncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nVG9wJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2VjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdicmVha291dCcsICdtYXJnaW5Cb3R0b20nLCAnbWFyZ2luVG9wJywgJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ1RvcCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTZWN0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWN0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hhcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNoYXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNoYXJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hhcmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNob3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2hvdyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNob3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2l0ZW1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNpdGVtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2l0ZW1hcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNpdGVtYXAge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpbi1wb3J0YWwtbWl0d2lya2VuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2luUG9ydGFsTWl0d2lya2VuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2luUG9ydGFsTWl0d2lya2VuIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tc3Rvcnlib29rLXByZXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2lwbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpcGxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTa2lwbGlua0ZvY3VzRXZlbnQgYXMgSVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTa2lwbGlua0JsdXJFdmVudCBhcyBJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraXBsaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpcGxpbmsge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29ydGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTdHVja1RvcCcsICdzdHpoU3R1Y2tCb3R0b20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0aWNreUFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3lBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9sZGFibGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZSB7XG4gIC8qKlxuICAgKiBGb2xkYWJsZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGb2xkYWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZUl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5FdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9hc3Qgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgbWV0aG9kczogWyd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdGJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVGb2N1c0V2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVCbHVyRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5FdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvb2x0aXAge1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXR3b2NvbHVtbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFR3b2NvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkV2hpbGVQcm9jZXNzaW5nJywgJ2Vycm9yJywgJ2V4aXN0aW5nRmlsZXMnLCAnZmlsZXNpemVCYXNlJywgJ2ZvcmNlQ2h1bmtpbmcnLCAnaGVhZGVycycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWV0aG9kJywgJ25hbWUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxuICBtZXRob2RzOiBbJ3Byb2Nlc3NRdWV1ZScsICdyZW1vdmVGaWxlJywgJ3JlbW92ZUFsbEZpbGVzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXVwbG9hZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkV2hpbGVQcm9jZXNzaW5nJywgJ2Vycm9yJywgJ2V4aXN0aW5nRmlsZXMnLCAnZmlsZXNpemVCYXNlJywgJ2ZvcmNlQ2h1bmtpbmcnLCAnaGVhZGVycycsICdoZWFkaW5nJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWV0aG9kJywgJ25hbWUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZpbGVBZGRlZCcsICdzdHpoRmlsZXNBZGRlZCcsICdzdHpoRmlsZVJlbW92ZScsICdzdHpoRmlsZVJlbW92ZWQnLCAnc3R6aFNlbmRpbmcnLCAnc3R6aFNlbmRpbmdNdWx0aXBsZScsICdzdHpoUHJvY2Vzc2luZycsICdzdHpoUHJvY2Vzc2luZ011bHRpcGxlJywgJ3N0emhQcm9ncmVzcycsICdzdHpoUHJvZ3Jlc3NUb3RhbCcsICdzdHpoRXJyb3InLCAnc3R6aEVycm9yTXVsdGlwbGUnLCAnc3R6aFN1Y2Nlc3MnLCAnc3R6aFN1Y2Nlc3NNdWx0aXBsZScsICdzdHpoQ2FuY2VsZWQnLCAnc3R6aENhbmNlbGVkTXVsdGlwbGUnLCAnc3R6aENvbXBsZXRlJywgJ3N0emhDb21wbGV0ZU11bHRpcGxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZVJlbW92ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFNlbmRpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvckV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRFcnJvck11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVXBsb2FkIHtcbiAgLyoqXG4gICAqIEZpbGUgYWRkZWRcbiAgICovXG4gIHN0emhGaWxlQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgYWRkZWQgKG11bHRpcGxlKVxuICAgKi9cbiAgc3R6aEZpbGVzQWRkZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlIChiZWZvcmUsIGNhbmNlbGFibGUpXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSByZW1vdmVkXG4gICAqL1xuICBzdHpoRmlsZVJlbW92ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBmaWxlIChhZGQgYWRkaXRpb25hbCBkYXRhIGJlZm9yZSByZXF1ZXN0IGlmIG5lY2Vzc2FyeSlcbiAgICovXG4gIHN0emhTZW5kaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCZWZvcmUgc2VuZGluZyBtdWx0aXBsZSBmaWxlcyAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN0YXJ0aW5nIHRvIGdldCBwcm9jZXNzZWRcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhQcm9jZXNzaW5nTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudD4+O1xuICAvKipcbiAgICogVXBsb2FkIHRvdGFsIGZpbGUgcHJvZ3Jlc3MgZHVyaW5nIHVwbG9hZFxuICAgKi9cbiAgc3R6aFByb2dyZXNzVG90YWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgZXJyb3JcbiAgICovXG4gIHN0emhFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGVycm9yIChtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhFcnJvck11bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZFxuICAgKi9cbiAgc3R6aFN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN1Y2Nlc3NmdWxseSB1cGxvYWRlZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoU3VjY2Vzc011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENhbmNlbGVkIGZpbGUgdXBsb2FkXG4gICAqL1xuICBzdHpoQ2FuY2VsZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZCAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ2FuY2VsZWRNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IpXG4gICAqL1xuICBzdHpoQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDb21wbGV0ZWQgdXBsb2FkIChzdWNjZXNzZnVsbHkgb3Igd2l0aCBlcnJvciwgbXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoQ29tcGxldGVNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheVRpbWVvdXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q2Fyb3VzZWwge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNvbm5lY3Rpb24tZmluZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNvbm5lY3Rpb25GaW5kZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpDb25uZWN0aW9uRmluZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1pbnRybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ3F1aWNrbGlua3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekludHJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekludHJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6SW50cm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1saW5lY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdsaW5lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpMaW5lY2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IGFzIElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6TGluZWNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpMaW5lY2hpcCB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJywgJ3Nob3dDbG9zZUtleSddLFxuICBtZXRob2RzOiBbJ2dldEdoZXR0b2JveFNob3duJywgJ2dldERpc3R1cmJhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1tYWpvcnRpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiek1ham9ydGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aERpc3R1cmJhbmNlRmV0Y2hlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQgYXMgSVN0emhWYnpNYWpvcnRpY2tlclN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiek1ham9ydGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TWFqb3J0aWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBtYWpvciBkaXN0dXJiYW5jZSB3YXMgZmV0Y2hlZFxuICAgKi9cbiAgc3R6aERpc3R1cmJhbmNlRmV0Y2hlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei10aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZielRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpUaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpUaWNrZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmlzdWFsbHloaWRkZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZpc3VhbGx5aGlkZGVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZpc3VhbGx5aGlkZGVuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmlzdWFsbHloaWRkZW4ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVnNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVnNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXlvdXR1YmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nvb2tpZScsICdjb29raWVFeHBpcmVzJywgJ2xvY2FsaXphdGlvbicsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhZb3V0dWJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFlvdXR1YmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhZb3V0dWJlIHt9XG5cblxuIl19
3409
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBTlUsYUFBYTttR0FBYixhQUFhLDBLQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztHQVFXLGFBQWEsQ0FPekI7NEZBUFksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUs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QWMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7aUJBQ3BKOztBQXVCTSxXQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsV0FBVzttR0FBWCxXQUFXLG9QQUpaLDJCQUEyQjs7QUFJMUIsV0FBVztJQVZ2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsNkJBQTZCLEVBQUUsS0FBSyxDQUFDO0tBQ3pHLENBQUM7R0FRVyxXQUFXLENBTXZCOzRGQU5ZLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxLQUFLLENBQUM7aUJBQ3pHIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdoZWFkaW5nJywgJ211bHRpc2VsZWN0YWJsZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2V0SXRlbUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnaGVhZGluZycsICdtdWx0aXNlbGVjdGFibGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFZhcmlhbnRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFZhcmlhbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvblN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3VidGl0bGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY2NvcmRpb25JdGVtIHtcbiAgLyoqXG4gICAqIE9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3BhY2VCZXR3ZWVuJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3BhY2VCZXR3ZWVuJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zZXQge1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFtb3VudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbW91bnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQW1vdW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBbW91bnRTdHpoQW1vdW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQW1vdW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQW1vdW50IHtcbiAgLyoqXG4gICAqIEFtb3VudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW5jaG9ybmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFuY2hvcm5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFuY2hvcm5hdlN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbmNob3JuYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbmNob3JuYXYge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcEJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBCYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBCYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwTmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEFwcE5hdkl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcE5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcE5hdiB7XG4gIC8qKlxuICAgKiBBcHBOYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFwcE5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcG9pbnRtZW50cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcG9pbnRtZW50cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCBhcyBJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBvaW50bWVudHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBvaW50bWVudHMge1xuICAvKipcbiAgICogQXBwb2ludG1lbnRzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFyY2hpdmVsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXJjaGl2ZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXJjaGl2ZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcmNoaXZlbGlzdCB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxuICBtZXRob2RzOiBbJ3BsYXknLCAncGF1c2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUGxheScsICdzdHpoUGxheWluZycsICdzdHpoUGF1c2UnLCAnc3R6aFJlcGxheScsICdzdHpoRW5kJywgJ3N0emhFbmRlZCcsICdzdHpoRXJyb3InXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QbGF5aW5nRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGF1c2VFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUmVwbGF5RXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FbmRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZGVkRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0Vycm9yRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXVkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBdWRpbyB7XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHRoZSBwYXVzZWQgcHJvcGVydHkgaXMgY2hhbmdlZCBmcm9tIHRydWUgdG8gZmFsc2UsIGFzIGEgcmVzdWx0IG9mIHRoZSBwbGF5KCkgbWV0aG9kLCBvciB0aGUgYXV0b3BsYXkgYXR0cmlidXRlLlxuICAgKi9cbiAgc3R6aFBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIGlzIHJlYWR5IHRvIHN0YXJ0IGFmdGVyIGhhdmluZyBiZWVuIHBhdXNlZCBvciBkZWxheWVkIGR1ZSB0byBsYWNrIG9mIGRhdGEuXG4gICAqL1xuICBzdHpoUGxheWluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gYSByZXF1ZXN0IHRvIHBhdXNlIGFuIGFjdGl2aXR5IGlzIGhhbmRsZWQgYW5kIHRoZSBhY3Rpdml0eSBoYXMgZW50ZXJlZCBpdHMgcGF1c2VkIHN0YXRlLCBtb3N0IGNvbW1vbmx5IGFmdGVyIHRoZSBtZWRpYSBoYXMgYmVlbiBwYXVzZWQgdGhyb3VnaCBhIGNhbGwgdG8gdGhlIHBhdXNlKCkgbWV0aG9kLlxuICAgKi9cbiAgc3R6aFBhdXNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgcGxheWJhY2sgc3RhcnRzIGFnYWluIGFmdGVyIGJlaW5nIGluIGFuIGVuZGVkIHN0YXRlLiBUaGlzIGlzIGZpcmVkIHdoZW4gdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSBhbmQgbWVkaWEgbG9vcHMsIHdoZXJlYXMgdGhlIHZkcy1wbGF5IGV2ZW50IGlzIG5vdC5cbiAgICovXG4gIHN0emhSZXBsYXk6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIGVhY2ggdGltZSBtZWRpYSBwbGF5YmFjayBoYXMgcmVhY2hlZCB0aGUgZW5kLiBUaGlzIGlzIGZpcmVkIGV2ZW4gaWYgdGhlIGxvb3AgcHJvcGVydHkgaXMgdHJ1ZSwgd2hpY2ggaXMgZ2VuZXJhbGx5IHdoZW4geW91J2QgcmVhY2ggZm9yIHRoaXMgZXZlbnQgb3ZlciB0aGUgTWVkaWFFbmRlZEV2ZW50IGlmIHlvdSB3YW50IHRvIGJlIG5vdGlmaWVkIG9mIG1lZGlhIGxvb3BpbmcuXG4gICAqL1xuICBzdHpoRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIHBsYXliYWNrIG9yIHN0cmVhbWluZyBoYXMgc3RvcHBlZCBiZWNhdXNlIHRoZSBlbmQgb2YgdGhlIG1lZGlhIHdhcyByZWFjaGVkIG9yIGJlY2F1c2Ugbm8gZnVydGhlciBkYXRhIGlzIGF2YWlsYWJsZS4gVGhpcyBpcyBub3QgZmlyZWQgaWYgcGxheWJhY2sgd2lsbCBzdGFydCBmcm9tIHRoZSBiZWdpbm5pbmcgYWdhaW4gZHVlIHRvIHRoZSBsb29wIHByb3BlcnR5IGJlaW5nIHRydWUgKHNlZSBNZWRpYVJlcGxheUV2ZW50IGFuZCBNZWRpYUVuZEV2ZW50KS5cbiAgICovXG4gIHN0emhFbmRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIG1lZGlhIGxvYWRpbmcgb3IgcGxheWJhY2sgaGFzIGVuY291bnRlcmVkIGFueSBpc3N1ZXMgKGZvciBleGFtcGxlLCBhIG5ldHdvcmsgY29ubmVjdGl2aXR5IHByb2JsZW0pLiBUaGUgZXZlbnQgZGV0YWlsIGNvbnRhaW5zIGEgcG90ZW50aWFsIG1lc3NhZ2UgY29udGFpbmluZyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvciAoZW1wdHkgc3RyaW5nIGlmIG5vdGhpbmcgYXZhaWxhYmxlKSwgYW5kIGEgY29kZSB0aGF0IGlkZW50aWZpZXMgdGhlIGdlbmVyYWwgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLlxuICAgKi9cbiAgc3R6aEVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyT3BlbkV2ZW50IGFzIElTdHpoQmFubmVyU3R6aEJhbm5lck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJhbm5lckNsb3NlRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYW5uZXIge1xuICAvKipcbiAgICogQmFubmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBCYW5uZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQmFubmVyU3R6aEJhbm5lckNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoSXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJyZWFkY3J1bWIge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnYnV0dG9uQWNjZXNza2V5JywgJ2J1dHRvbklkJywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWZmZWN0JywgJ2Z1bGx3aWR0aCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ25vSHlwaGVuYXRpb24nLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDaGFuZ2UnLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uRm9jdXNFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQmx1ckV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCAob25seSBjYWxsZWQgaWYgdHlwZSBpcyByYWRpbylcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbmdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnV0dG9uZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlyc3REYXlPZldlZWsnLCAnaXNEYXRlRGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmV4dE1vbnRoQW5hbHl0aWNzSWQnLCAncHJldk1vbnRoQW5hbHl0aWNzSWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1c2VkRGF5JywgJ3NldERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYWxlbmRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYWxlbmRhckNoYW5nZUV2ZW50IGFzIElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYWxlbmRhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhbGVuZGFyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NoZWNrZWQnLCAnY29sbGFwc2VkJywgJ2NvbGxhcHNpYmxlJywgJ2Rpc2FibGVkJywgJ2Zvb3RlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zQmFkZ2UnLCAnaGVhZGVyQWN0aW9uc0JhZGdlVHlwZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdoaWRlTW92ZW1lbnRBY3Rpb25zJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2VsZWN0YWJsZScsICdzb3J0YWJsZURpc2FibGVkJywgJ3N0YXJyYWJsZScsICdzdGFycmVkJywgJ3N1YnRpdGxlJywgJ3N1YnRpdGxlSW50ZXJhY3RpdmUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQ29sbGFwc2UnLCAnc3R6aFN1YnRpdGxlQ2xpY2snLCAnc3R6aFN0YXJDbGljaycsICdzdHpoSGVhZGVyQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ29sbGFwc2VFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3RhckNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ29sbGFwc2UgZXZlbnRcbiAgICovXG4gIHN0emhDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudD4+O1xuICAvKipcbiAgICogU3VidGl0bGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdWJ0aXRsZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0YXIgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdGFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGVyQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsZWFkJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IGFzIElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmROYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZE5hdmlnYXRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLXNlYXJjaHJlc3VsdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTZWFyY2hyZXN1bHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc3VwZXJ0ZWFzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFN1cGVydGVhc2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTdXBlcnRlYXNlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENvbGxhcHNlQWxsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IGFzIElTdHpoQ2FyZGxpc3RTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZGxpc3Qge1xuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2VBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG1ldGhvZHM6IFsnc2xpZGVUbycsICdzbGlkZVRvUHJldmlvdXMnLCAnc2xpZGVUb05leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2F1dG9wbGF5VGltZW91dCcsICdkaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbm9QZWVrJywgJ25vbkludGVyYWN0aXZlJywgJ3ByZXZlbnRBdXRvcGxheVBhdXNlJywgJ3ByZXZlbnRBdXRvcGxheVN0b3AnLCAncHJldmVudE1vdXNlRHJhZycsICdzbGlkZScsICdzbGlkZXMnLCAnc2xpZGVzTGFyZ2UnLCAnc2xpZGVzTWVkaXVtJywgJ3NsaWRlc1NtYWxsJywgJ3NsaWRlc1VsdHJhJywgJ3RhYlRocm91Z2gnLCAndmFyaWFudCcsICd3aXRoVHJhY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aFNsaWRlU3RhcnQnLCAnc3R6aFNsaWRlUGFzc2VkJywgJ3N0emhTbGlkZUVuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBTbGlkZSBzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aFNsaWRlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBwYXNzZWQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVBhc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBlbmQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnYWxpZ25TZWxmJywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Rm9jdXNFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Qmx1ckV2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRDaGVja2JveCcsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGVja2JveGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94Z3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IGFzIElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hlY2tib3hncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoZWNrYm94Z3JvdXAge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveGdyb3VwU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZlcnRlZCcsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmFibGUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAncmVtb3ZlTGFiZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aFJlbW92ZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQ2xpY2tFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwUmVtb3ZlRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBGb2N1c0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBCbHVyRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXAge1xuICAvKipcbiAgICogQ2hpcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGlwIHJlbW92ZSBldmVudFxuICAgKi9cbiAgc3R6aFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcGdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcHNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2RhdGEnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgYXMgSVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGlwc2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcHNlbGVjdCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBzZWxlY3RTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsYW1wZWQnLCAnZXhwYW5kZWQnLCAnbGluZXMnLCAnbGluZXNMYXJnZScsICdsaW5lc01lZGl1bScsICdsaW5lc1NtYWxsJywgJ2xpbmVzVWx0cmEnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dFeHBhbmRMaW5rJ10sXG4gIG1ldGhvZHM6IFsndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNsYW1wJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2xhbXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xhbXAnLCAnc3R6aEV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wQ2xhbXBFdmVudCBhcyBJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wRXhwYW5kRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENsYW1wIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2xhbXAge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBjbGFtcGluZyBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBzdHpoQ2xhbXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBleHBhbmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICduYW1lSGVhZGluZ0xldmVsJywgJ251bWJlcnMnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnZW1haWxzJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ25hbWVIZWFkaW5nTGV2ZWwnLCAnbnVtYmVycycsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3N0cmVldCcsICdzdHJlZXRJbmZvJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdC1jdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3RDdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250YWN0Q3YgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0Q3Yge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbm9NYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydub01hcmdpbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRlbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHJldmVudFJlbW92ZU5lc3RlZCcsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ3NwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWN0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEN0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDdGFGb2N1c0V2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDdGFCbHVyRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQ2xpY2tFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEN0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEN0YSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnLCAnY29sdW1uc0xhcmdlJywgJ2NvbHVtbnNNZWRpdW0nLCAnY29sdW1uc1NtYWxsJywgJ2NvbHVtbnNVbHRyYScsICdkaXJlY3Rpb24nLCAnZGlyZWN0aW9uTGFyZ2UnLCAnZGlyZWN0aW9uTWVkaXVtJywgJ2RpcmVjdGlvblNtYWxsJywgJ2RpcmVjdGlvblVsdHJhJywgJ2l0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRDdXJyZW50RGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhWYXJpYW50Q2hhbmdlJywgJ3N0emhEaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdCB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGlyZWN0aW9uIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhEaXJlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2ljb24nLCAnaWNvbkhyZWYnLCAnaWNvbkxhYmVsJywgJ2ljb25Qb3NpdGlvbicsICdpY29uVG9vbHRpcCcsICdsYWJlbCcsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdyZWwnLCAnc3RhdHVzTGFiZWwnLCAnc3RhdHVzVHlwZScsICd0YXJnZXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJdGVtQWN0aW9uQ2xpY2snLCAnc3R6aENsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBJdGVtIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YW1lc3NhZ2VsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZ1N0YXR1cycsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdub25JbnRlcmFjdGl2ZScsICdyZWwnLCAndGFncycsICd0YXJnZXQnLCAndW5yZWFkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDbGljaycsICdzdHpoQWN0aW9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZVNvcnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhdGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoUm93Q2xpY2snLCAnc3R6aENlbGxDbGljaycsICdzdHpoSGVhZGluZ0NlbGxDbGljaycsICdzdHpoU29ydENsaWNrJywgJ3N0emhTb3J0QnlDaGFuZ2UnLCAnc3R6aFNvcnREaXJlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhdGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhdGFibGUge1xuICAvKipcbiAgICogRGF0YXRhYmxlIHJvdyBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGhlYWRpbmcgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRpbmdDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGJ5IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRCeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldERhdGUnLCAnZ2V0UG9wb3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBEYXRlcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXJhbmdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERldGFpbHMge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dPcGVuRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nQ2xvc2VFdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpYWxvZyB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGlzdHVyYmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZUtleScsICdoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpc3R1cmJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaXN0dXJiZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaXN0dXJiZXIge1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydnZXRWYWx1ZScsICdzZXRWYWx1ZScsICdyZXNldExvYWRlZFNlYXJjaGVzJywgJ2dldExvYWRlZFNlYXJjaGVzJywgJ2dldEl0ZW1zJywgJ2xvYWRJdGVtcycsICdzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd0VtcHR5T3B0aW9uJywgJ2Nsb3NlQWZ0ZXJTZWxlY3QnLCAnZGVmYXVsdEl0ZW1zJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaWNvbicsICdpY29uQW5nbGUnLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnaXNPcGVuJywgJ2l0ZW1zJywgJ2xhYmVsJywgJ2xhYmVsRmllbGQnLCAnbGFiZWxIaWRkZW4nLCAnbG9hZCcsICdsb2FkVGhyb3R0bGUnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2tPcHRncm91cE9yZGVyJywgJ21heE9wdGlvbnMnLCAnbWluQ2hhcmFjdGVycycsICdtdWx0aXBsZScsICduYW1lJywgJ25vQmFja3NwYWNlRGVsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdub1NlYXJjaCcsICdub1dyYXAnLCAnb3BlbicsICdvcGVuT25Gb2N1cycsICdvcHRncm91cEZpZWxkJywgJ29wdGdyb3VwTGFiZWxGaWVsZCcsICdvcHRncm91cFZhbHVlRmllbGQnLCAnb3B0Z3JvdXBzJywgJ29wdGlvbnMnLCAncG9wb3ZlckZ1bGx3aWR0aCcsICdwb3BvdmVyUGxhY2VtZW50JywgJ3ByZWxvYWQnLCAncmVxdWlyZWQnLCAnc2VhcmNoQ29uanVuY3Rpb24nLCAnc2VhcmNoRmllbGQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RyYW5zZm9ybUxvYWRRdWVyeScsICd2YWx1ZScsICd2YWx1ZUZpZWxkJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENoYW5nZScsICdzdHpoSXRlbUFkZCcsICdzdHpoSXRlbVJlbW92ZScsICdzdHpoT3B0aW9uQWRkJywgJ3N0emhPcHRpb25SZW1vdmUnLCAnc3R6aE9wZW4nLCAnc3R6aENsb3NlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoSW5pdCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcGVuRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3dDbG9zZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkZvY3VzRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkJsdXJFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0luaXRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGl0ZW0gYWRkZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSByZW1vdmVkIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wdGlvbiBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvbkFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhPcHRpb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZWRpdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRWRpdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEVkaXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEVkaXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRkYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRkYXRhIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRXZlbnRpbmZvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEV2ZW50aW5mbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEV2ZW50aW5mbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWVsZHNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxlZ2VuZCcsICdsZWdlbmQnLCAnbGVnZW5kQ3VydmUnLCAnbGVnZW5kTGV2ZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZWxkc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZWxkc2V0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmllbGRzZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWd1cmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2NvdW50ZXInLCAnZnVsbHdpZHRoJywgJ2hlYWRpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZ3VyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGaWd1cmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWd1cmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxuICBtZXRob2RzOiBbJ3JlcG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmx5aW5nZm9jdXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZseWluZ2ZvY3VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZseWluZ2ZvY3VzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmx5aW5nZm9jdXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29weXJpZ2h0JywgJ2xvY2FsaXphdGlvbicsICdtYWluVXJsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydvcGVuTGlnaHRib3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2FsbGVyeScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2Fyb3VzZWxBdXRvcGxheScsICdjYXJvdXNlbEF1dG9wbGF5VGltZW91dCcsICdjYXJvdXNlbERpc2FibGVkJywgJ2Nhcm91c2VsV2l0aFRyYWNrJywgJ2V4Y2x1ZGVGaXJzdEltYWdlJywgJ2ltYWdlcycsICdpdGVtRWxlbWVudCcsICdsb2NhbGl6YXRpb24nLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHYWxsZXJ5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdhbGxlcnkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHYWxsZXJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F2YWlsYWJsZVRhZ3MnLCAnYmFzZVVybE92ZXJyaWRlJywgJ2hlYWRpbmcnLCAnbWFwRGF0YVVybCcsICdwb2lEYXRhVXJsJywgJ3Jlc2V0VGFnJywgJ3NlYXJjaEluZGV4RmllbGRzJywgJ3NlYXJjaEluZGV4SWRGaWVsZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1nZW8tcmVmLWRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F2YWlsYWJsZVRhZ3MnLCAnYmFzZVVybE92ZXJyaWRlJywgJ2hlYWRpbmcnLCAnbWFwRGF0YVVybCcsICdwb2lEYXRhVXJsJywgJ3Jlc2V0VGFnJywgJ3NlYXJjaEluZGV4RmllbGRzJywgJ3NlYXJjaEluZGV4SWRGaWVsZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2VvUmVmRGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHZW9SZWZEYXRhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoR2VvUmVmRGF0YSB7XG4gIC8qKlxuICAgKiBPdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdlb1JlZkRhdGFTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZGVuVGl0bGUnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdtYWluVGl0bGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2hldHRvYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2hldHRvYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94T3BlbkV2ZW50IGFzIElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEdoZXR0b2JveENsb3NlRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhHaGV0dG9ib3ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHaGV0dG9ib3gge1xuICAvKipcbiAgICogR2hldHRvYm94IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwTmF2SXRlbXMnLCAnaGlkZU1ldGFiYXInLCAnaHJlZicsICdsYW5ndWFnZUFjdGl2ZScsICdsYW5ndWFnZUlkJywgJ2xhbmd1YWdlUHJldmVudFVybGNoYW5nZScsICdsYW5ndWFnZVN0YXknLCAnbGFuZ3VhZ2VzJywgJ2xvY2FsaXphdGlvbicsICdsb2dpbkVycm9yTWVzc2FnZScsICdsb2dvQW5hbHl0aWNzSWQnLCAnbG9nb1R5cGUnLCAnbWVudUJhY2tMYWJlbCcsICdtZW51SWQnLCAnbWVudUl0ZW1zJywgJ21ldGFuYXZJZCcsICdtZXRhbmF2SXRlbXMnLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZScsICdzdGlja3knLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zRW5kcG9pbnQnLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zTm90TG9nZ2VkSW4nXSxcbiAgbWV0aG9kczogWyd1cGRhdGVQb3NpdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcE5hdkl0ZW1zJywgJ2hpZGVNZXRhYmFyJywgJ2hyZWYnLCAnbGFuZ3VhZ2VBY3RpdmUnLCAnbGFuZ3VhZ2VJZCcsICdsYW5ndWFnZVByZXZlbnRVcmxjaGFuZ2UnLCAnbGFuZ3VhZ2VTdGF5JywgJ2xhbmd1YWdlcycsICdsb2NhbGl6YXRpb24nLCAnbG9naW5FcnJvck1lc3NhZ2UnLCAnbG9nb0FuYWx5dGljc0lkJywgJ2xvZ29UeXBlJywgJ21lbnVCYWNrTGFiZWwnLCAnbWVudUlkJywgJ21lbnVJdGVtcycsICdtZXRhbmF2SWQnLCAnbWV0YW5hdkl0ZW1zJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnLCAnc3RpY2t5JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc0VuZHBvaW50JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc05vdExvZ2dlZEluJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoTWV0YW5hdkl0ZW1DbGljaycsICdzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrJywgJ3N0emhNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrJywgJ3N0emhNZW51SXRlbUNsaWNrJywgJ3N0emhMYW5ndWFnZUNoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSGVhZGVyIHtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjaGlsZCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2hpbGRDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gYnV0dG9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTGFuZ3VhZ2UgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoTGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXJ2ZScsICdsZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oZWFkaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJ2ZScsICdsZXZlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSGVhZGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIZWFkaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSGVhZGluZyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaG9tZXBhZ2Utc2VydmljZS1oaWdobGlnaHRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEljb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlmcmFtZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3cnLCAnY29va2llJywgJ2Nvb2tpZUNvbmZpcm1JY29uJywgJ2Nvb2tpZUNvbmZpcm1MYWJlbCcsICdjb29raWVDb25maXJtVGV4dCcsICdjb29raWVFeHBpcmVzJywgJ2hlaWdodCcsICdpZnJhbWVFcnJvclRleHQnLCAnaWZyYW1lSWQnLCAnaWZyYW1lUmVzaXplckhlaWdodENvcnJlY3Rpb24nLCAnaWZyYW1lUmVzaXplclNlY29uZGxldmVsRG9tYWluJywgJ2lmcmFtZVJlc2l6ZXJWYXJpYW50JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZpZXdJY29uJywgJ3ByZXZpZXdMYWJlbCcsICdyZWZlcnJlcnBvbGljeScsICdzYW5kYm94JywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICdzcmMnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElmcmFtZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhQcmV2aWV3U2tpcCcsICdzdHpoVmlld0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudCBhcyBJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSWZyYW1lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWZyYW1lIHtcbiAgLyoqXG4gICAqIFByZXZpZXcgc2tpcCAob25seSBnZXRzIGV4ZWN1dGVkIGlmIGl0IGdvZXMgZGlyZWN0bHkgdG8gaWZyYW1lIGFuZCBub3QgY29va2lld2FsbClcbiAgICovXG4gIHN0emhQcmV2aWV3U2tpcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFZpZXcgY2hhbmdlXG4gICAqL1xuICBzdHpoVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbWFnZWNvbXBhcmlzb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdoaW50TGVmdCcsICdoaW50UmlnaHQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbWFnZWNvbXBhcmlzb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgYXMgSVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW1hZ2Vjb21wYXJpc29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW1hZ2Vjb21wYXJpc29uIHtcblxuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaG93U3BpbicsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aWxpbmUnLCAnbmFtZScsICdub0F1dG9jb21wbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaG93U3BpbicsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhDaGFuZ2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Rm9jdXNFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Qmx1ckV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnB1dCB7XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW52ZXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbnZlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW52ZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW52ZXJ0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2Z1bGx3aWR0aCcsICdoZWlnaHQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtJZCcsICdsb2NhbGl6YXRpb24nLCAncmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdmdWxsd2lkdGgnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rSWQnLCAnbG9jYWxpemF0aW9uJywgJ3JlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2xpY2snLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0NsaWNrRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0ZvY3VzRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0JsdXJFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGluayB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlTGFiZWwnLCAnbGFiZWwnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTG9hZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aExvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlUGVyY2VudCcsICdsYWJlbCcsICdwZXJjZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRpbmdiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRpbmdiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTG9hZGluZ2JhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aExvYWRpbmdiYXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtQmx1ckV2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlT3BlbkV2ZW50IGFzIElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVzc2FnZUNsb3NlRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZXNzYWdlIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2Ugb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogTWVzc2FnZSBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1pY3Jvc2l0ZS10ZWFzZXJsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndGFncyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWljcm9zaXRlVGVhc2VybGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnlNb250aCcsICdhMTF5RGVzY3JpYmVkYnlZZWFyJywgJ2Rlc2NyaXB0aW9uTG9uZ01vbnRoJywgJ2Rlc2NyaXB0aW9uTG9uZ1llYXInLCAnZGVzY3JpcHRpb25Nb250aCcsICdkZXNjcmlwdGlvblllYXInLCAnZGlzYWJsZWQnLCAnZXJyb3JNb250aCcsICdlcnJvclllYXInLCAnZm9ybWF0JywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkTW9udGgnLCAnaW52YWxpZFllYXInLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhZZWFyJywgJ21pbicsICdtaW5ZZWFyJywgJ21vbnRoTGFiZWwnLCAnbW9udGhPcGVuJywgJ21vbnRocycsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd5ZWFyTGFiZWwnLCAneWVhck9wZW4nLCAneWVhclNvcnREaXJlY3Rpb24nLCAneWVhcnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbW9udGh5ZWFycGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnlNb250aCcsICdhMTF5RGVzY3JpYmVkYnlZZWFyJywgJ2Rlc2NyaXB0aW9uTG9uZ01vbnRoJywgJ2Rlc2NyaXB0aW9uTG9uZ1llYXInLCAnZGVzY3JpcHRpb25Nb250aCcsICdkZXNjcmlwdGlvblllYXInLCAnZGlzYWJsZWQnLCAnZXJyb3JNb250aCcsICdlcnJvclllYXInLCAnZm9ybWF0JywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkTW9udGgnLCAnaW52YWxpZFllYXInLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtYXhZZWFyJywgJ21pbicsICdtaW5ZZWFyJywgJ21vbnRoTGFiZWwnLCAnbW9udGhPcGVuJywgJ21vbnRocycsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd5ZWFyTGFiZWwnLCAneWVhck9wZW4nLCAneWVhclNvcnREaXJlY3Rpb24nLCAneWVhcnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNb250aHllYXJwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNb250aHllYXJwaWNrZXIge1xuICAvKipcbiAgICogTW9udGh5ZWFycGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTW9udGh5ZWFycGlja2VyU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NlbnRlcicsICdjZW50ZXJNYXJrZXInLCAnaG9zdG5hbWUnLCAnbGF5ZXInLCAnbGF5ZXJDb250cm9sJywgJ2xheWVycycsICdsb2NhbGl6YXRpb24nLCAnbG9jYXRpb25Db250cm9sJywgJ3BpbmNoUm90YXRlVGhyZXNob2xkJywgJ3ByaW50Q29udHJvbCcsICdyZXNvbHV0aW9ucycsICdzY2FsZUNvbnRyb2wnLCAnem9vbScsICd6b29tTG9jYXRpb24nXSxcbiAgbWV0aG9kczogWydnZXRNYXAnLCAnZ2V0VmlzaWJsZU1hcmtlcnMnLCAnZmluZE1hcmtlckJ5SWQnLCAnYWRkSWNvbk1hcmtlcicsICdhZGRJY29uTWFya2VycycsICd1cGRhdGVWaWV3VG9GaXRNYXJrZXJzJywgJ3JlbW92ZUFsbEljb25NYXJrZXJzJywgJ3JlbW92ZUljb25NYXJrZXInLCAnc2V0SWNvbk1hcmtlckFjdGl2ZScsICdzZXRJY29uTWFya2VySW5hY3RpdmUnLCAnc2V0QWxsSWNvbk1hcmtlcnNJbmFjdGl2ZScsICdlbmFibGVMb2NhdGlvblRyYWNraW5nJywgJ2Rpc2FibGVMb2NhdGlvblRyYWNraW5nJywgJ2dldERpc3RhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW9sbWFwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjZW50ZXInLCAnY2VudGVyTWFya2VyJywgJ2hvc3RuYW1lJywgJ2xheWVyJywgJ2xheWVyQ29udHJvbCcsICdsYXllcnMnLCAnbG9jYWxpemF0aW9uJywgJ2xvY2F0aW9uQ29udHJvbCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwcmludENvbnRyb2wnLCAncmVzb2x1dGlvbnMnLCAnc2NhbGVDb250cm9sJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhPbG1hcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhJbml0aWFsaXplZCcsICdzdHpoUG9zdFJlbmRlcicsICdzdHpoTW92ZVN0YXJ0JywgJ3N0emhNb3ZlRW5kJywgJ3N0emhNb3ZlUGFuWm9vbSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVTdGFydEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZUVuZEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2xtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPbG1hcCB7XG4gIC8qKlxuICAgKiBPbG1hcCBpbml0aWFsaXplZCBldmVudFxuICAgKi9cbiAgc3R6aEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIHBvc3RyZW5kZXIgZXZlbnRcbiAgICovXG4gIHN0emhQb3N0UmVuZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZXN0YXJ0IGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmUgcGFuIHpvb20gZXZlbnRcbiAgICovXG4gIHN0emhNb3ZlUGFuWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ29wZW4nLCAnc3RheSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE92ZXJsYXlPcGVuRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5Q2xvc2VFdmVudCBhcyBJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT3ZlcmxheSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE92ZXJsYXkge1xuICAvKipcbiAgICogRGlhbG9nIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPdmVybGF5U3R6aE92ZXJsYXlPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpYWxvZyBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Utc2tpcGxpbmtzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdlU2tpcGxpbmtzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2VTa2lwbGlua3MgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlU2tpcGxpbmtzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWJvdHRvbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ2xvZ29IcmVmJywgJ3ByaW50QW5hbHl0aWNzSWQnLCAnc2hhcmVEaXNhYmxlZCcsICdzaGFyZU1haWxCb2R5JywgJ3NoYXJlTWFpbFN1YmplY3QnLCAnc2hhcmVTZXJ2aWNlcycsICdzaGFyZVRpdGxlJywgJ3NoYXJlVXJsJywgJ3dpdGhQcmludCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWJvdHRvbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlYm90dG9tIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWJvdHRvbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlY29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2RhdGVsaW5lJywgJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1oZXJvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGVIZXJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZUhlcm8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGVIZXJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1ob21lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSG9tZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGVIb21lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZXRpdGxlSG9tZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG4gIG1ldGhvZHM6IFsncHJldicsICduZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd01hbnVhbElucHV0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndG90YWwnLCAndmFsdWUnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoUGFnaW5hdGlvblN0emhQYWdpbmF0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2luYXRpb24ge1xuICAvKipcbiAgICogUGFnaW5hdGlvbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9sb2FkJywgJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2hlYWRpbmcnLCAnbG9jYWxpemF0aW9uJywgJ29yaWVudGF0aW9uT25CeURlZmF1bHQnLCAnc2NlbmUnLCAnc2NlbmVGYWRlRHVyYXRpb24nLCAnc2NlbmVzJywgJ3Nob3dDb250cm9scycsICdzaG93SG90c3BvdHMnXSxcbiAgbWV0aG9kczogWydnZXRWaWV3ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFub3JhbWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9sb2FkJywgJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2hlYWRpbmcnLCAnbG9jYWxpemF0aW9uJywgJ29yaWVudGF0aW9uT25CeURlZmF1bHQnLCAnc2NlbmUnLCAnc2NlbmVGYWRlRHVyYXRpb24nLCAnc2NlbmVzJywgJ3Nob3dDb250cm9scycsICdzaG93SG90c3BvdHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhbm9yYW1hIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aExvYWQnLCAnc3R6aENoYW5nZScsICdzdHpoRnVsbHNjcmVlbkNoYW5nZScsICdzdHpoU2NlbmVDaGFuZ2UnLCAnc3R6aFpvb21DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUxvYWRFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hTG9hZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYW5vcmFtYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhbm9yYW1hIHtcbiAgLyoqXG4gICAqIExvYWQgZXZlbnRcbiAgICovXG4gIHN0emhMb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudD4+O1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEZ1bGxzY3JlZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTY2VuZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTY2VuZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBab29tIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFpvb21DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW0nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcG9pY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUG9pY2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQb2ljYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUG9pY2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBvaWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvaWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9pbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvaWxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJywgJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wb3BvdmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXN0YW5jZScsICdmdWxsd2lkdGgnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUG9wb3ZlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyT3BlbkV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByaW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByaW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJpbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2tEaXNhYmxlZCcsICdkYXRhJywgJ2luZGV4JywgJ2xvY2FsaXphdGlvbicsICdzdGVwcycsICdzdGVwc0xhcmdlJywgJ3N0ZXBzTWVkaXVtJywgJ3N0ZXBzU21hbGwnLCAnc3RlcHNVbHRyYSddLFxuICBtZXRob2RzOiBbJ2dldEl0ZW1EYXRhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByb2dyZXNzYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcm9ncmVzc2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcm9ncmVzc2JhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByb2dyZXNzYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2xhYmVsJywgJ2xhc3QnLCAncGFzc2VkJywgJ3N0ZXAnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJvZ3Jlc3NiYXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2xpY2tEaXNhYmxlZCcsICdjdXJyZW50JywgJ2Rpc2FibGVkJywgJ2RvdHRlZCcsICdmaXJzdCcsICdoaWRlJywgJ2ljb24nLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUHJvZ3Jlc3NiYXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhEb3R0ZWRDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFByb2dyZXNzYmFySXRlbUNsaWNrRXZlbnQgYXMgSVN0emhQcm9ncmVzc2Jhckl0ZW1TdHpoUHJvZ3Jlc3NiYXJJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFByb2dyZXNzYmFySXRlbURvdHRlZENsaWNrRXZlbnQgYXMgSVN0emhQcm9ncmVzc2Jhckl0ZW1TdHpoUHJvZ3Jlc3NiYXJJdGVtRG90dGVkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcm9ncmVzc2Jhckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQcm9ncmVzc2Jhckl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUHJvZ3Jlc3NiYXJJdGVtU3R6aFByb2dyZXNzYmFySXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERvdHRlZCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aERvdHRlZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQcm9ncmVzc2Jhckl0ZW1TdHpoUHJvZ3Jlc3NiYXJJdGVtRG90dGVkQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvQ2hhbmdlRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9Gb2N1c0V2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9CbHVyRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhZGlvIHtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhZGlvZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWRSYWRpbycsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmFkaW9ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpb2dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW9ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaXQnLCAncG9ydHJhaXQnLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmF0aW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmF0aW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmF0aW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYXRpbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydocmVmJ10sXG4gIG1ldGhvZHM6IFsnb3BlblBsYXllcicsICdjbG9zZVBsYXllciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yZWFkc3BlYWtlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmVhZHNwZWFrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmVhZHNwZWFrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSZWFkc3BlYWtlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJpY2h0ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSaWNodGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSaWNodGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJpY2h0ZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUm93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUm93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zYXB0Y2hhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ251bWJlcnMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNhcHRjaGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2FwdGNoYUNoYW5nZUV2ZW50IGFzIElTdHpoU2FwdGNoYVN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2FwdGNoYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNhcHRjaGEge1xuICAvKipcbiAgICogU2FwdGNoYSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNjcm9sbHVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTY3JvbGx1cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTY3JvbGx1cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNjcm9sbHVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdhdXRvZmV0Y2hBc2lkZUZpbHRlcnMnLCAnYXV0b2ZldGNoTWFpbkZpbHRlcnMnLCAnYnJlYWtvdXQnLCAnZGVib3VuY2VUaW1lJywgJ2VtcHR5TGlua0hyZWYnLCAnZW1wdHlMaW5rTGFiZWwnLCAnZW1wdHlUZXh0JywgJ2hlYWRpbmcnLCAnaGlkZUFzaWRlRmlsdGVycycsICdoaWRlTWFpbkZpbHRlcnMnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW5pdGlhbEZldGNoJywgJ2xpbWl0JywgJ2xvY2FsaXphdGlvbicsICdwcmV2ZW50VXBkYXRlVXJsJywgJ3Jlc3VsdEhlYWRpbmdMZXZlbCcsICdzdWJzY3JpYmVBZGRpdGlvbmFsUXVlcnlQYXJhbWV0ZXJzJywgJ3N1YnNjcmliZUxhYmVsJywgJ3N1YnNjcmliZVBhdGgnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2F1dG9mZXRjaEFzaWRlRmlsdGVycycsICdhdXRvZmV0Y2hNYWluRmlsdGVycycsICdicmVha291dCcsICdkZWJvdW5jZVRpbWUnLCAnZW1wdHlMaW5rSHJlZicsICdlbXB0eUxpbmtMYWJlbCcsICdlbXB0eVRleHQnLCAnaGVhZGluZycsICdoaWRlQXNpZGVGaWx0ZXJzJywgJ2hpZGVNYWluRmlsdGVycycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhTZWFyY2hTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWFyY2gge1xuICAvKipcbiAgICogU2VhcmNoIG92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdicmVha291dCcsICdtYXJnaW5Cb3R0b20nLCAnbWFyZ2luVG9wJywgJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ1RvcCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VjdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNoYXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaGFyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaGFyZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNoYXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNob3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaG93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNob3cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaG93IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNpdGVtYXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaXRlbWFwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNpdGVtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaXRlbWFwIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tcG9ydGFsLW1pdHdpcmtlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luUG9ydGFsTWl0d2lya2VuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXN0b3J5Ym9vay1wcmV2aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2luU3Rvcnlib29rUHJldmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luU3Rvcnlib29rUHJldmlldyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpcGxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraXBsaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtCbHVyRXZlbnQgYXMgSVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2lwbGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraXBsaW5rIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvY2lhbG1lZGlhc3RyZWFtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29jaWFsbWVkaWFzdHJlYW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU29jaWFsbWVkaWFzdHJlYW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvY2lhbG1lZGlhc3RyZWFtLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW0nXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29ydGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGF0dXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGF0dXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhTdHVja1RvcCcsICdzdHpoU3R1Y2tCb3R0b20nXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0aWNreUFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3lBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAnc2l6ZScsICd0YXJnZXQnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9sZGFibGVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZSB7XG4gIC8qKlxuICAgKiBGb2xkYWJsZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGb2xkYWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lbGluZUl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBUaW1lcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5FdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdENsb3NlZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0IHtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9hc3Qgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgbWV0aG9kczogWyd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2FzdGJhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvYXN0YmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVGb2N1c0V2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVCbHVyRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5FdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRvb2x0aXAge1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXR3b2NvbHVtbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFR3b2NvbHVtbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRpbmcnLCAnaGlkZGVuSW5wdXRDb250YWluZXInLCAnaGlkZVByb2dyZXNzJywgJ2hpZGVQcm9ncmVzc1doaWxlSWRsZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdtYXhGaWxlcycsICdtYXhGaWxlc2l6ZScsICdtZXRob2QnLCAnbmFtZScsICdwYXJhbGxlbENodW5rVXBsb2FkcycsICdwYXJhbGxlbFVwbG9hZHMnLCAncGhvdG9ncmFwaGluZ0VuYWJsZWQnLCAncHJldmVudEhpZGRlbklucHV0Q2xlYXInLCAncmV0cnlDaHVua3MnLCAncmV0cnlDaHVua3NMaW1pdCcsICd1cGxvYWRNdWx0aXBsZScsICd1cmwnLCAnd2l0aENyZWRlbnRpYWxzJ10sXG4gIG1ldGhvZHM6IFsncHJvY2Vzc1F1ZXVlJywgJ3JlbW92ZUZpbGUnLCAncmVtb3ZlQWxsRmlsZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWNjZXB0ZWRGaWxlcycsICdhdXRvUHJvY2Vzc1F1ZXVlJywgJ2J1dHRvbicsICdidXR0b25TY2FuJywgJ2NodW5rU2l6ZScsICdjaHVua2luZycsICdjaHVua3NVcGxvYWRlZCcsICdkZWZhdWx0SGVhZGVycycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlVG9hc3RzJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZFdoaWxlUHJvY2Vzc2luZycsICdlcnJvcicsICdleGlzdGluZ0ZpbGVzJywgJ2ZpbGVzaXplQmFzZScsICdmb3JjZUNodW5raW5nJywgJ2hlYWRlcnMnLCAnaGVhZGluZycsICdoaWRkZW5JbnB1dENvbnRhaW5lcicsICdoaWRlUHJvZ3Jlc3MnLCAnaGlkZVByb2dyZXNzV2hpbGVJZGxlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heEZpbGVzJywgJ21heEZpbGVzaXplJywgJ21ldGhvZCcsICduYW1lJywgJ3BhcmFsbGVsQ2h1bmtVcGxvYWRzJywgJ3BhcmFsbGVsVXBsb2FkcycsICdwaG90b2dyYXBoaW5nRW5hYmxlZCcsICdwcmV2ZW50SGlkZGVuSW5wdXRDbGVhcicsICdyZXRyeUNodW5rcycsICdyZXRyeUNodW5rc0xpbWl0JywgJ3VwbG9hZE11bHRpcGxlJywgJ3VybCcsICd3aXRoQ3JlZGVudGlhbHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhGaWxlQWRkZWQnLCAnc3R6aEZpbGVzQWRkZWQnLCAnc3R6aEZpbGVSZW1vdmUnLCAnc3R6aEZpbGVSZW1vdmVkJywgJ3N0emhTZW5kaW5nJywgJ3N0emhTZW5kaW5nTXVsdGlwbGUnLCAnc3R6aFByb2Nlc3NpbmcnLCAnc3R6aFByb2Nlc3NpbmdNdWx0aXBsZScsICdzdHpoUHJvZ3Jlc3MnLCAnc3R6aFByb2dyZXNzVG90YWwnLCAnc3R6aEVycm9yJywgJ3N0emhFcnJvck11bHRpcGxlJywgJ3N0emhTdWNjZXNzJywgJ3N0emhTdWNjZXNzTXVsdGlwbGUnLCAnc3R6aENhbmNlbGVkJywgJ3N0emhDYW5jZWxlZE11bHRpcGxlJywgJ3N0emhDb21wbGV0ZScsICdzdHpoQ29tcGxldGVNdWx0aXBsZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFVwbG9hZCB7XG4gIC8qKlxuICAgKiBGaWxlIGFkZGVkXG4gICAqL1xuICBzdHpoRmlsZUFkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGFkZGVkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhGaWxlc0FkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHJlbW92ZSAoYmVmb3JlLCBjYW5jZWxhYmxlKVxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlZFxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgZmlsZSAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgbXVsdGlwbGUgZmlsZXMgKGFkZCBhZGRpdGlvbmFsIGRhdGEgYmVmb3JlIHJlcXVlc3QgaWYgbmVjZXNzYXJ5KVxuICAgKi9cbiAgc3R6aFNlbmRpbmdNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3RhcnRpbmcgdG8gZ2V0IHByb2Nlc3NlZCAobXVsdGlwbGUpXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCB0b3RhbCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzc1RvdGFsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIGVycm9yXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBlcnJvciAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoRXJyb3JNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSBzdWNjZXNzZnVsbHkgdXBsb2FkZWRcbiAgICovXG4gIHN0emhTdWNjZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdWNjZXNzZnVsbHkgdXBsb2FkZWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aFN1Y2Nlc3NNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZFxuICAgKi9cbiAgc3R6aENhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2FuY2VsZWQgZmlsZSB1cGxvYWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENhbmNlbGVkTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbXBsZXRlZCB1cGxvYWQgKHN1Y2Nlc3NmdWxseSBvciB3aXRoIGVycm9yKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IsIG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekNhcm91c2VsIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jb25uZWN0aW9uLWZpbmRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAncXVpY2tsaW5rcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotaW50cm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpJbnRybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpJbnRybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekludHJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbGluZWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnbGluZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6TGluZWNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgYXMgSVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekxpbmVjaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TGluZWNoaXAge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICdzaG93Q2xvc2VLZXknXSxcbiAgbWV0aG9kczogWydnZXRHaGV0dG9ib3hTaG93bicsICdnZXREaXN0dXJiYW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbWFqb3J0aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnLCAnc2hvd0Nsb3NlS2V5J10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpNYWpvcnRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0emhEaXN0dXJiYW5jZUZldGNoZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IGFzIElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpNYWpvcnRpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiek1ham9ydGlja2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gbWFqb3IgZGlzdHVyYmFuY2Ugd2FzIGZldGNoZWRcbiAgICovXG4gIHN0emhEaXN0dXJiYW5jZUZldGNoZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFZiek1ham9ydGlja2VyU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluayddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotdGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpUaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6VGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6VGlja2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZpc3VhbGx5aGlkZGVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWaXN1YWxseWhpZGRlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWaXN1YWxseWhpZGRlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZpc3VhbGx5aGlkZGVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12c3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVnNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC15b3V0dWJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBTdHpoWW91dHViZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhZb3V0dWJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoWW91dHViZSB7fVxuXG5cbiJdfQ==