@six-group/ui-library-angular 0.0.0-insider.f272114 → 0.0.0-insider.f63f424

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/esm2022/lib/control-value-accessors/checkbox-value-accessor.mjs +41 -0
  2. package/esm2022/lib/control-value-accessors/date-value-accessor.mjs +41 -0
  3. package/esm2022/lib/control-value-accessors/datepicker-value-accessor.mjs +37 -0
  4. package/esm2022/lib/control-value-accessors/numeric-value-accessor.mjs +42 -0
  5. package/{esm2020 → esm2022}/lib/control-value-accessors/radio-value-accessor.mjs +10 -10
  6. package/{esm2020 → esm2022}/lib/control-value-accessors/range-value-accessor.mjs +10 -10
  7. package/esm2022/lib/control-value-accessors/select-value-accessor.mjs +37 -0
  8. package/esm2022/lib/control-value-accessors/switch-value-accessor.mjs +41 -0
  9. package/esm2022/lib/control-value-accessors/text-value-accessor.mjs +37 -0
  10. package/esm2022/lib/control-value-accessors/timepicker-value-accessor.mjs +37 -0
  11. package/esm2022/lib/control-value-accessors/value-accessor.mjs +138 -0
  12. package/esm2022/lib/form/six-form.directive.mjs +134 -0
  13. package/esm2022/lib/link/six-router-link.directive.mjs +61 -0
  14. package/esm2022/lib/services/alert.service.mjs +21 -0
  15. package/{esm2020 → esm2022}/lib/services/validation-messages.service.mjs +4 -4
  16. package/esm2022/lib/sidebar/active-sidebar.directive.mjs +110 -0
  17. package/esm2022/lib/stencil-generated/angular-component-lib/utils.mjs +59 -0
  18. package/esm2022/lib/stencil-generated/components.mjs +1414 -0
  19. package/esm2022/lib/stencil-generated/index.mjs +61 -0
  20. package/esm2022/lib/ui-library-angular.module.mjs +169 -0
  21. package/esm2022/lib/validators/six-ui-library-validators.mjs +203 -0
  22. package/esm2022/public-api.mjs +31 -0
  23. package/{fesm2020 → fesm2022}/six-group-ui-library-angular.mjs +824 -379
  24. package/fesm2022/six-group-ui-library-angular.mjs.map +1 -0
  25. package/lib/control-value-accessors/date-value-accessor.d.ts +10 -0
  26. package/lib/control-value-accessors/radio-value-accessor.d.ts +1 -1
  27. package/lib/link/six-router-link.directive.d.ts +26 -0
  28. package/lib/services/alert.service.d.ts +11 -0
  29. package/lib/sidebar/active-sidebar.directive.d.ts +59 -0
  30. package/lib/stencil-generated/components.d.ts +101 -88
  31. package/lib/stencil-generated/index.d.ts +1 -1
  32. package/lib/ui-library-angular.module.d.ts +11 -8
  33. package/lib/validators/six-ui-library-validators.d.ts +34 -7
  34. package/package.json +15 -13
  35. package/public-api.d.ts +4 -0
  36. package/esm2020/lib/control-value-accessors/checkbox-value-accessor.mjs +0 -41
  37. package/esm2020/lib/control-value-accessors/datepicker-value-accessor.mjs +0 -37
  38. package/esm2020/lib/control-value-accessors/numeric-value-accessor.mjs +0 -42
  39. package/esm2020/lib/control-value-accessors/select-value-accessor.mjs +0 -37
  40. package/esm2020/lib/control-value-accessors/switch-value-accessor.mjs +0 -41
  41. package/esm2020/lib/control-value-accessors/text-value-accessor.mjs +0 -37
  42. package/esm2020/lib/control-value-accessors/timepicker-value-accessor.mjs +0 -37
  43. package/esm2020/lib/control-value-accessors/value-accessor.mjs +0 -145
  44. package/esm2020/lib/form/six-form.directive.mjs +0 -134
  45. package/esm2020/lib/stencil-generated/angular-component-lib/utils.mjs +0 -51
  46. package/esm2020/lib/stencil-generated/components.mjs +0 -1372
  47. package/esm2020/lib/stencil-generated/index.mjs +0 -57
  48. package/esm2020/lib/ui-library-angular.module.mjs +0 -127
  49. package/esm2020/lib/validators/six-ui-library-validators.mjs +0 -116
  50. package/esm2020/public-api.mjs +0 -25
  51. package/fesm2015/six-group-ui-library-angular.mjs +0 -2287
  52. package/fesm2015/six-group-ui-library-angular.mjs.map +0 -1
  53. package/fesm2020/six-group-ui-library-angular.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/six-group-ui-library-angular.mjs +0 -0
