@dangl/angular-ava 1.1.2-beta0049 → 1.1.2-beta0055

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +26 -8
  2. package/fesm2022/dangl-angular-ava.mjs +63 -556
  3. package/fesm2022/dangl-angular-ava.mjs.map +1 -1
  4. package/lib/ava-tree/tree/components/ava-tree/ava-tree.component.d.ts +1 -1
  5. package/lib/ava-tree/tree/components/list-structure/list-structure.component.d.ts +1 -1
  6. package/lib/ava-tree/tree/components/table-structure/table-structure.component.d.ts +1 -1
  7. package/lib/ava-tree/tree/components/tree-item/tree-item.component.d.ts +1 -1
  8. package/lib/ava-tree/tree/components/tree-node/tree-node.component.d.ts +1 -1
  9. package/lib/ava-tree/tree/components/tree-structure/tree-structure.component.d.ts +1 -1
  10. package/lib/ava-tree/tree/directives/save-changing-view.directive.d.ts +1 -1
  11. package/lib/ava-tree/tree/pipes/element-icon-name.pipe.d.ts +1 -1
  12. package/lib/ava-tree/tree/pipes/element-item-number.pipe.d.ts +1 -1
  13. package/lib/ava-tree/tree/pipes/element-text.pipe.d.ts +1 -1
  14. package/lib/ava-tree/tree/pipes/group-child-elements.pipe.d.ts +1 -1
  15. package/package.json +1 -3
  16. package/public-api.d.ts +1 -2
  17. package/esm2022/dangl-angular-ava.mjs +0 -5
  18. package/esm2022/lib/angular-ava.module.mjs +0 -91
  19. package/esm2022/lib/ava-tree/invoice/invoice-display/invoice-display.component.mjs +0 -123
  20. package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +0 -449
  21. package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +0 -41
  22. package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +0 -110
  23. package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +0 -102
  24. package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +0 -53
  25. package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +0 -33
  26. package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +0 -23
  27. package/esm2022/lib/ava-tree/tree/constants/defaultTextWordInvoice.mjs +0 -77
  28. package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +0 -29
  29. package/esm2022/lib/ava-tree/tree/constants/defaults.mjs +0 -4
  30. package/esm2022/lib/ava-tree/tree/constants/index.mjs +0 -6
  31. package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +0 -47
  32. package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +0 -206
  33. package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +0 -2
  34. package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +0 -2
  35. package/esm2022/lib/ava-tree/tree/model/index.mjs +0 -5
  36. package/esm2022/lib/ava-tree/tree/model/invoice-models.mjs +0 -45
  37. package/esm2022/lib/ava-tree/tree/model/invoice-words.model.mjs +0 -2
  38. package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +0 -2
  39. package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +0 -2
  40. package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +0 -7
  41. package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +0 -27
  42. package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +0 -23
  43. package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +0 -39
  44. package/esm2022/lib/ava-tree/tree/pipes/group-child-elements.pipe.mjs +0 -20
  45. package/esm2022/lib/ava-tree/tree/pipes/invoice-attachment-mime-type.pipe.mjs +0 -34
  46. package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +0 -32
  47. package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +0 -96
  48. package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +0 -116
  49. package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +0 -41
  50. package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +0 -133
  51. package/esm2022/lib/ava-tree/tree/services/tree-words.service.mjs +0 -21
  52. package/esm2022/lib/version.mjs +0 -10
  53. package/esm2022/public-api.mjs +0 -10
  54. package/lib/angular-ava.module.d.ts +0 -27
@@ -1,29 +0,0 @@
1
- export const DEFAULT_TEXT_WORDS = {
2
- textSearch: 'Search',
3
- textNothing: 'Nothing',
4
- textNothingFiltered: 'No Filter',
5
- textAll: 'All',
6
- tooltipAllOpen: 'Expand all',
7
- tooltipAllClose: 'Collapse all',
8
- tooltipAllAdd: 'Add all',
9
- tooltipAllRemove: 'Remove all',
10
- defaultNameNoteText: 'Note Text',
11
- defaultNameDescription: 'Description',
12
- defaultNameGroup: 'Group',
13
- defaultNamePosition: 'Position'
14
- };
15
- export const germanTextsAva = {
16
- textSearch: 'Suche',
17
- textNothing: 'Nichts',
18
- textNothingFiltered: 'Kein Filter',
19
- textAll: 'Alle',
20
- tooltipAllOpen: 'Alle aufklappen',
21
- tooltipAllClose: 'Alle zuklappen',
22
- tooltipAllAdd: 'Alle hinzufügen',
23
- tooltipAllRemove: 'Alle entfernen',
24
- defaultNameNoteText: 'Hinweis',
25
- defaultNameDescription: 'Beschreibung',
26
- defaultNameGroup: 'Gruppe',
27
- defaultNamePosition: 'Position'
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFRleHRXb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9jb25zdGFudHMvZGVmYXVsdFRleHRXb3Jkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBZTtJQUM1QyxVQUFVLEVBQUUsUUFBUTtJQUNwQixXQUFXLEVBQUUsU0FBUztJQUN0QixtQkFBbUIsRUFBRSxXQUFXO0lBQ2hDLE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLFlBQVk7SUFDNUIsZUFBZSxFQUFFLGNBQWM7SUFDL0IsYUFBYSxFQUFFLFNBQVM7SUFDeEIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5QixtQkFBbUIsRUFBRSxXQUFXO0lBQ2hDLHNCQUFzQixFQUFFLGFBQWE7SUFDckMsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixtQkFBbUIsRUFBRSxVQUFVO0NBQ2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWU7SUFDeEMsVUFBVSxFQUFFLE9BQU87SUFDbkIsV0FBVyxFQUFFLFFBQVE7SUFDckIsbUJBQW1CLEVBQUUsYUFBYTtJQUNsQyxPQUFPLEVBQUUsTUFBTTtJQUNmLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxtQkFBbUIsRUFBRSxTQUFTO0lBQzlCLHNCQUFzQixFQUFFLGNBQWM7SUFDdEMsZ0JBQWdCLEVBQUUsUUFBUTtJQUMxQixtQkFBbUIsRUFBRSxVQUFVO0NBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElUZXh0V29yZHMge1xuICB0ZXh0U2VhcmNoPzogc3RyaW5nO1xuICB0ZXh0Tm90aGluZz86IHN0cmluZztcbiAgdGV4dE5vdGhpbmdGaWx0ZXJlZD86IHN0cmluZztcbiAgdGV4dEFsbD86IHN0cmluZztcbiAgdG9vbHRpcEFsbE9wZW4/OiBzdHJpbmc7XG4gIHRvb2x0aXBBbGxDbG9zZT86IHN0cmluZztcbiAgdG9vbHRpcEFsbEFkZD86IHN0cmluZztcbiAgdG9vbHRpcEFsbFJlbW92ZT86IHN0cmluZztcbiAgZGVmYXVsdE5hbWVOb3RlVGV4dD86IHN0cmluZztcbiAgZGVmYXVsdE5hbWVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGVmYXVsdE5hbWVHcm91cD86IHN0cmluZztcbiAgZGVmYXVsdE5hbWVQb3NpdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVYVF9XT1JEUzogSVRleHRXb3JkcyA9IHtcbiAgdGV4dFNlYXJjaDogJ1NlYXJjaCcsXG4gIHRleHROb3RoaW5nOiAnTm90aGluZycsXG4gIHRleHROb3RoaW5nRmlsdGVyZWQ6ICdObyBGaWx0ZXInLFxuICB0ZXh0QWxsOiAnQWxsJyxcbiAgdG9vbHRpcEFsbE9wZW46ICdFeHBhbmQgYWxsJyxcbiAgdG9vbHRpcEFsbENsb3NlOiAnQ29sbGFwc2UgYWxsJyxcbiAgdG9vbHRpcEFsbEFkZDogJ0FkZCBhbGwnLFxuICB0b29sdGlwQWxsUmVtb3ZlOiAnUmVtb3ZlIGFsbCcsXG4gIGRlZmF1bHROYW1lTm90ZVRleHQ6ICdOb3RlIFRleHQnLFxuICBkZWZhdWx0TmFtZURlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICBkZWZhdWx0TmFtZUdyb3VwOiAnR3JvdXAnLFxuICBkZWZhdWx0TmFtZVBvc2l0aW9uOiAnUG9zaXRpb24nXG59O1xuXG5leHBvcnQgY29uc3QgZ2VybWFuVGV4dHNBdmE6IElUZXh0V29yZHMgPSB7XG4gIHRleHRTZWFyY2g6ICdTdWNoZScsXG4gIHRleHROb3RoaW5nOiAnTmljaHRzJyxcbiAgdGV4dE5vdGhpbmdGaWx0ZXJlZDogJ0tlaW4gRmlsdGVyJyxcbiAgdGV4dEFsbDogJ0FsbGUnLFxuICB0b29sdGlwQWxsT3BlbjogJ0FsbGUgYXVma2xhcHBlbicsXG4gIHRvb2x0aXBBbGxDbG9zZTogJ0FsbGUgenVrbGFwcGVuJyxcbiAgdG9vbHRpcEFsbEFkZDogJ0FsbGUgaGluenVmw7xnZW4nLFxuICB0b29sdGlwQWxsUmVtb3ZlOiAnQWxsZSBlbnRmZXJuZW4nLFxuICBkZWZhdWx0TmFtZU5vdGVUZXh0OiAnSGlud2VpcycsXG4gIGRlZmF1bHROYW1lRGVzY3JpcHRpb246ICdCZXNjaHJlaWJ1bmcnLFxuICBkZWZhdWx0TmFtZUdyb3VwOiAnR3J1cHBlJyxcbiAgZGVmYXVsdE5hbWVQb3NpdGlvbjogJ1Bvc2l0aW9uJ1xufTtcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export const defaults = {
2
- doubleClickTimeoutInMilliseconds: 300
3
- };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2RlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixnQ0FBZ0MsRUFBRSxHQUFHO0NBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVmYXVsdHMgPSB7XG4gIGRvdWJsZUNsaWNrVGltZW91dEluTWlsbGlzZWNvbmRzOiAzMDBcbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- import { DEFAULT_FILTERS } from './defaultFilters';
2
- import { DEFAULT_TEXT_WORD_INVOICE, germanTextsInvoice } from './defaultTextWordInvoice';
3
- import { DEFAULT_TEXT_WORDS } from './defaultTextWords';
4
- import { defaults } from './defaults';
5
- export { DEFAULT_FILTERS, DEFAULT_TEXT_WORDS, defaults, DEFAULT_TEXT_WORD_INVOICE, germanTextsInvoice };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0ZJTFRFUlMgfSBmcm9tICcuL2RlZmF1bHRGaWx0ZXJzJztcbmltcG9ydCB7IERFRkFVTFRfVEVYVF9XT1JEX0lOVk9JQ0UsIGdlcm1hblRleHRzSW52b2ljZSB9IGZyb20gJy4vZGVmYXVsdFRleHRXb3JkSW52b2ljZSc7XG5pbXBvcnQgeyBERUZBVUxUX1RFWFRfV09SRFMgfSBmcm9tICcuL2RlZmF1bHRUZXh0V29yZHMnO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuL2RlZmF1bHRzJztcblxuZXhwb3J0IHsgREVGQVVMVF9GSUxURVJTLCBERUZBVUxUX1RFWFRfV09SRFMsIGRlZmF1bHRzLCBERUZBVUxUX1RFWFRfV09SRF9JTlZPSUNFLCBnZXJtYW5UZXh0c0ludm9pY2UgfTtcbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../services/flat-elements.service";
4
- export class SaveChangingViewDirective {
5
- constructor(el, renderer, flatElementsService) {
6
- this.el = el;
7
- this.renderer = renderer;
8
- this.flatElementsService = flatElementsService;
9
- this.attributeValue = 'text';
10
- }
11
- ngAfterViewInit() {
12
- const el = this.el?.nativeElement;
13
- const id = el?.id;
14
- if (id) {
15
- const view = this.flatElementsService?.getChangedView(id);
16
- switch (this.attributeValue) {
17
- case 'icon':
18
- if (view?.iconName) {
19
- el.textContent = view.iconName;
20
- }
21
- if (view?.iconColor) {
22
- this.renderer?.setStyle(el, 'color', view.iconColor);
23
- }
24
- break;
25
- case 'text':
26
- if (view?.textBold) {
27
- this.renderer?.setStyle(el, 'font-weight', view.textBold);
28
- }
29
- if (view?.textColor) {
30
- this.renderer?.setStyle(el, 'color', view.textColor);
31
- }
32
- break;
33
- }
34
- }
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SaveChangingViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.FlatElementsService }], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: { attributeValue: "attributeValue" }, ngImport: i0 }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SaveChangingViewDirective, decorators: [{
40
- type: Directive,
41
- args: [{
42
- selector: '[saveChangingView]'
43
- }]
44
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.FlatElementsService }], propDecorators: { attributeValue: [{
45
- type: Input
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jaGFuZ2luZy12aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9kaXJlY3RpdmVzL3NhdmUtY2hhbmdpbmctdmlldy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkYsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixtQkFBd0M7UUFGeEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUx6QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQztJQU05QixDQUFDO0lBRUosZUFBZTtRQUNiLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBNEIsQ0FBQztRQUNqRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxNQUFNLElBQUksR0FBcUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUU1RSxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxNQUFNO29CQUNULElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUNuQixFQUFFLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ2pDLENBQUM7b0JBQ0QsSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxDQUFDO29CQUNELE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULElBQUksSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDNUQsQ0FBQztvQkFDRCxJQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzt3QkFDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3ZELENBQUM7b0JBQ0QsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FsQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7eUlBRVUsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJVmlld0xpbmUgfSBmcm9tICcuLi9tb2RlbCc7XG5pbXBvcnQgeyBGbGF0RWxlbWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxhdC1lbGVtZW50cy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NhdmVDaGFuZ2luZ1ZpZXddJ1xufSlcbmV4cG9ydCBjbGFzcyBTYXZlQ2hhbmdpbmdWaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGF0dHJpYnV0ZVZhbHVlID0gJ3RleHQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZmxhdEVsZW1lbnRzU2VydmljZTogRmxhdEVsZW1lbnRzU2VydmljZVxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBpZCA9IGVsPy5pZDtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGNvbnN0IHZpZXc6IElWaWV3TGluZSB8IG51bGwgPSB0aGlzLmZsYXRFbGVtZW50c1NlcnZpY2U/LmdldENoYW5nZWRWaWV3KGlkKTtcblxuICAgICAgc3dpdGNoICh0aGlzLmF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgIGlmICh2aWV3Py5pY29uTmFtZSkge1xuICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSB2aWV3Lmljb25OYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmlldz8uaWNvbkNvbG9yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShlbCwgJ2NvbG9yJywgdmlldy5pY29uQ29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgaWYgKHZpZXc/LnRleHRCb2xkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyPy5zZXRTdHlsZShlbCwgJ2ZvbnQtd2VpZ2h0Jywgdmlldy50ZXh0Qm9sZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2aWV3Py50ZXh0Q29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXI/LnNldFN0eWxlKGVsLCAnY29sb3InLCB2aWV3LnRleHRDb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,206 +0,0 @@
1
- //----------------------
2
- // <auto-generated>
3
- // Generated using the NSwag toolchain v14.0.0.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
4
- // </auto-generated>
5
- //----------------------
6
- /* tslint:disable */
7
- /* eslint-disable */
8
- // ReSharper disable InconsistentNaming
9
- /** This enum configures rounding modes for price calculations in projects */
10
- export var PriceRoundingModeDto;
11
- (function (PriceRoundingModeDto) {
12
- PriceRoundingModeDto["Normal"] = "Normal";
13
- PriceRoundingModeDto["Floor"] = "Floor";
14
- PriceRoundingModeDto["Ceiling"] = "Ceiling";
15
- })(PriceRoundingModeDto || (PriceRoundingModeDto = {}));
16
- /** Determines the type of an ItemNumberSchema */
17
- export var ItemNumberTypeDto;
18
- (function (ItemNumberTypeDto) {
19
- ItemNumberTypeDto["Numeric"] = "Numeric";
20
- ItemNumberTypeDto["Alphanumeric"] = "Alphanumeric";
21
- })(ItemNumberTypeDto || (ItemNumberTypeDto = {}));
22
- /** This enum represents the alignment value for a tier in an ItemNumberSchema. It is not used anywhere for computations at the moment, and is mostly an informational value. */
23
- export var ItemNumberSchemaTierAlignmentDto;
24
- (function (ItemNumberSchemaTierAlignmentDto) {
25
- ItemNumberSchemaTierAlignmentDto["Undefined"] = "Undefined";
26
- ItemNumberSchemaTierAlignmentDto["Left"] = "Left";
27
- ItemNumberSchemaTierAlignmentDto["Right"] = "Right";
28
- })(ItemNumberSchemaTierAlignmentDto || (ItemNumberSchemaTierAlignmentDto = {}));
29
- /** Specifies the type an ItemNumberSchemaTier represents. For example, a tier may indicate to be used for positions or for groups. */
30
- export var ItemNumberSchemaTierTypeDto;
31
- (function (ItemNumberSchemaTierTypeDto) {
32
- ItemNumberSchemaTierTypeDto["Undefined"] = "Undefined";
33
- ItemNumberSchemaTierTypeDto["Index"] = "Index";
34
- ItemNumberSchemaTierTypeDto["Position"] = "Position";
35
- ItemNumberSchemaTierTypeDto["Group"] = "Group";
36
- ItemNumberSchemaTierTypeDto["Lot"] = "Lot";
37
- })(ItemNumberSchemaTierTypeDto || (ItemNumberSchemaTierTypeDto = {}));
38
- /** This enumeration models types of price components for better classification. */
39
- export var PriceComponentTypeDto;
40
- (function (PriceComponentTypeDto) {
41
- PriceComponentTypeDto["Unknown"] = "Unknown";
42
- PriceComponentTypeDto["Wages"] = "Wages";
43
- PriceComponentTypeDto["Materials"] = "Materials";
44
- PriceComponentTypeDto["Plant"] = "Plant";
45
- PriceComponentTypeDto["Miscellaneous"] = "Miscellaneous";
46
- })(PriceComponentTypeDto || (PriceComponentTypeDto = {}));
47
- /** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
48
- export var AwardTypeDto;
49
- (function (AwardTypeDto) {
50
- AwardTypeDto["Unspecified"] = "Unspecified";
51
- AwardTypeDto["OpenProcurement"] = "OpenProcurement";
52
- AwardTypeDto["ClosedProducrement"] = "ClosedProducrement";
53
- AwardTypeDto["NegotiationProcurementWithoutPublicAnnouncement"] = "NegotiationProcurementWithoutPublicAnnouncement";
54
- AwardTypeDto["NegotiationProcurement"] = "NegotiationProcurement";
55
- AwardTypeDto["OpenCall"] = "OpenCall";
56
- AwardTypeDto["SelectedCallWithoutPublicCompetition"] = "SelectedCallWithoutPublicCompetition";
57
- AwardTypeDto["SelectedCall"] = "SelectedCall";
58
- AwardTypeDto["DirectAward"] = "DirectAward";
59
- AwardTypeDto["InternationalNATOProcurement"] = "InternationalNATOProcurement";
60
- AwardTypeDto["CompetitiveDialog"] = "CompetitiveDialog";
61
- })(AwardTypeDto || (AwardTypeDto = {}));
62
- /** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
63
- export var SpecialAwardKindDto;
64
- (function (SpecialAwardKindDto) {
65
- SpecialAwardKindDto["Unspecified"] = "Unspecified";
66
- SpecialAwardKindDto["MaintenanceContract"] = "MaintenanceContract";
67
- SpecialAwardKindDto["OutlineContract"] = "OutlineContract";
68
- SpecialAwardKindDto["OutlineForMaintenanceContract"] = "OutlineForMaintenanceContract";
69
- })(SpecialAwardKindDto || (SpecialAwardKindDto = {}));
70
- /** This enumeration describes the type of a catalogue. Catalogues, or collections, hold information to categorize and describe items. For example, the German DIN 276 cost group standards describe different types of costs for building projects. When referencing the DIN 276 catalogue and providing an item key or identifier, it is possible to reference data in this catalogue. */
71
- export var CatalogueTypeDto;
72
- (function (CatalogueTypeDto) {
73
- CatalogueTypeDto["Unknown"] = "Unknown";
74
- CatalogueTypeDto["Location"] = "Location";
75
- CatalogueTypeDto["DIN276"] = "DIN276";
76
- CatalogueTypeDto["CostUnit"] = "CostUnit";
77
- CatalogueTypeDto["WorkCategory"] = "WorkCategory";
78
- CatalogueTypeDto["OenormB1801CostGroup"] = "OenormB1801CostGroup";
79
- CatalogueTypeDto["BIM"] = "BIM";
80
- CatalogueTypeDto["Attachment"] = "Attachment";
81
- })(CatalogueTypeDto || (CatalogueTypeDto = {}));
82
- /** Indicates the origin of an element. */
83
- export var AdditionTypeDto;
84
- (function (AdditionTypeDto) {
85
- AdditionTypeDto["None"] = "None";
86
- AdditionTypeDto["ByBuyer"] = "ByBuyer";
87
- AdditionTypeDto["ByBidder"] = "ByBidder";
88
- })(AdditionTypeDto || (AdditionTypeDto = {}));
89
- /** This enumeration identifies a pre-known standard used for referencing standardized descriptions. */
90
- export var StandardReferenceTypeDto;
91
- (function (StandardReferenceTypeDto) {
92
- StandardReferenceTypeDto["Unknown"] = "Unknown";
93
- StandardReferenceTypeDto["StLB"] = "StLB";
94
- StandardReferenceTypeDto["StLK"] = "StLK";
95
- StandardReferenceTypeDto["STLBBauZ"] = "STLBBauZ";
96
- })(StandardReferenceTypeDto || (StandardReferenceTypeDto = {}));
97
- /** Indicates if this service specification item is commissioned (and therefore should be executed), postponed for later or undefined. */
98
- export var ComissionStatusDto;
99
- (function (ComissionStatusDto) {
100
- ComissionStatusDto["Undefined"] = "Undefined";
101
- ComissionStatusDto["Commissioned"] = "Commissioned";
102
- ComissionStatusDto["Postponed"] = "Postponed";
103
- ComissionStatusDto["Removed"] = "Removed";
104
- })(ComissionStatusDto || (ComissionStatusDto = {}));
105
- /** This is a classification for Position elements. */
106
- export var PositionTypeDto;
107
- (function (PositionTypeDto) {
108
- PositionTypeDto["Regular"] = "Regular";
109
- PositionTypeDto["Optional"] = "Optional";
110
- PositionTypeDto["Alternative"] = "Alternative";
111
- })(PositionTypeDto || (PositionTypeDto = {}));
112
- /** This indicates the price type of a IPricedElement. */
113
- export var PriceTypeDto;
114
- (function (PriceTypeDto) {
115
- PriceTypeDto["WithTotal"] = "WithTotal";
116
- PriceTypeDto["WithoutTotal"] = "WithoutTotal";
117
- })(PriceTypeDto || (PriceTypeDto = {}));
118
- /** The service type describes the type of service a Position represents. */
119
- export var ServiceTypeDto;
120
- (function (ServiceTypeDto) {
121
- ServiceTypeDto["Regular"] = "Regular";
122
- ServiceTypeDto["HourlyPaidWork"] = "HourlyPaidWork";
123
- })(ServiceTypeDto || (ServiceTypeDto = {}));
124
- /** This indicates where the content of this element originates, if set. It corresponds to 'herkunftskennzeichen' in ÖNorm */
125
- export var OenormOriginCodeDto;
126
- (function (OenormOriginCodeDto) {
127
- OenormOriginCodeDto["Unknown"] = "Unknown";
128
- OenormOriginCodeDto["FreeText"] = "FreeText";
129
- OenormOriginCodeDto["AdditionDescription"] = "AdditionDescription";
130
- })(OenormOriginCodeDto || (OenormOriginCodeDto = {}));
131
- /** This enumeration represents the status of an addendum, 'Nachtrag' in German */
132
- export var AddendumStatusDto;
133
- (function (AddendumStatusDto) {
134
- AddendumStatusDto["Unknown"] = "Unknown";
135
- AddendumStatusDto["Recognized"] = "Recognized";
136
- AddendumStatusDto["Filed"] = "Filed";
137
- AddendumStatusDto["Offered"] = "Offered";
138
- AddendumStatusDto["Withdrawn"] = "Withdrawn";
139
- AddendumStatusDto["Rejected"] = "Rejected";
140
- AddendumStatusDto["RejectionObjected"] = "RejectionObjected";
141
- AddendumStatusDto["FormallyAcknowledged"] = "FormallyAcknowledged";
142
- AddendumStatusDto["Approved"] = "Approved";
143
- })(AddendumStatusDto || (AddendumStatusDto = {}));
144
- /** This enum represents the different ways in which a complementing position type can be specified. It is typically only used in GAEB exports, since in Dangl.AVA, complementing positions are always explicitly referenced. */
145
- export var PositionComplementingTypeDto;
146
- (function (PositionComplementingTypeDto) {
147
- PositionComplementingTypeDto["Undefined"] = "Undefined";
148
- PositionComplementingTypeDto["AllPreviousMarkedPositions"] = "AllPreviousMarkedPositions";
149
- PositionComplementingTypeDto["AllPreviousPositions"] = "AllPreviousPositions";
150
- PositionComplementingTypeDto["ReferencedPositions"] = "ReferencedPositions";
151
- })(PositionComplementingTypeDto || (PositionComplementingTypeDto = {}));
152
- /** Types of retentions to be used in positions */
153
- export var HoldOutTypeDto;
154
- (function (HoldOutTypeDto) {
155
- HoldOutTypeDto["Unknown"] = "Unknown";
156
- HoldOutTypeDto["Base"] = "Base";
157
- HoldOutTypeDto["Extension"] = "Extension";
158
- HoldOutTypeDto["Rent"] = "Rent";
159
- })(HoldOutTypeDto || (HoldOutTypeDto = {}));
160
- /** Duration used in retention positions */
161
- export var HoldOutDurationUnitDto;
162
- (function (HoldOutDurationUnitDto) {
163
- HoldOutDurationUnitDto["Unknown"] = "Unknown";
164
- HoldOutDurationUnitDto["Minutes"] = "Minutes";
165
- HoldOutDurationUnitDto["Hours"] = "Hours";
166
- HoldOutDurationUnitDto["Days"] = "Days";
167
- HoldOutDurationUnitDto["Weeks"] = "Weeks";
168
- HoldOutDurationUnitDto["Months"] = "Months";
169
- })(HoldOutDurationUnitDto || (HoldOutDurationUnitDto = {}));
170
- /** Indicates a ServiceSpecification's exchange phase, based on the GAEB exchange phases. */
171
- export var ExchangePhaseDto;
172
- (function (ExchangePhaseDto) {
173
- ExchangePhaseDto["Undefined"] = "Undefined";
174
- ExchangePhaseDto["Base"] = "Base";
175
- ExchangePhaseDto["CostEstimate"] = "CostEstimate";
176
- ExchangePhaseDto["OfferRequest"] = "OfferRequest";
177
- ExchangePhaseDto["Offer"] = "Offer";
178
- ExchangePhaseDto["SideOffer"] = "SideOffer";
179
- ExchangePhaseDto["Grant"] = "Grant";
180
- })(ExchangePhaseDto || (ExchangePhaseDto = {}));
181
- /** Indicates where a service specification was originally created. */
182
- export var OriginDto;
183
- (function (OriginDto) {
184
- OriginDto["Self"] = "Self";
185
- OriginDto["Gaeb90"] = "Gaeb90";
186
- OriginDto["Gaeb2000"] = "Gaeb2000";
187
- OriginDto["GaebXml"] = "GaebXml";
188
- OriginDto["Oenorm"] = "Oenorm";
189
- OriginDto["Reb"] = "Reb";
190
- OriginDto["Sia"] = "Sia";
191
- })(OriginDto || (OriginDto = {}));
192
- /** This enumeration represents the unit of a duration */
193
- export var DurationUnitDto;
194
- (function (DurationUnitDto) {
195
- DurationUnitDto["Months"] = "Months";
196
- DurationUnitDto["Years"] = "Years";
197
- })(DurationUnitDto || (DurationUnitDto = {}));
198
- /** This enum represents types of price inquiries */
199
- export var CommerceInquiryTypeDto;
200
- (function (CommerceInquiryTypeDto) {
201
- CommerceInquiryTypeDto["Unknown"] = "Unknown";
202
- CommerceInquiryTypeDto["Project"] = "Project";
203
- CommerceInquiryTypeDto["Immediate"] = "Immediate";
204
- CommerceInquiryTypeDto["Exhibition"] = "Exhibition";
205
- })(CommerceInquiryTypeDto || (CommerceInquiryTypeDto = {}));
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBOElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsZ0xBQWdMO0FBQ2hMLE1BQU0sQ0FBTixJQUFZLGdDQUlYO0FBSkQsV0FBWSxnQ0FBZ0M7SUFDeEMsMkRBQXVCLENBQUE7SUFDdkIsaURBQWEsQ0FBQTtJQUNiLG1EQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGdDQUFnQyxLQUFoQyxnQ0FBZ0MsUUFJM0M7QUFFRCxzSUFBc0k7QUFDdEksTUFBTSxDQUFOLElBQVksMkJBTVg7QUFORCxXQUFZLDJCQUEyQjtJQUNuQyxzREFBdUIsQ0FBQTtJQUN2Qiw4Q0FBZSxDQUFBO0lBQ2Ysb0RBQXFCLENBQUE7SUFDckIsOENBQWUsQ0FBQTtJQUNmLDBDQUFXLENBQUE7QUFDZixDQUFDLEVBTlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQU10QztBQUVELG1GQUFtRjtBQUNuRixNQUFNLENBQU4sSUFBWSxxQkFNWDtBQU5ELFdBQVkscUJBQXFCO0lBQzdCLDRDQUFtQixDQUFBO0lBQ25CLHdDQUFlLENBQUE7SUFDZixnREFBdUIsQ0FBQTtJQUN2Qix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7QUFDbkMsQ0FBQyxFQU5XLHFCQUFxQixLQUFyQixxQkFBcUIsUUFNaEM7QUFFRCxpTkFBaU47QUFDak4sTUFBTSxDQUFOLElBQVksWUFZWDtBQVpELFdBQVksWUFBWTtJQUNwQiwyQ0FBMkIsQ0FBQTtJQUMzQixtREFBbUMsQ0FBQTtJQUNuQyx5REFBeUMsQ0FBQTtJQUN6QyxtSEFBbUcsQ0FBQTtJQUNuRyxpRUFBaUQsQ0FBQTtJQUNqRCxxQ0FBcUIsQ0FBQTtJQUNyQiw2RkFBNkUsQ0FBQTtJQUM3RSw2Q0FBNkIsQ0FBQTtJQUM3QiwyQ0FBMkIsQ0FBQTtJQUMzQiw2RUFBNkQsQ0FBQTtJQUM3RCx1REFBdUMsQ0FBQTtBQUMzQyxDQUFDLEVBWlcsWUFBWSxLQUFaLFlBQVksUUFZdkI7QUFFRCxpU0FBaVM7QUFDalMsTUFBTSxDQUFOLElBQVksbUJBS1g7QUFMRCxXQUFZLG1CQUFtQjtJQUMzQixrREFBMkIsQ0FBQTtJQUMzQixrRUFBMkMsQ0FBQTtJQUMzQywwREFBbUMsQ0FBQTtJQUNuQyxzRkFBK0QsQ0FBQTtBQUNuRSxDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQTBJRCwyWEFBMlg7QUFDM1gsTUFBTSxDQUFOLElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUN4Qix1Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBcUIsQ0FBQTtJQUNyQixxQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBcUIsQ0FBQTtJQUNyQixpREFBNkIsQ0FBQTtJQUM3QixpRUFBNkMsQ0FBQTtJQUM3QywrQkFBVyxDQUFBO0lBQ1gsNkNBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFTM0I7QUF3TkQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsZ0NBQWEsQ0FBQTtJQUNiLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQVlELHVHQUF1RztBQUN2RyxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2hDLCtDQUFtQixDQUFBO0lBQ25CLHlDQUFhLENBQUE7SUFDYix5Q0FBYSxDQUFBO0lBQ2IsaURBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUE0QkQseUlBQXlJO0FBQ3pJLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDMUIsNkNBQXVCLENBQUE7SUFDdkIsbURBQTZCLENBQUE7SUFDN0IsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0I7QUF1QkQsc0RBQXNEO0FBQ3RELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsd0NBQXFCLENBQUE7SUFDckIsOENBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7QUFDakMsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIscUNBQW1CLENBQUE7SUFDbkIsbURBQWlDLENBQUE7QUFDckMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBZ0dELDZIQUE2SDtBQUM3SCxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzNCLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFxQixDQUFBO0lBQ3JCLGtFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sQ0FBTixJQUFZLGlCQVVYO0FBVkQsV0FBWSxpQkFBaUI7SUFDekIsd0NBQW1CLENBQUE7SUFDbkIsOENBQXlCLENBQUE7SUFDekIsb0NBQWUsQ0FBQTtJQUNmLHdDQUFtQixDQUFBO0lBQ25CLDRDQUF1QixDQUFBO0lBQ3ZCLDBDQUFxQixDQUFBO0lBQ3JCLDREQUF1QyxDQUFBO0lBQ3ZDLGtFQUE2QyxDQUFBO0lBQzdDLDBDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFWVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBVTVCO0FBRUQsZ09BQWdPO0FBQ2hPLE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDcEMsdURBQXVCLENBQUE7SUFDdkIseUZBQXlELENBQUE7SUFDekQsNkVBQTZDLENBQUE7SUFDN0MsMkVBQTJDLENBQUE7QUFDL0MsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFnQkQsa0RBQWtEO0FBQ2xELE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLHlDQUF1QixDQUFBO0lBQ3ZCLCtCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBRUQsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBTixJQUFZLHNCQU9YO0FBUEQsV0FBWSxzQkFBc0I7SUFDOUIsNkNBQW1CLENBQUE7SUFDbkIsNkNBQW1CLENBQUE7SUFDbkIseUNBQWUsQ0FBQTtJQUNmLHVDQUFhLENBQUE7SUFDYix5Q0FBZSxDQUFBO0lBQ2YsMkNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUE0SkQsNEZBQTRGO0FBQzVGLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDeEIsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtJQUNiLGlEQUE2QixDQUFBO0lBQzdCLGlEQUE2QixDQUFBO0lBQzdCLG1DQUFlLENBQUE7SUFDZiwyQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFSVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUTNCO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBTixJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLGdDQUFtQixDQUFBO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBc0NELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBOEJELG9EQUFvRDtBQUNwRCxNQUFNLENBQU4sSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLG1EQUF5QixDQUFBO0FBQzdCLENBQUMsRUFMVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBS2pDIiwic291cmNlc0NvbnRlbnQiOlsiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8YXV0by1nZW5lcmF0ZWQ+XG4vLyAgICAgR2VuZXJhdGVkIHVzaW5nIHRoZSBOU3dhZyB0b29sY2hhaW4gdjE0LjAuMC4wIChOSnNvblNjaGVtYSB2MTEuMC4wLjAgKE5ld3RvbnNvZnQuSnNvbiB2MTMuMC4wLjApKSAoaHR0cDovL05Td2FnLm9yZylcbi8vIDwvYXV0by1nZW5lcmF0ZWQ+XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBSZVNoYXJwZXIgZGlzYWJsZSBJbmNvbnNpc3RlbnROYW1pbmdcblxuLyoqIFRoaXMgZW51bSBjb25maWd1cmVzIHJvdW5kaW5nIG1vZGVzIGZvciBwcmljZSBjYWxjdWxhdGlvbnMgaW4gcHJvamVjdHMgKi9cbmV4cG9ydCBlbnVtIFByaWNlUm91bmRpbmdNb2RlRHRvIHtcbiAgICBOb3JtYWwgPSBcIk5vcm1hbFwiLFxuICAgIEZsb29yID0gXCJGbG9vclwiLFxuICAgIENlaWxpbmcgPSBcIkNlaWxpbmdcIixcbn1cblxuLyoqIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgYSBQcm9qZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0SW5mb3JtYXRpb25EdG8ge1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYnV5ZXIuICovXG4gICAgYnV5ZXI/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXNjcmlwdGlvbiBmb3IgdGhlIHByb2plY3QuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGUgcHJvamVjdC4gKi9cbiAgICBkZXNjcmlwdGlvblNob3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBwcm9qZWN0LiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBzaXRlLiAqL1xuICAgIHNpdGU/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSXRlbU51bWJlclNjaGVtYSB1c2VkIGluIHRoZSBwcm9qZWN0LiAqL1xuICAgIGl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBsYWJlbCBmb3IgdGhlIGN1cnJlbmN5IHVzZWQuICovXG4gICAgY3VycmVuY3lTaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRnVsbCBsYWJlbCBvZiB0aGUgY3VycmVuY3kgdXNlZC4gKi9cbiAgICBjdXJyZW5jeUxvbmc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgbGFib3VyIHRpbWUgcGFydCBvZiBwcmljZXMgdXNlZCBpbiB0aGUgcHJvamVjdC4gKi9cbiAgICBsYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVscyBmb3IgdGhlIHByaWNlIGNvbXBvbmVudHMgdXNlZCBpbiB0aGUgcHJvamVjdC4gQ2F1dGlvbjogUmVtb3ZhbCBvZiBhIHByaWNlIGNvbXBvbmVudCB3aWxsIHRyaWdnZXIgdG8gaGF2ZSBkZXBlbmRlbnQgcHJpY2UgaW5mb3JtYXRpb25zIGJlIGRlbGV0ZWQgaW4gSUVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgcHJvcGVydHkuIElmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZCBvciBhbHRlcmVkIGFmdGVyIHRoZSBwcm9qZWN0IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCwgaXQgaXMgc3Ryb25nbHkgYWR2aXNlZCB0byBkbyBvcGVyYXRpb25zIHN0ZXAgYnkgc3RlcCwgZS5nLiBpZiByZW5hbWluZyBhbmQgcmVvcmRlcmluZyBtdWx0aXBsZSBwcmljZSBjb21wb25lbnRzLCB0aGlzIHNob3VsZCBiZSBkb25lIG9uZSBieSBvbmUuIE90aGVyd2lzZSwgYSBjb21iaW5hdGlvbiBvZiByZW5hbWUgYW5kIHJlb3JkZXJpbmcgd2lsbCBub3QgYmUgY29ycmVjdGx5IHByb3BhZ2F0ZWQgZG93bndhcmRzIHRvIGNoaWxkIG9iamVjdHMgaW4gdGhpcyBQcm9qZWN0LiAqL1xuICAgIHByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGRpY3Rpb25hcnkgc3BlY2lmaWVzIGFjdHVhbCB0eXBlcyB1c2VkIGZvciB0aGUgUHJpY2VDb21wb25lbnRzLiBGb3IgZXhhbXBsZSwgYSBzaW5nbGUgcHJpY2UgY29tcG9uZW50IG1pZ2h0IGhhdmUgdGhlIG5hbWUgJ01hdGVyaWFsJyBhcyBhIHN0cmluZywgYW5zIHRoaXMgZGljdGlvbmFyeSB3b3VsZCB0aGVuIGhhdmUgYSBrZXkgJ01hdGVyaWFsJyBhbmQgYSB2YWx1ZSBvZiBNYXRlcmlhbHMuIFlvdSBjYW4gbm90IGFkZCBrZXlzIGhlcmUgdGhhdCBhcmUgbm90IGFsc28gcHJlc2VudCBpbiB0aGUgUHJpY2VDb21wb25lbnRzIHByb3BlcnR5LCBhbmQgcmVtb3ZpbmcgcHJpY2UgY29tcG9uZW50cyB3aWxsIGFsc28gcmVtb3ZlIHRoZW0gZnJvbSB0aGlzIGRpY3Rpb25hcnkgaGVyZS4gKi9cbiAgICByZWFkb25seSBwcmljZUNvbXBvbmVudFR5cGVzPzogeyBba2V5OiBzdHJpbmddOiBQcmljZUNvbXBvbmVudFR5cGVEdG87IH0gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgYm9vbCBpbmRpY2F0ZXMgaWYgdGhpcyBwcm9qZWN0IGFsbG93cyB0aGUgYmlkZGVyIHRvIGFkZCBiaWRkZXIgY29tbWVudHMuIEJpZGRlciBjb21tZW50cyBhcmUgYSB3YXkgdG8gYXR0YWNoIGNsYXJpZnlpbmcgaW5mb3JtYXRpb24gd2hlbiBzdWJtaXR0aW5nIGFuIG9mZmVyLiAqL1xuICAgIGJpZGRlckNvbW1lbnRBbGxvd2VkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHByb2plY3Qgc2hvdWxkIGFsbG93IHNpZGUgb2ZmZXJzIGZyb20gY29udHJhY3RvcnMuIEluIEdBRUIsIGEgc2lkZSBvZmZlciB3b3VsZCB0eXBpY2FsbHkgYmUgaW4gZXhjaGFuZ2UgcGhhc2UgODUuICovXG4gICAgc2lkZU9mZmVyc0FsbG93ZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXG4gICAgYXdhcmRUeXBlPzogQXdhcmRUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyBhd2FyZHMgZm9yIHByb2plY3QgdGhhdCBhcmUgbm90IGp1c3QgYSByZWd1bGFyIHByb2N1cmVtZW50LiBGb3IgZXhhbXBsZSwgaXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgcmVjdXJyaW5nIG1haW50ZW5hbmNlIG9yIGFuIG91dGxpbmUgY29udHJhY3QgKEdlcm1hbjogUmFobWVudmVydHJhZykgd2hpY2gganVzdCBzcGVjaWZpZXMgc2VydmljZXMgYW5kIHByaWNlcyBidXQgbWF5IGJlIHJlcXVlc3RlZCBvbiBkZW1hbmQgd2hlbiBuZWNlc3NhcnkgKi9cbiAgICBzcGVjaWFsQXdhcmRLaW5kPzogU3BlY2lhbEF3YXJkS2luZER0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVxdWVzdGVycyBpbiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0LCBpbiBHZXJtYW4gYWxzbyBjYWxsZWQgJ0JlZGFyZnN0csOkZ2VyJywgYXJlIHBhcnRpZXMgY29ubmVjdGVkIHRvIHRoZSBidWlsZGluZyBwcm9jZXNzLCBlLmcuIGFyY2hpdGVjdHMgb3IgcGxhbm5lcnMuICovXG4gICAgcmVxdWVzdGVycz86IFBhcnR5SW5mb3JtYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogTm90aWZpY2F0aW9uIHNpdGVzIGFyZSBhZGRyZXNzZXMgdGhhdCBhcmUgdXNlZCBmb3IgZGVsaXZlcmluZyBtZXNzYWdlcyBpbiB0aGUgY29udGV4dCBvZiBjb25zdHJ1Y3Rpb24gcHJvamVjdHMuICovXG4gICAgbm90aWZpY2F0aW9uU2l0ZXM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydHkgKGEgc2l0ZSBvciBhbiBvcmdhbml6YXRpb24pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0eUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgcGFydHkncyBuYW1lLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcGFydHkncyBzdHJlZXQuICovXG4gICAgc3RyZWV0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgWmlwQ29kZS4gKi9cbiAgICB6aXBDb2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ2l0eS4gKi9cbiAgICBjaXR5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ291bnRyeS4gKi9cbiAgICBjb3VudHJ5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgSWRlbnRpZmllci4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZW1hcmtzIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIHJlbWFya3M/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFydHkuICovXG4gICAgZW1haWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEEgcGhvbmUgbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIHBob25lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSBvZiBhIGNvbnRhY3QgcGVyc29uLiAqL1xuICAgIGNvbnRhY3RQZXJzb25OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGlzIFBhcnR5SW5mb3JtYXRpb24gYW5kIHRoZWlyIGludGVybmFsIHJlZmVyZW5jZSBvZiB0aGUgdGVuZGVyIChvciBhd2FyZCkuIFRoaXMgbWlnaHQgYmUgdXNlZCB0byBhc3NpZ24gYW4gaWRlbnRpZmllciAoR2VybWFuIFwiVmVyZ2FiZW51bW1lclwiKSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEJ1eWVyIGFuZCBCaWRkZXIgcmVwcmVzZW50YXRpb25zIGFuZCBzaG91bGQgbWFwIHRvIHRoZSBjb25jZXB0IG9mIFwiVmVyZ2FiZW51bW1lclwiIG9yIFwiQXdhcmROb1wiIGluIEdBRUIuICovXG4gICAgYXdhcmRJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgcGFydHkgaXMgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEuICovXG4gICAgaXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyB3aXRoaW4gdGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKHNlZSBJc0luRXVyb3BlYW5FY29ub21pY0FyZWEsIHRoZW4gYXMgYSBidXNpbmVzcyBlbnRpdHkgaXQgbGlrZWx5IGhhcyBhbiBFVSBWQVQgSWQuICovXG4gICAgdmF0SWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBmYXggbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIGZheD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR3byBsZXR0ZXIgSVNPIGNvdW50cnkgY29kZSwgZS5nLiBERSBmb3IgR2VybWFueS4gKi9cbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVwZW5kaW5nIG9uIHdoaWNoIHBhcnR5IHRoaXMgY2xhc3MgcmVwcmVzZW50cywgaXQgbWlnaHQgaGF2ZSBlaXRoZXIgYSAnY3JlZGl0b3InIG9yICdkZWJ0b3InIG51bWJlci4gVGhpcyBpcyBvZnRlbiB1c2VkIGluIGludGVybmFsIGFjY291bnRpbmcgc3lzdGVtcy4gKi9cbiAgICBjcmVkaXRvck9yRGVidG9ySWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEdsb2JhbCBMb2NhdGlvbiBOdW1iZXIgKEdMTikgaXMgaXNzdWVkIGJ5IEdTMSBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYSBwYXJ0eSwgZS5nLiBhIGJ1c2luZXNzIG9mZmljZS4gKi9cbiAgICBnbG9iYWxMb2NhdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGJhbmsgYWNjb3VudHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgUGFydHlJbmZvcm1hdGlvbi4gSXQncyB0eXBpY2FsbHkgdXNlZCBmb3IgYnV5ZXJzIGFuZCBiaWRkZXJzLiAqL1xuICAgIGJhbmtpbmdJbmZvcm1hdGlvbj86IEJhbmtpbmdJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSByZWdpc3RyYXRpb24gbnVtYmVyIGZvciB0aGlzIHBhcnR5LCBlLmcuIGEgY29tcGFueSByZWdpc3RyYXRpb24gbnVtYmVyLiBJdCBpcyB1c3VhbGx5IHVzZWQgaW4gR0FFQiBYTUwgY29tbWVyY2UgZXhjaGFuZ2VzIGZvciBiaWRkZXJzIHRvIHN1cHBseSB0aGVpciBXRUVFIHJlZ2lzdHJhdGlvbiBudW1iZXIsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlbSBhcyBhIHJlZ2lzdGVyZWQgV0VFRSBjb21wYW55LiAqL1xuICAgIHJlZ2lzdHJhdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgYSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgYmFuayBjb25uZWN0aW9uLiBJdCBpcyB1c3VhbGx5IHVzZWQgd2l0aGluIGEgUGFydHlJbmZvcm1hdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFua2luZ0luZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBiYW5rLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGlkZW50aWZpZXIgZm9yIHRoZSBiYW5rIGFjY291bnQuICovXG4gICAgaWJhbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGFjY291bnQgbnVtYmVyLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xuICAgIGFjY291bnROdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGJhbmsgaWRlbnRpZmllci4gKi9cbiAgICBiaWM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByb3V0aW5nIG51bWJlciBmb3IgdGhlIGJhbmsuIFR5cGljYWxseSBubyBsb25nZXIgdXNlZCBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIElCQU4gd2l0aGluIHRoZSBTRVBBIGFyZWEuICovXG4gICAgcm91dGluZ051bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBzY2hlbWEgZm9yIEl0ZW1OdW1iZXIncyBpbiBhIFByb2plY3QuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFEdG8ge1xuICAgIC8qKiBUaGUgY291bnQgb2YgdGllcnMgaW4gdGhlIEl0ZW1OdW1iZXJTY2hlbWEgKi9cbiAgICByZWFkb25seSB0b3RhbExlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbGxlY3Rpb24gb2YgdGllcnMgZm9yIHRoaXMgSXRlbU51bWJlclNjaGVtYS4gKi9cbiAgICB0aWVycz86IEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzZXBhcmF0b3IgdG8gdXNlIGZvciBzZXBhcml0aW5nIHRoZSBkaWZmZXJlbnQgbGV2ZWxzIGluIGFuIEl0ZW1OdW1iZXIuIERlZmF1bHRzIHRvIERFRkFVTFRfU0VQQVJBVE9SLCB3aGljaCBpcyBhIHBvaW50ICcuJy4gU2V0dGluZyB0aGlzIHRvIGEgc3BhY2Ugb3Igb3RoZXIgd2hpdGVzcGFjZXMgaXMgZGlzY291cmFnZWQsIGFzIHRoaXMgbWlnaHQgbm90IHdvcmsgY29ycmVjdCBpbiBhbGwgc2l0dWF0aW9ucyBhbmQgaXRlbSBudW1iZXJzIGNvdWxkIGJlIGRpc3BsYXllZCBub3QgYXMgaW50ZW5kZWQuIFRoaXMgY2FuIG5vdCBiZSBzZXQgdG8gYW4gZW1wdHkgb3IgbnVsbCBzdHJpbmcsIHRyeWluZyB0aGF0IHdpbGwgZGVmYXVsdCB0byB0aGUgREVGQVVMVF9TRVBBUkFUT1IuIElmIGEgdmFsdWUgaXMgc2V0IHRoYXQgaGFzIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIG9uZSAnMScsIHRoZSBERUZBVUxUX1NFUEFSQVRPUiB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gWW91IHNob3VsZCBhbHNvIG5vdCB1c2UgdmFsdWVzIGZvciB0aGUgc2VwYXJhdG9yIHRoYXQgYXJlIGFsc28gdmFsaWQgZm9yIHRoZSBpdGVtIG51bWJlcnMgdGhlbXNlbHZlcywgYXMgdGhhdCBtaWdodCBhbHNvIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgKi9cbiAgICBzZXBhcmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgc3RyaW5nIGlzIHVzZWQgdG8gZmlsbCAobGVmdC1wYWQpIGl0ZW0gbnVtYmVycy4gRm9yIGV4YW1wbGUsIGlmIGEgdGllciBoYXMgYSBsZW5ndGggb2YgJzQnIGJ1dCB0aGUgZ2l2ZW4gaXRlbSBudW1iZXIgaXMgJzEyJywgd2l0aCBhIEZpbGxlciBvZiAnMCcsIHRoZW4gdGhlIGZpbmFsIGl0ZW0gbnVtYmVyIHdpbGwgYmUgcmVwcmVzZW50ZWQgYXMgJzAnLiBUaGlzIG11c3QgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZywgaWYgYSB2YWx1ZSBpcyBnaXZlbiB3aGVyZSB0aGUgTGVuZ3RoIHByb3BlcnR5IGRvZXMgbm90IGV2YWx1YXRlIHRvICcxJywgdGhlIERFRkFVTFRfRklMTEVSICcwJyBpcyB1c2VkLiBBIHNwYWNlIGlzIGZpbmUgdG8gdXNlLiBZb3Ugc2hvdWxkIGVuc3VyZSB0aGF0IHlvdSB1c2UgYSB2YWx1ZSBkaWZmZXJlbnQgdGhhbiBTZXBhcmF0b3IsIGFzIHRoYXQgbWlnaHQgcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuIE5vIGF0dGVtcHQgaXMgZG9uZSBieSB0aGUgY29kZSB0byByZWNvdmVyIGZyb20gc3VjaCBhbWJpZ3VvdXMgY29uZmlndXJhdGlvbnMuICovXG4gICAgZmlsbGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGp1c3QgYSBzdHJpbmcgcHJvcGVydHkgdGhhdCBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHRvIHN0b3JlIGFkZGl0aW9uYWwgZGF0YSBmb3IgdGhpcyBJdGVtTnVtYmVyU2NoZW1hLCBlLmcuIGFuIGlkZW50aWZpY2F0aW9uIG9yIGEgdHlwZS4gSXQgZG9lcyBub3QgaGF2ZSBhbnkgaW5mbHVlbmNlIG92ZXIgaG93IGl0ZW0gbnVtYmVycyBhcmUgZ2VuZXJhdGVkLCBhbmQgaXMgbm90IHN1cHBvcnRlZCBpbiBtb3N0IGV4Y2hhbmdlIGZvcm1hdHMuIEhvd2V2ZXIsIGl0IGlzIHVzZWQgdG8gc3RvcmUgw5ZOb3JtIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgdHlwZXMuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgSXRlbU51bWJlcnMgdXNpbmcgdGhpcyBJdGVtTnVtYmVyU2NoZW1hIHNob3VsZCBza2lwIGVtcHR5IGdyb3VwIGxldmVscy4gVGhpcyBpcyBjb21tb25seSBvbmx5IHVzZWQgaW4gR0FFQiBmaWxlcywgd2hlcmUgdGhlcmUgbWlnaHQgYmUgZ2FwcyBpbiB0aGUgaGllcmFyY2h5IG9mIGVsZW1lbnRzIGFuZCBwb3NpdGlvbiBpZGVudGlmaWVycyBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBza2lwTm9uRXhpc3RpbmdMZXZlbHNJblBvc2l0aW9uSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIG9ubHkgd2hlbiB0aGUgcHJvcGVydHkgU2tpcE5vbkV4aXN0aW5nTGV2ZWxzSW5Qb3NpdGlvbkl0ZW1OdW1iZXJzIGluIHRoaXMgSXRlbU51bWJlclNjaGVtYSBpcyBhbHNvIHNldCB0byB0cnVlLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1NLSVBQRURfVElFUlNfRklMTEVSLCBidXQgY2FuIGJlIHNldCB0byBhbnkgc3RyaW5nIHdpdGggYSBsZW5naHQgb2Ygb25lLiBOdWxsIHZhbHVlcyBvciB2YWx1ZXMgd2l0aCBhIGxvbmdlciBsZW5ndGggd2lsbCBsZWFkIHRvIHRoaXMgcHJvcGVydHkgcmV2ZXJ0aW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgdmFsdWUuIFRoaXMgaXMgdXNlZCB0byBmaWxsIHNraXBwZWQgdGllcnMgaW4gaXRlbSBudW1iZXJzIHdoZXJlIGEgcG9zaXRpb24gaXMgcGxhY2VkIGluIGEgaGlnaGVyIGhpZXJhcmNoeSBsZXZlbCB0aGFuIHdoYXQgd291bGQgYmUgZGVmaW5lZCBpbiB0aGUgVGllcnMuIEZvciBleGFtcGxlLCBpdCBjb3VsZCBwcm9kdWNlIGFuIGl0ZW0gbnVtYmVyIGxpa2UgJzAxLl9fLjAyJywgd2hpY2ggd291bGQgaW5kaWNhdGUgYSBza2lwcGVkIHNlY29uZCBsZXZlbC4gVGhpcyBzaG91bGQgYmUgdXNpbmcgZGlmZmVyZW50IHZhbHVlcyB0aGFuIEZpbGxlciBhbmQgU2VwYXJhdG9yLCBzaW5jZSB0aGF0IGNvdWxkIGNhdXNlIGFtYmlndWl0aWVzIGluIHRoZSBjb2RlIHRoYXQgZ2VuZXJhdGVzIHRoZSBhY3R1YWwgaXRlbSBudW1iZXJzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xuICAgIHNraXBwZWRUaWVyc0ZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBpZiB0aGlzIHNjaGVtYSBoYXMgYSB2YWxpZCBzdHJ1Y3R1cmUuIEl0IGludGVybmFsbHkganVzdCByZXR1cm5zIHRoZSByZXN1bHQgZnJvbSBJc0NvcnJlY3RseURlZmluZWQuIFRoaXMgd2lsbCByZXR1cm4gaWYgdGhlIEl0ZW1OdW1iZXJTY2hlbWEgaXMgY29ycmVjdGx5IGRlZmluZWQuIEZvciBpdCB0byBiZSBjb3JyZWN0bHkgZGVmaW5lZCwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG11c3QgYmUgdHJ1ZTogVGhlcmUgbWF5IG9ubHkgYmUgb25lIGxvdCBncm91cCwgaWYgdGhlcmUgaXMgb25lLCBpdCBtdXN0IGJlIGF0IHRoZSB0b3AuIEZvbGxvd2luZyBsb3QgbGV2ZWxzLCB0aGVyZSBtYXkgYmUgYXQgbGVhc3Qgb25lIGdyb3VwIGxldmVsLiBBZnRlciB0aGUgZ3JvdXAgbGV2ZWxzLCB0aGVyZSBtdXN0IGJlIG9uZSBwb3NpdGlvbiBsZXZlbC4gQWZ0ZXIgdGhlIHBvc2l0aW9uIGxldmVsLCB0aGVyZSBtYXkgYmUgb25lIGluZGV4IGxldmVsLiBJZiBubyB0aWVycyBhcmUgZGVmaW5lZCBhdCBhbGwsIHRoaXMgd2lsbCBhbHNvIHJldHVybiBmYWxzZS4gKi9cbiAgICByZWFkb25seSBzY2hlbWFJc0NvcnJlY3RseURlZmluZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZhdWx0cyB0byBmYWxzZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYWxsIGxldHRlcnMgaW4gdGhlIEl0ZW1OdW1iZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvIHRoZWlyIGxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBhbGxvd1VwcGVyQ2FzZUxldHRlcmluZz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHNpbmdsZSBpZGVudGlmaWVycyBpbiBhbiBpdGVtIG51bWJlciB3aWxsIG5vdCBiZSBsZWZ0IHBhZGRlZCB0byBmaWxsIHRoZSBsZW5ndGggb2YgdGhlIHRpZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBhbGxvd2luZyBjdXN0b20gZm9ybWF0cyBpbiBpdGVtIG51bWJlcnMsIHdpdGhvdXQgZm9sbG93aW5nIHRoZSBHQUVCIHN0YW5kYXJkLiBEZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgICBkaXNhYmxlTGVmdFBhZGRpbmdUaWVyc1dpdGhGaWxsZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBUaWVyIGluIGFuIEl0ZW1OdW1iZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcbiAgICAvKiogVGhlIChtYXhpbXVtKSBsZW5ndGggZm9yIHRoaXMgdGllci4gV2lsbCBub3QgYWNjZXB0IGEgbGVuZ3RoIGxlc3MgdGhhbiAxLiBEZWZhdWx0cyB0byAxIGlmIGxlbmd0aCBsZXNzIHRoYW4gb25lIGlzIHNwZWNpZmllZC4gKi9cbiAgICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xuICAgIHR5cGU/OiBJdGVtTnVtYmVyVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGFsaWdubWVudCB2YWx1ZSBmb3IgYSB0aWVyIGluIGFuIEl0ZW1OdW1iZXJTY2hlbWEuIEl0IGlzIG5vdCB1c2VkIGFueXdoZXJlIGZvciBjb21wdXRhdGlvbnMgYXQgdGhlIG1vbWVudCwgYW5kIGlzIG1vc3RseSBhbiBpbmZvcm1hdGlvbmFsIHZhbHVlLiAqL1xuICAgIGFsaWdubWVudD86IEl0ZW1OdW1iZXJTY2hlbWFUaWVyQWxpZ25tZW50RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNwZWNpZmllcyB3aGljaCBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGUgdGhpcyB0aWVyIHJlcHJlc2VudHMuIFRoaXMgY2FuIGJlLCBmb3IgZXhhbXBsZSwgYSBncm91cCB0aWVyIC8gbGV2ZWwsIGEgcG9zaXRpb24gbGV2ZWwgb3IgYSBsb3QgbGV2ZWwuICovXG4gICAgdGllclR5cGU/OiBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIHRpZXIgcmVwcmVzZW50cyBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGxvdHMuICovXG4gICAgcmVhZG9ubHkgaXNMb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHZhbHVlIGlzIHRoZSBpbmNyZW1lbnQsIG9yIHN0ZXAgc2l6ZSwgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgbmV3IGl0ZW0gbnVtYmVycy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9JTkNSRU1FTlQsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBhbnkgb3RoZXIgcG9zaXRpdmUgbnVtYmVyIGdyZWF0ZXIgdGhhbiB6ZXJvLiBJbnZhbGlkIHZhbHVlcyBtYWtlIHRoaXMgYmUgc2V0IHRvIG9uZSAnMScgKi9cbiAgICBpbmNyZW1lbnQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbmFtZSBmb3IgdGhlIGdpdmVuIHRpZXIgKi9cbiAgICB0aWVyTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIERldGVybWluZXMgdGhlIHR5cGUgb2YgYW4gSXRlbU51bWJlclNjaGVtYSAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclR5cGVEdG8ge1xuICAgIE51bWVyaWMgPSBcIk51bWVyaWNcIixcbiAgICBBbHBoYW51bWVyaWMgPSBcIkFscGhhbnVtZXJpY1wiLFxufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGFsaWdubWVudCB2YWx1ZSBmb3IgYSB0aWVyIGluIGFuIEl0ZW1OdW1iZXJTY2hlbWEuIEl0IGlzIG5vdCB1c2VkIGFueXdoZXJlIGZvciBjb21wdXRhdGlvbnMgYXQgdGhlIG1vbWVudCwgYW5kIGlzIG1vc3RseSBhbiBpbmZvcm1hdGlvbmFsIHZhbHVlLiAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJBbGlnbm1lbnREdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgTGVmdCA9IFwiTGVmdFwiLFxuICAgIFJpZ2h0ID0gXCJSaWdodFwiLFxufVxuXG4vKiogU3BlY2lmaWVzIHRoZSB0eXBlIGFuIEl0ZW1OdW1iZXJTY2hlbWFUaWVyIHJlcHJlc2VudHMuIEZvciBleGFtcGxlLCBhIHRpZXIgbWF5IGluZGljYXRlIHRvIGJlIHVzZWQgZm9yIHBvc2l0aW9ucyBvciBmb3IgZ3JvdXBzLiAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIEluZGV4ID0gXCJJbmRleFwiLFxuICAgIFBvc2l0aW9uID0gXCJQb3NpdGlvblwiLFxuICAgIEdyb3VwID0gXCJHcm91cFwiLFxuICAgIExvdCA9IFwiTG90XCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIG1vZGVscyB0eXBlcyBvZiBwcmljZSBjb21wb25lbnRzIGZvciBiZXR0ZXIgY2xhc3NpZmljYXRpb24uICovXG5leHBvcnQgZW51bSBQcmljZUNvbXBvbmVudFR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBXYWdlcyA9IFwiV2FnZXNcIixcbiAgICBNYXRlcmlhbHMgPSBcIk1hdGVyaWFsc1wiLFxuICAgIFBsYW50ID0gXCJQbGFudFwiLFxuICAgIE1pc2NlbGxhbmVvdXMgPSBcIk1pc2NlbGxhbmVvdXNcIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBhd2FyZCAvIHByb2N1cmVtZW50IHByb2Nlc3MuIElmIHRoaXMgaXMgdXNlZCBpbiBhIEdBRUIgY29udGV4dCwgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhd2FyZCB0eXBlcyBjYW4gYmUgZm91bmQgaW4gdGhlIEdlcm1hbiBWT0IvQSBydWxlcyBhbmQgdGhlIEdBRUIgc3RhbmRhcmQgKi9cbmV4cG9ydCBlbnVtIEF3YXJkVHlwZUR0byB7XG4gICAgVW5zcGVjaWZpZWQgPSBcIlVuc3BlY2lmaWVkXCIsXG4gICAgT3BlblByb2N1cmVtZW50ID0gXCJPcGVuUHJvY3VyZW1lbnRcIixcbiAgICBDbG9zZWRQcm9kdWNyZW1lbnQgPSBcIkNsb3NlZFByb2R1Y3JlbWVudFwiLFxuICAgIE5lZ290aWF0aW9uUHJvY3VyZW1lbnRXaXRob3V0UHVibGljQW5ub3VuY2VtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50V2l0aG91dFB1YmxpY0Fubm91bmNlbWVudFwiLFxuICAgIE5lZ290aWF0aW9uUHJvY3VyZW1lbnQgPSBcIk5lZ290aWF0aW9uUHJvY3VyZW1lbnRcIixcbiAgICBPcGVuQ2FsbCA9IFwiT3BlbkNhbGxcIixcbiAgICBTZWxlY3RlZENhbGxXaXRob3V0UHVibGljQ29tcGV0aXRpb24gPSBcIlNlbGVjdGVkQ2FsbFdpdGhvdXRQdWJsaWNDb21wZXRpdGlvblwiLFxuICAgIFNlbGVjdGVkQ2FsbCA9IFwiU2VsZWN0ZWRDYWxsXCIsXG4gICAgRGlyZWN0QXdhcmQgPSBcIkRpcmVjdEF3YXJkXCIsXG4gICAgSW50ZXJuYXRpb25hbE5BVE9Qcm9jdXJlbWVudCA9IFwiSW50ZXJuYXRpb25hbE5BVE9Qcm9jdXJlbWVudFwiLFxuICAgIENvbXBldGl0aXZlRGlhbG9nID0gXCJDb21wZXRpdGl2ZURpYWxvZ1wiLFxufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgYXdhcmRzIGZvciBwcm9qZWN0IHRoYXQgYXJlIG5vdCBqdXN0IGEgcmVndWxhciBwcm9jdXJlbWVudC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHJlY3VycmluZyBtYWludGVuYW5jZSBvciBhbiBvdXRsaW5lIGNvbnRyYWN0IChHZXJtYW46IFJhaG1lbnZlcnRyYWcpIHdoaWNoIGp1c3Qgc3BlY2lmaWVzIHNlcnZpY2VzIGFuZCBwcmljZXMgYnV0IG1heSBiZSByZXF1ZXN0ZWQgb24gZGVtYW5kIHdoZW4gbmVjZXNzYXJ5ICovXG5leHBvcnQgZW51bSBTcGVjaWFsQXdhcmRLaW5kRHRvIHtcbiAgICBVbnNwZWNpZmllZCA9IFwiVW5zcGVjaWZpZWRcIixcbiAgICBNYWludGVuYW5jZUNvbnRyYWN0ID0gXCJNYWludGVuYW5jZUNvbnRyYWN0XCIsXG4gICAgT3V0bGluZUNvbnRyYWN0ID0gXCJPdXRsaW5lQ29udHJhY3RcIixcbiAgICBPdXRsaW5lRm9yTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiT3V0bGluZUZvck1haW50ZW5hbmNlQ29udHJhY3RcIixcbn1cblxuLyoqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgdGhhdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhIHdob2xlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWNpZmljYXRpb25EdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdGF4IHJhdGUgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RQcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSUVsZW1lbnRzIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiAqL1xuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RMYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIElkcyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJZCBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJZHMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xuICAgIHRvdGFsUHJpY2VHcm9zc0J5VGF4UmF0ZT86IEdyb3NzUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSdzIHRvdGFsIHByaWNlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLCB3aGV0aGVyIGl0IHNob3VsZCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cyBvciBub3QuICovXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmlkZGVyLiAqL1xuICAgIGJpZGRlcj86IFBhcnR5SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZGlzY3JpbWluYXRvciBpcyB1c2VkIHRvIGlkZW50aWZ5IGRpZmZlcmVudCBiaWRkZXJzIGluIGEgcHJvamVjdC4gSXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIElkZW50aWZpZXIgcHJvcGVydHkgaW4gdGhlIEJpZGRlciBpbiB0aGF0IHRoZSBCaWRkZXJEaXNjcmltaW5hdG9yIGlzIGludGVuZGVkIHRvIGJlIGEgbnVtZXJpY2FsIGlkZW50aWZpZXIgd2l0aGluIGEgcHJvamVjdCwgd2hpbGUgdGhlIElkZW50aWZpZXIgZG9lcyB1bmlxdWVseSBpZGVudGlmeSBhIGJpZGRlciBpbiB0aGUgc3lzdGVtIGluZGVwZW5kZW50IG9mIGEgc3BlY2lmaWMgcHJvamVjdC4gVGhpcyBwcm9wZXJ0eSBzaG91bGQgbWFwIHRvIFwiQmlldGVybnVtbWVyXCIgb3IgXCJCaWRkZXJOb1wiIGluIEdBRUIuICovXG4gICAgYmlkZGVyRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCB3aXRoaW4gdGhlIFByb2plY3QgaW4gd2hpY2ggdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpcyBjb250YWluZWQuIFRoaXMgaXMgcmVmZXJlbmNlIGVxdWFsIHRvIHRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCBpbiB0aGUgcGFyZW50IHByb2plY3QuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdEluZm9ybWF0aW9uPzogUHJvamVjdEluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbnMgZXhjaGFuZ2UgcGhhc2UsIGkuZS4gdGhlIGN1cnJlbnQgc3RhdHVzIGluIHRoZSBwcm9qZWN0IGl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgKHN1Y2ggYXMgcmVxdWVzdCBmb3Igb2ZmZXIsIG9mZmVyLCBhd2FyZGluZy4uLikuICovXG4gICAgZXhjaGFuZ2VQaGFzZT86IEV4Y2hhbmdlUGhhc2VEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHdoZXJlIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gb3JpZ2luYXRlcywgaS5lLiBmcm9tIGFuIGV4Y2hhbmdlIGZpbGUgZm9ybWF0IG9yIHNlbGYgY3JlYXRlZC4gSWYgYXBwbGljYWJsZSwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpcyBwcmVzZW50IGluIHRoZSBPcmlnaW5EZXRhaWwgcHJvcGVydHkuICovXG4gICAgb3JpZ2luPzogT3JpZ2luRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbXBsZW1lbnRzIHRoZSBPcmlnaW4gcHJvcGVydHkuIFNvbWUgZm9ybWF0cywgZS5nLiBHYWViWG1sIG1pZ2h0IGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhdHRhY2hlZCwgZS5nLiBHQUVCIFhNTCBWMy4yIG9kZXIgR0FFQiBYTUwgVjMuMS4gVGhpcyBzdHJpbmcgcHJvcGVydHkgaXMgdXNlZCB0byBob2xkIHN1Y2ggZGF0YS4gVGhlIERhbmdsLkFWQSBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLCBzaW5jZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIG5hdGl2ZSBmb3JtYXQgYXNzZW1ibGllcywgZS5nLiBEYW5nbC5HQUVCIG9yIERhbmdsLk9lbm9ybS4gKi9cbiAgICBvcmlnaW5EZXRhaWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIENyZWF0aW9uIGRhdGUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBjcmVhdGlvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEYXRlIGluZGljYXRpbmcgdW50aWwgd2hlbiBhbiBvZmZlciBoYXMgdG8gYmUgc3VibWl0dGVkLiBJbiBHZXJtYW4sIHRoaXMgaXMgb2Z0ZW4gY2FsbGVkIHRoZSBcIkVyw7ZmZm51bmdzdGVybWluXCIgKi9cbiAgICBvZmZlckJ5RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyBieSB3aGVuIHRoZSBidXllciB3aWxsIHNlbGVjdCBhIGNvbnRyYWN0b3IuICovXG4gICAgZGVjaXNpb25EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGF0ZSBvZiB3aGVuIHRoZSBvZmZlciAvIGJpZCB3YXMgY3JlYXRlZCAqL1xuICAgIGJpZERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0IHJlcXVpcmVzIGEgd2FycmFudHkgYm9uZCwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYSB3YXJyYW50eSBib25kLiAqL1xuICAgIHdhcnJhbnR5Qm9uZFBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYW4gZXhlY3V0aW9uIGd1YXJhbnR0eSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYW4gZXhlY3V0aW9uIGd1YXJhbnRlZS4gSW4gcHJhY3RpY2UsIHRoaXMgcGVyY2VudGFnZSBpcyB1c3VhbGx5IGRlZHVjdGVkIGZyb20gaW50ZXJtZWRpYXRlIGludm9pY2VzIGFuZCBvbmx5IGJpbGxlZCBpbiB0aGUgZmluYWwgaW52b2ljZS4gKi9cbiAgICBleGVjdXRpb25HdWFyYW50ZWVQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTdHJpbmcgaW5kaWNhdGluZyB3aGVyZSB0aGUgcGh5c2ljYWwgc3VibWlzc2lvbiBvZiB0aGUgb2ZmZXIgaXMgdGFraW5nIHBsYWNlLiAqL1xuICAgIHN1Ym1pc3Npb25Mb2NhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIFByaWNlSW5mb3JtYXRpb24gY29udGFpbnMgZ2xvYmFsIGRhdGEgZm9yIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gV2hlbiBpbnNpZGUgYSBQcm9qZWN0LCBkbyBub3Qgc2V0IHRoaXMgcHJvcGVydHkgbWFudWFsbHkuICovXG4gICAgcHJpY2VJbmZvcm1hdGlvbj86IFByaWNlSW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VzPzogQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIHdoZW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2VydmljZXMgaXMgc2NoZWR1bGVkIHRvIHN0YXJ0ICovXG4gICAgcGxhbm5lZEV4ZWN1dGlvblN0YXJ0PzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgdGhlbiB0aGUgZXhlY3V0aW9uIG9mIHRoZSBzZXJ2aWNlcyBpcyBzY2hlZHVsZWQgdG8gYmUgZmluaXNoZWQgKi9cbiAgICBwbGFubmVkRXhlY3V0aW9uRW5kPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIGNvbnRyYWN0IGhhcyBiZWVuIGF3YXJkZWQuIFRoaXMgbWF0Y2hlcyBcIkF1ZnRyYWdzZGF0dW1cIiBpbiBHQUVCICovXG4gICAgY29udHJhY3REYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyB2YWx1ZSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9yIGlkZW50aWZpZXIgb2YgdGhlIGNvbnRyYWN0LiBJdCBtYXRjaGVzIFwiQXVmdHJhZ3NudW1tZXJcIiBpbiBHQUVCICovXG4gICAgY29udHJhY3RJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBob3cgbG9uZyB0aGUgd2FycmFudHkgcGVyaW9kIGlzIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uICovXG4gICAgd2FycmFudHlEdXJhdGlvbj86IFdhcnJhbnR5RHVyYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSB3YXJyYW50eSBwZXJpb2QgZW5kcyAqL1xuICAgIHdhcnJhbnR5RW5kPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIHNlcnZpY2VzIHJlbmRlcmVkIGJ5IHRoZSBiaWRkZXIgYXJlIHNjaGVkdWxlZCB0byBiZSBhcHByb3ZlZCBieSB0aGUgYnV5ZXIgKi9cbiAgICBhcHByb3ZhbERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNob3VsZCBzcGVjaWZ5IGhvdyB0aGUgYXBwcm92YWwgaXMgcGVyZm9ybWVkIGJ5IHRoZSBidXllci4gVGhpcyBtYXRjaGVzIFwiQWNjZXB0VHlwZVwiIGluIEdBRUIgKi9cbiAgICB0eXBlT2ZBcHByb3ZhbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cbiAgICBhZGRlbmR1bU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBob2xkcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQncyBvbmx5IHZhbGlkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbiAgICBjb21tZXJjZVByb3BlcnRpZXM/OiBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEJhc2UgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIGVsZW1lbnRzIHdpdGhpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUVsZW1lbnREdG8ge1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBJRWxlbWVudC4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgc3RyaW5nIHByb3BlcnR5IGlzIHNoYXJlZCBieSBhbGwgSUVsZW1lbnRzLCBhbmQgaW5kaWNhdGVzIGlmIHRoZSBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0sIGEgJ05hY2h0cmFnJyBpbiBHZXJtYW4uICovXG4gICAgYWRkZW5kdW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VzPzogQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yOiBzdHJpbmc7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGRlc2NyaWJlcyBhbiBleHRlcm5hbCBjYXRhbG9ndWUuIENhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCBob2xkIGluZm9ybWF0aW9uIHRvIGNhdGVnb3JpemUgYW5kIGRlc2NyaWJlIGl0ZW1zLiBGb3IgZXhhbXBsZSwgdGhlIEdlcm1hbiBESU4gMjc2IGNvc3QgZ3JvdXAgc3RhbmRhcmRzIGRlc2NyaWJlIGRpZmZlcmVudCB0eXBlcyBvZiBjb3N0cyBmb3IgYnVpbGRpbmcgcHJvamVjdHMuIFdoZW4gcmVmZXJlbmNpbmcgdGhlIERJTiAyNzYgY2F0YWxvZ3VlIGFuZCBwcm92aWRpbmcgYW4gaXRlbSBrZXkgb3IgaWRlbnRpZmllciwgaXQgaXMgcG9zc2libGUgdG8gcmVmZXJlbmNlIGRhdGEgaW4gdGhpcyBjYXRhbG9ndWUuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIENhdGFsb2d1ZS4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIHRoYXQgaXMgZ2l2ZW4gZm9yIHRoaXMgY2F0YWxvZ3VlLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjYXRhbG9ndWUuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIGdpdmVuLCB0aGlzIGdpdmVzIGEgY2xhc3NpZmljYXRpb24gZm9yIHRoZSBjb250ZW50cyBvZiB0aGUgY2F0YWxvZ3VlICovXG4gICAgY2F0YWxvZ3VlVHlwZT86IENhdGFsb2d1ZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgbWF5IGhvbGQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2F0YWxvZ3VlIHR5cGUuIEl0IGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgaW4gR0FFQiBYTUwgZXhjaGFuZ2UgdG8gY2FycnkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRhbG9ndWUgdHlwZSwgYnV0IGl0J3Mgb3RoZXJ3aXNlIGp1c3QgYSBmcmVlIHRleHQgZmllbGQuICovXG4gICAgY2F0YWxvZ3VlVHlwZURldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGEgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGVudW0gQ2F0YWxvZ3VlVHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIExvY2F0aW9uID0gXCJMb2NhdGlvblwiLFxuICAgIERJTjI3NiA9IFwiRElOMjc2XCIsXG4gICAgQ29zdFVuaXQgPSBcIkNvc3RVbml0XCIsXG4gICAgV29ya0NhdGVnb3J5ID0gXCJXb3JrQ2F0ZWdvcnlcIixcbiAgICBPZW5vcm1CMTgwMUNvc3RHcm91cCA9IFwiT2Vub3JtQjE4MDFDb3N0R3JvdXBcIixcbiAgICBCSU0gPSBcIkJJTVwiLFxuICAgIEF0dGFjaG1lbnQgPSBcIkF0dGFjaG1lbnRcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBsaW5rIGRhdGEgYmV0d2VlbiBjYXRhbG9ndWVzIGFuZCBvYmplY3RzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9ndWVSZWZlcmVuY2VEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBwb2ludHMgdG8gdGhlIGl0ZW0gaW4gdGhlIGNhdGFsb2d1ZSBpdHNlbGYuIFRoaXMgbWVhbnMgdGhhdCwgZm9yIGV4YW1wbGUgd2hlbiB0aGlzIHF1YW50aXR5IGFzc2lnbm1lbnQgcmVmZXJlbmNlcyBhIFwiRElOIDI3NlwiIGNhdGFsb2d1ZSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIG51bWJlciAvIGlkZW50aWZpZXIgLyBrZXkgaW4gRElOIDI3NiB0aGF0IGlzIHJlZmVyZW5jZWQuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlS2V5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSWQgb2YgdGhlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGlzIHRhcmdldGVkIGJ5IHRoaXMgaXRlbS4gU2V0IHRoaXMgcHJvcGVydHkgdG8gc2V0IHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gKi9cbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBDYXRhbG9ndWUgcmVmZXJlbmNlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuICovXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXR1cm5zIHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gV2lsbCByZXR1cm4gbnVsbCBpZiB0aGVyZSBpcyBubyByZWZlcmVuY2Ugb3IgdGhlIGNhdGFsb2d1ZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgUHJvamVjdENhdGFsb2d1ZXMuICovXG4gICAgcmVhZG9ubHkgY2F0YWxvZ3VlPzogQ2F0YWxvZ3VlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQSBQb3NpdGlvbiBpcyB0aGUgbWFpbiBpdGVtIHR5cGUgaW4gYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgaG9sZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0YXNrcyB0byBiZSBkb25lLCB0aGVpciBwcmljZXMsIGRlc2NyaXB0aW9uLCBhbW91bnRzIGV0Yy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoZSBwcmljZSBwZXIgdW5pdCwgcm91bmRlZCBhY2NvcmRpbmcgdG8gdGhlIHByb2plY3Qgc2V0dGluZ3Mgb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhyZWUgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICByZWFkb25seSB1bml0UHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSB1bml0IHByaWNlIGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFByaWNlQ29tcG9uZW50cyAqL1xuICAgIHVuaXRQcmljZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIFBvc2l0aW9uJ3MgdG90YWwgcXVhbnRpdHksIHJvdW5kZWQgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMuICovXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBwb3NpdGlvbi4gVGhpcyB3aWxsIG92ZXJyaWRlIGFueSBnaXZlbiBRdWFudGl0eUNvbXBvbmVudHMgKi9cbiAgICBxdWFudGl0eU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0cnVlIGlmIHRoaXMgc3BlY2lmaWMgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGFzIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBmb3IgYW55IGJhc2UgcG9zaXRpb24uICovXG4gICAgaXNDb21wbGVtZW50aW5nUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBJc0NvbXBsZW1lbnRpbmdQb3NpdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgdGhpcyB3aWxsIGluZGljYXRlIHdoaWNoIGJhc2UgcG9zaXRpb25zIGFyZSB0YXJnZXRlZCBieSB0aGlzIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24uICovXG4gICAgY29tcGxlbWVudHNQb3NpdGlvbnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBkaXJlY3RseSBzcGVjaWZ5IHRoZSB0b3RhbCBwcmljZSBvZiB0aGlzIHBvc2l0aW9uIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc3VtIG9mIHRoZSB0b3RhbCBwcmljZXMgb2YgYmFzZSBwb3NpdGlvbnMgdGhhdCB0aGlzIHBvc2l0aW9uIGNvbXBsZW1lbnRzLiBJdCB3aWxsIGVzc2VudGlhbGx5IHNldCB0aGUgdG90YWwgcHJpY2UgZm9yIHRoaXMgcG9zaXRpb24gdG8gdGhlIHN1bSBvZiBhbGwgdG90YWwgcHJpY2VzIG9mIHRoZSBwb3NpdGlvbnMgc3BlY2lmaWVkIGluIENvbXBsZW1lbnRzUG9zaXRpb25zIG11bHRpcGxpZWQgYnkgdGhlIHBlcmNlbnRhZ2UgaGVyZS4gSWYgcHJlc2VudCwgdGhpcyBoYXMgcHJlY2VkZW5jZSBvdmVyIFVuaXRQcmljZU92ZXJyaWRlIGFzIHdlbGwgYXMgUXVhbnRpdHlPdmVycmlkZS4gKi9cbiAgICBjb21wbGVtZW50aW5nUHJpY2VQZXJjZW50YWdlT3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSByZWFkIG9ubHkgcHJvcGVydHkgc2hvd2luZyB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbnMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBhbGwgYmFzZSBwb3NpdGlvbnMsIGluIGNhc2UgdGhpcyBwb3NpdGlvbiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zLiBJZiB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIHRoaXMgd2lsbCBiZSBudWxsLiBBbHNvLCBpZiBubyBwcmljZXMgYXJlIHByZXNlbnQsIHRoaXMgd2lsbCBhbHNvIGJlIG51bGwuICovXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRhZyBvZiB0aGUgdW5pdCB1c2VkIGZvciB0aGlzIHBvc2l0aW9ucyBxdWFudGl0eS4gKi9cbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29tcG9uZW50cyBmb3IgbGFib3VyIHRpbWUgaW4gdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBsYWJvdXJDb21wb25lbnRzPzogTGFib3VyUHJpY2VDb21wb25lbnREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgcHJpY2UgY29tcG9uZW50cyBpbiB0aGlzIFBvc2l0aW9uLiBQcmljZSBjb21wb25lbnRzIHNob3VsZCBub3QgYmUgaGFuZGxlZCBkaXJlY3RseSBvbiBhIHBlci1wb3NpdGlvbiBiYXNpcyBidXQgc2V0IGdsb2JhbGx5IGluIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIHByaWNlQ29tcG9uZW50cz86IFByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBxdWFudGl0eSBjb21wb25lbnRzIG9mIHRoaXMgUG9zaXRpb24uICovXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRnVydGhlciBzdHJ1Y3R1cmluZyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHN1YkRlc2NyaXB0aW9ucz86IFN1YkRlc2NyaXB0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyB0aGUgc3RhdHVzIG9mIHRoaXMgUG9zaXRpb24ncyBjb21pc3Npb24uICovXG4gICAgY29taXNzaW9uU3RhdHVzPzogQ29taXNzaW9uU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBIGxpc3Qgb2YgcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIFBvc2l0aW9uLiBUaGUgcG9zaXRpb25zIGFyZSByZWZlcmVuY2VkIGJ5IHRoZWlyIEdVSURzLiBJdCBtaWdodCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQ29tcGxlbWVudGVkQnlRdWFudGl0aWVzIGluIGNhc2UgdGhhdCBvbmx5IGEgZ2l2ZW4gcXVhbnRpdHkgaXMgY29tcGxlbWVudGVkIGJ5IHBvc2l0aW9ucy4gKi9cbiAgICBjb21wbGVtZW50ZWRCeT86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIGluZGljYXRlIGlmIHRoaXMgUG9zaXRpb24gaXMgY29tcGxlbWVudGVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24gYnkgb3RoZXIgUG9zaXRpb25zLiBJdCBjYW4gbm90IGJlIHNldCB0byBmYWxzZSB3aGVuIHRoZXJlIGFyZSBlbnRyaWVzIGluIHRoZSBDb21wbGVtZW50ZWRCeSBwcm9wZXJ0eS4gKi9cbiAgICBjb21wbGVtZW50ZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYW1vdW50IGZvciB0aGlzIFBvc2l0aW9uIGlzIHRvIGJlIHNldCBieSB0aGUgYmlkZGVyLiAqL1xuICAgIGFtb3VudFRvQmVFbnRlcmVkQnlCaWRkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGJpZGRlciBkZW1hbmRzIGZvciBwcmljZXMgdG8gYmUgYnJva2VuIHVwIGludG8gdGhlaXIgcHJpY2UgY29tcG9uZW50cy4gKi9cbiAgICBwcmljZUNvbXBvc2l0aW9uUmVxdWlyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBQb3NpdGlvbiBzaG91bGQgdXNlIGEgZGlmZmVyZW50IFRheFJhdGUgdGhhbiB3aGF0IGlzIHRoZSBkZWZhdWx0IGZvciB0aGUgUHJvamVjdC4gKi9cbiAgICB1c2VEaWZmZXJlbnRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gZWl0aGVyIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24ncyBUYXhSYXRlIG9yIGl0J3Mgb3duIGlmIGl0IGhhcyBhIGRpZmZlcmVudCB2YWx1ZS4gKEZvciBleGFtcGxlLCBpbiBHZXJtYW55IFdhdGVyIGhhcyBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gcmVndWxhciBQb3NpdGlvbnMpICovXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXIgZm9yIHRoaXMgUG9zaXRpb24uICovXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByYXRlIG9mIGRlZHVjdGlvbnMsIGkuZS4gMC4xMm0gbWVhbnMgMTIlIHByaWNlIGRlZHVjdGlvbi4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgVW5pdFByaWNlIHRpbWVzIFF1YW50aXR5LiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3NEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhpcyBpcyB0aGUgdG90YWwgcHJpY2UsIGZyb20gVG90YWxQcmljZSwgbm90IHRoZSB1bml0IHByaWNlIG9mIHRoZSBwb3NpdGlvbi4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0aGUgdHlwZSBvZiBhIHBvc2l0aW9uLiBJZiB0aGlzIGlzIGFuIGFsdGVybmF0aXZlIHBvc2l0aW9uLCBpdHMgQWx0ZXJuYXRpdmVUbyBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaXQgY2FuIHJlcGxhY2UuICovXG4gICAgcG9zaXRpb25UeXBlPzogUG9zaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBwb3NpdGlvbiBpcyByZWd1bGFyIG9yIGRlc2NyaWJpbmcgYSBsYWJvdXIgLyBob3VybHkgcGFpZCB3b3JrIHNlcnZpY2UgKi9cbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGRlc2NyaWJlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IGEgcHJvZHVjdCBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgYSBwaXBlIHBvc2l0aW9uLCBwZXIgbGVuZ3RoIHVuaXQsIGNvdWxkIGJlIGNvbXBvc2VkIG9mIGRpZmZlcmVudCBwaXBlIHNlZ21lbnRzLCBmaXR0aW5nIGFuZCBvdGhlciBhY2Nlc3NvcnkgYXJ0aWNsZXMuICovXG4gICAgcHJvZHVjdERhdGE/OiBQcm9kdWN0RGF0YUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGlzIFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgYmUgY2F0ZWdvcml6ZWQgYnkgY29zdCBncm91cCAtIGUuZy4gYSBQb3NpdGlvbiBkZXNjcmliaW5nIGNvbmNyZXRlIHdhbGxzIGNvdWxkIGZvbGxvdyB0aGUgR2VybWFuIERJTiAyNzYgQ29zdCBHcm91cHMgU3RhbmRhcmQgYW5kIHNwZWNpZnkgdGhhdCBvZiB0aGUgdG90YWwgMS4wMDBtwrIgd2FsbCwgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGV4dGVyaW9yIHdhbGxzIGFuZCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgaW50ZXJpb3Igd2FsbHMuIFRoZXkgd291bGQgdGhlbiBoYXZlIGRpZmZlcmVudCBjb3N0IGdyb3VwcyBhc3NvY2lhdGVkLCBlLmcuIGZvciBhY2NvdW50aW5nIHB1cnBvc2VzLiAqL1xuICAgIHF1YW50aXR5QXNzaWdubWVudHM/OiBRdWFudGl0eUFzc2lnbm1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIENvbW1lcmNlUHJvcGVydGllcyBzdXBwb3J0IHNwZWNpYWxpemVkIGluZm9ybWF0aW9uIHRoYXQgaXMgb25seSB1c2VmdWwgaW4gR0FFQiBYTUwgOXggZGF0YSBleGNoYW5nZSBwaGFzZXMuIEl0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYXJ0aWNsZSBpbmZvcm1hdGlvbi4gKi9cbiAgICBjb21tZXJjZVByb3BlcnRpZXM/OiBDb21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgcG9zaXRpb24gaXMgYW4gQWx0ZXJuYXRpdmUsIHRoZW4gdGhpcyBwcm9wZXJ0eSBzaG91bGQgcG9pbnQgdG8gdGhlIGlkIG9mIHRoZSBwb3NpdGlvbiBpbiB0aGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiB0aGF0IGl0IGNhbiByZXBsYWNlLiBJZiB0aGlzIGlzIHNldCB0byBhIHZhbHVlLCB5b3UgY2FuIG9wdGlvbmFsbHkgYWxzbyBzcGVjaWZ5IGFuIGlkZW50aWZpZXIgdmlhIEFsdGVybmF0aXZlSWRlbnRpZmllciB0byBzcGVjaWZpeSBtdWx0aXBsZSBwb3NpdGlvbnMgdGhhdCBtdXN0IGJlIHVzZWQgdG9nZXRoZXIgdG8gYmUgYW4gYWx0ZXJuYXRpdmUgdG8gYSBzaW5nbGUgYmFzZSBwb3NpdGlvbi4gKi9cbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBBbHRlcm5hdGl2ZVRvLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgaWYgeW91IHNwZWNpZml5IG11bHRpcGxlIGFsdGVybmF0aXZlIFBvc2l0aW9ucyB3aXRoIHRoZSBzYW1lIEFsdGVybmF0aXZlSWRlbnRpZmllciwgeW91IGNhbiBpbmRpY2F0ZSB0aGF0IHRvIHJlcGxhY2UgYSBzaW5nbGUgYmFzZSBQb3NpdGlvbiwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgUG9zaXRpb25zIHNob3VsZCBiZSB1c2VkLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIHBvc2l0aW9uIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xuICAgIGFsdGVybmF0aXZlSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIHBvc2l0aW9uIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIHBvc2l0aW9uIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIHBvc2l0aW9uIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gdjIuOS4wIHRvIGJlIGFibGUgdG8gbW9kZWwgYm90aCBwb3NpdGlvbiBhbmQgZ3JvdXAgaWRzIGZvciBhbHRlcm5hdGl2ZSBncm91cCBjb21iaW5hdGlvbnMuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgdHJ1ZSwgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHBvc2l0aW9uIGlzIGludGVuZGVkIHRvIGJlIGEgbHVtcCBzdW0sIFwiUGF1c2NoYWxcIiBpbiBHZXJtYW4uIFRoaXMgbWVhbnMgdGhlIHBvc2l0aW9uIHRvdGFsIHByaWNlIHRoYXQgaXMgYmVpbmcgaW52b2ljZWQgc2hvdWxkIG5vdCBkZXBlbmQgb24gdGhlIGFjdHVhbCBxdWFudGl0eS4gSW4gcHJhY3RpY2UsIHBhcnRpYWwgaW52b2ljZXMgYXJlIHN0aWxsIG9mdGVuIHVzZWQgZm9yIHBhcnRpYWwgc2VydmljZXMgcmVuZGVyZWQuIFRoaXMgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IHRoZSBwcmljZSBjYWxjdWxhdGlvbiBmb3IgdGhpcyBwb3NpdGlvbi4gVHlwaWNhbGx5LCB0aGUgUXVhbnRpdHkgc2hvdWxkIGJlIHNldCB0byAxLjAgd2hlbiB0aGlzIGZsYWcgaXMgdXNlZC4gKi9cbiAgICBpc0x1bXBTdW0/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGEgcG9zaXRpb24gaW4gdGhlIHNhbWUgU2VydmljZVNwZWNpZmljYXRpb24gdGhhdCBhY3RzIGFzIGEgYmFzZSBwb3NpdGlvbi4gSXQgbWF0Y2hlcyBcIkJlenVnc3Bvc2l0aW9uXCIgaW4gR0FFQi4gVGhpcyBjYW4gYmUgdXNlZCBmb3IgcG9zaXRpb25zIHRoYXQgcmVwZWF0IHBhcnRpYWxseSBvciBhcmUgbGlua2VkIHRvZ2V0aGVyICovXG4gICAgcmVwZXRpdGlvblRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHYxQ29tcGF0aWJpbGl0eVByaWNlVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIG9uZSwgYWRkaXRpb25hbGx5IGFsc28gc3BlY2lmeWluZyBhIHF1YW50aXR5IGZvciB3aGljaCB0aGUgYWRkaXRpb24gaXMgaW50ZW5kZWQuIFRoaXMgZG9lcyBub3QgcmVwbGFjZSB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkgYW5kIHRoZXJlIGFyZSBubyBhdXRvbWF0aWMgY2hlY2tzIGJlaW5nIGRvbmUgYmV0d2VlbiB0aGVzZSB0d28gcHJvcGVydGllcywgc28gaXQncyB1cCB0byB0aGUgdXNlciBjb2RlIHRvIGVuc3VyZSBkZWxldGlvbnMgKGFuZCBhZGRpdGlvbnMsIGlmIGRlc2lyZWQpIGFyZSBwZXJmb3JtZWQgZm9yIGJvdGggcHJvcGVydGllcy4gV2hlbiBjb3B5aW5nIHdpdGhpbmcga2VlcGluZyBJZHMsIHRoaXMgbGlzdCB3aWxsIG5vdCBiZSBwYXJ0IG9mIHRoZSBjb3B5IHByb2Nlc3MsIHNpbmNlIGl0IHdvdWxkIG9ubHkgY29udGFpbiBxdWFudGl0aWVzIHdpdGhvdXQgYWN0dWFsIHBvc2l0aW9uIHJlZmVyZW5jZXMuIENvbnRhaW5lcnMsIGhvd2V2ZXIsIHdpbGwgcmVidWlsZCB0aGUgbGlzdCB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gcmVmZXJlbmNlcyB3aGVuIGNvcHlpbmcgcG9zaXRpb25zIHRoYXQgY29udGFpbiBlbnRyaWVzIGhlcmUuICovXG4gICAgY29tcGxlbWVudGVkQnlRdWFudGl0aWVzPzogQ29tcGxlbWVudGVkQnlRdWFudGl0eUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBFeGVjdXRpb25EZXNjcmlwdGlvbnMgYWN0IGFzIGEgd2F5IHRvIGNlbnRyYWxseSBkZXNjcmliZSBob3cgcG9zaXRpb25zIHNob3VsZCBiZSBleGVjdXRlZCBpbiBwcmFjdGljZS4gT2Z0ZW4sIHRoZSBwb3NpdGlvbiBpdHNlbGYgc3RpbGwgaGFzIHRleHQgb2YgaXRzIG93biB0byBoaWdobGlnaHQgZGV2aWF0aW9ucyBmcm9tIHRoYXQgb3IgYWRkIG1vcmUgZGV0YWlscy4gKi9cbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgYSBwb3NpdGlvbiBoYXMgbm90IGJlZW4gb2ZmZXJlZC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSBleHBlY3RlZCB0byBiZSB0cnVlIHdoZW4gdGhlIGV4Y2hhbmdlIHBoYXNlIG9mIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24gaXMgT2ZmZXIsIGFuZCBpdCBtZWFucyB0aGF0IHRoZSBwb3NpdGlvbiBoYXMgbm90IGJlZW4gb2ZmZXJlZCBhdCBhbGwuICovXG4gICAgbm90T2ZmZXJlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xuICAgIG9lbm9ybVBvc2l0aW9uUHJvcGVydGllcz86IE9lbm9ybVBvc2l0aW9uUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGlzIGRlc2NyaXB0aW9uLiBTb21lIGV4Y2hhbmdlIGZvcm1hdHMsIGxpa2UgR0FFQiBYTUwsIHVzZSBpdCB0byBpZGVudGlmeSBkZXNjcmlwdGlvbnMuIEl0J3MgZGlmZmVyZW50IHRvIGFuIGVsZW1lbnRzIGlkZW50aWZpZXIgaW4gdGhhdCBpdCBzaG91bGQgb25seSBhcHBseSB0byB0aGUgZGVzY3JpcHRpb24gY29tcG9uZW50LCBtZWFuaW5nIHRoZSB0ZXh0IGl0c2VsZi4gKi9cbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgaW4gR0FFQiBleGNoYW5nZSBzY2VuYXJpb3MuIEl0IGlzIG9ubHkgbWVhbmluZ2Z1bCBpZiB0aGlzIHBvc2l0aW9uIGl0c2VsZiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIG1lYW5pbmcgaWYgdGhpcyBwb3NpdGlvbiBpcyBtYXJrZWQgaW4gb3RoZXIgcG9zaXRpb25zIGluIHRoZWlyIENvbXBsZW1lbnRlZEJ5IGxpc3QuIFRoZW4sIGl0IHNwZWNpZmllcyBob3cgdGhlIGNvbXBsZW1lbnRpbmcgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBHQUVCLiBCeSBkZWZhdWx0LCBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQsIGJ1dCBvdGhlciBvcHRpb25zIGFyZSBwb3NzaWJsZS4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoZSBEYW5nbC5BVkEuQ29udmVydGVyIHBhY2thZ2UsIHdoaWNoIGlzIHVzZWQgZm9yIEdBRUIgZXhwb3J0cywgd2lsbCBjaGVjayBpZiB0aGUgZ2l2ZW4gdHlwZSBpcyB2YWxpZCBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGNvbmZpZ3VyYXRpb24uIElmIG5vdCwgZGlyZWN0bHkgcmVmZXJlbmNlZCBwb3NpdGlvbnMgd2lsbCBiZSB1c2VkIGFzIGZhbGxiYWNrLiAqL1xuICAgIGdhZWJDb21wbGVtZW50aW5nVHlwZT86IFBvc2l0aW9uQ29tcGxlbWVudGluZ1R5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEhvbGRPdXQgcHJvcGVydGllcyBkZXNjcmliZSBzZXJ2aWNlcyB0aGF0IGFyZSB0byBiZSBwcm92aWRlZCBhbmQgbWFpbnRhaW5lZCBmb3IgYSBzcGVjaWZpYyB0aW1lLCBlLmcuIGZlbmNlcyBvbiBhIGNvbnN0cnVjdGlvbiBzaXRlLiAqL1xuICAgIGhvbGRPdXRQcm9wZXJ0aWVzPzogUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIHByb3BlcnR5LCB3aGljaCBkaXJlY3RseSBob2xkcyBhIG51bWVyaWNhbCB2YWx1ZSBmb3IgYW4gZXN0aW1hdGVkIHF1YW50aXR5LiBJdCBpcyBub3QgdXNlZCBmb3IgYW55IHByaWNlIGNhbGN1bGF0aW9ucy4gKi9cbiAgICBlc3RpbWF0ZWRRdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGhvbGRzIHByaWNlIGNhdGFsb2d1ZSBkYXRhLiBUaGVzZSBhcmUgcHJpY2VzIHRoYXQgbWF5IHJlcHJlc2VudCBhbiBlc3RpbWF0ZSwgYW5kIHRoZXkgdHlwaWNhbGx5IGNvbWUgZnJvbSBhIHByaWNlIGNhdGFsb2d1ZS4gKi9cbiAgICBwcmljZUNhdGFsb2d1ZURhdGE/OiBQcmljZUNhdGFsb2d1ZURhdGFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzLiAqL1xuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBCYXNlZCBvbiB0aGUgUHJpY2VDb21wb25lbnQsIHRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGxhYm91ciB0aW1lIGNvbXBvbmVudHMuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYm91clByaWNlQ29tcG9uZW50RHRvIHtcbiAgICAvKiogVGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByaWNlIGNvbXBvbmVudC4gV2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgcHJpY2Ugb2YgdGhpcyBjb21wb25lbnQuIFdpbGwgbXVsdGlwbHkgdGhlIGNhbGN1bGF0ZWQgYW1vdW50IG9mIGhvdXJzIHdpdGggdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBob3VybHkgd2FnZSByYXRlLiAqL1xuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29zdCBwZXIgaG91ciBvZiBtYW51YWwgbGFib3IuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHNpbmdsZSBDYWxjdWxhdGlvbiBlbGVtZW50cyB0aGlzIHByaWNlIGNvbXBvbmVudCBpcyBjb21wb3NlZCBvZi4gKi9cbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3Mgc3RhbmRhcmQgSG91cmx5V2FnZSBpcyB0byBiZSB1c2VkIG9yIGEgY3VzdG9tIHZhbHVlLiAqL1xuICAgIHVzZU93bkhvdXJseVdhZ2U/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgdGltZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGltZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBQcmljZUNvbXBvbmVudC4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIG1lYW5zIHRvIGNhbGN1bGF0ZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbnMgZnJvbSBnaXZlbiBzdHJpbmdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGlvbkR0byB7XG4gICAgLyoqIERlc2NyaXB0aXZlIHRleHQgZm9yIHRoaXMgY2FsY3VsYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgQ2FsY3VsYXRpb24ncyBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gUGxlYXNlIG5vdGUgdGhhdCB0aG91c2FuZHMgc2VwYXJhdG9ycyBhcmUgbm90IHN1cHBvcnRlZC4gQm90aCBjb21tYSBhbmQgcG9pbnQgd2lsbCBiZSB0cmVhdGVkIGFzIGRlY2ltYWwgc2VwYXJhdG9ycy4gKi9cbiAgICBmb3JtdWxhPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY2FsY3VsYXRlZCByZXN1bHQgZnJvbSB0aGUgZm9ybXVsYSwgMCBpZiBpbnZhbGlkLiAqL1xuICAgIHJlYWRvbmx5IHJlc3VsdD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2hldGhlciB0aGUgRm9ybXVsYSBpcyBhIHZhbGlkIGV4cHJlc3Npb24uICovXG4gICAgcmVhZG9ubHkgdmFsaWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIGJlIC0xIGlmIHRoZSBGb3JtdWxhIGlzIGNvcnJlY3QsIGVsc2UgaXQgd2lsbCBzaG93IHRoZSBwb3NpdGlvbiBpbiB0aGUgZm9ybXVsYSB3aGVyZSBhbiBlcnJvciB3YXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGluZGV4LiAqL1xuICAgIHJlYWRvbmx5IGVycm9yUG9zaXRpb25JbkxpbmU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgQ2FsY3VsYXRpb24uICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBwcm92aWRlcyBtZWFucyB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByaWNlIGFuZCBpdCdzIGNvbXBvc2l0aW9uLiBOb3RlIHRoYXQgdGhpcyBpcyByZWZlcmVuY2luZyB0byBhIHNpbmdsZSBwcmljZSBjb21wb25lbnQsIHNvIGZvciBleGFtcGxlIGEgUG9zaXRpb24gd291bGQgaGF2ZSBhIGxpc3Qgb2YgUHJpY2VDb21wb25lbnRzLCBvbmUgZm9yIE1hdGVyaWFsLCBvbmUgZm9yIExhYm91ciBldGMuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ29tcG9uZW50RHRvIHtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHByaWNlIG9mIHRoaXMgY29tcG9uZW50LiAqL1xuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJpY2UgY29tcG9uZW50LiBXaWxsIGJlIHRha2VuIGZyb20gdGhlIHBhcmVudCBQcm9qZWN0cyBQcm9qZWN0SW5mb3JtYXRpb24uICovXG4gICAgbGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXG4gICAgdmFsdWVzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBQcmljZUNvbXBvbmVudC4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGFwcGVuZGVkIHRvIGEgUG9zaXRpb24gYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgdGhlIGNvbXBsZXRlIFBvc2l0aW9uIGludG8gc21hbGxlciBhbW91bnRzIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LCBmb3IgZXhhbXBsZSBjb25jcmV0ZSB3YWxscyBjb3VsZCBiZSBhdHRhY2hlZCB0byBkaWZmZXJlbnQgYnVpbGRpbmcgc3RvcmV5cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ViRGVzY3JpcHRpb25EdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogUmV0dXJucyB0aGUgdG90YWwgY2FsY3VsYXRlZCBzdW0gb2YgYWxsIHF1YW50aXR5IGFzc2lnbm1lbnRzLiBXaWxsIHJldHVybiB0aGUgcmVzdWx0IHJvdW5kZWQgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMuICovXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBzdWIgZGVzY3JpcHRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogSG9sZHMgcXVhbnRpdHkgaW5mb3JtYXRpb24gZm9yIHRoaXMgc3ViIGRlc2NyaXB0aW9uLiBRdWFudGl0eSBpcyBsaXN0ZW5pbmcgdG8gY2hhbmdlcyBoZXJlIGFuZCBpcyByZXBvcnRpbmcgdGhlIHRvdGFsIHN1bSBvZiBhbGwgcXVhbnRpdHkgY29tcG9uZW50cy4gKi9cbiAgICBxdWFudGl0eUNvbXBvbmVudHM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGJpZGRlciBpcyBhc2tlZCB0byBzcGVjaWZ5IGFuIGFtb3VudC4gKi9cbiAgICBhbW91bnRUb0JlRW50ZXJlZEJ5QmlkZGVyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBTdWJEZXNjcmlwdGlvbi4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyBnaXZlbiwgdGhlbiB0aGUgc3ViIGRlc2NyaXB0aW9uIGhhcyBhIGRpZmZlcmVudCB1bml0IHRhZyB0aGFuIHRoZSBwYXJlbnQgcG9zaXRpb24uICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50IGNvbnRhaW5zIEJ1eWVyIG9yIEJpZGRlciBhZGRpdGlvbnMgdG8gdGhlIHRleHQuICovXG4gICAgYWRkaXRpb25UeXBlPzogQWRkaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cbiAgICBzdGFuZGFyZGl6ZWREZXNjcmlwdGlvbj86IFN0YW5kYXJkaXplZERlc2NyaXB0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBFeGVjdXRpb25EZXNjcmlwdGlvbnMgYWN0IGFzIGEgd2F5IHRvIGNlbnRyYWxseSBkZXNjcmliZSBob3cgcG9zaXRpb25zIChvciBzdWIgZGVzY3JpcHRpb25zKSBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gKG9yIHN1YiBkZXNjcmlwdGlvbikgaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuIFdoZW4gd29ya2luZyB3aXRoIGltcG9ydCBhbmQgZXhwb3J0IGZlYXR1cmVzLCB0aGlzIHByb3BlcnR5IGlzIG9ubHkgc3VwcG9ydGVkIGluIEdBRUIgOTAgZGF0YSBleGNoYW5nZS4gKi9cbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBDYWxjdWxhdGlvbi4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyB0aGUgb3JpZ2luIG9mIGFuIGVsZW1lbnQuICovXG5leHBvcnQgZW51bSBBZGRpdGlvblR5cGVEdG8ge1xuICAgIE5vbmUgPSBcIk5vbmVcIixcbiAgICBCeUJ1eWVyID0gXCJCeUJ1eWVyXCIsXG4gICAgQnlCaWRkZXIgPSBcIkJ5QmlkZGVyXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8ge1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cbiAgICBzdGFuZGFyZFJlZmVyZW5jZVR5cGU/OiBTdGFuZGFyZFJlZmVyZW5jZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIHRvIG1hcCB0byB0aGUgcmVmZXJlbmNlcyBzdGFuZGFyZC4gSXRzIHR5cGUgaXMgZ2l2ZW4gaW4gdGhlIFN0YW5kYXJkUmVmZXJlbmNlVHlwZSAqL1xuICAgIHN0YW5kYXJkUmVmZXJlbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgc3BlY2lhbCByZWZlcmVuY2UgdG8gdGhlIEdlcm1hbiBTVExCIFwiU3RhbmRhcmRsZWlzdHVuZ3NidWNoIEJhdVwiIHJlZmVyZW5jZS4gSWYgdGhpcyBpcyB1c2VkLCB0aGUgU3RhbmRhcmRSZWZlcmVuY2UgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBzZXQuICovXG4gICAgc3RsYlJlZmVyZW5jZT86IFNUTEJSZWZlcmVuY2VEdG8gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cbmV4cG9ydCBlbnVtIFN0YW5kYXJkUmVmZXJlbmNlVHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIFN0TEIgPSBcIlN0TEJcIixcbiAgICBTdExLID0gXCJTdExLXCIsXG4gICAgU1RMQkJhdVogPSBcIlNUTEJCYXVaXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzcGVjaWFsaXplZCByZWZlcmVuY2UgdG8gdGhlIEdlcm1hbiBTVExCIFwiU3RhbmRhcmRsZWlzdHVuZ3NidWNoIEJhdVwiLiBUaGUgU1RMQiBpcyBhIGNvbW1lcmNpYWwgb2ZmZXJpbmcgYW5kIGRlc2NyaWJlcyBjb21tb24gc2VydmljZXMgaW4gdGhlIGNvbnN0cnVjdGlvbiBzZWN0b3IuIFdoZW4gdGhpcyBpcyB1c2VkLCB0aGlzIGRlc2NyaWJlcyB0aGUgZXhhY3QgdHlwZSBvZiBhIHNlcnZpY2UgdmlhIGEgcmVmZXJlbmNlIHRvIHRoaXMgc3RhbmRhcmQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1RMQlJlZmVyZW5jZUR0byB7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBTVExCIHZlcnNpb24uIFR5cGljYWxseSwgb25seSB0aGUgWWVhciBhbmQgTW9udGggYXJlIHVzZWQgKi9cbiAgICB2ZXJzaW9uRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBjYXRhbG9ndWUgd2l0aGluIHRoZSBTVExCICovXG4gICAgY2F0YWxvZ3VlTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGdyb3VwIGluIFNUTEIgKi9cbiAgICBncm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvc3QgZ3JvdXAgdGhpcyBzZXJ2aWNlIGlzIGFzc29jaWF0ZWQgd2l0aCAqL1xuICAgIGNvc3RHcm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHNlcnZpY2UgYXJlYSAob3IgdHlwZSkgaW4gdGhlIFNUTEIgKi9cbiAgICBzZXJ2aWNlQXJlYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2Uga2V5cyBtYXkgb3B0aW9uYWxseSBiZSB1c2VkIHRvIGZ1cnRoZXIgcmVmZXJlbmNlIG11bHRpcGxlLCBzcGVjaWZpYyBpdGVtcyB3aXRoaW4gdGhlIFNUTEIgKi9cbiAgICBrZXlzPzogU1RMQktleUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGtleSByZWZlcmVuY2Ugd2l0aGluIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiAqL1xuZXhwb3J0IGludGVyZmFjZSBTVExCS2V5RHRvIHtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGlzIHJlcXVpcmVkIGFuZCB1bmlxdWVseSBkZXNjcmliZXMgYSBzaW5nbGUgcmVmZXJlbmNlIHdpdGhpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkFydENocklkZW50XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBhcnRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIGluZGV4IHByb3BlcnR5IGZ1cnRoZXIgY2F0ZWdvcml6ZXMgYSBzaW5nbGUgcmVmZXJlbmNlIHdpdGhpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkFydENoSWR4XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBhcnRJbmRleD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpZGVudGlmaWVyIGZ1cnRoZXIgc3BlY2lmaWVzIHRoZSBleGVjdXRpb24ga2luZCBvZiB0aGUgcmVmZXJlbmNlIGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQ2hWSWRlbnRcIiBpbiBHQUVCIFhNTCAqL1xuICAgIGtpbmRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGl0ZW0gaXMgY29tbWlzc2lvbmVkIChhbmQgdGhlcmVmb3JlIHNob3VsZCBiZSBleGVjdXRlZCksIHBvc3Rwb25lZCBmb3IgbGF0ZXIgb3IgdW5kZWZpbmVkLiAqL1xuZXhwb3J0IGVudW0gQ29taXNzaW9uU3RhdHVzRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIENvbW1pc3Npb25lZCA9IFwiQ29tbWlzc2lvbmVkXCIsXG4gICAgUG9zdHBvbmVkID0gXCJQb3N0cG9uZWRcIixcbiAgICBSZW1vdmVkID0gXCJSZW1vdmVkXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYXMgaWRlbnRpZmllciBvZiBhIGNlcnRhaW4gc2VydmljZSBzcGVjaWZpY2F0aW9uJ3MgZWxlbWVudCBhbmQgaXMgdW5pcXVlbHkgd2l0aGluIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBJdGVtTnVtYmVyIGFzIHBvaW50IGRlbGltaXRlZCBzdHJpbmcuIFdpbGwgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gdXBwZXItIGFuZCBsb3dlcmNhc2UgYW5kIHJldHVybiBhbiBhbGwtbG93ZXJjYXNlIHJlcHJlc2VudGF0aW9uLiBXaWxsIGNvbnNpZGVyIGZpcnN0IG51bWJlcnMsIHRoZW4gY2hhcmFjdGVycywgZS5nLiAxYSBpcyBjb25zaWRlcmVkIHByZWNlZGluZyBhYS4gVHJhbnNmb3JtYXRpb24gdG8gYWxsIGxvd2VyY2FzZSBjYW4gYmUgY29uZmlndXJlZCBpbiB0aGUgSXRlbU51bWJlclNjaGVtYSBwcm9wZXJ0eS4gKi9cbiAgICBzdHJpbmdSZXByZXNlbnRhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjaGFyYWN0ZXJzIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBJZGVudGlmaWVycyBtYXRjaCB0aGUgY3VycmVudCBJdGVtTnVtYmVyU2NoZW1hLiAqL1xuICAgIHJlYWRvbmx5IGlzU2NoZW1hQ29tcGxpYW50PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVXNlZCBmb3IgcmVwcmVzZW50aW5nIGFuZCB2YWxpZGF0aW5nIHRoaXMgSXRlbU51bWJlci4gKi9cbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogQ29sbGVjdGlvbiBvZiB0aGUgc2luZ2xlIGlkZW50aWZpZXJzIGluIHRoaXMgSXRlbU51bWJlci4gUC5lLiwgXCIwMi4wMy4wMDRcIiB3aWxsIGhhdmUgdGhyZWUgZWxlbWVudHMgXCIwMlwiLCBcIjAzXCIsIGFuZCBcIjAwNFwiLiBTaW5jZSBSZWFkT25seU9ic2VydmFibGVDb2xsZWN0aW9uYDEgZG9lcyBoYXZlIHRoZSBldmVudCBzZXQgdG8gcHJvdGVjdGVkLCBpdCBjYW4gYmUgYWNjZXNzZWQgbGlrZSB0aGlzOiAoaXRlbU51bWJlci5JZGVudGlmaWVycyBhcyBJTm90aWZ5Q29sbGVjdGlvbkNoYW5nZWQpLkNvbGxlY3Rpb25DaGFuZ2VkICovXG4gICAgaWRlbnRpZmllcnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBpdGVtIG51bWJlciBpcyBhdCB0aGUgbG90IGxldmVsLiBGaW5kIG91dCBtb3JlIGFib3V0IGxvdHMgaW4gdGhlIGRvY3VtZW50YXRpb24uICovXG4gICAgcmVhZG9ubHkgaXNMb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhpcyBJdGVtTnVtYmVyIGlzIGF0dGFjaGVkIHRvIGFuIG9iamVjdCBvZiB0aGUgUG9zaXRpb24gdHlwZS4gKi9cbiAgICByZWFkb25seSBpc0F0dGFjaGVkVG9Qb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgaXRlbU51bWJlclNjaGVtYUJlZm9yZU1hcHBpbmc/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhIGNsYXNzaWZpY2F0aW9uIGZvciBQb3NpdGlvbiBlbGVtZW50cy4gKi9cbmV4cG9ydCBlbnVtIFBvc2l0aW9uVHlwZUR0byB7XG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxuICAgIE9wdGlvbmFsID0gXCJPcHRpb25hbFwiLFxuICAgIEFsdGVybmF0aXZlID0gXCJBbHRlcm5hdGl2ZVwiLFxufVxuXG4vKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHByaWNlIHR5cGUgb2YgYSBJUHJpY2VkRWxlbWVudC4gKi9cbmV4cG9ydCBlbnVtIFByaWNlVHlwZUR0byB7XG4gICAgV2l0aFRvdGFsID0gXCJXaXRoVG90YWxcIixcbiAgICBXaXRob3V0VG90YWwgPSBcIldpdGhvdXRUb3RhbFwiLFxufVxuXG4vKiogVGhlIHNlcnZpY2UgdHlwZSBkZXNjcmliZXMgdGhlIHR5cGUgb2Ygc2VydmljZSBhIFBvc2l0aW9uIHJlcHJlc2VudHMuICovXG5leHBvcnQgZW51bSBTZXJ2aWNlVHlwZUR0byB7XG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxuICAgIEhvdXJseVBhaWRXb3JrID0gXCJIb3VybHlQYWlkV29ya1wiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGRhdGEgYWJvdXQgcHJvZHVjdHMgYW5kIHRoZWlyIHZlbmRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIFBhcnR5SW5mb3JtYXRpb24gaXMgdXNlZCB0byBkZXNjcmliZSBkZXRhaWxzIGFib3V0IHRoZSB2ZW5kb3Igb2YgdGhpcyBQcm9kdWN0RGF0YS4gKi9cbiAgICB2ZW5kb3I/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29sbGVjdGlvbiBvZiBBcnRpY2xlRGF0YSB0aGF0IGRlc2NyaWJlIHRoaXMgcHJvZHVjdCwgZS5nLiBhIHBpcGUgcHJvZHVjdCBjb3VsZCBiZSBjb21wb3NlZCBvdXQgb2YgbXVsdGlwbGUgcGlwZSBzZWdtZW50cyBhbmQgZml0dGluZ3MuICovXG4gICAgYXJ0aWNsZXM/OiBBcnRpY2xlRGF0YUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIElUZXh0RWxlbWVudCBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzaW5nbGUgYXJ0aWNsZSwgdXN1YWxseSB1c2VkIHdpdGhpbiBQcm9kdWN0RGF0YSAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlRGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSAob3IgYnJhbmQgbmFtZSkgZm9yIHRoaXMgYXJ0aWNsZSwgdXN1YWxseSBnaXZlbiBieSB0aGUgc3VwcGxpZXIgb3IgdmVuZG9yLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFuIGFydGljbGUgbnVtYmVyIHRoYXQgZGVzY3JpYmVzIGl0LCB1c2VmdWwgd2hlbiBpbnRlZ3JhdGluZyBvdGhlciBzeXN0ZW1zLiAqL1xuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFF1YW50aXR5IGZvciB0aGlzIGFydGljbGUuIElmIHRoaXMgaXMgdXNlZCB3aXRoaW4gYSBQb3NpdGlvbiwgdGhlIHF1YW50aXR5IGhlcmUgc2hvdWxkIGJlIHRoZSBxdWFudGl0eSByZXF1aXJlZCBmb3IgdGhlIGZ1bGwgcXVhbnRpdHkgb2YgdGhlIHBvc2l0aW9uLCBub3QgZm9yIGEgc2luZ2xlIHVuaXQuICovXG4gICAgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB1bml0IHRhZyBmb3IgdGhpcyBzaW5nbGUgQXJ0aWNsZURhdGEuICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCB0ZXh0IGVsZW1lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBmdXJ0aGVyIGRlc2NyaWJlIHRoZSBBcnRpY2xlRGF0YS4gKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGVpciBwYXJlbnQgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YW50aXR5QXNzaWdubWVudER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgdG90YWwgcXVhbnRpdHkgaW4gdGhpcyBxdWFudGl0eSBhc3NpZ25tZW50ICovXG4gICAgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBRdWFudGl0eUFzc2lnbm1lbnQuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBob2xkcyBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIHJlbGV2YW50IHRvIHRyYWRlIG9yIGNvbW1lcmNlIGJhc2VkIGRhdGEgZXhjaGFuZ2Ugc2NlbmFyaW9zLCBlLmcuIGJldHdlZW4gY3VzdG9tZXJzLCB2ZW5kb3JzLCBzdXBwbGllcnMgYW5kIGRpc3RyaWJ1dG9ycy4gSXQgaXMgdXNlZCB3aGVuIGV4cG9ydGluZyB0byBHQUVCIFhNTCA5eCBleGNoYW5nZSBwaGFzZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBBcnRObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBhcnRpY2xlIG51bWJlciBnaXZlbiBieSB0aGUgc3VwcGxpZXIuICovXG4gICAgYXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIEVBTiBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBHVElOIChmb3JtZXJseSBFQU4pIGFydGljbGUgbnVtYmVyLiAqL1xuICAgIGVhbkd0aW5BcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm9JRCBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBJTE4gYXJ0aWNsZSBudW1iZXIuICovXG4gICAgaWxuQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIENhdGFsb2dObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBpZGVudGlmaWVyIG9mIGEgc3BlY2lmaWMgY2F0YWxvZ3VlLiBUaGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUgaXMgdXN1YWxseSBhIGN1c3RvbWVyIHNwZWNpZmljIG9uZSwgbm90IHJlbGF0ZWQgdG8gQ2F0YWxvZ3VlUmVmZXJlbmNlcy4gKi9cbiAgICBjYXRhbG9ndWVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYSBrZXkgdGhhdCBtYXBzIHRvIGFuIGVudHJ5IGluIGEgc3BlY2lmaWMgY2F0YWxvZ3VlLiBUaGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUgaXMgdXN1YWxseSBhIGN1c3RvbWVyIHNwZWNpZmljIG9uZSwgbm90IHJlbGF0ZWQgdG8gQ2F0YWxvZ3VlUmVmZXJlbmNlcy4gKi9cbiAgICBjYXRhbG9ndWVBcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIHRoZSBiYXNpcyBmb3IgcHJpY2VzIGZvciBhIHNpbmdsZSBwb3NpdGlvbi4gUHJpY2UgYmFzaXMgbWVhbnMgdGhhdCB0aGUgcHJpY2UgaXMgZ2l2ZW4gcGVyIHVuaXQgb2YgdGhlIGJhc2lzLCBlLmcuIHBlciBhIHBhY2sgb2YgZml2ZSB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICc1Jy4gKi9cbiAgICBwcmljZUJhc2lzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIGEgc3ViIHBvc2l0aW9uIGlkZW50aWZpZXIgc3BlY2lmaWMgZm9yIHRoZSBjb21tZXJjZSBleGNoYW5nZSAqL1xuICAgIHN1YlBvc2l0aW9uSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gYSBjb21tZXJjZSBleGNoYW5nZSwgdGhpcyBwcm9wZXJ0eSBpcyB1c3VhbGx5IHVzZWQgdG8gcmVmZXJlbmNlIHRoZSBiYXNlIGl0ZW0gbnVtYmVyIG9mIGFuIHVuZGVybHlpbmcgcGhhc2UgODMgZXhjaGFuZ2UgZmlsZSAqL1xuICAgIGN1c3RvbWVyQmFzZUl0ZW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIGxpbmtpbmcgdG8gYSBjb21wbGVtZW50YXJ5IHBvc2l0aW9uIHdpdGggYSBzcGVjaWZpYyBxdWFudGl0eSBzZXQuIEZvciBleGFtcGxlLCBQb3NpdGlvbiAnQScgY291bGQgYmUgY29tcGxlbWVudGluZyBQb3NpdGlvbiAnQicgd2l0aCBhIHRvdGFsIHF1YW50aXR5IG9mIDIwIHVuaXRzICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG8ge1xuICAgIC8qKiBUaGUgcXVhbnRpdHkgdGhhdCBpcyBjb21wbGVtZW50ZWQuIEUuZy4sIGlmIHRoZSBiYXNlIHBvc2l0aW9uIGhhcyBhIHF1YW50aXR5IG9mIDEwMCBtwrIgb2YgYSBicmljayB3YWxsLCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gbWlnaHQgYmUgZm9yICd3YWxscyB0aGF0IGV4Y2VlZCAzIG0gaGVpZ2h0JyBhbmQgZm9yIGEgdG90YWwgcXVhbnRpdHkgb2YgMTAgbcKyLiAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIHRoZSByZWZlcmVuY2UgdG8gdGhlIElkIG9mIHRoZSBQb3NpdGlvbiB0aGF0IGlzIGNvbXBsZW1lbnRpbmcuIFRoaXMgbWVhbnMgaXQgZG9lcyBOT1QgcmVmZXJlbmNlIHRoZSBiYXNlIHBvc2l0aW9uIGJ1dCB0aGUgb25lIHRoYXQgY29udGFpbnMgdGhlIGFjdHVhbCBhZGRpdGlvbi4gKi9cbiAgICBjb21wbGVtZW50aW5nUG9zaXRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qb3NpdGlvblByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcmtzIGlmIHRoZSBvcGVuaW5nIHRleHRzIHdpdGhpbiB0aGlzIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQgZnJlZSB0ZXh0LiBJdCBjb3JyZXNwb25kcyB0byAndm9yYmVtZXJrdW5nc2tlbm56ZWljaGVuJyBpbiDDlk5vcm0uICovXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhlIMOWTm9ybSAnd2VzZW50bGljaGUgcG9zaXRpb24nIG1hcmsgaXMgc2V0ICovXG4gICAgaXNNYWluUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtIHBvc2l0aW9uIHdhcyBhICd1bmdldGVpbHRlcG9zaXRpb24nICh1bmRpdmlkZWQgcG9zaXRpb24pLiBUaGlzIHdpbGwgb25seSBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiB0aGUgcG9zaXRpb24gaXMgYWxzbyB0aGUgc29sZSBlbGVtZW50IGluc2lkZSBpdCdzIHBhcmVudCBncm91cCAqL1xuICAgIGlzVW5kaXZpZGVkUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbiBzb21lIMOWTm9ybSBmb3JtYXRzLCB0aGUgc2hvcnQgdGV4dCBjYW4gaGF2ZSBpdCdzIG93biBhZGRpdGlvbiwgc28gdGhlIHRleHQgaXMgc3BsaXQgdXAgaW4gT2Vub3JtU2hvcnRUZXh0IGFuZCBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBUbyBzZXJpYWxpemUgdGhpcywgZWl0aGVyIHRoZSBTaG9ydFRleHQgcHJvcGVydHkgb2YgdGhlIHBhcmVudCBwb3NpdGlvbiBuZWVkcyB0byBiZSBudWxsLCBvciBPZW5vcm1TaG9ydFRleHQgJyAnIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIG5lZWRzIHRvIG1hdGNoIHRoZSBTaG9ydFRleHQuICovXG4gICAgb2Vub3JtU2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbiBzb21lIMOWTm9ybSBmb3JtYXRzLCB0aGUgc2hvcnQgdGV4dCBjYW4gaGF2ZSBpdCdzIG93biBhZGRpdGlvbiwgc28gdGhlIHRleHQgaXMgc3BsaXQgdXAgaW4gT2Vub3JtU2hvcnRUZXh0IGFuZCBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBUbyBzZXJpYWxpemUgdGhpcywgZWl0aGVyIHRoZSBTaG9ydFRleHQgcHJvcGVydHkgb2YgdGhlIHBhcmVudCBwb3NpdGlvbiBuZWVkcyB0byBiZSBudWxsLCBvciBPZW5vcm1TaG9ydFRleHQgJyAnIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIG5lZWRzIHRvIG1hdGNoIHRoZSBTaG9ydFRleHQuICovXG4gICAgb2Vub3JtU2hvcnRUZXh0QWRkaXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuZXhwb3J0IGVudW0gT2Vub3JtT3JpZ2luQ29kZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIEZyZWVUZXh0ID0gXCJGcmVlVGV4dFwiLFxuICAgIEFkZGl0aW9uRGVzY3JpcHRpb24gPSBcIkFkZGl0aW9uRGVzY3JpcHRpb25cIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIGFuIGFkZGVuZHVtLCAnTmFjaHRyYWcnIGluIEdlcm1hbiAqL1xuZXhwb3J0IGVudW0gQWRkZW5kdW1TdGF0dXNEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBSZWNvZ25pemVkID0gXCJSZWNvZ25pemVkXCIsXG4gICAgRmlsZWQgPSBcIkZpbGVkXCIsXG4gICAgT2ZmZXJlZCA9IFwiT2ZmZXJlZFwiLFxuICAgIFdpdGhkcmF3biA9IFwiV2l0aGRyYXduXCIsXG4gICAgUmVqZWN0ZWQgPSBcIlJlamVjdGVkXCIsXG4gICAgUmVqZWN0aW9uT2JqZWN0ZWQgPSBcIlJlamVjdGlvbk9iamVjdGVkXCIsXG4gICAgRm9ybWFsbHlBY2tub3dsZWRnZWQgPSBcIkZvcm1hbGx5QWNrbm93bGVkZ2VkXCIsXG4gICAgQXBwcm92ZWQgPSBcIkFwcHJvdmVkXCIsXG59XG5cbi8qKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uIHR5cGUgY2FuIGJlIHNwZWNpZmllZC4gSXQgaXMgdHlwaWNhbGx5IG9ubHkgdXNlZCBpbiBHQUVCIGV4cG9ydHMsIHNpbmNlIGluIERhbmdsLkFWQSwgY29tcGxlbWVudGluZyBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICovXG5leHBvcnQgZW51bSBQb3NpdGlvbkNvbXBsZW1lbnRpbmdUeXBlRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIEFsbFByZXZpb3VzTWFya2VkUG9zaXRpb25zID0gXCJBbGxQcmV2aW91c01hcmtlZFBvc2l0aW9uc1wiLFxuICAgIEFsbFByZXZpb3VzUG9zaXRpb25zID0gXCJBbGxQcmV2aW91c1Bvc2l0aW9uc1wiLFxuICAgIFJlZmVyZW5jZWRQb3NpdGlvbnMgPSBcIlJlZmVyZW5jZWRQb3NpdGlvbnNcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgcHJvcGVydGllcyB0aGF0IGRlc2NyaWJlIHJldGVudGlvbiB0eXBlcyBpbiBwb3NpdGlvbi4gUmV0ZW50aW9uIC8gaG9sZCBvdXQgdXN1YWxseSBtZWFucyB0aGF0IGEgc2VydmljZSBpcyBwcm92aWRlZCBhbmQga2VwdCBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUsIGUuZy4gZmVuY2VzIG9uIGEgY29uc3RydWN0aW9uIHNpdGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgYWN0dWFsIHR5cGUgKi9cbiAgICBob2xkT3V0VHlwZT86IEhvbGRPdXRUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZHVyYXRpb24gb2YgdGhlIHBlcmlvZCAqL1xuICAgIGhvbGRPdXREdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRpbWUgdW5pdCBvZiB0aGUgcGVyaW9kICovXG4gICAgaG9sZE91dER1cmF0aW9uVW5pdD86IEhvbGRPdXREdXJhdGlvblVuaXREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZXMgdG8gYmFzZSBwb3NpdGlvbnMgKi9cbiAgICBiYXNlUG9zaXRpb25SZWZlcmVuY2VzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUeXBlcyBvZiByZXRlbnRpb25zIHRvIGJlIHVzZWQgaW4gcG9zaXRpb25zICovXG5leHBvcnQgZW51bSBIb2xkT3V0VHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIEJhc2UgPSBcIkJhc2VcIixcbiAgICBFeHRlbnNpb24gPSBcIkV4dGVuc2lvblwiLFxuICAgIFJlbnQgPSBcIlJlbnRcIixcbn1cblxuLyoqIER1cmF0aW9uIHVzZWQgaW4gcmV0ZW50aW9uIHBvc2l0aW9ucyAqL1xuZXhwb3J0IGVudW0gSG9sZE91dER1cmF0aW9uVW5pdER0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIE1pbnV0ZXMgPSBcIk1pbnV0ZXNcIixcbiAgICBIb3VycyA9IFwiSG91cnNcIixcbiAgICBEYXlzID0gXCJEYXlzXCIsXG4gICAgV2Vla3MgPSBcIldlZWtzXCIsXG4gICAgTW9udGhzID0gXCJNb250aHNcIixcbn1cblxuLyoqIFByaWNlIGNhdGFsb2d1ZSBkYXRhIHJlcHJlc2VudHMgYXNzdW1lZCBvciBlc3RpbWF0ZWQgcHJpY2VzIGZyb20gYSBjYXRhbG9ndWUgc291cmNlICovXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VGcm9tPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGF2ZXJhZ2UgdW5pdCBwcmljZSAqL1xuICAgIHVuaXRQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBsb3dlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZUZyb20/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB1cHBlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZVRvPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgYXZlcmFnZSB3YWdlIHByaWNlICovXG4gICAgd2FnZVByaWNlQXZlcmFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGlzIHVzZWQgdG8gZ2l2ZSBtb3JlIGRldGFpbHMgZm9yIGNlcnRhaW4gaXRlbXMsIGVzcGVjaWFsbHkgb24gaG93IHRoZXkgYXJlIG1lYW50IHRvIGJlIGV4ZWN1dGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25EZXNjcmlwdGlvbkR0byBleHRlbmRzIElFbGVtZW50RHRvIHtcbiAgICAvKiogQmxvY2tzIHdpdGhpbiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBjb250YWluIHRoZSBhY3R1YWwgaW5mb3JtYXRpb24uICovXG4gICAgYmxvY2tzPzogTm90ZVRleHREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogTGFiZWxzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXG4gICAgbGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBFeGVjdXRpb25EZXNjcmlwdGlvbi4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBlbGVtZW50IHRoYXQgaG9sZHMgdGV4dCBpbmZvcm1hdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZVRleHREdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIG9wZW5pbmcgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9qZWN0LiBGb3IgZXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkF3YXJkLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBkZXNjcmliZSBwcm9qZWN0LXdpZGUgY29udHJhY3R1YWwgZGVmaW5pdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXG4gICAgaXNPcGVuaW5nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIGNsb3NpbmcgdGV4dCBhdCB0aGUgZW5kIG9mIHRoZSBwcm9qZWN0LiBGb3IgRXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBhcmUgdXNlZCB0byBkZXNjcmliZSBwcm9qZWN0IHdpZGUgZmluaXNoaW5nIGRlc2NyaXB0aW9ucy4gSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhpcyBOb3RlVGV4dCBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGVsZW1lbnRzIGhpZXJhcmNoeSBkaXJlY3RseSBpbiB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uRWxlbWVudHMgZ3JvdXAsIG90aGVyd2lzZSBpdCB3aWxsIGxpa2VseSBub3QgYmUgdHJlYXRlZCBjb3JyZWN0bHkgd2hlbiBleHBvcnRpbmcgdG8gR0FFQi4gWW91IGNhbiBvbmx5IHNldCBJc09wZW5pbmdUZXh0IG9yIElzQ2xvc2luZ1RleHQgdG8gdHJ1ZS4gKi9cbiAgICBpc0Nsb3NpbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBpbnRlcm5hbCBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gdGhpcyBOb3RlVGV4dC4gSXQgaXMgbm90IHN1cHBvcnRlZCBpbiBHQUVCIGltcG9ydCBvciBleHBvcnQuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGlzIGRlc2NyaXB0aW9uLiBTb21lIGV4Y2hhbmdlIGZvcm1hdHMsIGxpa2UgR0FFQiBYTUwsIHVzZSBpdCB0byBpZGVudGlmeSBkZXNjcmlwdGlvbnMuIEl0J3MgZGlmZmVyZW50IHRvIGFuIGVsZW1lbnRzIGlkZW50aWZpZXIgaW4gdGhhdCBpdCBzaG91bGQgb25seSBhcHBseSB0byB0aGUgZGVzY3JpcHRpb24gY29tcG9uZW50LCBtZWFuaW5nIHRoZSB0ZXh0IGl0c2VsZi4gKi9cbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXG4gICAgb2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzPzogT2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IGhhc0JpZGRlckNvbW1lbnRJbkh0bWxMb25nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHdoZXJlIHRoZSBjb250ZW50IG9mIHRoaXMgZWxlbWVudCBvcmlnaW5hdGVzLCBpZiBzZXQuIEl0IGNvcnJlc3BvbmRzIHRvICdoZXJrdW5mdHNrZW5uemVpY2hlbicgaW4gw5ZOb3JtICovXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGEgZ3JvdXBpbmcgSUVsZW1lbnQgdGhhdCBob2xkcyBvdGhlciBJRWxlbWVudHMgd2l0aGluLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBUaGUgaG91cmx5IHdhZ2UgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdEhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0YXggcmF0ZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICBwcm9qZWN0VGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHByaWNlIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiBUaGV5IGFyZSBpZ25vcmVkIGR1cmluZyBKc29uIGRlc2VyaWFsaXphdGlvbiBiZWNhdXNlIHRoZXkgd2lsbCBiZSBzZXQgZnJvbSB0aGUgcGFyZW50IHByb2plY3QuICovXG4gICAgcHJvamVjdFByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSXRlbU51bWJlclNjaGVtYSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gKi9cbiAgICBwcm9qZWN0SXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJRWxlbWVudHMgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXG4gICAgZWxlbWVudHM/OiBJRWxlbWVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbGFiZWwgdXNlZCBpbiB0aGUgcGFyZW50IFByb2plY3QgdG8gbWFyayBsYWJvdXIgdGltZSwgZS5nLiBcIkhvdXJzXCIgb3IgXCJTdHVuZGVuXCIuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdExhYm91clRpbWVMYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIEl0ZW1OdW1iZXIgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSWRzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIElkIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xuICAgIGlnbm9yZUR1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIFByb2plY3RDYXRhbG9ndWVzIHByb3BlcnR5IHdpbGwgbm90IGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuIFRoaXMgaXMgdXNlZnVsIGluIG1hcHBpbmcgc2NlbmFyaW9zLCB3aGVyZSB5b3Ugd2FudCB0byBkaXNhYmxlIHByb3BhZ2F0aW9uIGZvciBtdWx0aXBsZSBjaGFuZ2VzLCBhbmQgb25seSBlbmFibGUgaXQgb25jZSB5b3UgaGF2ZSBtYXBwZWQgYWxsIHByb3BlcnRpZXMgKi9cbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIElkcyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogUHJpY2UgY29tcG9zaXRpb24gYnkgdGF4IHJhdGUuICovXG4gICAgdG90YWxQcmljZUdyb3NzQnlUYXhSYXRlPzogR3Jvc3NQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbnRlcm5hbGx5IHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIHByb3BhZ2F0aW9uIGlzIGN1cnJlbnRseSBkb25lLCB0aGlzIGlzIGRvbmUgdG8gbm90IHJlY2FsY3VsYXRlIGV2ZXJ5IHNpbmdsZSByZXN1bHQgZnJvbSBhIGxvdCBvZiBjaGFuZ2VzIHdoZW4gaXQgaXMgc3VmZmljaWVudCB0byBjYWxjdWxhdGUgdGhlIHRvdGFsIHByaWNlIGF0IG9uY2UuICovXG4gICAgaWdub3JlQ2hpbGRQcmljZVVwZGF0ZXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBOZXQgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IGRlZHVjdGVkUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZhY3RvciBvZiBhcHBsaWVkIGRlZHVjdGlvbnMgdG8gdGhlIHRvdGFsIHByaWNlLiBGb3IgZXhhbXBsZSwgXCIwLjAzXCIgbWVhbnMgdGhhdCBhIDMlIGRlZHVjdGlvbiBpcyB0byBiZSBhcHBsaWVkLiAqL1xuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGV4YWN0IGFtb3VudCBvZiB0aGUgZGlzY291bnQgYXMgYW4gYWJzb2x1dGUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLCBzZXR0aW5nIHRoaXMgdmFsdWUgd2lsbCBhbHNvIHNldCBhIGNhbGN1bGF0ZWQgdmFsdWUgdG8gRGVkdWN0aW9uRmFjdG9yLCB3aGljaCB3aWxsIGFsc28gYmUgdXBkYXRlZCBpbiBjYXNlIHRoZSB0b3RhbCBwcmljZSBpcyBjaGFuZ2VkIHRvIHJlZmxlY3QgYSByZWxhdGl2ZSB2YWx1ZSBvZiB0aGUgYWJzb2x1dGUgZGlzY291bnQgc3VtLiAqL1xuICAgIGFic29sdXRlRGVkdWN0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlJ3MgdG90YWwgcHJpY2UuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlIGluY2x1ZGluZyBhbGwgY2hpbGQgZWxlbWVudHMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUb3RhbCBncm9zcyBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UsIHdoZXRoZXIgaXQgc2hvdWxkIGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzIG9yIG5vdC4gKi9cbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlc2NyaXB0aW9uIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXAuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gZ3JvdXAgaXMgY29tbWlzc2lvbmVkIChhbmQgdGhlcmVmb3JlIHNob3VsZCBiZSBleGVjdXRlZCksIHBvc3Rwb25lZCBmb3IgbGF0ZXIgb3IgdW5kZWZpbmVkLiAqL1xuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXIgZm9yIHRoaXMgSU51bWJlcmVkRWxlbWVudCBpbnRlcmZhY2UuICovXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgZ3JvdXAgaXMgdGhlIHBhcmVudCBvZiBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHdvcmtpbmcgd2l0aCBsb3RzLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBncm91cCBpcyBhbiBhbHRlcm5hdGl2ZSBmb3IgYSBiYXNlIGdyb3VwLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgZ3JvdXAgaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBncm91cCB0byBhIGJhc2UgZ3JvdXAsIHRoZSBQcmljZVR5cGUgc2hvdWxkIHR5cGljYWxseSBiZSBzZXQgdG8gXCJXaXRob3V0VG90YWxcIiBzbyB0aGlzIGdyb3VwIGRvZXMgbm90IGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzLiBUaGUgUHJpY2VUeXBlIGlzIG5vdCBjaGFuZ2VkIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQgKi9cbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiAqL1xuICAgIG9lbm9ybVByb3BlcnRpZXM/OiBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUby4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBncm91cCBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIGlmIHlvdSBzcGVjaWZpeSBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwcyB3aXRoIHRoZSBzYW1lIEFsdGVybmF0aXZlSWRlbnRpZmllciwgeW91IGNhbiBpbmRpY2F0ZSB0aGF0IHRvIHJlcGxhY2UgYSBzaW5nbGUgYmFzZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwLCBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwcyBzaG91bGQgYmUgdXNlZC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBncm91cCB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8gYW5kIEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIGdyb3VwIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBpZCAoaW4gaW50ZWdlciBmb3JtYXQpIGZvciB0aGUgYWx0ZXJuYXRpdmUgZ3JvdXAgdGhpcyBncm91cCBiZWxvbmdzIHRvLiBJdCdzIGRpZmZlcmVudCB0byBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgaW4gdGhhdCB0aGUgb3RoZXIgcHJvcGVydHkgZGVzY3JpYmVzIHRoZSBpZCBvZiB0aGUgZ3JvdXAsIHdoaWxlIHRoaXMgcHJvcGVydHkgaGVyZSBkZXNjcmliZXMgdGhlIGdyb3VwIGl0c2VsZi4gSWYgYSBncm91cCBvbmx5IGhhcyBzZXQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIgYnV0IG5vdCBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHRoZW4gaXQgbGlrZWx5IGlzIGEgYmFzZSBncm91cCBmb3IgYSBzcGVjaWZpYyBncm91cC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBncm91cCB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgdXNlZCBpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZSB0byBob2xkIHRoZSBwcmljZSBjb21wb3NpdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3Jvc3NQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoaXMgY29tcG9uZW50cyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIHRoZSBmYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIGZvciB0aGlzIGNvbXBvbmVudCAqL1xuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIG5ldCBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZS4gKi9cbiAgICB0b3RhbE5ldD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlc3VsdGluZyBwcmljZSBjb21wb25lbnQgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zICovXG4gICAgcmVhZG9ubHkgdG90YWxEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIHRheCBhbW91bnQgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgcmVhZG9ubHkgdG90YWxUYXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZS4gKi9cbiAgICByZWFkb25seSB0b3RhbEdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUsIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbEdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxUYXhEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lbm9ybVByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcmtzIGlmIHRoZSBvcGVuaW5nIHRleHRzIHdpdGhpbiB0aGlzIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQgZnJlZSB0ZXh0LiBJdCBjb3JyZXNwb25kcyB0byAndm9yYmVtZXJrdW5nc2tlbm56ZWljaGVuJyBpbiDDlk5vcm0uICovXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgZXhjaGFuZ2UgcGhhc2UsIGJhc2VkIG9uIHRoZSBHQUVCIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgQmFzZSA9IFwiQmFzZVwiLFxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXG4gICAgT2ZmZXJSZXF1ZXN0ID0gXCJPZmZlclJlcXVlc3RcIixcbiAgICBPZmZlciA9IFwiT2ZmZXJcIixcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxuICAgIEdyYW50ID0gXCJHcmFudFwiLFxufVxuXG4vKiogSW5kaWNhdGVzIHdoZXJlIGEgc2VydmljZSBzcGVjaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuICovXG5leHBvcnQgZW51bSBPcmlnaW5EdG8ge1xuICAgIFNlbGYgPSBcIlNlbGZcIixcbiAgICBHYWViOTAgPSBcIkdhZWI5MFwiLFxuICAgIEdhZWIyMDAwID0gXCJHYWViMjAwMFwiLFxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcbiAgICBPZW5vcm0gPSBcIk9lbm9ybVwiLFxuICAgIFJlYiA9IFwiUmViXCIsXG4gICAgU2lhID0gXCJTaWFcIixcbn1cblxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgcGVyIG9uZSBob3VyIG9mIG1hbnVhbCBsYWJvdXIgd29yayBpbiB0aGlzIHByb2plY3QuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgZ2l2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBmbGF0IHByaWNlIGZvciB0aGUgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEdsb2JhbCB0YXggcmF0ZSBmb3IgdGhlIHByb2plY3QuIE5vdGUgdGhhdCBjZXJ0YWluIGVsZW1lbnRzIG1heSBoYXZlIGEgZGlmZmVyZW50LCBzcGVjaWZpYyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXG4gICAgaGFzVW5zZXRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVHJhZGUgZGlzY291bnRzIGZvciBvZmZlcmVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFkZURpc2NvdW50RHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgZGF5cyBmb3IgaG93IGxvbmcgYSBkZWNsYXJlZCB0cmFkZSBkaXNjb3VudCBhcHBsaWVzLiBNdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSBpZ25vcmVkIGFuZCBub3Qgc2V0LiAqL1xuICAgIGRlYWRsaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXG4gICAgcmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgdHlwaWNhbCBgVGltZVNwYW5gIGJ1dCBoYXMgYSBzY2FsYXIgdmFsdWUgaW50IER1cmF0aW9uIGFuZCBhIER1cmF0aW9uVW5pdCBVbml0IHRvIHJlcHJlc2VudCBkdXJhdGlvbnMgYXMgdHlwaWNhbGx5IHVzZWQgaW4gY29udHJhY3RzLCBlLmcuIDUgTW9udGhzICovXG5leHBvcnQgaW50ZXJmYWNlIFdhcnJhbnR5RHVyYXRpb25EdG8ge1xuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cbiAgICBkdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVuaXQgb2YgdGhlIGR1cmF0aW9uICovXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXG5leHBvcnQgZW51bSBEdXJhdGlvblVuaXREdG8ge1xuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoZSBkYXRlIHVudGlsIHRoZSBwcmljZSBpcyB2YWxpZCBvciBmaXhlZC4gKi9cbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBkZWxpdmVyeSB2b3VjaGVyIG5vdGUuICovXG4gICAgZGVsaXZlcnlWb3VjaGVyRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cbiAgICBkZWxpdmVyeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBpbnF1aXJ5LCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBvZmZlciByZXF1ZXN0cy4gKi9cbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBvZmZlciwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2YgYW4gb2ZmZXIuICovXG4gICAgb2ZmZXJOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cbiAgICBvcmRlck51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG9yZGVyIGNvbmZpcm1hdGlvbiBudW1iZXIgKi9cbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgZGVsaXZlcnksIGUuZy4gb24gdGhlIGRlbGl2ZXJ5IG5vdGUgdm91Y2hlci4gKi9cbiAgICBkZWxpdmVyeU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXG4gICAgY3VzdG9tZXJSZWZlcmVuY2VOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBzdXBwbGllciAvIGJpZGRlci4gKi9cbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2Ygc2hpcHBtZW50LiAqL1xuICAgIHNoaXBwaW5nVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXG4gICAgaW5xdWlyeVR5cGU/OiBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdHlwZXMgb2YgcHJpY2UgaW5xdWlyaWVzICovXG5leHBvcnQgZW51bSBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUHJvamVjdCA9IFwiUHJvamVjdFwiLFxuICAgIEltbWVkaWF0ZSA9IFwiSW1tZWRpYXRlXCIsXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxufVxuXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBhY2N1cmFjeSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9QUklDRV9BQ0NVUkFDWS4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIElmIFVuaXRQcmljZUFjY3VyYWN5IGlzIHNldCwgdGhlbiB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgZm9yIHVuaXQgcHJpY2VzLiAqL1xuICAgIHByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXG4gICAgdW5pdFByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZm9yY2VzIHRvdGFsIHByaWNlcyB0byBiZSB0aGUgc3RyaWN0IHByb2R1Y3Qgb2YgcXVhbnRpdGllcyB0aW1lcyB1bml0IHByaWNlIGluIHBvc2l0aW9ucy4gSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiB0aGlzIGlzIGRpc2FibGVkLCBib3RoIHRoZSB1bml0IHByaWNlIGFuZCB0aGUgdG90YWwgcHJpY2Ugb2YgcG9zaXRpb25zIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbm9uLXJvdW5kZWQgdmFsdWVzLiBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhpcyBzZXR0aW5nLiAqL1xuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgcm91bmRpbmcgbW9kZSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgcm91bmRpbmcgb2YgZGVjaW1hbCBwbGFjZXMgaXMgcGVyZm9ybWVkIGluIHByaWNlIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9ST1VORElOR19NT0RFLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gKi9cbiAgICBwcmljZVJvdW5kaW5nTW9kZT86IFByaWNlUm91bmRpbmdNb2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xuICAgIHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBpbiB0aGlzIFByb2plY3QuICovXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBQcm9qZWN0LiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvY29udGV4dC1tZW51LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi9hdmEtbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnVEYXRhVHlwZSA9IHtcbiAgcG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcbiAgbm9kZTogSUVsZW1lbnREdG87XG59O1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmlldy1saW5lLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL2Z1bmN0aW9uLXZpZXctbGluZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuL2F2YS1tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvblZpZXdMaW5lIHtcbiAgbmFtZTogc3RyaW5nO1xuICBmdW5jOiAoZWxlbWVudDogSUVsZW1lbnREdG8pID0+IGJvb2xlYW47XG4gIHZpZXc6IElWaWV3TGluZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlld0xpbmUge1xuICBpY29uTmFtZT86IHN0cmluZztcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICB0ZXh0Qm9sZD86IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xufVxuIl19