@@ -1,1372 +0,0 @@
1
- import { __decorate } from "tslib";
2
- /* tslint:disable */
3
- /* auto-generated angular directive proxies */
4
- import { ChangeDetectionStrategy, Component } from '@angular/core';
5
- import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
- import * as i0 from "@angular/core";
7
- let SetAttributes = class SetAttributes {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- }
13
- };
14
- SetAttributes.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SetAttributes, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
15
- SetAttributes.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SetAttributes, selector: "set-attributes", inputs: { value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
- SetAttributes = __decorate([
17
- ProxyCmp({
18
- inputs: ['value']
19
- })
20
- ], SetAttributes);
21
- export { SetAttributes };
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SetAttributes, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'set-attributes',
26
- changeDetection: ChangeDetectionStrategy.OnPush,
27
- template: '<ng-content></ng-content>',
28
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
29
- inputs: ['value'],
30
- }]
31
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
32
- let SixAlert = class SixAlert {
33
- constructor(c, r, z) {
34
- this.z = z;
35
- c.detach();
36
- this.el = r.nativeElement;
37
- proxyOutputs(this, this.el, ['six-alert-show', 'six-alert-after-show', 'six-alert-hide', 'six-alert-after-hide']);
38
- }
39
- };
40
- SixAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
41
- SixAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixAlert, selector: "six-alert", inputs: { closable: "closable", duration: "duration", open: "open", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
- SixAlert = __decorate([
43
- ProxyCmp({
44
- inputs: ['closable', 'duration', 'open', 'type'],
45
- methods: ['show', 'hide', 'toast']
46
- })
47
- ], SixAlert);
48
- export { SixAlert };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixAlert, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'six-alert',
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: '<ng-content></ng-content>',
55
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
56
- inputs: ['closable', 'duration', 'open', 'type'],
57
- }]
58
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
59
- let SixAvatar = class SixAvatar {
60
- constructor(c, r, z) {
61
- this.z = z;
62
- c.detach();
63
- this.el = r.nativeElement;
64
- }
65
- };
66
- SixAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
67
- SixAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixAvatar, selector: "six-avatar", inputs: { alt: "alt", image: "image", initials: "initials", shape: "shape" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
- SixAvatar = __decorate([
69
- ProxyCmp({
70
- inputs: ['alt', 'image', 'initials', 'shape']
71
- })
72
- ], SixAvatar);
73
- export { SixAvatar };
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixAvatar, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'six-avatar',
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- template: '<ng-content></ng-content>',
80
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
81
- inputs: ['alt', 'image', 'initials', 'shape'],
82
- }]
83
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
84
- let SixBadge = class SixBadge {
85
- constructor(c, r, z) {
86
- this.z = z;
87
- c.detach();
88
- this.el = r.nativeElement;
89
- }
90
- };
91
- SixBadge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
92
- SixBadge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixBadge, selector: "six-badge", inputs: { pill: "pill", pulse: "pulse", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
93
- SixBadge = __decorate([
94
- ProxyCmp({
95
- inputs: ['pill', 'pulse', 'type']
96
- })
97
- ], SixBadge);
98
- export { SixBadge };
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixBadge, decorators: [{
100
- type: Component,
101
- args: [{
102
- selector: 'six-badge',
103
- changeDetection: ChangeDetectionStrategy.OnPush,
104
- template: '<ng-content></ng-content>',
105
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
106
- inputs: ['pill', 'pulse', 'type'],
107
- }]
108
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
109
- let SixButton = class SixButton {
110
- constructor(c, r, z) {
111
- this.z = z;
112
- c.detach();
113
- this.el = r.nativeElement;
114
- proxyOutputs(this, this.el, ['six-button-blur', 'six-button-focus']);
115
- }
116
- };
117
- SixButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
118
- SixButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixButton, selector: "six-button", inputs: { caret: "caret", circle: "circle", disabled: "disabled", download: "download", href: "href", loading: "loading", name: "name", pill: "pill", reset: "reset", size: "size", submit: "submit", target: "target", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
- SixButton = __decorate([
120
- ProxyCmp({
121
- inputs: ['caret', 'circle', 'disabled', 'download', 'href', 'loading', 'name', 'pill', 'reset', 'size', 'submit', 'target', 'type', 'value'],
122
- methods: ['setFocus', 'removeFocus']
123
- })
124
- ], SixButton);
125
- export { SixButton };
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixButton, decorators: [{
127
- type: Component,
128
- args: [{
129
- selector: 'six-button',
130
- changeDetection: ChangeDetectionStrategy.OnPush,
131
- template: '<ng-content></ng-content>',
132
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
133
- inputs: ['caret', 'circle', 'disabled', 'download', 'href', 'loading', 'name', 'pill', 'reset', 'size', 'submit', 'target', 'type', 'value'],
134
- }]
135
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
136
- let SixCard = class SixCard {
137
- constructor(c, r, z) {
138
- this.z = z;
139
- c.detach();
140
- this.el = r.nativeElement;
141
- }
142
- };
143
- SixCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
144
- SixCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixCard, selector: "six-card", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
145
- SixCard = __decorate([
146
- ProxyCmp({})
147
- ], SixCard);
148
- export { SixCard };
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCard, decorators: [{
150
- type: Component,
151
- args: [{
152
- selector: 'six-card',
153
- changeDetection: ChangeDetectionStrategy.OnPush,
154
- template: '<ng-content></ng-content>',
155
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
156
- inputs: [],
157
- }]
158
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
159
- let SixCheckbox = class SixCheckbox {
160
- constructor(c, r, z) {
161
- this.z = z;
162
- c.detach();
163
- this.el = r.nativeElement;
164
- proxyOutputs(this, this.el, ['six-checkbox-blur', 'six-checkbox-change', 'six-checkbox-focus']);
165
- }
166
- };
167
- SixCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
168
- SixCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixCheckbox, selector: "six-checkbox", inputs: { checked: "checked", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", indeterminate: "indeterminate", invalid: "invalid", label: "label", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
169
- SixCheckbox = __decorate([
170
- ProxyCmp({
171
- inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
172
- methods: ['setFocus', 'removeFocus']
173
- })
174
- ], SixCheckbox);
175
- export { SixCheckbox };
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixCheckbox, decorators: [{
177
- type: Component,
178
- args: [{
179
- selector: 'six-checkbox',
180
- changeDetection: ChangeDetectionStrategy.OnPush,
181
- template: '<ng-content></ng-content>',
182
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
183
- inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
184
- }]
185
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
186
- let SixDatepicker = class SixDatepicker {
187
- constructor(c, r, z) {
188
- this.z = z;
189
- c.detach();
190
- this.el = r.nativeElement;
191
- proxyOutputs(this, this.el, ['six-datepicker-select', 'six-datepicker-clear', 'six-datepicker-blur']);
192
- }
193
- };
194
- SixDatepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDatepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
195
- SixDatepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDatepicker, selector: "six-datepicker", inputs: { allowedDates: "allowedDates", clearable: "clearable", closeOnSelect: "closeOnSelect", containingElement: "containingElement", dateFormat: "dateFormat", debounce: "debounce", defaultDate: "defaultDate", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", invalid: "invalid", label: "label", locale: "locale", max: "max", min: "min", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
- SixDatepicker = __decorate([
197
- ProxyCmp({
198
- inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorText', 'errorTextCount', 'hoist', 'iconPosition', 'inline', 'invalid', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
199
- methods: ['setFocus', 'select']
200
- })
201
- ], SixDatepicker);
202
- export { SixDatepicker };
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDatepicker, decorators: [{
204
- type: Component,
205
- args: [{
206
- selector: 'six-datepicker',
207
- changeDetection: ChangeDetectionStrategy.OnPush,
208
- template: '<ng-content></ng-content>',
209
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
210
- inputs: ['allowedDates', 'clearable', 'closeOnSelect', 'containingElement', 'dateFormat', 'debounce', 'defaultDate', 'disabled', 'errorText', 'errorTextCount', 'hoist', 'iconPosition', 'inline', 'invalid', 'label', 'locale', 'max', 'min', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'size', 'type', 'value'],
211
- }]
212
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
213
- let SixDetails = class SixDetails {
214
- constructor(c, r, z) {
215
- this.z = z;
216
- c.detach();
217
- this.el = r.nativeElement;
218
- proxyOutputs(this, this.el, ['six-details-show', 'six-details-after-show', 'six-details-hide', 'six-details-after-hide']);
219
- }
220
- };
221
- SixDetails.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
222
- SixDetails.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDetails, selector: "six-details", inputs: { disabled: "disabled", hasContent: "hasContent", inline: "inline", open: "open", selectableEmpty: "selectableEmpty", summary: "summary", summaryIcon: "summaryIcon", summaryIconSize: "summaryIconSize" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
223
- SixDetails = __decorate([
224
- ProxyCmp({
225
- inputs: ['disabled', 'hasContent', 'inline', 'open', 'selectableEmpty', 'summary', 'summaryIcon', 'summaryIconSize'],
226
- methods: ['show', 'hide']
227
- })
228
- ], SixDetails);
229
- export { SixDetails };
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDetails, decorators: [{
231
- type: Component,
232
- args: [{
233
- selector: 'six-details',
234
- changeDetection: ChangeDetectionStrategy.OnPush,
235
- template: '<ng-content></ng-content>',
236
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
237
- inputs: ['disabled', 'hasContent', 'inline', 'open', 'selectableEmpty', 'summary', 'summaryIcon', 'summaryIconSize'],
238
- }]
239
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
240
- let SixDialog = class SixDialog {
241
- constructor(c, r, z) {
242
- this.z = z;
243
- c.detach();
244
- this.el = r.nativeElement;
245
- proxyOutputs(this, this.el, ['six-dialog-show', 'six-dialog-after-show', 'six-dialog-hide', 'six-dialog-after-hide', 'six-dialog-initial-focus', 'six-dialog-overlay-dismiss']);
246
- }
247
- };
248
- SixDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDialog, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
249
- SixDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDialog, selector: "six-dialog", inputs: { label: "label", noHeader: "noHeader", open: "open" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
250
- SixDialog = __decorate([
251
- ProxyCmp({
252
- inputs: ['label', 'noHeader', 'open'],
253
- methods: ['show', 'hide']
254
- })
255
- ], SixDialog);
256
- export { SixDialog };
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDialog, decorators: [{
258
- type: Component,
259
- args: [{
260
- selector: 'six-dialog',
261
- changeDetection: ChangeDetectionStrategy.OnPush,
262
- template: '<ng-content></ng-content>',
263
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
264
- inputs: ['label', 'noHeader', 'open'],
265
- }]
266
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
267
- let SixDrawer = class SixDrawer {
268
- constructor(c, r, z) {
269
- this.z = z;
270
- c.detach();
271
- this.el = r.nativeElement;
272
- proxyOutputs(this, this.el, ['six-drawer-show', 'six-drawer-after-show', 'six-drawer-hide', 'six-drawer-after-hide', 'six-drawer-initial-focus', 'six-drawer-overlay-dismiss']);
273
- }
274
- };
275
- SixDrawer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDrawer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
276
- SixDrawer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDrawer, selector: "six-drawer", inputs: { contained: "contained", label: "label", noHeader: "noHeader", open: "open", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
277
- SixDrawer = __decorate([
278
- ProxyCmp({
279
- inputs: ['contained', 'label', 'noHeader', 'open', 'placement'],
280
- methods: ['show', 'hide']
281
- })
282
- ], SixDrawer);
283
- export { SixDrawer };
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDrawer, decorators: [{
285
- type: Component,
286
- args: [{
287
- selector: 'six-drawer',
288
- changeDetection: ChangeDetectionStrategy.OnPush,
289
- template: '<ng-content></ng-content>',
290
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
291
- inputs: ['contained', 'label', 'noHeader', 'open', 'placement'],
292
- }]
293
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
294
- let SixDropdown = class SixDropdown {
295
- constructor(c, r, z) {
296
- this.z = z;
297
- c.detach();
298
- this.el = r.nativeElement;
299
- proxyOutputs(this, this.el, ['six-dropdown-show', 'six-dropdown-after-show', 'six-dropdown-hide', 'six-dropdown-after-hide', 'six-dropdown-auto-filter-fired', 'six-async-filter-fired', 'six-dropdown-scroll']);
300
- }
301
- };
302
- SixDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
303
- SixDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixDropdown, selector: "six-dropdown", inputs: { asyncFilter: "asyncFilter", autofocusFilter: "autofocusFilter", closeOnSelect: "closeOnSelect", containingElement: "containingElement", disableHideOnEnterAndSpace: "disableHideOnEnterAndSpace", distance: "distance", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", hoist: "hoist", open: "open", options: "options", placement: "placement", skidding: "skidding", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
304
- SixDropdown = __decorate([
305
- ProxyCmp({
306
- inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
307
- methods: ['show', 'hide', 'reposition']
308
- })
309
- ], SixDropdown);
310
- export { SixDropdown };
311
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixDropdown, decorators: [{
312
- type: Component,
313
- args: [{
314
- selector: 'six-dropdown',
315
- changeDetection: ChangeDetectionStrategy.OnPush,
316
- template: '<ng-content></ng-content>',
317
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
318
- inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
319
- }]
320
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
321
- let SixError = class SixError {
322
- constructor(c, r, z) {
323
- this.z = z;
324
- c.detach();
325
- this.el = r.nativeElement;
326
- }
327
- };
328
- SixError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixError, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
329
- SixError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixError, selector: "six-error", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
330
- SixError = __decorate([
331
- ProxyCmp({})
332
- ], SixError);
333
- export { SixError };
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixError, decorators: [{
335
- type: Component,
336
- args: [{
337
- selector: 'six-error',
338
- changeDetection: ChangeDetectionStrategy.OnPush,
339
- template: '<ng-content></ng-content>',
340
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
341
- inputs: [],
342
- }]
343
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
344
- let SixErrorPage = class SixErrorPage {
345
- constructor(c, r, z) {
346
- this.z = z;
347
- c.detach();
348
- this.el = r.nativeElement;
349
- }
350
- };
351
- SixErrorPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixErrorPage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
352
- SixErrorPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixErrorPage, selector: "six-error-page", inputs: { customDescription: "customDescription", customIcon: "customIcon", customTitle: "customTitle", errorCode: "errorCode", language: "language" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
353
- SixErrorPage = __decorate([
354
- ProxyCmp({
355
- inputs: ['customDescription', 'customIcon', 'customTitle', 'errorCode', 'language']
356
- })
357
- ], SixErrorPage);
358
- export { SixErrorPage };
359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixErrorPage, decorators: [{
360
- type: Component,
361
- args: [{
362
- selector: 'six-error-page',
363
- changeDetection: ChangeDetectionStrategy.OnPush,
364
- template: '<ng-content></ng-content>',
365
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
366
- inputs: ['customDescription', 'customIcon', 'customTitle', 'errorCode', 'language'],
367
- }]
368
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
369
- let SixFileList = class SixFileList {
370
- constructor(c, r, z) {
371
- this.z = z;
372
- c.detach();
373
- this.el = r.nativeElement;
374
- }
375
- };
376
- SixFileList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
377
- SixFileList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixFileList, selector: "six-file-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
378
- SixFileList = __decorate([
379
- ProxyCmp({})
380
- ], SixFileList);
381
- export { SixFileList };
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileList, decorators: [{
383
- type: Component,
384
- args: [{
385
- selector: 'six-file-list',
386
- changeDetection: ChangeDetectionStrategy.OnPush,
387
- template: '<ng-content></ng-content>',
388
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
389
- inputs: [],
390
- }]
391
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
392
- let SixFileListItem = class SixFileListItem {
393
- constructor(c, r, z) {
394
- this.z = z;
395
- c.detach();
396
- this.el = r.nativeElement;
397
- proxyOutputs(this, this.el, ['six-file-list-item-download', 'six-file-list-item-remove']);
398
- }
399
- };
400
- SixFileListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
401
- SixFileListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixFileListItem, selector: "six-file-list-item", inputs: { date: "date", identifier: "identifier", name: "name", nodelete: "nodelete", nodownload: "nodownload", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
402
- SixFileListItem = __decorate([
403
- ProxyCmp({
404
- inputs: ['date', 'identifier', 'name', 'nodelete', 'nodownload', 'size']
405
- })
406
- ], SixFileListItem);
407
- export { SixFileListItem };
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileListItem, decorators: [{
409
- type: Component,
410
- args: [{
411
- selector: 'six-file-list-item',
412
- changeDetection: ChangeDetectionStrategy.OnPush,
413
- template: '<ng-content></ng-content>',
414
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
415
- inputs: ['date', 'identifier', 'name', 'nodelete', 'nodownload', 'size'],
416
- }]
417
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
418
- let SixFileUpload = class SixFileUpload {
419
- constructor(c, r, z) {
420
- this.z = z;
421
- c.detach();
422
- this.el = r.nativeElement;
423
- proxyOutputs(this, this.el, ['six-file-upload-success', 'six-file-upload-failure']);
424
- }
425
- };
426
- SixFileUpload.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
427
- SixFileUpload.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixFileUpload, selector: "six-file-upload", inputs: { accept: "accept", compact: "compact", disabled: "disabled", label: "label", maxFileSize: "maxFileSize", multiple: "multiple" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
428
- SixFileUpload = __decorate([
429
- ProxyCmp({
430
- inputs: ['accept', 'compact', 'disabled', 'label', 'maxFileSize', 'multiple']
431
- })
432
- ], SixFileUpload);
433
- export { SixFileUpload };
434
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFileUpload, decorators: [{
435
- type: Component,
436
- args: [{
437
- selector: 'six-file-upload',
438
- changeDetection: ChangeDetectionStrategy.OnPush,
439
- template: '<ng-content></ng-content>',
440
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
441
- inputs: ['accept', 'compact', 'disabled', 'label', 'maxFileSize', 'multiple'],
442
- }]
443
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
444
- let SixFooter = class SixFooter {
445
- constructor(c, r, z) {
446
- this.z = z;
447
- c.detach();
448
- this.el = r.nativeElement;
449
- }
450
- };
451
- SixFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
452
- SixFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixFooter, selector: "six-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
453
- SixFooter = __decorate([
454
- ProxyCmp({})
455
- ], SixFooter);
456
- export { SixFooter };
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixFooter, decorators: [{
458
- type: Component,
459
- args: [{
460
- selector: 'six-footer',
461
- changeDetection: ChangeDetectionStrategy.OnPush,
462
- template: '<ng-content></ng-content>',
463
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
464
- inputs: [],
465
- }]
466
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
467
- let SixGroupLabel = class SixGroupLabel {
468
- constructor(c, r, z) {
469
- this.z = z;
470
- c.detach();
471
- this.el = r.nativeElement;
472
- }
473
- };
474
- SixGroupLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixGroupLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
475
- SixGroupLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixGroupLabel, selector: "six-group-label", inputs: { disabled: "disabled", helpText: "helpText", label: "label", required: "required", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
476
- SixGroupLabel = __decorate([
477
- ProxyCmp({
478
- inputs: ['disabled', 'helpText', 'label', 'required', 'size']
479
- })
480
- ], SixGroupLabel);
481
- export { SixGroupLabel };
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixGroupLabel, decorators: [{
483
- type: Component,
484
- args: [{
485
- selector: 'six-group-label',
486
- changeDetection: ChangeDetectionStrategy.OnPush,
487
- template: '<ng-content></ng-content>',
488
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
489
- inputs: ['disabled', 'helpText', 'label', 'required', 'size'],
490
- }]
491
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
492
- let SixHeader = class SixHeader {
493
- constructor(c, r, z) {
494
- this.z = z;
495
- c.detach();
496
- this.el = r.nativeElement;
497
- proxyOutputs(this, this.el, ['six-header-app-name-clicked', 'six-header-app-switcher-select', 'six-header-profile-select', 'six-header-hamburger-menu-clicked', 'six-header-logo-clicked', 'six-header-search-field-toggle']);
498
- }
499
- };
500
- SixHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
501
- SixHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixHeader, selector: "six-header", inputs: { clickableLogo: "clickableLogo", openHamburgerMenu: "openHamburgerMenu", openSearch: "openSearch", shiftContent: "shiftContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
502
- SixHeader = __decorate([
503
- ProxyCmp({
504
- inputs: ['clickableLogo', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
505
- methods: ['setSearchOpenState', 'getIsSearchOpen']
506
- })
507
- ], SixHeader);
508
- export { SixHeader };
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixHeader, decorators: [{
510
- type: Component,
511
- args: [{
512
- selector: 'six-header',
513
- changeDetection: ChangeDetectionStrategy.OnPush,
514
- template: '<ng-content></ng-content>',
515
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
516
- inputs: ['clickableLogo', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
517
- }]
518
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
519
- let SixIcon = class SixIcon {
520
- constructor(c, r, z) {
521
- this.z = z;
522
- c.detach();
523
- this.el = r.nativeElement;
524
- }
525
- };
526
- SixIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
527
- SixIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixIcon, selector: "six-icon", inputs: { filled: "filled", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
528
- SixIcon = __decorate([
529
- ProxyCmp({
530
- inputs: ['filled', 'size']
531
- })
532
- ], SixIcon);
533
- export { SixIcon };
534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixIcon, decorators: [{
535
- type: Component,
536
- args: [{
537
- selector: 'six-icon',
538
- changeDetection: ChangeDetectionStrategy.OnPush,
539
- template: '<ng-content></ng-content>',
540
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
541
- inputs: ['filled', 'size'],
542
- }]
543
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
544
- let SixIconButton = class SixIconButton {
545
- constructor(c, r, z) {
546
- this.z = z;
547
- c.detach();
548
- this.el = r.nativeElement;
549
- }
550
- };
551
- SixIconButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
552
- SixIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixIconButton, selector: "six-icon-button", inputs: { disabled: "disabled", html: "html", label: "label", name: "name", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
553
- SixIconButton = __decorate([
554
- ProxyCmp({
555
- inputs: ['disabled', 'html', 'label', 'name', 'size']
556
- })
557
- ], SixIconButton);
558
- export { SixIconButton };
559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixIconButton, decorators: [{
560
- type: Component,
561
- args: [{
562
- selector: 'six-icon-button',
563
- changeDetection: ChangeDetectionStrategy.OnPush,
564
- template: '<ng-content></ng-content>',
565
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
566
- inputs: ['disabled', 'html', 'label', 'name', 'size'],
567
- }]
568
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
569
- let SixInput = class SixInput {
570
- constructor(c, r, z) {
571
- this.z = z;
572
- c.detach();
573
- this.el = r.nativeElement;
574
- proxyOutputs(this, this.el, ['six-input-change', 'six-input-clear', 'six-input-input', 'six-input-focus', 'six-input-blur']);
575
- }
576
- };
577
- SixInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
578
- SixInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixInput, selector: "six-input", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", line: "line", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", pattern: "pattern", pill: "pill", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", spellcheck: "spellcheck", step: "step", togglePassword: "togglePassword", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
579
- SixInput = __decorate([
580
- ProxyCmp({
581
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
582
- methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
583
- })
584
- ], SixInput);
585
- export { SixInput };
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixInput, decorators: [{
587
- type: Component,
588
- args: [{
589
- selector: 'six-input',
590
- changeDetection: ChangeDetectionStrategy.OnPush,
591
- template: '<ng-content></ng-content>',
592
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
593
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
594
- }]
595
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
596
- let SixItemPicker = class SixItemPicker {
597
- constructor(c, r, z) {
598
- this.z = z;
599
- c.detach();
600
- this.el = r.nativeElement;
601
- proxyOutputs(this, this.el, ['six-item-picker-change', 'six-item-picker-change-debounced']);
602
- }
603
- };
604
- SixItemPicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixItemPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
605
- SixItemPicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixItemPicker, selector: "six-item-picker", inputs: { debounce: "debounce", interval: "interval", items: "items", max: "max", min: "min", padded: "padded", paddingChar: "paddingChar", paddingDirection: "paddingDirection", paddingLength: "paddingLength", roundtrip: "roundtrip", step: "step", timeout: "timeout", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
606
- SixItemPicker = __decorate([
607
- ProxyCmp({
608
- inputs: ['debounce', 'interval', 'items', 'max', 'min', 'padded', 'paddingChar', 'paddingDirection', 'paddingLength', 'roundtrip', 'step', 'timeout', 'type', 'value']
609
- })
610
- ], SixItemPicker);
611
- export { SixItemPicker };
612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixItemPicker, decorators: [{
613
- type: Component,
614
- args: [{
615
- selector: 'six-item-picker',
616
- changeDetection: ChangeDetectionStrategy.OnPush,
617
- template: '<ng-content></ng-content>',
618
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
619
- inputs: ['debounce', 'interval', 'items', 'max', 'min', 'padded', 'paddingChar', 'paddingDirection', 'paddingLength', 'roundtrip', 'step', 'timeout', 'type', 'value'],
620
- }]
621
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
622
- let SixLanguageSwitcher = class SixLanguageSwitcher {
623
- constructor(c, r, z) {
624
- this.z = z;
625
- c.detach();
626
- this.el = r.nativeElement;
627
- proxyOutputs(this, this.el, ['six-language-switcher-change']);
628
- }
629
- };
630
- SixLanguageSwitcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixLanguageSwitcher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
631
- SixLanguageSwitcher.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixLanguageSwitcher, selector: "six-language-switcher", inputs: { languages: "languages", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
632
- SixLanguageSwitcher = __decorate([
633
- ProxyCmp({
634
- inputs: ['languages', 'selected']
635
- })
636
- ], SixLanguageSwitcher);
637
- export { SixLanguageSwitcher };
638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixLanguageSwitcher, decorators: [{
639
- type: Component,
640
- args: [{
641
- selector: 'six-language-switcher',
642
- changeDetection: ChangeDetectionStrategy.OnPush,
643
- template: '<ng-content></ng-content>',
644
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
645
- inputs: ['languages', 'selected'],
646
- }]
647
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
648
- let SixLayoutGrid = class SixLayoutGrid {
649
- constructor(c, r, z) {
650
- this.z = z;
651
- c.detach();
652
- this.el = r.nativeElement;
653
- }
654
- };
655
- SixLayoutGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixLayoutGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
656
- SixLayoutGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixLayoutGrid, selector: "six-layout-grid", inputs: { columns: "columns" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
657
- SixLayoutGrid = __decorate([
658
- ProxyCmp({
659
- inputs: ['columns']
660
- })
661
- ], SixLayoutGrid);
662
- export { SixLayoutGrid };
663
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixLayoutGrid, decorators: [{
664
- type: Component,
665
- args: [{
666
- selector: 'six-layout-grid',
667
- changeDetection: ChangeDetectionStrategy.OnPush,
668
- template: '<ng-content></ng-content>',
669
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
670
- inputs: ['columns'],
671
- }]
672
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
673
- let SixMainContainer = class SixMainContainer {
674
- constructor(c, r, z) {
675
- this.z = z;
676
- c.detach();
677
- this.el = r.nativeElement;
678
- }
679
- };
680
- SixMainContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMainContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
681
- SixMainContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixMainContainer, selector: "six-main-container", inputs: { padded: "padded" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
682
- SixMainContainer = __decorate([
683
- ProxyCmp({
684
- inputs: ['padded']
685
- })
686
- ], SixMainContainer);
687
- export { SixMainContainer };
688
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMainContainer, decorators: [{
689
- type: Component,
690
- args: [{
691
- selector: 'six-main-container',
692
- changeDetection: ChangeDetectionStrategy.OnPush,
693
- template: '<ng-content></ng-content>',
694
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
695
- inputs: ['padded'],
696
- }]
697
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
698
- let SixMenu = class SixMenu {
699
- constructor(c, r, z) {
700
- this.z = z;
701
- c.detach();
702
- this.el = r.nativeElement;
703
- proxyOutputs(this, this.el, ['six-menu-item-selected']);
704
- }
705
- };
706
- SixMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
707
- SixMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixMenu, selector: "six-menu", inputs: { itemSize: "itemSize", items: "items", itemsShown: "itemsShown", removeBoxShadow: "removeBoxShadow", scrollingDebounce: "scrollingDebounce", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
708
- SixMenu = __decorate([
709
- ProxyCmp({
710
- inputs: ['itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
711
- methods: ['typeToSelect']
712
- })
713
- ], SixMenu);
714
- export { SixMenu };
715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenu, decorators: [{
716
- type: Component,
717
- args: [{
718
- selector: 'six-menu',
719
- changeDetection: ChangeDetectionStrategy.OnPush,
720
- template: '<ng-content></ng-content>',
721
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
722
- inputs: ['itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
723
- }]
724
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
725
- let SixMenuDivider = class SixMenuDivider {
726
- constructor(c, r, z) {
727
- this.z = z;
728
- c.detach();
729
- this.el = r.nativeElement;
730
- }
731
- };
732
- SixMenuDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
733
- SixMenuDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixMenuDivider, selector: "six-menu-divider", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
734
- SixMenuDivider = __decorate([
735
- ProxyCmp({})
736
- ], SixMenuDivider);
737
- export { SixMenuDivider };
738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuDivider, decorators: [{
739
- type: Component,
740
- args: [{
741
- selector: 'six-menu-divider',
742
- changeDetection: ChangeDetectionStrategy.OnPush,
743
- template: '<ng-content></ng-content>',
744
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
745
- inputs: [],
746
- }]
747
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
748
- let SixMenuItem = class SixMenuItem {
749
- constructor(c, r, z) {
750
- this.z = z;
751
- c.detach();
752
- this.el = r.nativeElement;
753
- }
754
- };
755
- SixMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
756
- SixMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixMenuItem, selector: "six-menu-item", inputs: { checked: "checked", disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
757
- SixMenuItem = __decorate([
758
- ProxyCmp({
759
- inputs: ['checked', 'disabled', 'value'],
760
- methods: ['setFocus', 'removeFocus', 'getTextLabel']
761
- })
762
- ], SixMenuItem);
763
- export { SixMenuItem };
764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuItem, decorators: [{
765
- type: Component,
766
- args: [{
767
- selector: 'six-menu-item',
768
- changeDetection: ChangeDetectionStrategy.OnPush,
769
- template: '<ng-content></ng-content>',
770
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
771
- inputs: ['checked', 'disabled', 'value'],
772
- }]
773
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
774
- let SixMenuLabel = class SixMenuLabel {
775
- constructor(c, r, z) {
776
- this.z = z;
777
- c.detach();
778
- this.el = r.nativeElement;
779
- }
780
- };
781
- SixMenuLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
782
- SixMenuLabel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixMenuLabel, selector: "six-menu-label", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
783
- SixMenuLabel = __decorate([
784
- ProxyCmp({})
785
- ], SixMenuLabel);
786
- export { SixMenuLabel };
787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixMenuLabel, decorators: [{
788
- type: Component,
789
- args: [{
790
- selector: 'six-menu-label',
791
- changeDetection: ChangeDetectionStrategy.OnPush,
792
- template: '<ng-content></ng-content>',
793
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
794
- inputs: [],
795
- }]
796
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
797
- let SixPicto = class SixPicto {
798
- constructor(c, r, z) {
799
- this.z = z;
800
- c.detach();
801
- this.el = r.nativeElement;
802
- }
803
- };
804
- SixPicto.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixPicto, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
805
- SixPicto.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixPicto, selector: "six-picto", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
806
- SixPicto = __decorate([
807
- ProxyCmp({
808
- inputs: ['size']
809
- })
810
- ], SixPicto);
811
- export { SixPicto };
812
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixPicto, decorators: [{
813
- type: Component,
814
- args: [{
815
- selector: 'six-picto',
816
- changeDetection: ChangeDetectionStrategy.OnPush,
817
- template: '<ng-content></ng-content>',
818
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
819
- inputs: ['size'],
820
- }]
821
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
822
- let SixProgressBar = class SixProgressBar {
823
- constructor(c, r, z) {
824
- this.z = z;
825
- c.detach();
826
- this.el = r.nativeElement;
827
- }
828
- };
829
- SixProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixProgressBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
830
- SixProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixProgressBar, selector: "six-progress-bar", inputs: { indeterminate: "indeterminate", percentage: "percentage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
831
- SixProgressBar = __decorate([
832
- ProxyCmp({
833
- inputs: ['indeterminate', 'percentage']
834
- })
835
- ], SixProgressBar);
836
- export { SixProgressBar };
837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixProgressBar, decorators: [{
838
- type: Component,
839
- args: [{
840
- selector: 'six-progress-bar',
841
- changeDetection: ChangeDetectionStrategy.OnPush,
842
- template: '<ng-content></ng-content>',
843
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
844
- inputs: ['indeterminate', 'percentage'],
845
- }]
846
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
847
- let SixProgressRing = class SixProgressRing {
848
- constructor(c, r, z) {
849
- this.z = z;
850
- c.detach();
851
- this.el = r.nativeElement;
852
- }
853
- };
854
- SixProgressRing.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixProgressRing, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
855
- SixProgressRing.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixProgressRing, selector: "six-progress-ring", inputs: { percentage: "percentage", size: "size", strokeWidth: "strokeWidth" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
856
- SixProgressRing = __decorate([
857
- ProxyCmp({
858
- inputs: ['percentage', 'size', 'strokeWidth']
859
- })
860
- ], SixProgressRing);
861
- export { SixProgressRing };
862
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixProgressRing, decorators: [{
863
- type: Component,
864
- args: [{
865
- selector: 'six-progress-ring',
866
- changeDetection: ChangeDetectionStrategy.OnPush,
867
- template: '<ng-content></ng-content>',
868
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
869
- inputs: ['percentage', 'size', 'strokeWidth'],
870
- }]
871
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
872
- let SixRadio = class SixRadio {
873
- constructor(c, r, z) {
874
- this.z = z;
875
- c.detach();
876
- this.el = r.nativeElement;
877
- proxyOutputs(this, this.el, ['six-radio-blur', 'six-radio-change', 'six-radio-focus']);
878
- }
879
- };
880
- SixRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
881
- SixRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixRadio, selector: "six-radio", inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", name: "name", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
882
- SixRadio = __decorate([
883
- ProxyCmp({
884
- inputs: ['checked', 'disabled', 'invalid', 'name', 'value'],
885
- methods: ['setFocus', 'removeFocus']
886
- })
887
- ], SixRadio);
888
- export { SixRadio };
889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRadio, decorators: [{
890
- type: Component,
891
- args: [{
892
- selector: 'six-radio',
893
- changeDetection: ChangeDetectionStrategy.OnPush,
894
- template: '<ng-content></ng-content>',
895
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
896
- inputs: ['checked', 'disabled', 'invalid', 'name', 'value'],
897
- }]
898
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
899
- let SixRange = class SixRange {
900
- constructor(c, r, z) {
901
- this.z = z;
902
- c.detach();
903
- this.el = r.nativeElement;
904
- proxyOutputs(this, this.el, ['six-range-change', 'six-range-blur', 'six-range-focus']);
905
- }
906
- };
907
- SixRange.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRange, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
908
- SixRange.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixRange, selector: "six-range", inputs: { disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", invalid: "invalid", label: "label", max: "max", min: "min", name: "name", required: "required", step: "step", tooltip: "tooltip", tooltipFormatter: "tooltipFormatter", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
909
- SixRange = __decorate([
910
- ProxyCmp({
911
- inputs: ['disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
912
- methods: ['setFocus', 'removeFocus']
913
- })
914
- ], SixRange);
915
- export { SixRange };
916
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRange, decorators: [{
917
- type: Component,
918
- args: [{
919
- selector: 'six-range',
920
- changeDetection: ChangeDetectionStrategy.OnPush,
921
- template: '<ng-content></ng-content>',
922
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
923
- inputs: ['disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'max', 'min', 'name', 'required', 'step', 'tooltip', 'tooltipFormatter', 'value'],
924
- }]
925
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
926
- let SixRoot = class SixRoot {
927
- constructor(c, r, z) {
928
- this.z = z;
929
- c.detach();
930
- this.el = r.nativeElement;
931
- proxyOutputs(this, this.el, ['six-root-collapsed']);
932
- }
933
- };
934
- SixRoot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRoot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
935
- SixRoot.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixRoot, selector: "six-root", inputs: { breakpoint: "breakpoint", padded: "padded", stage: "stage", version: "version" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
936
- SixRoot = __decorate([
937
- ProxyCmp({
938
- inputs: ['breakpoint', 'padded', 'stage', 'version']
939
- })
940
- ], SixRoot);
941
- export { SixRoot };
942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixRoot, decorators: [{
943
- type: Component,
944
- args: [{
945
- selector: 'six-root',
946
- changeDetection: ChangeDetectionStrategy.OnPush,
947
- template: '<ng-content></ng-content>',
948
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
949
- inputs: ['breakpoint', 'padded', 'stage', 'version'],
950
- }]
951
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
952
- let SixSearchField = class SixSearchField {
953
- constructor(c, r, z) {
954
- this.z = z;
955
- c.detach();
956
- this.el = r.nativeElement;
957
- proxyOutputs(this, this.el, ['six-search-field-change']);
958
- }
959
- };
960
- SixSearchField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSearchField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
961
- SixSearchField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSearchField, selector: "six-search-field", inputs: { clearable: "clearable", debounce: "debounce", disabled: "disabled", placeholder: "placeholder", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
962
- SixSearchField = __decorate([
963
- ProxyCmp({
964
- inputs: ['clearable', 'debounce', 'disabled', 'placeholder', 'value']
965
- })
966
- ], SixSearchField);
967
- export { SixSearchField };
968
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSearchField, decorators: [{
969
- type: Component,
970
- args: [{
971
- selector: 'six-search-field',
972
- changeDetection: ChangeDetectionStrategy.OnPush,
973
- template: '<ng-content></ng-content>',
974
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
975
- inputs: ['clearable', 'debounce', 'disabled', 'placeholder', 'value'],
976
- }]
977
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
978
- let SixSelect = class SixSelect {
979
- constructor(c, r, z) {
980
- this.z = z;
981
- c.detach();
982
- this.el = r.nativeElement;
983
- proxyOutputs(this, this.el, ['six-select-change', 'six-select-focus', 'six-select-blur']);
984
- }
985
- };
986
- SixSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
987
- SixSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
988
- SixSelect = __decorate([
989
- ProxyCmp({
990
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
991
- methods: ['setFocus']
992
- })
993
- ], SixSelect);
994
- export { SixSelect };
995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSelect, decorators: [{
996
- type: Component,
997
- args: [{
998
- selector: 'six-select',
999
- changeDetection: ChangeDetectionStrategy.OnPush,
1000
- template: '<ng-content></ng-content>',
1001
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1002
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
1003
- }]
1004
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1005
- let SixSidebar = class SixSidebar {
1006
- constructor(c, r, z) {
1007
- this.z = z;
1008
- c.detach();
1009
- this.el = r.nativeElement;
1010
- proxyOutputs(this, this.el, ['six-sidebar-show', 'six-sidebar-after-show', 'six-sidebar-hide', 'six-sidebar-after-hide', 'six-sidebar-initial-focus']);
1011
- }
1012
- };
1013
- SixSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1014
- SixSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSidebar, selector: "six-sidebar", inputs: { open: "open", position: "position", toggled: "toggled", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1015
- SixSidebar = __decorate([
1016
- ProxyCmp({
1017
- inputs: ['open', 'position', 'toggled', 'width'],
1018
- methods: ['toggle', 'show', 'hide', 'selectItemByIndex', 'selectItemByName']
1019
- })
1020
- ], SixSidebar);
1021
- export { SixSidebar };
1022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebar, decorators: [{
1023
- type: Component,
1024
- args: [{
1025
- selector: 'six-sidebar',
1026
- changeDetection: ChangeDetectionStrategy.OnPush,
1027
- template: '<ng-content></ng-content>',
1028
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1029
- inputs: ['open', 'position', 'toggled', 'width'],
1030
- }]
1031
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1032
- let SixSidebarItem = class SixSidebarItem {
1033
- constructor(c, r, z) {
1034
- this.z = z;
1035
- c.detach();
1036
- this.el = r.nativeElement;
1037
- }
1038
- };
1039
- SixSidebarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1040
- SixSidebarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSidebarItem, selector: "six-sidebar-item", inputs: { disabled: "disabled", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1041
- SixSidebarItem = __decorate([
1042
- ProxyCmp({
1043
- inputs: ['disabled', 'selected', 'value']
1044
- })
1045
- ], SixSidebarItem);
1046
- export { SixSidebarItem };
1047
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebarItem, decorators: [{
1048
- type: Component,
1049
- args: [{
1050
- selector: 'six-sidebar-item',
1051
- changeDetection: ChangeDetectionStrategy.OnPush,
1052
- template: '<ng-content></ng-content>',
1053
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1054
- inputs: ['disabled', 'selected', 'value'],
1055
- }]
1056
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1057
- let SixSidebarItemGroup = class SixSidebarItemGroup {
1058
- constructor(c, r, z) {
1059
- this.z = z;
1060
- c.detach();
1061
- this.el = r.nativeElement;
1062
- }
1063
- };
1064
- SixSidebarItemGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebarItemGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1065
- SixSidebarItemGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSidebarItemGroup, selector: "six-sidebar-item-group", inputs: { icon: "icon", name: "name", open: "open", summaryIcon: "summaryIcon", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1066
- SixSidebarItemGroup = __decorate([
1067
- ProxyCmp({
1068
- inputs: ['icon', 'name', 'open', 'summaryIcon', 'value']
1069
- })
1070
- ], SixSidebarItemGroup);
1071
- export { SixSidebarItemGroup };
1072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSidebarItemGroup, decorators: [{
1073
- type: Component,
1074
- args: [{
1075
- selector: 'six-sidebar-item-group',
1076
- changeDetection: ChangeDetectionStrategy.OnPush,
1077
- template: '<ng-content></ng-content>',
1078
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1079
- inputs: ['icon', 'name', 'open', 'summaryIcon', 'value'],
1080
- }]
1081
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1082
- let SixSpinner = class SixSpinner {
1083
- constructor(c, r, z) {
1084
- this.z = z;
1085
- c.detach();
1086
- this.el = r.nativeElement;
1087
- }
1088
- };
1089
- SixSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1090
- SixSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSpinner, selector: "six-spinner", inputs: { six: "six" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1091
- SixSpinner = __decorate([
1092
- ProxyCmp({
1093
- inputs: ['six']
1094
- })
1095
- ], SixSpinner);
1096
- export { SixSpinner };
1097
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSpinner, decorators: [{
1098
- type: Component,
1099
- args: [{
1100
- selector: 'six-spinner',
1101
- changeDetection: ChangeDetectionStrategy.OnPush,
1102
- template: '<ng-content></ng-content>',
1103
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1104
- inputs: ['six'],
1105
- }]
1106
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1107
- let SixStageIndicator = class SixStageIndicator {
1108
- constructor(c, r, z) {
1109
- this.z = z;
1110
- c.detach();
1111
- this.el = r.nativeElement;
1112
- }
1113
- };
1114
- SixStageIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixStageIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1115
- SixStageIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixStageIndicator, selector: "six-stage-indicator", inputs: { stage: "stage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1116
- SixStageIndicator = __decorate([
1117
- ProxyCmp({
1118
- inputs: ['stage']
1119
- })
1120
- ], SixStageIndicator);
1121
- export { SixStageIndicator };
1122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixStageIndicator, decorators: [{
1123
- type: Component,
1124
- args: [{
1125
- selector: 'six-stage-indicator',
1126
- changeDetection: ChangeDetectionStrategy.OnPush,
1127
- template: '<ng-content></ng-content>',
1128
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1129
- inputs: ['stage'],
1130
- }]
1131
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1132
- let SixSwitch = class SixSwitch {
1133
- constructor(c, r, z) {
1134
- this.z = z;
1135
- c.detach();
1136
- this.el = r.nativeElement;
1137
- proxyOutputs(this, this.el, ['six-switch-blur', 'six-switch-change', 'six-switch-focus']);
1138
- }
1139
- };
1140
- SixSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1141
- SixSwitch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixSwitch, selector: "six-switch", inputs: { checked: "checked", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", invalid: "invalid", label: "label", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1142
- SixSwitch = __decorate([
1143
- ProxyCmp({
1144
- inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'invalid', 'label', 'name', 'required', 'value'],
1145
- methods: ['setFocus', 'removeFocus']
1146
- })
1147
- ], SixSwitch);
1148
- export { SixSwitch };
1149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixSwitch, decorators: [{
1150
- type: Component,
1151
- args: [{
1152
- selector: 'six-switch',
1153
- changeDetection: ChangeDetectionStrategy.OnPush,
1154
- template: '<ng-content></ng-content>',
1155
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1156
- inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'invalid', 'label', 'name', 'required', 'value'],
1157
- }]
1158
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1159
- let SixTab = class SixTab {
1160
- constructor(c, r, z) {
1161
- this.z = z;
1162
- c.detach();
1163
- this.el = r.nativeElement;
1164
- proxyOutputs(this, this.el, ['six-tab-close']);
1165
- }
1166
- };
1167
- SixTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1168
- SixTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTab, selector: "six-tab", inputs: { active: "active", closable: "closable", disabled: "disabled", panel: "panel" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1169
- SixTab = __decorate([
1170
- ProxyCmp({
1171
- inputs: ['active', 'closable', 'disabled', 'panel'],
1172
- methods: ['setFocus', 'removeFocus']
1173
- })
1174
- ], SixTab);
1175
- export { SixTab };
1176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTab, decorators: [{
1177
- type: Component,
1178
- args: [{
1179
- selector: 'six-tab',
1180
- changeDetection: ChangeDetectionStrategy.OnPush,
1181
- template: '<ng-content></ng-content>',
1182
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1183
- inputs: ['active', 'closable', 'disabled', 'panel'],
1184
- }]
1185
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1186
- let SixTabGroup = class SixTabGroup {
1187
- constructor(c, r, z) {
1188
- this.z = z;
1189
- c.detach();
1190
- this.el = r.nativeElement;
1191
- proxyOutputs(this, this.el, ['six-tab-show', 'six-tab-hide']);
1192
- }
1193
- };
1194
- SixTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTabGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1195
- SixTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTabGroup, selector: "six-tab-group", inputs: { noScrollControls: "noScrollControls", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1196
- SixTabGroup = __decorate([
1197
- ProxyCmp({
1198
- inputs: ['noScrollControls', 'placement'],
1199
- methods: ['show']
1200
- })
1201
- ], SixTabGroup);
1202
- export { SixTabGroup };
1203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTabGroup, decorators: [{
1204
- type: Component,
1205
- args: [{
1206
- selector: 'six-tab-group',
1207
- changeDetection: ChangeDetectionStrategy.OnPush,
1208
- template: '<ng-content></ng-content>',
1209
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1210
- inputs: ['noScrollControls', 'placement'],
1211
- }]
1212
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1213
- let SixTabPanel = class SixTabPanel {
1214
- constructor(c, r, z) {
1215
- this.z = z;
1216
- c.detach();
1217
- this.el = r.nativeElement;
1218
- }
1219
- };
1220
- SixTabPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTabPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1221
- SixTabPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTabPanel, selector: "six-tab-panel", inputs: { active: "active", name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1222
- SixTabPanel = __decorate([
1223
- ProxyCmp({
1224
- inputs: ['active', 'name']
1225
- })
1226
- ], SixTabPanel);
1227
- export { SixTabPanel };
1228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTabPanel, decorators: [{
1229
- type: Component,
1230
- args: [{
1231
- selector: 'six-tab-panel',
1232
- changeDetection: ChangeDetectionStrategy.OnPush,
1233
- template: '<ng-content></ng-content>',
1234
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1235
- inputs: ['active', 'name'],
1236
- }]
1237
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1238
- let SixTag = class SixTag {
1239
- constructor(c, r, z) {
1240
- this.z = z;
1241
- c.detach();
1242
- this.el = r.nativeElement;
1243
- proxyOutputs(this, this.el, ['six-tag-clear']);
1244
- }
1245
- };
1246
- SixTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTag, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1247
- SixTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTag, selector: "six-tag", inputs: { clearable: "clearable", pill: "pill", size: "size", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1248
- SixTag = __decorate([
1249
- ProxyCmp({
1250
- inputs: ['clearable', 'pill', 'size', 'type']
1251
- })
1252
- ], SixTag);
1253
- export { SixTag };
1254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTag, decorators: [{
1255
- type: Component,
1256
- args: [{
1257
- selector: 'six-tag',
1258
- changeDetection: ChangeDetectionStrategy.OnPush,
1259
- template: '<ng-content></ng-content>',
1260
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1261
- inputs: ['clearable', 'pill', 'size', 'type'],
1262
- }]
1263
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1264
- let SixTextarea = class SixTextarea {
1265
- constructor(c, r, z) {
1266
- this.z = z;
1267
- c.detach();
1268
- this.el = r.nativeElement;
1269
- proxyOutputs(this, this.el, ['six-textarea-change', 'six-textarea-input', 'six-textarea-focus', 'six-textarea-blur']);
1270
- }
1271
- };
1272
- SixTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1273
- SixTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTextarea, selector: "six-textarea", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", maxlength: "maxlength", minlength: "minlength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", resize: "resize", rows: "rows", size: "size", spellcheck: "spellcheck", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1274
- SixTextarea = __decorate([
1275
- ProxyCmp({
1276
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1277
- methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
1278
- })
1279
- ], SixTextarea);
1280
- export { SixTextarea };
1281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTextarea, decorators: [{
1282
- type: Component,
1283
- args: [{
1284
- selector: 'six-textarea',
1285
- changeDetection: ChangeDetectionStrategy.OnPush,
1286
- template: '<ng-content></ng-content>',
1287
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1288
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'maxlength', 'minlength', 'name', 'placeholder', 'readonly', 'required', 'resize', 'rows', 'size', 'spellcheck', 'value'],
1289
- }]
1290
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1291
- let SixTile = class SixTile {
1292
- constructor(c, r, z) {
1293
- this.z = z;
1294
- c.detach();
1295
- this.el = r.nativeElement;
1296
- proxyOutputs(this, this.el, ['six-tile-closed', 'six-tile-selected']);
1297
- }
1298
- };
1299
- SixTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1300
- SixTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTile, selector: "six-tile", inputs: { closeable: "closeable", disableTooltip: "disableTooltip", disabled: "disabled", elevated: "elevated", iconName: "iconName", label: "label", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1301
- SixTile = __decorate([
1302
- ProxyCmp({
1303
- inputs: ['closeable', 'disableTooltip', 'disabled', 'elevated', 'iconName', 'label', 'size'],
1304
- methods: ['hide', 'show']
1305
- })
1306
- ], SixTile);
1307
- export { SixTile };
1308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTile, decorators: [{
1309
- type: Component,
1310
- args: [{
1311
- selector: 'six-tile',
1312
- changeDetection: ChangeDetectionStrategy.OnPush,
1313
- template: '<ng-content></ng-content>',
1314
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1315
- inputs: ['closeable', 'disableTooltip', 'disabled', 'elevated', 'iconName', 'label', 'size'],
1316
- }]
1317
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1318
- let SixTimepicker = class SixTimepicker {
1319
- constructor(c, r, z) {
1320
- this.z = z;
1321
- c.detach();
1322
- this.el = r.nativeElement;
1323
- proxyOutputs(this, this.el, ['six-timepicker-change', 'six-timepicker-change-debounced', 'six-timepicker-clear']);
1324
- }
1325
- };
1326
- SixTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTimepicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1327
- SixTimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTimepicker, selector: "six-timepicker", inputs: { clearable: "clearable", debounce: "debounce", defaultTime: "defaultTime", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", format: "format", hoist: "hoist", iconPosition: "iconPosition", inline: "inline", interval: "interval", invalid: "invalid", label: "label", name: "name", open: "open", placeholder: "placeholder", placement: "placement", readonly: "readonly", required: "required", separator: "separator", size: "size", timeout: "timeout", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1328
- SixTimepicker = __decorate([
1329
- ProxyCmp({
1330
- inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorText', 'errorTextCount', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'invalid', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1331
- methods: ['setFocus']
1332
- })
1333
- ], SixTimepicker);
1334
- export { SixTimepicker };
1335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTimepicker, decorators: [{
1336
- type: Component,
1337
- args: [{
1338
- selector: 'six-timepicker',
1339
- changeDetection: ChangeDetectionStrategy.OnPush,
1340
- template: '<ng-content></ng-content>',
1341
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1342
- inputs: ['clearable', 'debounce', 'defaultTime', 'disabled', 'errorText', 'errorTextCount', 'format', 'hoist', 'iconPosition', 'inline', 'interval', 'invalid', 'label', 'name', 'open', 'placeholder', 'placement', 'readonly', 'required', 'separator', 'size', 'timeout', 'value'],
1343
- }]
1344
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1345
- let SixTooltip = class SixTooltip {
1346
- constructor(c, r, z) {
1347
- this.z = z;
1348
- c.detach();
1349
- this.el = r.nativeElement;
1350
- proxyOutputs(this, this.el, ['six-tooltip-show', 'six-tooltip-after-show', 'six-tooltip-hide', 'six-tooltip-after-hide']);
1351
- }
1352
- };
1353
- SixTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1354
- SixTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SixTooltip, selector: "six-tooltip", inputs: { content: "content", disabled: "disabled", distance: "distance", open: "open", placement: "placement", skidding: "skidding", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1355
- SixTooltip = __decorate([
1356
- ProxyCmp({
1357
- inputs: ['content', 'disabled', 'distance', 'open', 'placement', 'skidding', 'trigger'],
1358
- methods: ['show', 'hide']
1359
- })
1360
- ], SixTooltip);
1361
- export { SixTooltip };
1362
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SixTooltip, decorators: [{
1363
- type: Component,
1364
- args: [{
1365
- selector: 'six-tooltip',
1366
- changeDetection: ChangeDetectionStrategy.OnPush,
1367
- template: '<ng-content></ng-content>',
1368
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1369
- inputs: ['content', 'disabled', 'distance', 'open', 'placement', 'skidding', 'trigger'],
1370
- }]
1371
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1372
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzswR0FMVSxhQUFhOzhGQUFiLGFBQWEsa0ZBSmQsMkJBQTJCO0FBSTFCLGFBQWE7SUFWekIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxhQUFhLENBTXpCO1NBTlksYUFBYTsyRkFBYixhQUFhO2tCQVB6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEI7O0FBd0JNLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdB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RSxTQUFTLEVBQUUsT0FBTyxDQUFDO2lCQUN0Ujs7QUF5Q00sSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQzs7dUdBTlUsVUFBVTsyRkFBVixVQUFVLCtNQUpYLDJCQUEyQjtBQUkxQixVQUFVO0lBWHRCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztRQUN2RixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQzFCLENBQUM7R0FRVyxVQUFVLENBT3RCO1NBUFksVUFBVTsyRkFBVixVQUFVO2tCQVB0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7aUJBQ3hGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NldC1hdHRyaWJ1dGVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTZXRBdHRyaWJ1dGVzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2V0QXR0cmlidXRlcyBleHRlbmRzIENvbXBvbmVudHMuU2V0QXR0cmlidXRlcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zYWJsZScsICdkdXJhdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1hbGVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnZHVyYXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEFsZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWFsZXJ0LXNob3cnLCAnc2l4LWFsZXJ0LWFmdGVyLXNob3cnLCAnc2l4LWFsZXJ0LWhpZGUnLCAnc2l4LWFsZXJ0LWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4QWxlcnRFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QWxlcnQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEFsZXJ0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWxlcnQgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtYWxlcnQtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1hbGVydC1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhBbGVydEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhbGVydCBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtYWxlcnQtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtYWxlcnQtYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3NoYXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYXZhdGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHQnLCAnaW1hZ2UnLCAnaW5pdGlhbHMnLCAnc2hhcGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhBdmF0YXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGlsbCcsICdwdWxzZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BpbGwnLCAncHVsc2UnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJldCcsICdjaXJjbGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdsb2FkaW5nJywgJ25hbWUnLCAncGlsbCcsICdyZXNldCcsICdzaXplJywgJ3N1Ym1pdCcsICd0YXJnZXQnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJldCcsICdjaXJjbGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdsb2FkaW5nJywgJ25hbWUnLCAncGlsbCcsICdyZXNldCcsICdzaXplJywgJ3N1Ym1pdCcsICd0YXJnZXQnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtYnV0dG9uLWJsdXInLCAnc2l4LWJ1dHRvbi1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhCdXR0b25FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhCdXR0b24ge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWJ1dHRvbi1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhCdXR0b25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1idXR0b24tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEJ1dHRvbkVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Q2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeENhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbmRldGVybWluYXRlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1jaGVja2JveC1ibHVyJywgJ3NpeC1jaGVja2JveC1jaGFuZ2UnLCAnc2l4LWNoZWNrYm94LWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeENoZWNrYm94RW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Q2hlY2tib3hFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtY2hlY2tib3gtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93ZWREYXRlcycsICdjbGVhcmFibGUnLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkYXRlRm9ybWF0JywgJ2RlYm91bmNlJywgJ2RlZmF1bHREYXRlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdzZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGF0ZUZvcm1hdCcsICdkZWJvdW5jZScsICdkZWZhdWx0RGF0ZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERhdGVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZGF0ZXBpY2tlci1zZWxlY3QnLCAnc2l4LWRhdGVwaWNrZXItY2xlYXInLCAnc2l4LWRhdGVwaWNrZXItYmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQgYXMgSVNpeERhdGVwaWNrZXJTaXhEYXRlcGlja2VyU2VsZWN0UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGF0ZXBpY2tlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEYXRlcGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItc2VsZWN0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtZGF0ZXBpY2tlci1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtZGF0ZXBpY2tlci1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGFzQ29udGVudCcsICdpbmxpbmUnLCAnb3BlbicsICdzZWxlY3RhYmxlRW1wdHknLCAnc3VtbWFyeScsICdzdW1tYXJ5SWNvbicsICdzdW1tYXJ5SWNvblNpemUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoYXNDb250ZW50JywgJ2lubGluZScsICdvcGVuJywgJ3NlbGVjdGFibGVFbXB0eScsICdzdW1tYXJ5JywgJ3N1bW1hcnlJY29uJywgJ3N1bW1hcnlJY29uU2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEZXRhaWxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRldGFpbHMtc2hvdycsICdzaXgtZGV0YWlscy1hZnRlci1zaG93JywgJ3NpeC1kZXRhaWxzLWhpZGUnLCAnc2l4LWRldGFpbHMtYWZ0ZXItaGlkZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERldGFpbHMge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkZXRhaWxzIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGV0YWlscyBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGV0YWlscy1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRldGFpbHMgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGV0YWlscyBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kaWFsb2ctc2hvdycsICdzaXgtZGlhbG9nLWFmdGVyLXNob3cnLCAnc2l4LWRpYWxvZy1oaWRlJywgJ3NpeC1kaWFsb2ctYWZ0ZXItaGlkZScsICdzaXgtZGlhbG9nLWluaXRpYWwtZm9jdXMnLCAnc2l4LWRpYWxvZy1vdmVybGF5LWRpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGlhbG9nRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU2l4RGlhbG9nIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRpYWxvZyBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGlhbG9nLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRpYWxvZyBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIG9wZW5zIGFuZCB0aGUgcGFuZWwgZ2FpbnMgZm9jdXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBmb2N1cyBhbmRcbmFsbG93IHlvdSB0byBzZXQgaXQgb24gYSBkaWZmZXJlbnQgZWxlbWVudCBpbiB0aGUgZGlhbG9nLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtZGlhbG9nLWluaXRpYWwtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsaWNrZWQuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCB0aGUgZGlhbG9nIGZyb20gY2xvc2luZy5cbiAgICovXG4gICdzaXgtZGlhbG9nLW92ZXJsYXktZGlzbWlzcyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lZCcsICdsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJywgJ3BsYWNlbWVudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRyYXdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVkJywgJ2xhYmVsJywgJ25vSGVhZGVyJywgJ29wZW4nLCAncGxhY2VtZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERyYXdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kcmF3ZXItc2hvdycsICdzaXgtZHJhd2VyLWFmdGVyLXNob3cnLCAnc2l4LWRyYXdlci1oaWRlJywgJ3NpeC1kcmF3ZXItYWZ0ZXItaGlkZScsICdzaXgtZHJhd2VyLWluaXRpYWwtZm9jdXMnLCAnc2l4LWRyYXdlci1vdmVybGF5LWRpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RHJhd2VyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERyYXdlciBleHRlbmRzIENvbXBvbmVudHMuU2l4RHJhd2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRyYXdlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyYXdlciBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJhd2VyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcmF3ZXIgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRyYXdlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyYXdlciBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyYXdlci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIG9wZW5zIGFuZCB0aGUgcGFuZWwgZ2FpbnMgZm9jdXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBmb2N1cyBhbmRcbmFsbG93IHlvdSB0byBzZXQgaXQgb24gYSBkaWZmZXJlbnQgZWxlbWVudCBpbiB0aGUgZHJhd2VyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtZHJhd2VyLWluaXRpYWwtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsaWNrZWQuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCB0aGUgZHJhd2VyIGZyb20gY2xvc2luZy5cbiAgICovXG4gICdzaXgtZHJhd2VyLW92ZXJsYXktZGlzbWlzcyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FzeW5jRmlsdGVyJywgJ2F1dG9mb2N1c0ZpbHRlcicsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2Rpc2FibGVIaWRlT25FbnRlckFuZFNwYWNlJywgJ2Rpc3RhbmNlJywgJ2ZpbHRlcicsICdmaWx0ZXJEZWJvdW5jZScsICdmaWx0ZXJQbGFjZWhvbGRlcicsICdob2lzdCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAncmVwb3NpdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvZm9jdXNGaWx0ZXInLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkaXNhYmxlSGlkZU9uRW50ZXJBbmRTcGFjZScsICdkaXN0YW5jZScsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaG9pc3QnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRyb3Bkb3duLXNob3cnLCAnc2l4LWRyb3Bkb3duLWFmdGVyLXNob3cnLCAnc2l4LWRyb3Bkb3duLWhpZGUnLCAnc2l4LWRyb3Bkb3duLWFmdGVyLWhpZGUnLCAnc2l4LWRyb3Bkb3duLWF1dG8tZmlsdGVyLWZpcmVkJywgJ3NpeC1hc3luYy1maWx0ZXItZmlyZWQnLCAnc2l4LWRyb3Bkb3duLXNjcm9sbCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQgYXMgSVNpeERyb3Bkb3duU2l4RHJvcGRvd25BdXRvRmlsdGVyUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeERyb3Bkb3duQXN5bmNGaWx0ZXJQYXlsb2FkIGFzIElTaXhEcm9wZG93blNpeERyb3Bkb3duQXN5bmNGaWx0ZXJQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RHJvcGRvd25TY3JvbGxQYXlsb2FkIGFzIElTaXhEcm9wZG93blNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuU2l4RHJvcGRvd24ge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJvcGRvd24gb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyb3Bkb3duIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJvcGRvd24gY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhdXRvIGZpbHRlciBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtZHJvcGRvd24tYXV0by1maWx0ZXItZmlyZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duU2l4RHJvcGRvd25BdXRvRmlsdGVyUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhc3luYyBmaWx0ZXIgaXMgdHJpZ2dlcmVkXG4gICAqL1xuICAnc2l4LWFzeW5jLWZpbHRlci1maXJlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25TaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHNjcm9sbHMgaW5zaWRlIGRyb3Bkb3duIHBhbmVsLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1zY3JvbGwnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duU2l4RHJvcGRvd25TY3JvbGxQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZXJyb3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RXJyb3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhFcnJvciBleHRlbmRzIENvbXBvbmVudHMuU2l4RXJyb3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tRGVzY3JpcHRpb24nLCAnY3VzdG9tSWNvbicsICdjdXN0b21UaXRsZScsICdlcnJvckNvZGUnLCAnbGFuZ3VhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1lcnJvci1wYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21EZXNjcmlwdGlvbicsICdjdXN0b21JY29uJywgJ2N1c3RvbVRpdGxlJywgJ2Vycm9yQ29kZScsICdsYW5ndWFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhFcnJvclBhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhFcnJvclBhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEVycm9yUGFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZpbGUtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZpbGVMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlJywgJ2lkZW50aWZpZXInLCAnbmFtZScsICdub2RlbGV0ZScsICdub2Rvd25sb2FkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZScsICdpZGVudGlmaWVyJywgJ25hbWUnLCAnbm9kZWxldGUnLCAnbm9kb3dubG9hZCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZpbGVMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1maWxlLWxpc3QtaXRlbS1kb3dubG9hZCcsICdzaXgtZmlsZS1saXN0LWl0ZW0tcmVtb3ZlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhGaWxlTGlzdERvd25sb2FkUGF5bG9hZCBhcyBJU2l4RmlsZUxpc3RJdGVtU2l4RmlsZUxpc3REb3dubG9hZFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhGaWxlTGlzdFJlbW92ZVBheWxvYWQgYXMgSVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0UmVtb3ZlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZpbGVMaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZmlsZSBkb3dubG9hZC5cbiAgICovXG4gICdzaXgtZmlsZS1saXN0LWl0ZW0tZG93bmxvYWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0RG93bmxvYWRQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZmlsZSByZW1vdmUuXG4gICAqL1xuICAnc2l4LWZpbGUtbGlzdC1pdGVtLXJlbW92ZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RmlsZUxpc3RJdGVtU2l4RmlsZUxpc3RSZW1vdmVQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdjb21wYWN0JywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ21heEZpbGVTaXplJywgJ211bHRpcGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZmlsZS11cGxvYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdjb21wYWN0JywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ21heEZpbGVTaXplJywgJ211bHRpcGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZpbGVVcGxvYWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZmlsZS11cGxvYWQtc3VjY2VzcycsICdzaXgtZmlsZS11cGxvYWQtZmFpbHVyZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkIGFzIElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkIGFzIElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZpbGVVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZpbGVVcGxvYWQge1xuICAvKipcbiAgICogVHJpZ2dlcnMgd2hlbiBhIGZpbGUgaXMgYWRkZWQuXG4gICAqL1xuICAnc2l4LWZpbGUtdXBsb2FkLXN1Y2Nlc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVVcGxvYWRTaXhGaWxlVXBsb2FkU3VjY2Vzc1BheWxvYWQ+PjtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIHdoZW4gYW4gdXBsb2FkZWQgZmlsZSBkb2Vzbid0IG1hdGNoIE1JTUUgdHlwZSBvciBtYXggZmlsZSBzaXplLlxuICAgKi9cbiAgJ3NpeC1maWxlLXVwbG9hZC1mYWlsdXJlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU2l4Rm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hlbHBUZXh0JywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1ncm91cC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGVscFRleHQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhHcm91cExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4R3JvdXBMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4R3JvdXBMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja2FibGVMb2dvJywgJ29wZW5IYW1idXJnZXJNZW51JywgJ29wZW5TZWFyY2gnLCAnc2hpZnRDb250ZW50J10sXG4gIG1ldGhvZHM6IFsnc2V0U2VhcmNoT3BlblN0YXRlJywgJ2dldElzU2VhcmNoT3BlbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2thYmxlTG9nbycsICdvcGVuSGFtYnVyZ2VyTWVudScsICdvcGVuU2VhcmNoJywgJ3NoaWZ0Q29udGVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtaGVhZGVyLWFwcC1uYW1lLWNsaWNrZWQnLCAnc2l4LWhlYWRlci1hcHAtc3dpdGNoZXItc2VsZWN0JywgJ3NpeC1oZWFkZXItcHJvZmlsZS1zZWxlY3QnLCAnc2l4LWhlYWRlci1oYW1idXJnZXItbWVudS1jbGlja2VkJywgJ3NpeC1oZWFkZXItbG9nby1jbGlja2VkJywgJ3NpeC1oZWFkZXItc2VhcmNoLWZpZWxkLXRvZ2dsZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhIZWFkZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhIZWFkZXJBcHBTd2l0Y2hlclNlbGVjdFBheWxvYWQgYXMgSVNpeEhlYWRlclNpeEhlYWRlckFwcFN3aXRjaGVyU2VsZWN0UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEhlYWRlclByb2ZpbGVTZWxlY3RQYXlsb2FkIGFzIElTaXhIZWFkZXJTaXhIZWFkZXJQcm9maWxlU2VsZWN0UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEhlYWRlclNlYXJjaEZpZWxkVG9nZ2xlIGFzIElTaXhIZWFkZXJTaXhIZWFkZXJTZWFyY2hGaWVsZFRvZ2dsZSB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEhlYWRlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIG5hbWUgb2YgdGhlIHNlbGVjdGVkIGFwcCBpcyBjbGlja2VkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItYXBwLW5hbWUtY2xpY2tlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBtZW51IGl0ZW0gaXMgaW4gdGhlIGFwcCBzd2l0Y2hlciBtZW51IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItYXBwLXN3aXRjaGVyLXNlbGVjdCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyU2l4SGVhZGVyQXBwU3dpdGNoZXJTZWxlY3RQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBtZW51IGl0ZW0gaXMgaW4gdGhlIHByb2ZpbGUgbWVudSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLXByb2ZpbGUtc2VsZWN0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJTaXhIZWFkZXJQcm9maWxlU2VsZWN0UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBoYW1idXJnZXIgbWVudSBpcyBjbGlja2VkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItaGFtYnVyZ2VyLW1lbnUtY2xpY2tlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGhlYWRlciBsb2dvIGlzIGNsaWNrZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1sb2dvLWNsaWNrZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHNlYXJjaCBmaWVsZCBpcyB0b2dnbGVkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItc2VhcmNoLWZpZWxkLXRvZ2dsZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyU2l4SGVhZGVyU2VhcmNoRmllbGRUb2dnbGU+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsbGVkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaWxsZWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SWNvbiBleHRlbmRzIENvbXBvbmVudHMuU2l4SWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdodG1sJywgJ2xhYmVsJywgJ25hbWUnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWljb24tYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdodG1sJywgJ2xhYmVsJywgJ25hbWUnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhJY29uQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SWNvbkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU2l4SWNvbkJ1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGluZScsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3N0ZXAnLCAndG9nZ2xlUGFzc3dvcmQnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ3NlbGVjdCcsICdzZXRTZWxlY3Rpb25SYW5nZScsICdzZXRSYW5nZVRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdjbGVhcmFibGUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGF0dGVybicsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3RvZ2dsZVBhc3N3b3JkJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtaW5wdXQtY2hhbmdlJywgJ3NpeC1pbnB1dC1jbGVhcicsICdzaXgtaW5wdXQtaW5wdXQnLCAnc2l4LWlucHV0LWZvY3VzJywgJ3NpeC1pbnB1dC1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeElucHV0RW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJbnB1dCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LWlucHV0LWNsZWFyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGlucHV0LiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1pbnB1dCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtaW5wdXQtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LWlucHV0LWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlYm91bmNlJywgJ2ludGVydmFsJywgJ2l0ZW1zJywgJ21heCcsICdtaW4nLCAncGFkZGVkJywgJ3BhZGRpbmdDaGFyJywgJ3BhZGRpbmdEaXJlY3Rpb24nLCAncGFkZGluZ0xlbmd0aCcsICdyb3VuZHRyaXAnLCAnc3RlcCcsICd0aW1lb3V0JywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1pdGVtLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVib3VuY2UnLCAnaW50ZXJ2YWwnLCAnaXRlbXMnLCAnbWF4JywgJ21pbicsICdwYWRkZWQnLCAncGFkZGluZ0NoYXInLCAncGFkZGluZ0RpcmVjdGlvbicsICdwYWRkaW5nTGVuZ3RoJywgJ3JvdW5kdHJpcCcsICdzdGVwJywgJ3RpbWVvdXQnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhJdGVtUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZScsICdzaXgtaXRlbS1waWNrZXItY2hhbmdlLWRlYm91bmNlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQgYXMgSVNpeEl0ZW1QaWNrZXJTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJdGVtUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJdGVtUGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaXRlbSBwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICAnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SXRlbVBpY2tlclNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGl0ZW0gcGlja2VyJ3MgdmFsdWUgY2hhbmdlcywgYnV0IGRlYm91bmNlZFxuICAgKi9cbiAgJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJdGVtUGlja2VyU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFuZ3VhZ2VzJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbGFuZ3VhZ2Utc3dpdGNoZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlcycsICdzZWxlY3RlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhMYW5ndWFnZVN3aXRjaGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWxhbmd1YWdlLXN3aXRjaGVyLWNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4TGFuZ3VhZ2VTd2l0Y2hlckNoYW5nZVBheWxvYWQgYXMgSVNpeExhbmd1YWdlU3dpdGNoZXJTaXhMYW5ndWFnZVN3aXRjaGVyQ2hhbmdlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhMYW5ndWFnZVN3aXRjaGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhMYW5ndWFnZVN3aXRjaGVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgbGFuZ3VhZ2Ugc3dpdGNoZXJzIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gICdzaXgtbGFuZ3VhZ2Utc3dpdGNoZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhMYW5ndWFnZVN3aXRjaGVyU2l4TGFuZ3VhZ2VTd2l0Y2hlckNoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sdW1ucyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWxheW91dC1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2x1bW5zJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeExheW91dEdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhMYXlvdXRHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhMYXlvdXRHcmlkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BhZGRlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1haW4tY29udGFpbmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwYWRkZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWFpbkNvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1haW5Db250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeE1haW5Db250YWluZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbVNpemUnLCAnaXRlbXMnLCAnaXRlbXNTaG93bicsICdyZW1vdmVCb3hTaGFkb3cnLCAnc2Nyb2xsaW5nRGVib3VuY2UnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3R5cGVUb1NlbGVjdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1TaXplJywgJ2l0ZW1zJywgJ2l0ZW1zU2hvd24nLCAncmVtb3ZlQm94U2hhZG93JywgJ3Njcm9sbGluZ0RlYm91bmNlJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1tZW51LWl0ZW0tc2VsZWN0ZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeE1lbnVJdGVtU2VsZWN0ZWRQYXlsb2FkIGFzIElTaXhNZW51U2l4TWVudUl0ZW1TZWxlY3RlZFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TWVudSBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LW1lbnUtaXRlbS1zZWxlY3RlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4TWVudVNpeE1lbnVJdGVtU2VsZWN0ZWRQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbWVudS1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnVEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TWVudURpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeE1lbnVEaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cycsICdnZXRUZXh0TGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnVMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1waWN0bycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQaWN0byB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFBpY3RvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQaWN0byB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRldGVybWluYXRlJywgJ3BlcmNlbnRhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV0ZXJtaW5hdGUnLCAncGVyY2VudGFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1yaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4UHJvZ3Jlc3NSaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UHJvZ3Jlc3NSaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc1Jpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25hbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYWRpby1ibHVyJywgJ3NpeC1yYWRpby1jaGFuZ2UnLCAnc2l4LXJhZGlvLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhZGlvRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFkaW8tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYW5nZS1jaGFuZ2UnLCAnc2l4LXJhbmdlLWJsdXInLCAnc2l4LXJhbmdlLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhbmdlRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYW5nZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1yYW5nZS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSYW5nZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ3BhZGRlZCcsICdzdGFnZScsICd2ZXJzaW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcm9vdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnJlYWtwb2ludCcsICdwYWRkZWQnLCAnc3RhZ2UnLCAndmVyc2lvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSb290IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXJvb3QtY29sbGFwc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhSb290Q29sbGFwc2VkUGF5bG9hZCBhcyBJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJvb3QgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFJvb3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGRpc3BsYXkgc2l6ZSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgJ3NpeC1yb290LWNvbGxhcHNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNlYXJjaC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlYXJjaEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNlYXJjaC1maWVsZC1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZCBhcyBJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VhcmNoRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNlYXJjaEZpZWxkIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtc2VhcmNoLWZpZWxkLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hlbHBUZXh0JywgJ2hvaXN0JywgJ2lucHV0RGVib3VuY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heFRhZ3NWaXNpYmxlJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaGVscFRleHQnLCAnaG9pc3QnLCAnaW5wdXREZWJvdW5jZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4VGFnc1Zpc2libGUnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1zZWxlY3QtY2hhbmdlJywgJ3NpeC1zZWxlY3QtZm9jdXMnLCAnc2l4LXNlbGVjdC1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIGFzIElTaXhTZWxlY3RTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTZWxlY3RFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtc2VsZWN0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0U2l4U2VsZWN0Q2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNlbGVjdEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdzaG93JywgJ2hpZGUnLCAnc2VsZWN0SXRlbUJ5SW5kZXgnLCAnc2VsZWN0SXRlbUJ5TmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNpZGViYXItc2hvdycsICdzaXgtc2lkZWJhci1hZnRlci1zaG93JywgJ3NpeC1zaWRlYmFyLWhpZGUnLCAnc2l4LXNpZGViYXItYWZ0ZXItaGlkZScsICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFNpZGViYXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhciBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtc2lkZWJhci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBzaWRlYmFyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2lkZWJhci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNpZGViYXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTaWRlYmFySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uJywgJ25hbWUnLCAnb3BlbicsICdzdW1tYXJ5SWNvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXItaXRlbS1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvbicsICduYW1lJywgJ29wZW4nLCAnc3VtbWFyeUljb24nLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2lkZWJhckl0ZW1Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNpZGViYXJJdGVtR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNpZGViYXJJdGVtR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l4J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l4J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTcGlubmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0YWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc3RhZ2UtaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzdGFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTdGFnZUluZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFN0YWdlSW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTdGFnZUluZGljYXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1zd2l0Y2gtYmx1cicsICdzaXgtc3dpdGNoLWNoYW5nZScsICdzaXgtc3dpdGNoLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFN3aXRjaEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLlNpeFN3aXRjaCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXN3aXRjaC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIGNoZWNrZWQgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtc3dpdGNoLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXN3aXRjaC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U3dpdGNoRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjbG9zYWJsZScsICdkaXNhYmxlZCcsICdwYW5lbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xvc2FibGUnLCAnZGlzYWJsZWQnLCAncGFuZWwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRhYi1jbG9zZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUYWJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFiIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0YWIgaXMgY2xvc2FibGUgYW5kIHRoZSBjbG9zZSBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC10YWItY2xvc2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhYkVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydub1Njcm9sbENvbnRyb2xzJywgJ3BsYWNlbWVudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWItZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ25vU2Nyb2xsQ29udHJvbHMnLCAncGxhY2VtZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRhYkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRhYi1zaG93JywgJ3NpeC10YWItaGlkZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4VGFiU2hvd1BheWxvYWQgYXMgSVNpeFRhYkdyb3VwU2l4VGFiU2hvd1BheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhUYWJIaWRlUGF5bG9hZCBhcyBJU2l4VGFiR3JvdXBTaXhUYWJIaWRlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFiR3JvdXAge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgdGFiIGlzIHNob3duLlxuICAgKi9cbiAgJ3NpeC10YWItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFiR3JvdXBTaXhUYWJTaG93UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgdGFiIGlzIGhpZGRlbi5cbiAgICovXG4gICdzaXgtdGFiLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhYkdyb3VwU2l4VGFiSGlkZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ25hbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWItcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICduYW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRhYlBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFiUGFuZWwgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhYlBhbmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdwaWxsJywgJ3NpemUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ3BpbGwnLCAnc2l6ZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRhZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10YWctY2xlYXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGFnRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhZyBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFnIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtdGFnLWNsZWFyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWdFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2l6ZScsICdyb3dzJywgJ3NpemUnLCAnc3BlbGxjaGVjaycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ3NlbGVjdCcsICdzZXRTZWxlY3Rpb25SYW5nZScsICdzZXRSYW5nZVRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4bGVuZ3RoJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jlc2l6ZScsICdyb3dzJywgJ3NpemUnLCAnc3BlbGxjaGVjaycsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10ZXh0YXJlYS1jaGFuZ2UnLCAnc2l4LXRleHRhcmVhLWlucHV0JywgJ3NpeC10ZXh0YXJlYS1mb2N1cycsICdzaXgtdGV4dGFyZWEtYmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuU2l4VGV4dGFyZWEge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGlucHV0LiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1pbnB1dCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdkaXNhYmxlVG9vbHRpcCcsICdkaXNhYmxlZCcsICdlbGV2YXRlZCcsICdpY29uTmFtZScsICdsYWJlbCcsICdzaXplJ10sXG4gIG1ldGhvZHM6IFsnaGlkZScsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2Rpc2FibGVUb29sdGlwJywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb25OYW1lJywgJ2xhYmVsJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10aWxlLWNsb3NlZCcsICdzaXgtdGlsZS1zZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUaWxlRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRpbGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aWxlIHdhcyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LXRpbGUtY2xvc2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaWxlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LXRpbGUtc2VsZWN0ZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbGVFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2RlZmF1bHRUaW1lJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmb3JtYXQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnRlcnZhbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2VwYXJhdG9yJywgJ3NpemUnLCAndGltZW91dCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGltZXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2RlZmF1bHRUaW1lJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmb3JtYXQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnRlcnZhbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2VwYXJhdG9yJywgJ3NpemUnLCAndGltZW91dCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUaW1lcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRpbWVwaWNrZXItY2hhbmdlJywgJ3NpeC10aW1lcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnLCAnc2l4LXRpbWVwaWNrZXItY2xlYXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFRpbWVwaWNrZXJDaGFuZ2UgYXMgSVNpeFRpbWVwaWNrZXJTaXhUaW1lcGlja2VyQ2hhbmdlIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUaW1lcGlja2VyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRpbWVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRpbWVwaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aW1lcGlja2VyJ3MgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgJ3NpeC10aW1lcGlja2VyLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGltZXBpY2tlclNpeFRpbWVwaWNrZXJDaGFuZ2U+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGltZXBpY2tlcidzIHZhbHVlIGNoYW5nZXMsIGJ1dCBkZWJvdW5jZWRcbiAgICovXG4gICdzaXgtdGltZXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaW1lcGlja2VyU2l4VGltZXBpY2tlckNoYW5nZT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC10aW1lcGlja2VyLWNsZWFyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaW1lcGlja2VyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzYWJsZWQnLCAnZGlzdGFuY2UnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzYWJsZWQnLCAnZGlzdGFuY2UnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndHJpZ2dlciddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRvb2x0aXAtc2hvdycsICdzaXgtdG9vbHRpcC1hZnRlci1zaG93JywgJ3NpeC10b29sdGlwLWhpZGUnLCAnc2l4LXRvb2x0aXAtYWZ0ZXItaGlkZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUb29sdGlwRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRvb2x0aXAge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0b29sdGlwIGJlZ2lucyB0byBzaG93LiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBzaG93bi5cbiAgICovXG4gICdzaXgtdG9vbHRpcC1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUb29sdGlwRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b29sdGlwIGhhcyBzaG93biBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtdG9vbHRpcC1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUb29sdGlwRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRvb2x0aXAgYmVnaW5zIHRvIGhpZGUuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGhpZGRlbi5cbiAgICovXG4gICdzaXgtdG9vbHRpcC1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUb29sdGlwRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0b29sdGlwIGhhcyBoaWRkZW4gYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbiJdfQ==