@scania/tegel-angular-17 1.16.0-tdsheaderitem-beta.2 → 1.16.0-tdsheaderitem-beta.4

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 (41) hide show
  1. package/ng-package.json +7 -0
  2. package/package.json +4 -17
  3. package/src/lib/components.module.ts +35 -0
  4. package/{lib/directives/tds-dropdown-value-accessor.d.ts → src/lib/directives/tds-dropdown-value-accessor.ts} +18 -5
  5. package/src/lib/directives/tds-radio-value-accessor.ts +29 -0
  6. package/src/lib/stencil-generated/angular-component-lib/utils.ts +65 -0
  7. package/src/lib/stencil-generated/boolean-value-accessor.ts +28 -0
  8. package/src/lib/stencil-generated/components.ts +2055 -0
  9. package/src/lib/stencil-generated/index.ts +87 -0
  10. package/src/lib/stencil-generated/number-value-accessor.ts +29 -0
  11. package/src/lib/stencil-generated/radio-value-accessor.ts +25 -0
  12. package/src/lib/stencil-generated/text-value-accessor.ts +24 -0
  13. package/src/lib/stencil-generated/value-accessor.ts +39 -0
  14. package/{public-api.d.ts → src/public-api.ts} +4 -0
  15. package/tsconfig.lib.json +14 -0
  16. package/tsconfig.lib.prod.json +10 -0
  17. package/tsconfig.spec.json +14 -0
  18. package/esm2022/lib/components.module.mjs +0 -58
  19. package/esm2022/lib/directives/tds-dropdown-value-accessor.mjs +0 -36
  20. package/esm2022/lib/directives/tds-radio-value-accessor.mjs +0 -41
  21. package/esm2022/lib/stencil-generated/angular-component-lib/utils.mjs +0 -59
  22. package/esm2022/lib/stencil-generated/boolean-value-accessor.mjs +0 -39
  23. package/esm2022/lib/stencil-generated/components.mjs +0 -2063
  24. package/esm2022/lib/stencil-generated/index.mjs +0 -86
  25. package/esm2022/lib/stencil-generated/number-value-accessor.mjs +0 -40
  26. package/esm2022/lib/stencil-generated/text-value-accessor.mjs +0 -35
  27. package/esm2022/lib/stencil-generated/value-accessor.mjs +0 -40
  28. package/esm2022/public-api.mjs +0 -12
  29. package/esm2022/scania-tegel-angular-17.mjs +0 -5
  30. package/fesm2022/scania-tegel-angular-17.mjs +0 -2392
  31. package/fesm2022/scania-tegel-angular-17.mjs.map +0 -1
  32. package/index.d.ts +0 -5
  33. package/lib/components.module.d.ts +0 -12
  34. package/lib/directives/tds-radio-value-accessor.d.ts +0 -13
  35. package/lib/stencil-generated/angular-component-lib/utils.d.ts +0 -9
  36. package/lib/stencil-generated/boolean-value-accessor.d.ts +0 -9
  37. package/lib/stencil-generated/components.d.ts +0 -993
  38. package/lib/stencil-generated/index.d.ts +0 -2
  39. package/lib/stencil-generated/number-value-accessor.d.ts +0 -9
  40. package/lib/stencil-generated/text-value-accessor.d.ts +0 -8
  41. package/lib/stencil-generated/value-accessor.d.ts +0 -18
@@ -1,2063 +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 TdsAccordion = class TdsAccordion {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsAccordion, selector: "tds-accordion", inputs: { hideLastBorder: "hideLastBorder", modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
- };
16
- TdsAccordion = __decorate([
17
- ProxyCmp({
18
- inputs: ['hideLastBorder', 'modeVariant']
19
- })
20
- ], TdsAccordion);
21
- export { TdsAccordion };
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordion, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'tds-accordion',
26
- changeDetection: ChangeDetectionStrategy.OnPush,
27
- template: '<ng-content></ng-content>',
28
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
29
- inputs: ['hideLastBorder', 'modeVariant'],
30
- }]
31
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
32
- let TdsAccordionItem = class TdsAccordionItem {
33
- constructor(c, r, z) {
34
- this.z = z;
35
- c.detach();
36
- this.el = r.nativeElement;
37
- proxyOutputs(this, this.el, ['tdsToggle']);
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordionItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsAccordionItem, selector: "tds-accordion-item", inputs: { disabled: "disabled", expandIconPosition: "expandIconPosition", expanded: "expanded", header: "header", paddingReset: "paddingReset" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
- };
42
- TdsAccordionItem = __decorate([
43
- ProxyCmp({
44
- inputs: ['disabled', 'expandIconPosition', 'expanded', 'header', 'paddingReset'],
45
- methods: ['toggleAccordionItem']
46
- })
47
- ], TdsAccordionItem);
48
- export { TdsAccordionItem };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsAccordionItem, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'tds-accordion-item',
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: '<ng-content></ng-content>',
55
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
56
- inputs: ['disabled', 'expandIconPosition', 'expanded', 'header', 'paddingReset'],
57
- }]
58
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
59
- let TdsBadge = class TdsBadge {
60
- constructor(c, r, z) {
61
- this.z = z;
62
- c.detach();
63
- this.el = r.nativeElement;
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBadge, selector: "tds-badge", inputs: { hidden: "hidden", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
- };
68
- TdsBadge = __decorate([
69
- ProxyCmp({
70
- inputs: ['hidden', 'size', 'value']
71
- })
72
- ], TdsBadge);
73
- export { TdsBadge };
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBadge, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'tds-badge',
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- template: '<ng-content></ng-content>',
80
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
81
- inputs: ['hidden', 'size', 'value'],
82
- }]
83
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
84
- let TdsBanner = class TdsBanner {
85
- constructor(c, r, z) {
86
- this.z = z;
87
- c.detach();
88
- this.el = r.nativeElement;
89
- proxyOutputs(this, this.el, ['tdsClose']);
90
- }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBanner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBanner, selector: "tds-banner", inputs: { bannerId: "bannerId", header: "header", hidden: "hidden", icon: "icon", subheader: "subheader", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
- };
94
- TdsBanner = __decorate([
95
- ProxyCmp({
96
- inputs: ['bannerId', 'header', 'hidden', 'icon', 'subheader', 'variant'],
97
- methods: ['hideBanner', 'showBanner']
98
- })
99
- ], TdsBanner);
100
- export { TdsBanner };
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBanner, decorators: [{
102
- type: Component,
103
- args: [{
104
- selector: 'tds-banner',
105
- changeDetection: ChangeDetectionStrategy.OnPush,
106
- template: '<ng-content></ng-content>',
107
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
108
- inputs: ['bannerId', 'header', 'hidden', 'icon', 'subheader', 'variant'],
109
- }]
110
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
111
- let TdsBlock = class TdsBlock {
112
- constructor(c, r, z) {
113
- this.z = z;
114
- c.detach();
115
- this.el = r.nativeElement;
116
- }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBlock, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBlock, selector: "tds-block", inputs: { modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
- };
120
- TdsBlock = __decorate([
121
- ProxyCmp({
122
- inputs: ['modeVariant']
123
- })
124
- ], TdsBlock);
125
- export { TdsBlock };
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBlock, decorators: [{
127
- type: Component,
128
- args: [{
129
- selector: 'tds-block',
130
- changeDetection: ChangeDetectionStrategy.OnPush,
131
- template: '<ng-content></ng-content>',
132
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
133
- inputs: ['modeVariant'],
134
- }]
135
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
136
- let TdsBodyCell = class TdsBodyCell {
137
- constructor(c, r, z) {
138
- this.z = z;
139
- c.detach();
140
- this.el = r.nativeElement;
141
- }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBodyCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
143
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBodyCell, selector: "tds-body-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", disablePadding: "disablePadding", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
- };
145
- TdsBodyCell = __decorate([
146
- ProxyCmp({
147
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign']
148
- })
149
- ], TdsBodyCell);
150
- export { TdsBodyCell };
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBodyCell, decorators: [{
152
- type: Component,
153
- args: [{
154
- selector: 'tds-body-cell',
155
- changeDetection: ChangeDetectionStrategy.OnPush,
156
- template: '<ng-content></ng-content>',
157
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
158
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign'],
159
- }]
160
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
161
- let TdsBreadcrumb = class TdsBreadcrumb {
162
- constructor(c, r, z) {
163
- this.z = z;
164
- c.detach();
165
- this.el = r.nativeElement;
166
- }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
168
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBreadcrumb, selector: "tds-breadcrumb", inputs: { current: "current" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
169
- };
170
- TdsBreadcrumb = __decorate([
171
- ProxyCmp({
172
- inputs: ['current']
173
- })
174
- ], TdsBreadcrumb);
175
- export { TdsBreadcrumb };
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumb, decorators: [{
177
- type: Component,
178
- args: [{
179
- selector: 'tds-breadcrumb',
180
- changeDetection: ChangeDetectionStrategy.OnPush,
181
- template: '<ng-content></ng-content>',
182
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
183
- inputs: ['current'],
184
- }]
185
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
186
- let TdsBreadcrumbs = class TdsBreadcrumbs {
187
- constructor(c, r, z) {
188
- this.z = z;
189
- c.detach();
190
- this.el = r.nativeElement;
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBreadcrumbs, selector: "tds-breadcrumbs", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
- };
195
- TdsBreadcrumbs = __decorate([
196
- ProxyCmp({})
197
- ], TdsBreadcrumbs);
198
- export { TdsBreadcrumbs };
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBreadcrumbs, decorators: [{
200
- type: Component,
201
- args: [{
202
- selector: 'tds-breadcrumbs',
203
- changeDetection: ChangeDetectionStrategy.OnPush,
204
- template: '<ng-content></ng-content>',
205
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
206
- inputs: [],
207
- }]
208
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
209
- let TdsButton = class TdsButton {
210
- constructor(c, r, z) {
211
- this.z = z;
212
- c.detach();
213
- this.el = r.nativeElement;
214
- }
215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsButton, selector: "tds-button", inputs: { disabled: "disabled", fullbleed: "fullbleed", modeVariant: "modeVariant", size: "size", text: "text", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
217
- };
218
- TdsButton = __decorate([
219
- ProxyCmp({
220
- inputs: ['disabled', 'fullbleed', 'modeVariant', 'size', 'text', 'type', 'variant']
221
- })
222
- ], TdsButton);
223
- export { TdsButton };
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsButton, decorators: [{
225
- type: Component,
226
- args: [{
227
- selector: 'tds-button',
228
- changeDetection: ChangeDetectionStrategy.OnPush,
229
- template: '<ng-content></ng-content>',
230
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
231
- inputs: ['disabled', 'fullbleed', 'modeVariant', 'size', 'text', 'type', 'variant'],
232
- }]
233
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
234
- let TdsCard = class TdsCard {
235
- constructor(c, r, z) {
236
- this.z = z;
237
- c.detach();
238
- this.el = r.nativeElement;
239
- proxyOutputs(this, this.el, ['tdsClick']);
240
- }
241
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
242
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCard, selector: "tds-card", inputs: { bodyDivider: "bodyDivider", bodyImg: "bodyImg", bodyImgAlt: "bodyImgAlt", cardId: "cardId", clickable: "clickable", header: "header", imagePlacement: "imagePlacement", modeVariant: "modeVariant", stretch: "stretch", subheader: "subheader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
243
- };
244
- TdsCard = __decorate([
245
- ProxyCmp({
246
- inputs: ['bodyDivider', 'bodyImg', 'bodyImgAlt', 'cardId', 'clickable', 'header', 'imagePlacement', 'modeVariant', 'stretch', 'subheader']
247
- })
248
- ], TdsCard);
249
- export { TdsCard };
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCard, decorators: [{
251
- type: Component,
252
- args: [{
253
- selector: 'tds-card',
254
- changeDetection: ChangeDetectionStrategy.OnPush,
255
- template: '<ng-content></ng-content>',
256
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
257
- inputs: ['bodyDivider', 'bodyImg', 'bodyImgAlt', 'cardId', 'clickable', 'header', 'imagePlacement', 'modeVariant', 'stretch', 'subheader'],
258
- }]
259
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
260
- let TdsCheckbox = class TdsCheckbox {
261
- constructor(c, r, z) {
262
- this.z = z;
263
- c.detach();
264
- this.el = r.nativeElement;
265
- proxyOutputs(this, this.el, ['tdsChange', 'tdsFocus', 'tdsBlur']);
266
- }
267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
268
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCheckbox, selector: "tds-checkbox", inputs: { checkboxId: "checkboxId", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
269
- };
270
- TdsCheckbox = __decorate([
271
- ProxyCmp({
272
- inputs: ['checkboxId', 'checked', 'disabled', 'indeterminate', 'name', 'required', 'value'],
273
- methods: ['toggleCheckbox']
274
- })
275
- ], TdsCheckbox);
276
- export { TdsCheckbox };
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCheckbox, decorators: [{
278
- type: Component,
279
- args: [{
280
- selector: 'tds-checkbox',
281
- changeDetection: ChangeDetectionStrategy.OnPush,
282
- template: '<ng-content></ng-content>',
283
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
284
- inputs: ['checkboxId', 'checked', 'disabled', 'indeterminate', 'name', 'required', 'value'],
285
- }]
286
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
287
- let TdsChip = class TdsChip {
288
- constructor(c, r, z) {
289
- this.z = z;
290
- c.detach();
291
- this.el = r.nativeElement;
292
- proxyOutputs(this, this.el, ['tdsChange', 'tdsClick']);
293
- }
294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
295
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsChip, selector: "tds-chip", inputs: { checked: "checked", chipId: "chipId", disabled: "disabled", name: "name", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
296
- };
297
- TdsChip = __decorate([
298
- ProxyCmp({
299
- inputs: ['checked', 'chipId', 'disabled', 'name', 'size', 'type', 'value']
300
- })
301
- ], TdsChip);
302
- export { TdsChip };
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsChip, decorators: [{
304
- type: Component,
305
- args: [{
306
- selector: 'tds-chip',
307
- changeDetection: ChangeDetectionStrategy.OnPush,
308
- template: '<ng-content></ng-content>',
309
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
310
- inputs: ['checked', 'chipId', 'disabled', 'name', 'size', 'type', 'value'],
311
- }]
312
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
313
- let TdsCoreHeaderItem = class TdsCoreHeaderItem {
314
- constructor(c, r, z) {
315
- this.z = z;
316
- c.detach();
317
- this.el = r.nativeElement;
318
- }
319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCoreHeaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
320
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsCoreHeaderItem, selector: "tds-core-header-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
321
- };
322
- TdsCoreHeaderItem = __decorate([
323
- ProxyCmp({})
324
- ], TdsCoreHeaderItem);
325
- export { TdsCoreHeaderItem };
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsCoreHeaderItem, decorators: [{
327
- type: Component,
328
- args: [{
329
- selector: 'tds-core-header-item',
330
- changeDetection: ChangeDetectionStrategy.OnPush,
331
- template: '<ng-content></ng-content>',
332
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
333
- inputs: [],
334
- }]
335
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
336
- let TdsDatetime = class TdsDatetime {
337
- constructor(c, r, z) {
338
- this.z = z;
339
- c.detach();
340
- this.el = r.nativeElement;
341
- proxyOutputs(this, this.el, ['tdsChange', 'tdsBlur', 'tdsFocus', 'tdsInput']);
342
- }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDatetime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
344
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDatetime, selector: "tds-datetime", inputs: { autofocus: "autofocus", defaultValue: "defaultValue", disabled: "disabled", helper: "helper", label: "label", max: "max", min: "min", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", size: "size", state: "state", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
345
- };
346
- TdsDatetime = __decorate([
347
- ProxyCmp({
348
- inputs: ['autofocus', 'defaultValue', 'disabled', 'helper', 'label', 'max', 'min', 'modeVariant', 'name', 'noMinWidth', 'size', 'state', 'type', 'value'],
349
- methods: ['setValue']
350
- })
351
- ], TdsDatetime);
352
- export { TdsDatetime };
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDatetime, decorators: [{
354
- type: Component,
355
- args: [{
356
- selector: 'tds-datetime',
357
- changeDetection: ChangeDetectionStrategy.OnPush,
358
- template: '<ng-content></ng-content>',
359
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
360
- inputs: ['autofocus', 'defaultValue', 'disabled', 'helper', 'label', 'max', 'min', 'modeVariant', 'name', 'noMinWidth', 'size', 'state', 'type', 'value'],
361
- }]
362
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
363
- let TdsDivider = class TdsDivider {
364
- constructor(c, r, z) {
365
- this.z = z;
366
- c.detach();
367
- this.el = r.nativeElement;
368
- }
369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDivider, selector: "tds-divider", inputs: { orientation: "orientation" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
371
- };
372
- TdsDivider = __decorate([
373
- ProxyCmp({
374
- inputs: ['orientation']
375
- })
376
- ], TdsDivider);
377
- export { TdsDivider };
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDivider, decorators: [{
379
- type: Component,
380
- args: [{
381
- selector: 'tds-divider',
382
- changeDetection: ChangeDetectionStrategy.OnPush,
383
- template: '<ng-content></ng-content>',
384
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
385
- inputs: ['orientation'],
386
- }]
387
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
388
- let TdsDropdown = class TdsDropdown {
389
- constructor(c, r, z) {
390
- this.z = z;
391
- c.detach();
392
- this.el = r.nativeElement;
393
- proxyOutputs(this, this.el, ['tdsChange', 'tdsFocus', 'tdsBlur', 'tdsInput']);
394
- }
395
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
396
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDropdown, selector: "tds-dropdown", inputs: { defaultValue: "defaultValue", disabled: "disabled", error: "error", filter: "filter", helper: "helper", label: "label", labelPosition: "labelPosition", modeVariant: "modeVariant", multiselect: "multiselect", name: "name", noResultText: "noResultText", normalizeText: "normalizeText", openDirection: "openDirection", placeholder: "placeholder", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
397
- };
398
- TdsDropdown = __decorate([
399
- ProxyCmp({
400
- inputs: ['defaultValue', 'disabled', 'error', 'filter', 'helper', 'label', 'labelPosition', 'modeVariant', 'multiselect', 'name', 'noResultText', 'normalizeText', 'openDirection', 'placeholder', 'size'],
401
- methods: ['reset', 'setValue', 'removeValue', 'close']
402
- })
403
- ], TdsDropdown);
404
- export { TdsDropdown };
405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdown, decorators: [{
406
- type: Component,
407
- args: [{
408
- selector: 'tds-dropdown',
409
- changeDetection: ChangeDetectionStrategy.OnPush,
410
- template: '<ng-content></ng-content>',
411
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
412
- inputs: ['defaultValue', 'disabled', 'error', 'filter', 'helper', 'label', 'labelPosition', 'modeVariant', 'multiselect', 'name', 'noResultText', 'normalizeText', 'openDirection', 'placeholder', 'size'],
413
- }]
414
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
415
- let TdsDropdownOption = class TdsDropdownOption {
416
- constructor(c, r, z) {
417
- this.z = z;
418
- c.detach();
419
- this.el = r.nativeElement;
420
- proxyOutputs(this, this.el, ['tdsSelect', 'tdsFocus', 'tdsBlur']);
421
- }
422
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdownOption, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
423
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsDropdownOption, selector: "tds-dropdown-option", inputs: { disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
424
- };
425
- TdsDropdownOption = __decorate([
426
- ProxyCmp({
427
- inputs: ['disabled', 'value'],
428
- methods: ['setSelected']
429
- })
430
- ], TdsDropdownOption);
431
- export { TdsDropdownOption };
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsDropdownOption, decorators: [{
433
- type: Component,
434
- args: [{
435
- selector: 'tds-dropdown-option',
436
- changeDetection: ChangeDetectionStrategy.OnPush,
437
- template: '<ng-content></ng-content>',
438
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
439
- inputs: ['disabled', 'value'],
440
- }]
441
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
442
- let TdsFolderTab = class TdsFolderTab {
443
- constructor(c, r, z) {
444
- this.z = z;
445
- c.detach();
446
- this.el = r.nativeElement;
447
- }
448
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
449
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFolderTab, selector: "tds-folder-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
450
- };
451
- TdsFolderTab = __decorate([
452
- ProxyCmp({
453
- inputs: ['disabled']
454
- })
455
- ], TdsFolderTab);
456
- export { TdsFolderTab };
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTab, decorators: [{
458
- type: Component,
459
- args: [{
460
- selector: 'tds-folder-tab',
461
- changeDetection: ChangeDetectionStrategy.OnPush,
462
- template: '<ng-content></ng-content>',
463
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
464
- inputs: ['disabled'],
465
- }]
466
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
467
- let TdsFolderTabs = class TdsFolderTabs {
468
- constructor(c, r, z) {
469
- this.z = z;
470
- c.detach();
471
- this.el = r.nativeElement;
472
- proxyOutputs(this, this.el, ['tdsChange']);
473
- }
474
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
475
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFolderTabs, selector: "tds-folder-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", modeVariant: "modeVariant", selectedIndex: "selectedIndex" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
476
- };
477
- TdsFolderTabs = __decorate([
478
- ProxyCmp({
479
- inputs: ['defaultSelectedIndex', 'modeVariant', 'selectedIndex'],
480
- methods: ['selectTab', 'reinitialize']
481
- })
482
- ], TdsFolderTabs);
483
- export { TdsFolderTabs };
484
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFolderTabs, decorators: [{
485
- type: Component,
486
- args: [{
487
- selector: 'tds-folder-tabs',
488
- changeDetection: ChangeDetectionStrategy.OnPush,
489
- template: '<ng-content></ng-content>',
490
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
491
- inputs: ['defaultSelectedIndex', 'modeVariant', 'selectedIndex'],
492
- }]
493
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
494
- let TdsFooter = class TdsFooter {
495
- constructor(c, r, z) {
496
- this.z = z;
497
- c.detach();
498
- this.el = r.nativeElement;
499
- }
500
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooter, selector: "tds-footer", inputs: { modeVariant: "modeVariant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
502
- };
503
- TdsFooter = __decorate([
504
- ProxyCmp({
505
- inputs: ['modeVariant']
506
- })
507
- ], TdsFooter);
508
- export { TdsFooter };
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooter, decorators: [{
510
- type: Component,
511
- args: [{
512
- selector: 'tds-footer',
513
- changeDetection: ChangeDetectionStrategy.OnPush,
514
- template: '<ng-content></ng-content>',
515
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
516
- inputs: ['modeVariant'],
517
- }]
518
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
519
- let TdsFooterGroup = class TdsFooterGroup {
520
- constructor(c, r, z) {
521
- this.z = z;
522
- c.detach();
523
- this.el = r.nativeElement;
524
- }
525
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
526
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooterGroup, selector: "tds-footer-group", inputs: { titleText: "titleText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
527
- };
528
- TdsFooterGroup = __decorate([
529
- ProxyCmp({
530
- inputs: ['titleText']
531
- })
532
- ], TdsFooterGroup);
533
- export { TdsFooterGroup };
534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterGroup, decorators: [{
535
- type: Component,
536
- args: [{
537
- selector: 'tds-footer-group',
538
- changeDetection: ChangeDetectionStrategy.OnPush,
539
- template: '<ng-content></ng-content>',
540
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
541
- inputs: ['titleText'],
542
- }]
543
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
544
- let TdsFooterItem = class TdsFooterItem {
545
- constructor(c, r, z) {
546
- this.z = z;
547
- c.detach();
548
- this.el = r.nativeElement;
549
- }
550
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
551
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsFooterItem, selector: "tds-footer-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
552
- };
553
- TdsFooterItem = __decorate([
554
- ProxyCmp({})
555
- ], TdsFooterItem);
556
- export { TdsFooterItem };
557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsFooterItem, decorators: [{
558
- type: Component,
559
- args: [{
560
- selector: 'tds-footer-item',
561
- changeDetection: ChangeDetectionStrategy.OnPush,
562
- template: '<ng-content></ng-content>',
563
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
564
- inputs: [],
565
- }]
566
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
567
- let TdsHeader = class TdsHeader {
568
- constructor(c, r, z) {
569
- this.z = z;
570
- c.detach();
571
- this.el = r.nativeElement;
572
- }
573
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
574
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeader, selector: "tds-header", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
575
- };
576
- TdsHeader = __decorate([
577
- ProxyCmp({})
578
- ], TdsHeader);
579
- export { TdsHeader };
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeader, decorators: [{
581
- type: Component,
582
- args: [{
583
- selector: 'tds-header',
584
- changeDetection: ChangeDetectionStrategy.OnPush,
585
- template: '<ng-content></ng-content>',
586
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
587
- inputs: [],
588
- }]
589
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
590
- let TdsHeaderBrandSymbol = class TdsHeaderBrandSymbol {
591
- constructor(c, r, z) {
592
- this.z = z;
593
- c.detach();
594
- this.el = r.nativeElement;
595
- }
596
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderBrandSymbol, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
597
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderBrandSymbol, selector: "tds-header-brand-symbol", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
598
- };
599
- TdsHeaderBrandSymbol = __decorate([
600
- ProxyCmp({})
601
- ], TdsHeaderBrandSymbol);
602
- export { TdsHeaderBrandSymbol };
603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderBrandSymbol, decorators: [{
604
- type: Component,
605
- args: [{
606
- selector: 'tds-header-brand-symbol',
607
- changeDetection: ChangeDetectionStrategy.OnPush,
608
- template: '<ng-content></ng-content>',
609
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
610
- inputs: [],
611
- }]
612
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
613
- let TdsHeaderCell = class TdsHeaderCell {
614
- constructor(c, r, z) {
615
- this.z = z;
616
- c.detach();
617
- this.el = r.nativeElement;
618
- proxyOutputs(this, this.el, ['tdsSort']);
619
- }
620
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
621
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderCell, selector: "tds-header-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", customWidth: "customWidth", disablePadding: "disablePadding", sortable: "sortable", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
622
- };
623
- TdsHeaderCell = __decorate([
624
- ProxyCmp({
625
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'textAlign']
626
- })
627
- ], TdsHeaderCell);
628
- export { TdsHeaderCell };
629
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderCell, decorators: [{
630
- type: Component,
631
- args: [{
632
- selector: 'tds-header-cell',
633
- changeDetection: ChangeDetectionStrategy.OnPush,
634
- template: '<ng-content></ng-content>',
635
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
636
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'textAlign'],
637
- }]
638
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
639
- let TdsHeaderDropdown = class TdsHeaderDropdown {
640
- constructor(c, r, z) {
641
- this.z = z;
642
- c.detach();
643
- this.el = r.nativeElement;
644
- }
645
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
646
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdown, selector: "tds-header-dropdown", inputs: { label: "label", noDropdownIcon: "noDropdownIcon", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
647
- };
648
- TdsHeaderDropdown = __decorate([
649
- ProxyCmp({
650
- inputs: ['label', 'noDropdownIcon', 'selected']
651
- })
652
- ], TdsHeaderDropdown);
653
- export { TdsHeaderDropdown };
654
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdown, decorators: [{
655
- type: Component,
656
- args: [{
657
- selector: 'tds-header-dropdown',
658
- changeDetection: ChangeDetectionStrategy.OnPush,
659
- template: '<ng-content></ng-content>',
660
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
661
- inputs: ['label', 'noDropdownIcon', 'selected'],
662
- }]
663
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
664
- let TdsHeaderDropdownList = class TdsHeaderDropdownList {
665
- constructor(c, r, z) {
666
- this.z = z;
667
- c.detach();
668
- this.el = r.nativeElement;
669
- }
670
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
671
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownList, selector: "tds-header-dropdown-list", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
672
- };
673
- TdsHeaderDropdownList = __decorate([
674
- ProxyCmp({
675
- inputs: ['size']
676
- })
677
- ], TdsHeaderDropdownList);
678
- export { TdsHeaderDropdownList };
679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownList, decorators: [{
680
- type: Component,
681
- args: [{
682
- selector: 'tds-header-dropdown-list',
683
- changeDetection: ChangeDetectionStrategy.OnPush,
684
- template: '<ng-content></ng-content>',
685
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
686
- inputs: ['size'],
687
- }]
688
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
689
- let TdsHeaderDropdownListItem = class TdsHeaderDropdownListItem {
690
- constructor(c, r, z) {
691
- this.z = z;
692
- c.detach();
693
- this.el = r.nativeElement;
694
- }
695
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
696
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownListItem, selector: "tds-header-dropdown-list-item", inputs: { selected: "selected", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
697
- };
698
- TdsHeaderDropdownListItem = __decorate([
699
- ProxyCmp({
700
- inputs: ['selected', 'size']
701
- })
702
- ], TdsHeaderDropdownListItem);
703
- export { TdsHeaderDropdownListItem };
704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListItem, decorators: [{
705
- type: Component,
706
- args: [{
707
- selector: 'tds-header-dropdown-list-item',
708
- changeDetection: ChangeDetectionStrategy.OnPush,
709
- template: '<ng-content></ng-content>',
710
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
711
- inputs: ['selected', 'size'],
712
- }]
713
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
714
- let TdsHeaderDropdownListUser = class TdsHeaderDropdownListUser {
715
- constructor(c, r, z) {
716
- this.z = z;
717
- c.detach();
718
- this.el = r.nativeElement;
719
- }
720
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListUser, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
721
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderDropdownListUser, selector: "tds-header-dropdown-list-user", inputs: { header: "header", imgAlt: "imgAlt", imgUrl: "imgUrl", subheader: "subheader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
722
- };
723
- TdsHeaderDropdownListUser = __decorate([
724
- ProxyCmp({
725
- inputs: ['header', 'imgAlt', 'imgUrl', 'subheader']
726
- })
727
- ], TdsHeaderDropdownListUser);
728
- export { TdsHeaderDropdownListUser };
729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderDropdownListUser, decorators: [{
730
- type: Component,
731
- args: [{
732
- selector: 'tds-header-dropdown-list-user',
733
- changeDetection: ChangeDetectionStrategy.OnPush,
734
- template: '<ng-content></ng-content>',
735
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
736
- inputs: ['header', 'imgAlt', 'imgUrl', 'subheader'],
737
- }]
738
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
739
- let TdsHeaderHamburger = class TdsHeaderHamburger {
740
- constructor(c, r, z) {
741
- this.z = z;
742
- c.detach();
743
- this.el = r.nativeElement;
744
- }
745
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderHamburger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
746
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderHamburger, selector: "tds-header-hamburger", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
747
- };
748
- TdsHeaderHamburger = __decorate([
749
- ProxyCmp({})
750
- ], TdsHeaderHamburger);
751
- export { TdsHeaderHamburger };
752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderHamburger, decorators: [{
753
- type: Component,
754
- args: [{
755
- selector: 'tds-header-hamburger',
756
- changeDetection: ChangeDetectionStrategy.OnPush,
757
- template: '<ng-content></ng-content>',
758
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
759
- inputs: [],
760
- }]
761
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
762
- let TdsHeaderItem = class TdsHeaderItem {
763
- constructor(c, r, z) {
764
- this.z = z;
765
- c.detach();
766
- this.el = r.nativeElement;
767
- }
768
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
769
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderItem, selector: "tds-header-item", inputs: { active: "active", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
770
- };
771
- TdsHeaderItem = __decorate([
772
- ProxyCmp({
773
- inputs: ['active', 'selected']
774
- })
775
- ], TdsHeaderItem);
776
- export { TdsHeaderItem };
777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderItem, decorators: [{
778
- type: Component,
779
- args: [{
780
- selector: 'tds-header-item',
781
- changeDetection: ChangeDetectionStrategy.OnPush,
782
- template: '<ng-content></ng-content>',
783
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
784
- inputs: ['active', 'selected'],
785
- }]
786
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
787
- let TdsHeaderLauncher = class TdsHeaderLauncher {
788
- constructor(c, r, z) {
789
- this.z = z;
790
- c.detach();
791
- this.el = r.nativeElement;
792
- }
793
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
794
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncher, selector: "tds-header-launcher", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
795
- };
796
- TdsHeaderLauncher = __decorate([
797
- ProxyCmp({})
798
- ], TdsHeaderLauncher);
799
- export { TdsHeaderLauncher };
800
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncher, decorators: [{
801
- type: Component,
802
- args: [{
803
- selector: 'tds-header-launcher',
804
- changeDetection: ChangeDetectionStrategy.OnPush,
805
- template: '<ng-content></ng-content>',
806
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
807
- inputs: [],
808
- }]
809
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
810
- let TdsHeaderLauncherButton = class TdsHeaderLauncherButton {
811
- constructor(c, r, z) {
812
- this.z = z;
813
- c.detach();
814
- this.el = r.nativeElement;
815
- }
816
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
817
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherButton, selector: "tds-header-launcher-button", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
818
- };
819
- TdsHeaderLauncherButton = __decorate([
820
- ProxyCmp({
821
- inputs: ['active']
822
- })
823
- ], TdsHeaderLauncherButton);
824
- export { TdsHeaderLauncherButton };
825
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherButton, decorators: [{
826
- type: Component,
827
- args: [{
828
- selector: 'tds-header-launcher-button',
829
- changeDetection: ChangeDetectionStrategy.OnPush,
830
- template: '<ng-content></ng-content>',
831
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
832
- inputs: ['active'],
833
- }]
834
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
835
- let TdsHeaderLauncherGrid = class TdsHeaderLauncherGrid {
836
- constructor(c, r, z) {
837
- this.z = z;
838
- c.detach();
839
- this.el = r.nativeElement;
840
- }
841
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
842
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGrid, selector: "tds-header-launcher-grid", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
843
- };
844
- TdsHeaderLauncherGrid = __decorate([
845
- ProxyCmp({})
846
- ], TdsHeaderLauncherGrid);
847
- export { TdsHeaderLauncherGrid };
848
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGrid, decorators: [{
849
- type: Component,
850
- args: [{
851
- selector: 'tds-header-launcher-grid',
852
- changeDetection: ChangeDetectionStrategy.OnPush,
853
- template: '<ng-content></ng-content>',
854
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
855
- inputs: [],
856
- }]
857
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
858
- let TdsHeaderLauncherGridItem = class TdsHeaderLauncherGridItem {
859
- constructor(c, r, z) {
860
- this.z = z;
861
- c.detach();
862
- this.el = r.nativeElement;
863
- }
864
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
865
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGridItem, selector: "tds-header-launcher-grid-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
866
- };
867
- TdsHeaderLauncherGridItem = __decorate([
868
- ProxyCmp({})
869
- ], TdsHeaderLauncherGridItem);
870
- export { TdsHeaderLauncherGridItem };
871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridItem, decorators: [{
872
- type: Component,
873
- args: [{
874
- selector: 'tds-header-launcher-grid-item',
875
- changeDetection: ChangeDetectionStrategy.OnPush,
876
- template: '<ng-content></ng-content>',
877
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
878
- inputs: [],
879
- }]
880
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
881
- let TdsHeaderLauncherGridTitle = class TdsHeaderLauncherGridTitle {
882
- constructor(c, r, z) {
883
- this.z = z;
884
- c.detach();
885
- this.el = r.nativeElement;
886
- }
887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherGridTitle, selector: "tds-header-launcher-grid-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
889
- };
890
- TdsHeaderLauncherGridTitle = __decorate([
891
- ProxyCmp({})
892
- ], TdsHeaderLauncherGridTitle);
893
- export { TdsHeaderLauncherGridTitle };
894
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherGridTitle, decorators: [{
895
- type: Component,
896
- args: [{
897
- selector: 'tds-header-launcher-grid-title',
898
- changeDetection: ChangeDetectionStrategy.OnPush,
899
- template: '<ng-content></ng-content>',
900
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
901
- inputs: [],
902
- }]
903
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
904
- let TdsHeaderLauncherList = class TdsHeaderLauncherList {
905
- constructor(c, r, z) {
906
- this.z = z;
907
- c.detach();
908
- this.el = r.nativeElement;
909
- }
910
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
911
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherList, selector: "tds-header-launcher-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
912
- };
913
- TdsHeaderLauncherList = __decorate([
914
- ProxyCmp({})
915
- ], TdsHeaderLauncherList);
916
- export { TdsHeaderLauncherList };
917
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherList, decorators: [{
918
- type: Component,
919
- args: [{
920
- selector: 'tds-header-launcher-list',
921
- changeDetection: ChangeDetectionStrategy.OnPush,
922
- template: '<ng-content></ng-content>',
923
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
924
- inputs: [],
925
- }]
926
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
927
- let TdsHeaderLauncherListItem = class TdsHeaderLauncherListItem {
928
- constructor(c, r, z) {
929
- this.z = z;
930
- c.detach();
931
- this.el = r.nativeElement;
932
- }
933
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
934
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherListItem, selector: "tds-header-launcher-list-item", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
935
- };
936
- TdsHeaderLauncherListItem = __decorate([
937
- ProxyCmp({})
938
- ], TdsHeaderLauncherListItem);
939
- export { TdsHeaderLauncherListItem };
940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListItem, decorators: [{
941
- type: Component,
942
- args: [{
943
- selector: 'tds-header-launcher-list-item',
944
- changeDetection: ChangeDetectionStrategy.OnPush,
945
- template: '<ng-content></ng-content>',
946
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
947
- inputs: [],
948
- }]
949
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
950
- let TdsHeaderLauncherListTitle = class TdsHeaderLauncherListTitle {
951
- constructor(c, r, z) {
952
- this.z = z;
953
- c.detach();
954
- this.el = r.nativeElement;
955
- }
956
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
957
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderLauncherListTitle, selector: "tds-header-launcher-list-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
958
- };
959
- TdsHeaderLauncherListTitle = __decorate([
960
- ProxyCmp({})
961
- ], TdsHeaderLauncherListTitle);
962
- export { TdsHeaderLauncherListTitle };
963
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderLauncherListTitle, decorators: [{
964
- type: Component,
965
- args: [{
966
- selector: 'tds-header-launcher-list-title',
967
- changeDetection: ChangeDetectionStrategy.OnPush,
968
- template: '<ng-content></ng-content>',
969
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
970
- inputs: [],
971
- }]
972
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
973
- let TdsHeaderTitle = class TdsHeaderTitle {
974
- constructor(c, r, z) {
975
- this.z = z;
976
- c.detach();
977
- this.el = r.nativeElement;
978
- }
979
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
980
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderTitle, selector: "tds-header-title", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
981
- };
982
- TdsHeaderTitle = __decorate([
983
- ProxyCmp({})
984
- ], TdsHeaderTitle);
985
- export { TdsHeaderTitle };
986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderTitle, decorators: [{
987
- type: Component,
988
- args: [{
989
- selector: 'tds-header-title',
990
- changeDetection: ChangeDetectionStrategy.OnPush,
991
- template: '<ng-content></ng-content>',
992
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
993
- inputs: [],
994
- }]
995
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
996
- let TdsIcon = class TdsIcon {
997
- constructor(c, r, z) {
998
- this.z = z;
999
- c.detach();
1000
- this.el = r.nativeElement;
1001
- }
1002
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1003
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsIcon, selector: "tds-icon", inputs: { name: "name", size: "size", svgDescription: "svgDescription", svgTitle: "svgTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1004
- };
1005
- TdsIcon = __decorate([
1006
- ProxyCmp({
1007
- inputs: ['name', 'size', 'svgDescription', 'svgTitle']
1008
- })
1009
- ], TdsIcon);
1010
- export { TdsIcon };
1011
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsIcon, decorators: [{
1012
- type: Component,
1013
- args: [{
1014
- selector: 'tds-icon',
1015
- changeDetection: ChangeDetectionStrategy.OnPush,
1016
- template: '<ng-content></ng-content>',
1017
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1018
- inputs: ['name', 'size', 'svgDescription', 'svgTitle'],
1019
- }]
1020
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1021
- let TdsInlineTab = class TdsInlineTab {
1022
- constructor(c, r, z) {
1023
- this.z = z;
1024
- c.detach();
1025
- this.el = r.nativeElement;
1026
- }
1027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1028
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsInlineTab, selector: "tds-inline-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1029
- };
1030
- TdsInlineTab = __decorate([
1031
- ProxyCmp({
1032
- inputs: ['disabled']
1033
- })
1034
- ], TdsInlineTab);
1035
- export { TdsInlineTab };
1036
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTab, decorators: [{
1037
- type: Component,
1038
- args: [{
1039
- selector: 'tds-inline-tab',
1040
- changeDetection: ChangeDetectionStrategy.OnPush,
1041
- template: '<ng-content></ng-content>',
1042
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1043
- inputs: ['disabled'],
1044
- }]
1045
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1046
- let TdsInlineTabs = class TdsInlineTabs {
1047
- constructor(c, r, z) {
1048
- this.z = z;
1049
- c.detach();
1050
- this.el = r.nativeElement;
1051
- proxyOutputs(this, this.el, ['tdsChange']);
1052
- }
1053
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1054
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsInlineTabs, selector: "tds-inline-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", leftPadding: "leftPadding", modeVariant: "modeVariant", selectedIndex: "selectedIndex" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1055
- };
1056
- TdsInlineTabs = __decorate([
1057
- ProxyCmp({
1058
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex'],
1059
- methods: ['selectTab', 'reinitialize']
1060
- })
1061
- ], TdsInlineTabs);
1062
- export { TdsInlineTabs };
1063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsInlineTabs, decorators: [{
1064
- type: Component,
1065
- args: [{
1066
- selector: 'tds-inline-tabs',
1067
- changeDetection: ChangeDetectionStrategy.OnPush,
1068
- template: '<ng-content></ng-content>',
1069
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1070
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex'],
1071
- }]
1072
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1073
- let TdsLink = class TdsLink {
1074
- constructor(c, r, z) {
1075
- this.z = z;
1076
- c.detach();
1077
- this.el = r.nativeElement;
1078
- }
1079
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsLink, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1080
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsLink, selector: "tds-link", inputs: { disabled: "disabled", underline: "underline" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1081
- };
1082
- TdsLink = __decorate([
1083
- ProxyCmp({
1084
- inputs: ['disabled', 'underline']
1085
- })
1086
- ], TdsLink);
1087
- export { TdsLink };
1088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsLink, decorators: [{
1089
- type: Component,
1090
- args: [{
1091
- selector: 'tds-link',
1092
- changeDetection: ChangeDetectionStrategy.OnPush,
1093
- template: '<ng-content></ng-content>',
1094
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1095
- inputs: ['disabled', 'underline'],
1096
- }]
1097
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1098
- let TdsMessage = class TdsMessage {
1099
- constructor(c, r, z) {
1100
- this.z = z;
1101
- c.detach();
1102
- this.el = r.nativeElement;
1103
- }
1104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsMessage, selector: "tds-message", inputs: { header: "header", minimal: "minimal", modeVariant: "modeVariant", noIcon: "noIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1106
- };
1107
- TdsMessage = __decorate([
1108
- ProxyCmp({
1109
- inputs: ['header', 'minimal', 'modeVariant', 'noIcon', 'variant']
1110
- })
1111
- ], TdsMessage);
1112
- export { TdsMessage };
1113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsMessage, decorators: [{
1114
- type: Component,
1115
- args: [{
1116
- selector: 'tds-message',
1117
- changeDetection: ChangeDetectionStrategy.OnPush,
1118
- template: '<ng-content></ng-content>',
1119
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1120
- inputs: ['header', 'minimal', 'modeVariant', 'noIcon', 'variant'],
1121
- }]
1122
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1123
- let TdsModal = class TdsModal {
1124
- constructor(c, r, z) {
1125
- this.z = z;
1126
- c.detach();
1127
- this.el = r.nativeElement;
1128
- proxyOutputs(this, this.el, ['tdsClose']);
1129
- }
1130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsModal, selector: "tds-modal", inputs: { actionsPosition: "actionsPosition", closable: "closable", header: "header", prevent: "prevent", referenceEl: "referenceEl", selector: "selector", show: "show", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1132
- };
1133
- TdsModal = __decorate([
1134
- ProxyCmp({
1135
- inputs: ['actionsPosition', 'closable', 'header', 'prevent', 'referenceEl', 'selector', 'show', 'size'],
1136
- methods: ['showModal', 'closeModal', 'initializeModal', 'cleanupModal']
1137
- })
1138
- ], TdsModal);
1139
- export { TdsModal };
1140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsModal, decorators: [{
1141
- type: Component,
1142
- args: [{
1143
- selector: 'tds-modal',
1144
- changeDetection: ChangeDetectionStrategy.OnPush,
1145
- template: '<ng-content></ng-content>',
1146
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1147
- inputs: ['actionsPosition', 'closable', 'header', 'prevent', 'referenceEl', 'selector', 'show', 'size'],
1148
- }]
1149
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1150
- let TdsNavigationTab = class TdsNavigationTab {
1151
- constructor(c, r, z) {
1152
- this.z = z;
1153
- c.detach();
1154
- this.el = r.nativeElement;
1155
- }
1156
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsNavigationTab, selector: "tds-navigation-tab", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1158
- };
1159
- TdsNavigationTab = __decorate([
1160
- ProxyCmp({
1161
- inputs: ['disabled']
1162
- })
1163
- ], TdsNavigationTab);
1164
- export { TdsNavigationTab };
1165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTab, decorators: [{
1166
- type: Component,
1167
- args: [{
1168
- selector: 'tds-navigation-tab',
1169
- changeDetection: ChangeDetectionStrategy.OnPush,
1170
- template: '<ng-content></ng-content>',
1171
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1172
- inputs: ['disabled'],
1173
- }]
1174
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1175
- let TdsNavigationTabs = class TdsNavigationTabs {
1176
- constructor(c, r, z) {
1177
- this.z = z;
1178
- c.detach();
1179
- this.el = r.nativeElement;
1180
- proxyOutputs(this, this.el, ['tdsChange']);
1181
- }
1182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1183
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsNavigationTabs, selector: "tds-navigation-tabs", inputs: { defaultSelectedIndex: "defaultSelectedIndex", leftPadding: "leftPadding", modeVariant: "modeVariant", selectedIndex: "selectedIndex" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1184
- };
1185
- TdsNavigationTabs = __decorate([
1186
- ProxyCmp({
1187
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex'],
1188
- methods: ['selectTab', 'reinitialize']
1189
- })
1190
- ], TdsNavigationTabs);
1191
- export { TdsNavigationTabs };
1192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsNavigationTabs, decorators: [{
1193
- type: Component,
1194
- args: [{
1195
- selector: 'tds-navigation-tabs',
1196
- changeDetection: ChangeDetectionStrategy.OnPush,
1197
- template: '<ng-content></ng-content>',
1198
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1199
- inputs: ['defaultSelectedIndex', 'leftPadding', 'modeVariant', 'selectedIndex'],
1200
- }]
1201
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1202
- let TdsPopoverCanvas = class TdsPopoverCanvas {
1203
- constructor(c, r, z) {
1204
- this.z = z;
1205
- c.detach();
1206
- this.el = r.nativeElement;
1207
- }
1208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCanvas, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverCanvas, selector: "tds-popover-canvas", inputs: { modifiers: "modifiers", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1210
- };
1211
- TdsPopoverCanvas = __decorate([
1212
- ProxyCmp({
1213
- inputs: ['modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1214
- methods: ['close']
1215
- })
1216
- ], TdsPopoverCanvas);
1217
- export { TdsPopoverCanvas };
1218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCanvas, decorators: [{
1219
- type: Component,
1220
- args: [{
1221
- selector: 'tds-popover-canvas',
1222
- changeDetection: ChangeDetectionStrategy.OnPush,
1223
- template: '<ng-content></ng-content>',
1224
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1225
- inputs: ['modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1226
- }]
1227
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1228
- let TdsPopoverCore = class TdsPopoverCore {
1229
- constructor(c, r, z) {
1230
- this.z = z;
1231
- c.detach();
1232
- this.el = r.nativeElement;
1233
- }
1234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCore, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverCore, selector: "tds-popover-core", inputs: { autoHide: "autoHide", modifiers: "modifiers", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1236
- };
1237
- TdsPopoverCore = __decorate([
1238
- ProxyCmp({
1239
- inputs: ['autoHide', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'trigger'],
1240
- methods: ['close']
1241
- })
1242
- ], TdsPopoverCore);
1243
- export { TdsPopoverCore };
1244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverCore, decorators: [{
1245
- type: Component,
1246
- args: [{
1247
- selector: 'tds-popover-core',
1248
- changeDetection: ChangeDetectionStrategy.OnPush,
1249
- template: '<ng-content></ng-content>',
1250
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1251
- inputs: ['autoHide', 'modifiers', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'trigger'],
1252
- }]
1253
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1254
- let TdsPopoverMenu = class TdsPopoverMenu {
1255
- constructor(c, r, z) {
1256
- this.z = z;
1257
- c.detach();
1258
- this.el = r.nativeElement;
1259
- }
1260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverMenu, selector: "tds-popover-menu", inputs: { fluidWidth: "fluidWidth", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1262
- };
1263
- TdsPopoverMenu = __decorate([
1264
- ProxyCmp({
1265
- inputs: ['fluidWidth', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1266
- methods: ['close']
1267
- })
1268
- ], TdsPopoverMenu);
1269
- export { TdsPopoverMenu };
1270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenu, decorators: [{
1271
- type: Component,
1272
- args: [{
1273
- selector: 'tds-popover-menu',
1274
- changeDetection: ChangeDetectionStrategy.OnPush,
1275
- template: '<ng-content></ng-content>',
1276
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1277
- inputs: ['fluidWidth', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show'],
1278
- }]
1279
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1280
- let TdsPopoverMenuItem = class TdsPopoverMenuItem {
1281
- constructor(c, r, z) {
1282
- this.z = z;
1283
- c.detach();
1284
- this.el = r.nativeElement;
1285
- }
1286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1287
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsPopoverMenuItem, selector: "tds-popover-menu-item", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1288
- };
1289
- TdsPopoverMenuItem = __decorate([
1290
- ProxyCmp({
1291
- inputs: ['disabled']
1292
- })
1293
- ], TdsPopoverMenuItem);
1294
- export { TdsPopoverMenuItem };
1295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsPopoverMenuItem, decorators: [{
1296
- type: Component,
1297
- args: [{
1298
- selector: 'tds-popover-menu-item',
1299
- changeDetection: ChangeDetectionStrategy.OnPush,
1300
- template: '<ng-content></ng-content>',
1301
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1302
- inputs: ['disabled'],
1303
- }]
1304
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1305
- let TdsRadioButton = class TdsRadioButton {
1306
- constructor(c, r, z) {
1307
- this.z = z;
1308
- c.detach();
1309
- this.el = r.nativeElement;
1310
- proxyOutputs(this, this.el, ['tdsChange']);
1311
- }
1312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsRadioButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsRadioButton, selector: "tds-radio-button", inputs: { checked: "checked", disabled: "disabled", name: "name", radioId: "radioId", required: "required", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1314
- };
1315
- TdsRadioButton = __decorate([
1316
- ProxyCmp({
1317
- inputs: ['checked', 'disabled', 'name', 'radioId', 'required', 'value']
1318
- })
1319
- ], TdsRadioButton);
1320
- export { TdsRadioButton };
1321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsRadioButton, decorators: [{
1322
- type: Component,
1323
- args: [{
1324
- selector: 'tds-radio-button',
1325
- changeDetection: ChangeDetectionStrategy.OnPush,
1326
- template: '<ng-content></ng-content>',
1327
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1328
- inputs: ['checked', 'disabled', 'name', 'radioId', 'required', 'value'],
1329
- }]
1330
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1331
- let TdsSideMenu = class TdsSideMenu {
1332
- constructor(c, r, z) {
1333
- this.z = z;
1334
- c.detach();
1335
- this.el = r.nativeElement;
1336
- proxyOutputs(this, this.el, ['tdsCollapse']);
1337
- }
1338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1339
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenu, selector: "tds-side-menu", inputs: { collapsed: "collapsed", open: "open", persistent: "persistent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1340
- };
1341
- TdsSideMenu = __decorate([
1342
- ProxyCmp({
1343
- inputs: ['collapsed', 'open', 'persistent']
1344
- })
1345
- ], TdsSideMenu);
1346
- export { TdsSideMenu };
1347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenu, decorators: [{
1348
- type: Component,
1349
- args: [{
1350
- selector: 'tds-side-menu',
1351
- changeDetection: ChangeDetectionStrategy.OnPush,
1352
- template: '<ng-content></ng-content>',
1353
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1354
- inputs: ['collapsed', 'open', 'persistent'],
1355
- }]
1356
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1357
- let TdsSideMenuCloseButton = class TdsSideMenuCloseButton {
1358
- constructor(c, r, z) {
1359
- this.z = z;
1360
- c.detach();
1361
- this.el = r.nativeElement;
1362
- }
1363
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCloseButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1364
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuCloseButton, selector: "tds-side-menu-close-button", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1365
- };
1366
- TdsSideMenuCloseButton = __decorate([
1367
- ProxyCmp({})
1368
- ], TdsSideMenuCloseButton);
1369
- export { TdsSideMenuCloseButton };
1370
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCloseButton, decorators: [{
1371
- type: Component,
1372
- args: [{
1373
- selector: 'tds-side-menu-close-button',
1374
- changeDetection: ChangeDetectionStrategy.OnPush,
1375
- template: '<ng-content></ng-content>',
1376
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1377
- inputs: [],
1378
- }]
1379
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1380
- let TdsSideMenuCollapseButton = class TdsSideMenuCollapseButton {
1381
- constructor(c, r, z) {
1382
- this.z = z;
1383
- c.detach();
1384
- this.el = r.nativeElement;
1385
- proxyOutputs(this, this.el, ['tdsCollapse']);
1386
- }
1387
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCollapseButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1388
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuCollapseButton, selector: "tds-side-menu-collapse-button", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1389
- };
1390
- TdsSideMenuCollapseButton = __decorate([
1391
- ProxyCmp({})
1392
- ], TdsSideMenuCollapseButton);
1393
- export { TdsSideMenuCollapseButton };
1394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuCollapseButton, decorators: [{
1395
- type: Component,
1396
- args: [{
1397
- selector: 'tds-side-menu-collapse-button',
1398
- changeDetection: ChangeDetectionStrategy.OnPush,
1399
- template: '<ng-content></ng-content>',
1400
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1401
- inputs: [],
1402
- }]
1403
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1404
- let TdsSideMenuDropdown = class TdsSideMenuDropdown {
1405
- constructor(c, r, z) {
1406
- this.z = z;
1407
- c.detach();
1408
- this.el = r.nativeElement;
1409
- }
1410
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1411
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdown, selector: "tds-side-menu-dropdown", inputs: { buttonLabel: "buttonLabel", defaultOpen: "defaultOpen", open: "open", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1412
- };
1413
- TdsSideMenuDropdown = __decorate([
1414
- ProxyCmp({
1415
- inputs: ['buttonLabel', 'defaultOpen', 'open', 'selected']
1416
- })
1417
- ], TdsSideMenuDropdown);
1418
- export { TdsSideMenuDropdown };
1419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdown, decorators: [{
1420
- type: Component,
1421
- args: [{
1422
- selector: 'tds-side-menu-dropdown',
1423
- changeDetection: ChangeDetectionStrategy.OnPush,
1424
- template: '<ng-content></ng-content>',
1425
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1426
- inputs: ['buttonLabel', 'defaultOpen', 'open', 'selected'],
1427
- }]
1428
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1429
- let TdsSideMenuDropdownList = class TdsSideMenuDropdownList {
1430
- constructor(c, r, z) {
1431
- this.z = z;
1432
- c.detach();
1433
- this.el = r.nativeElement;
1434
- }
1435
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1436
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdownList, selector: "tds-side-menu-dropdown-list", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1437
- };
1438
- TdsSideMenuDropdownList = __decorate([
1439
- ProxyCmp({})
1440
- ], TdsSideMenuDropdownList);
1441
- export { TdsSideMenuDropdownList };
1442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownList, decorators: [{
1443
- type: Component,
1444
- args: [{
1445
- selector: 'tds-side-menu-dropdown-list',
1446
- changeDetection: ChangeDetectionStrategy.OnPush,
1447
- template: '<ng-content></ng-content>',
1448
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1449
- inputs: [],
1450
- }]
1451
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1452
- let TdsSideMenuDropdownListItem = class TdsSideMenuDropdownListItem {
1453
- constructor(c, r, z) {
1454
- this.z = z;
1455
- c.detach();
1456
- this.el = r.nativeElement;
1457
- }
1458
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1459
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuDropdownListItem, selector: "tds-side-menu-dropdown-list-item", inputs: { selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1460
- };
1461
- TdsSideMenuDropdownListItem = __decorate([
1462
- ProxyCmp({
1463
- inputs: ['selected']
1464
- })
1465
- ], TdsSideMenuDropdownListItem);
1466
- export { TdsSideMenuDropdownListItem };
1467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuDropdownListItem, decorators: [{
1468
- type: Component,
1469
- args: [{
1470
- selector: 'tds-side-menu-dropdown-list-item',
1471
- changeDetection: ChangeDetectionStrategy.OnPush,
1472
- template: '<ng-content></ng-content>',
1473
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1474
- inputs: ['selected'],
1475
- }]
1476
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1477
- let TdsSideMenuItem = class TdsSideMenuItem {
1478
- constructor(c, r, z) {
1479
- this.z = z;
1480
- c.detach();
1481
- this.el = r.nativeElement;
1482
- }
1483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1484
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuItem, selector: "tds-side-menu-item", inputs: { active: "active", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1485
- };
1486
- TdsSideMenuItem = __decorate([
1487
- ProxyCmp({
1488
- inputs: ['active', 'selected']
1489
- })
1490
- ], TdsSideMenuItem);
1491
- export { TdsSideMenuItem };
1492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuItem, decorators: [{
1493
- type: Component,
1494
- args: [{
1495
- selector: 'tds-side-menu-item',
1496
- changeDetection: ChangeDetectionStrategy.OnPush,
1497
- template: '<ng-content></ng-content>',
1498
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1499
- inputs: ['active', 'selected'],
1500
- }]
1501
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1502
- let TdsSideMenuOverlay = class TdsSideMenuOverlay {
1503
- constructor(c, r, z) {
1504
- this.z = z;
1505
- c.detach();
1506
- this.el = r.nativeElement;
1507
- }
1508
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuOverlay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1509
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuOverlay, selector: "tds-side-menu-overlay", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1510
- };
1511
- TdsSideMenuOverlay = __decorate([
1512
- ProxyCmp({})
1513
- ], TdsSideMenuOverlay);
1514
- export { TdsSideMenuOverlay };
1515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuOverlay, decorators: [{
1516
- type: Component,
1517
- args: [{
1518
- selector: 'tds-side-menu-overlay',
1519
- changeDetection: ChangeDetectionStrategy.OnPush,
1520
- template: '<ng-content></ng-content>',
1521
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1522
- inputs: [],
1523
- }]
1524
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1525
- let TdsSideMenuUser = class TdsSideMenuUser {
1526
- constructor(c, r, z) {
1527
- this.z = z;
1528
- c.detach();
1529
- this.el = r.nativeElement;
1530
- }
1531
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUser, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1532
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUser, selector: "tds-side-menu-user", inputs: { heading: "heading", imgAlt: "imgAlt", imgSrc: "imgSrc", subheading: "subheading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1533
- };
1534
- TdsSideMenuUser = __decorate([
1535
- ProxyCmp({
1536
- inputs: ['heading', 'imgAlt', 'imgSrc', 'subheading']
1537
- })
1538
- ], TdsSideMenuUser);
1539
- export { TdsSideMenuUser };
1540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUser, decorators: [{
1541
- type: Component,
1542
- args: [{
1543
- selector: 'tds-side-menu-user',
1544
- changeDetection: ChangeDetectionStrategy.OnPush,
1545
- template: '<ng-content></ng-content>',
1546
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1547
- inputs: ['heading', 'imgAlt', 'imgSrc', 'subheading'],
1548
- }]
1549
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1550
- let TdsSideMenuUserImage = class TdsSideMenuUserImage {
1551
- constructor(c, r, z) {
1552
- this.z = z;
1553
- c.detach();
1554
- this.el = r.nativeElement;
1555
- }
1556
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserImage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1557
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUserImage, selector: "tds-side-menu-user-image", inputs: { alt: "alt", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1558
- };
1559
- TdsSideMenuUserImage = __decorate([
1560
- ProxyCmp({
1561
- inputs: ['alt', 'src']
1562
- })
1563
- ], TdsSideMenuUserImage);
1564
- export { TdsSideMenuUserImage };
1565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserImage, decorators: [{
1566
- type: Component,
1567
- args: [{
1568
- selector: 'tds-side-menu-user-image',
1569
- changeDetection: ChangeDetectionStrategy.OnPush,
1570
- template: '<ng-content></ng-content>',
1571
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1572
- inputs: ['alt', 'src'],
1573
- }]
1574
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1575
- let TdsSideMenuUserLabel = class TdsSideMenuUserLabel {
1576
- constructor(c, r, z) {
1577
- this.z = z;
1578
- c.detach();
1579
- this.el = r.nativeElement;
1580
- }
1581
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1582
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSideMenuUserLabel, selector: "tds-side-menu-user-label", inputs: { heading: "heading", subheading: "subheading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1583
- };
1584
- TdsSideMenuUserLabel = __decorate([
1585
- ProxyCmp({
1586
- inputs: ['heading', 'subheading']
1587
- })
1588
- ], TdsSideMenuUserLabel);
1589
- export { TdsSideMenuUserLabel };
1590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSideMenuUserLabel, decorators: [{
1591
- type: Component,
1592
- args: [{
1593
- selector: 'tds-side-menu-user-label',
1594
- changeDetection: ChangeDetectionStrategy.OnPush,
1595
- template: '<ng-content></ng-content>',
1596
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1597
- inputs: ['heading', 'subheading'],
1598
- }]
1599
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1600
- let TdsSlider = class TdsSlider {
1601
- constructor(c, r, z) {
1602
- this.z = z;
1603
- c.detach();
1604
- this.el = r.nativeElement;
1605
- proxyOutputs(this, this.el, ['tdsChange', 'tdsInput']);
1606
- }
1607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1608
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSlider, selector: "tds-slider", inputs: { controls: "controls", disabled: "disabled", input: "input", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", showTickNumbers: "showTickNumbers", sliderId: "sliderId", snap: "snap", step: "step", thumbSize: "thumbSize", ticks: "ticks", tooltip: "tooltip", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1609
- };
1610
- TdsSlider = __decorate([
1611
- ProxyCmp({
1612
- inputs: ['controls', 'disabled', 'input', 'label', 'max', 'min', 'name', 'readOnly', 'showTickNumbers', 'sliderId', 'snap', 'step', 'thumbSize', 'ticks', 'tooltip', 'value'],
1613
- methods: ['reset']
1614
- })
1615
- ], TdsSlider);
1616
- export { TdsSlider };
1617
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSlider, decorators: [{
1618
- type: Component,
1619
- args: [{
1620
- selector: 'tds-slider',
1621
- changeDetection: ChangeDetectionStrategy.OnPush,
1622
- template: '<ng-content></ng-content>',
1623
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1624
- inputs: ['controls', 'disabled', 'input', 'label', 'max', 'min', 'name', 'readOnly', 'showTickNumbers', 'sliderId', 'snap', 'step', 'thumbSize', 'ticks', 'tooltip', 'value'],
1625
- }]
1626
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1627
- let TdsSpinner = class TdsSpinner {
1628
- constructor(c, r, z) {
1629
- this.z = z;
1630
- c.detach();
1631
- this.el = r.nativeElement;
1632
- }
1633
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1634
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsSpinner, selector: "tds-spinner", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1635
- };
1636
- TdsSpinner = __decorate([
1637
- ProxyCmp({
1638
- inputs: ['size', 'variant']
1639
- })
1640
- ], TdsSpinner);
1641
- export { TdsSpinner };
1642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsSpinner, decorators: [{
1643
- type: Component,
1644
- args: [{
1645
- selector: 'tds-spinner',
1646
- changeDetection: ChangeDetectionStrategy.OnPush,
1647
- template: '<ng-content></ng-content>',
1648
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1649
- inputs: ['size', 'variant'],
1650
- }]
1651
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1652
- let TdsStep = class TdsStep {
1653
- constructor(c, r, z) {
1654
- this.z = z;
1655
- c.detach();
1656
- this.el = r.nativeElement;
1657
- }
1658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1659
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsStep, selector: "tds-step", inputs: { index: "index", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1660
- };
1661
- TdsStep = __decorate([
1662
- ProxyCmp({
1663
- inputs: ['index', 'state']
1664
- })
1665
- ], TdsStep);
1666
- export { TdsStep };
1667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStep, decorators: [{
1668
- type: Component,
1669
- args: [{
1670
- selector: 'tds-step',
1671
- changeDetection: ChangeDetectionStrategy.OnPush,
1672
- template: '<ng-content></ng-content>',
1673
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1674
- inputs: ['index', 'state'],
1675
- }]
1676
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1677
- let TdsStepper = class TdsStepper {
1678
- constructor(c, r, z) {
1679
- this.z = z;
1680
- c.detach();
1681
- this.el = r.nativeElement;
1682
- }
1683
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1684
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsStepper, selector: "tds-stepper", inputs: { hideLabels: "hideLabels", labelPosition: "labelPosition", orientation: "orientation", size: "size", stepperId: "stepperId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1685
- };
1686
- TdsStepper = __decorate([
1687
- ProxyCmp({
1688
- inputs: ['hideLabels', 'labelPosition', 'orientation', 'size', 'stepperId']
1689
- })
1690
- ], TdsStepper);
1691
- export { TdsStepper };
1692
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsStepper, decorators: [{
1693
- type: Component,
1694
- args: [{
1695
- selector: 'tds-stepper',
1696
- changeDetection: ChangeDetectionStrategy.OnPush,
1697
- template: '<ng-content></ng-content>',
1698
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1699
- inputs: ['hideLabels', 'labelPosition', 'orientation', 'size', 'stepperId'],
1700
- }]
1701
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1702
- let TdsTable = class TdsTable {
1703
- constructor(c, r, z) {
1704
- this.z = z;
1705
- c.detach();
1706
- this.el = r.nativeElement;
1707
- }
1708
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1709
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTable, selector: "tds-table", inputs: { compactDesign: "compactDesign", expandableRows: "expandableRows", horizontalScrollWidth: "horizontalScrollWidth", modeVariant: "modeVariant", multiselect: "multiselect", noMinWidth: "noMinWidth", responsive: "responsive", tableId: "tableId", verticalDividers: "verticalDividers", zebraMode: "zebraMode" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1710
- };
1711
- TdsTable = __decorate([
1712
- ProxyCmp({
1713
- inputs: ['compactDesign', 'expandableRows', 'horizontalScrollWidth', 'modeVariant', 'multiselect', 'noMinWidth', 'responsive', 'tableId', 'verticalDividers', 'zebraMode'],
1714
- methods: ['getSelectedRows']
1715
- })
1716
- ], TdsTable);
1717
- export { TdsTable };
1718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTable, decorators: [{
1719
- type: Component,
1720
- args: [{
1721
- selector: 'tds-table',
1722
- changeDetection: ChangeDetectionStrategy.OnPush,
1723
- template: '<ng-content></ng-content>',
1724
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1725
- inputs: ['compactDesign', 'expandableRows', 'horizontalScrollWidth', 'modeVariant', 'multiselect', 'noMinWidth', 'responsive', 'tableId', 'verticalDividers', 'zebraMode'],
1726
- }]
1727
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1728
- let TdsTableBody = class TdsTableBody {
1729
- constructor(c, r, z) {
1730
- this.z = z;
1731
- c.detach();
1732
- this.el = r.nativeElement;
1733
- }
1734
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1735
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBody, selector: "tds-table-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1736
- };
1737
- TdsTableBody = __decorate([
1738
- ProxyCmp({})
1739
- ], TdsTableBody);
1740
- export { TdsTableBody };
1741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBody, decorators: [{
1742
- type: Component,
1743
- args: [{
1744
- selector: 'tds-table-body',
1745
- changeDetection: ChangeDetectionStrategy.OnPush,
1746
- template: '<ng-content></ng-content>',
1747
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1748
- inputs: [],
1749
- }]
1750
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1751
- let TdsTableBodyInputWrapper = class TdsTableBodyInputWrapper {
1752
- constructor(c, r, z) {
1753
- this.z = z;
1754
- c.detach();
1755
- this.el = r.nativeElement;
1756
- }
1757
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyInputWrapper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1758
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyInputWrapper, selector: "tds-table-body-input-wrapper", inputs: { showIcon: "showIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1759
- };
1760
- TdsTableBodyInputWrapper = __decorate([
1761
- ProxyCmp({
1762
- inputs: ['showIcon']
1763
- })
1764
- ], TdsTableBodyInputWrapper);
1765
- export { TdsTableBodyInputWrapper };
1766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyInputWrapper, decorators: [{
1767
- type: Component,
1768
- args: [{
1769
- selector: 'tds-table-body-input-wrapper',
1770
- changeDetection: ChangeDetectionStrategy.OnPush,
1771
- template: '<ng-content></ng-content>',
1772
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1773
- inputs: ['showIcon'],
1774
- }]
1775
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1776
- let TdsTableBodyRow = class TdsTableBodyRow {
1777
- constructor(c, r, z) {
1778
- this.z = z;
1779
- c.detach();
1780
- this.el = r.nativeElement;
1781
- proxyOutputs(this, this.el, ['tdsSelect']);
1782
- }
1783
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1784
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRow, selector: "tds-table-body-row", inputs: { disabled: "disabled", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1785
- };
1786
- TdsTableBodyRow = __decorate([
1787
- ProxyCmp({
1788
- inputs: ['disabled', 'selected']
1789
- })
1790
- ], TdsTableBodyRow);
1791
- export { TdsTableBodyRow };
1792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRow, decorators: [{
1793
- type: Component,
1794
- args: [{
1795
- selector: 'tds-table-body-row',
1796
- changeDetection: ChangeDetectionStrategy.OnPush,
1797
- template: '<ng-content></ng-content>',
1798
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1799
- inputs: ['disabled', 'selected'],
1800
- }]
1801
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1802
- let TdsTableBodyRowExpandable = class TdsTableBodyRowExpandable {
1803
- constructor(c, r, z) {
1804
- this.z = z;
1805
- c.detach();
1806
- this.el = r.nativeElement;
1807
- proxyOutputs(this, this.el, ['tdsChange']);
1808
- }
1809
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRowExpandable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1810
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRowExpandable, selector: "tds-table-body-row-expandable", inputs: { colSpan: "colSpan", expanded: "expanded", overflow: "overflow", rowId: "rowId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1811
- };
1812
- TdsTableBodyRowExpandable = __decorate([
1813
- ProxyCmp({
1814
- inputs: ['colSpan', 'expanded', 'overflow', 'rowId'],
1815
- methods: ['expand', 'collapse']
1816
- })
1817
- ], TdsTableBodyRowExpandable);
1818
- export { TdsTableBodyRowExpandable };
1819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRowExpandable, decorators: [{
1820
- type: Component,
1821
- args: [{
1822
- selector: 'tds-table-body-row-expandable',
1823
- changeDetection: ChangeDetectionStrategy.OnPush,
1824
- template: '<ng-content></ng-content>',
1825
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1826
- inputs: ['colSpan', 'expanded', 'overflow', 'rowId'],
1827
- }]
1828
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1829
- let TdsTableFooter = class TdsTableFooter {
1830
- constructor(c, r, z) {
1831
- this.z = z;
1832
- c.detach();
1833
- this.el = r.nativeElement;
1834
- proxyOutputs(this, this.el, ['tdsPagination']);
1835
- }
1836
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableFooter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1837
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableFooter, selector: "tds-table-footer", inputs: { cols: "cols", pages: "pages", pagination: "pagination", paginationValue: "paginationValue", rowsPerPageValues: "rowsPerPageValues", rowsperpage: "rowsperpage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1838
- };
1839
- TdsTableFooter = __decorate([
1840
- ProxyCmp({
1841
- inputs: ['cols', 'pages', 'pagination', 'paginationValue', 'rowsPerPageValues', 'rowsperpage']
1842
- })
1843
- ], TdsTableFooter);
1844
- export { TdsTableFooter };
1845
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableFooter, decorators: [{
1846
- type: Component,
1847
- args: [{
1848
- selector: 'tds-table-footer',
1849
- changeDetection: ChangeDetectionStrategy.OnPush,
1850
- template: '<ng-content></ng-content>',
1851
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1852
- inputs: ['cols', 'pages', 'pagination', 'paginationValue', 'rowsPerPageValues', 'rowsperpage'],
1853
- }]
1854
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1855
- let TdsTableHeader = class TdsTableHeader {
1856
- constructor(c, r, z) {
1857
- this.z = z;
1858
- c.detach();
1859
- this.el = r.nativeElement;
1860
- proxyOutputs(this, this.el, ['tdsSelectAll']);
1861
- }
1862
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1863
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableHeader, selector: "tds-table-header", inputs: { allSelected: "allSelected", disabled: "disabled", indeterminate: "indeterminate", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1864
- };
1865
- TdsTableHeader = __decorate([
1866
- ProxyCmp({
1867
- inputs: ['allSelected', 'disabled', 'indeterminate', 'selected']
1868
- })
1869
- ], TdsTableHeader);
1870
- export { TdsTableHeader };
1871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeader, decorators: [{
1872
- type: Component,
1873
- args: [{
1874
- selector: 'tds-table-header',
1875
- changeDetection: ChangeDetectionStrategy.OnPush,
1876
- template: '<ng-content></ng-content>',
1877
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1878
- inputs: ['allSelected', 'disabled', 'indeterminate', 'selected'],
1879
- }]
1880
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1881
- let TdsTableHeaderInputWrapper = class TdsTableHeaderInputWrapper {
1882
- constructor(c, r, z) {
1883
- this.z = z;
1884
- c.detach();
1885
- this.el = r.nativeElement;
1886
- }
1887
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeaderInputWrapper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableHeaderInputWrapper, selector: "tds-table-header-input-wrapper", inputs: { compactDesign: "compactDesign", showIcon: "showIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1889
- };
1890
- TdsTableHeaderInputWrapper = __decorate([
1891
- ProxyCmp({
1892
- inputs: ['compactDesign', 'showIcon']
1893
- })
1894
- ], TdsTableHeaderInputWrapper);
1895
- export { TdsTableHeaderInputWrapper };
1896
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableHeaderInputWrapper, decorators: [{
1897
- type: Component,
1898
- args: [{
1899
- selector: 'tds-table-header-input-wrapper',
1900
- changeDetection: ChangeDetectionStrategy.OnPush,
1901
- template: '<ng-content></ng-content>',
1902
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1903
- inputs: ['compactDesign', 'showIcon'],
1904
- }]
1905
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1906
- let TdsTableToolbar = class TdsTableToolbar {
1907
- constructor(c, r, z) {
1908
- this.z = z;
1909
- c.detach();
1910
- this.el = r.nativeElement;
1911
- proxyOutputs(this, this.el, ['tdsFilter']);
1912
- }
1913
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1914
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableToolbar, selector: "tds-table-toolbar", inputs: { filter: "filter", tableTitle: "tableTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1915
- };
1916
- TdsTableToolbar = __decorate([
1917
- ProxyCmp({
1918
- inputs: ['filter', 'tableTitle']
1919
- })
1920
- ], TdsTableToolbar);
1921
- export { TdsTableToolbar };
1922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableToolbar, decorators: [{
1923
- type: Component,
1924
- args: [{
1925
- selector: 'tds-table-toolbar',
1926
- changeDetection: ChangeDetectionStrategy.OnPush,
1927
- template: '<ng-content></ng-content>',
1928
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1929
- inputs: ['filter', 'tableTitle'],
1930
- }]
1931
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1932
- let TdsTextField = class TdsTextField {
1933
- constructor(c, r, z) {
1934
- this.z = z;
1935
- c.detach();
1936
- this.el = r.nativeElement;
1937
- proxyOutputs(this, this.el, ['tdsChange', 'tdsInput', 'tdsFocus', 'tdsBlur']);
1938
- }
1939
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextField, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1940
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTextField, selector: "tds-text-field", inputs: { autofocus: "autofocus", disabled: "disabled", helper: "helper", label: "label", labelPosition: "labelPosition", max: "max", maxLength: "maxLength", min: "min", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", placeholder: "placeholder", readOnly: "readOnly", size: "size", state: "state", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1941
- };
1942
- TdsTextField = __decorate([
1943
- ProxyCmp({
1944
- inputs: ['autofocus', 'disabled', 'helper', 'label', 'labelPosition', 'max', 'maxLength', 'min', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'size', 'state', 'type', 'value']
1945
- })
1946
- ], TdsTextField);
1947
- export { TdsTextField };
1948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextField, decorators: [{
1949
- type: Component,
1950
- args: [{
1951
- selector: 'tds-text-field',
1952
- changeDetection: ChangeDetectionStrategy.OnPush,
1953
- template: '<ng-content></ng-content>',
1954
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1955
- inputs: ['autofocus', 'disabled', 'helper', 'label', 'labelPosition', 'max', 'maxLength', 'min', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'size', 'state', 'type', 'value'],
1956
- }]
1957
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1958
- let TdsTextarea = class TdsTextarea {
1959
- constructor(c, r, z) {
1960
- this.z = z;
1961
- c.detach();
1962
- this.el = r.nativeElement;
1963
- proxyOutputs(this, this.el, ['tdsChange', 'tdsBlur', 'tdsInput', 'tdsFocus']);
1964
- }
1965
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1966
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTextarea, selector: "tds-textarea", inputs: { autofocus: "autofocus", cols: "cols", disabled: "disabled", helper: "helper", label: "label", labelPosition: "labelPosition", maxLength: "maxLength", modeVariant: "modeVariant", name: "name", noMinWidth: "noMinWidth", placeholder: "placeholder", readOnly: "readOnly", rows: "rows", state: "state", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1967
- };
1968
- TdsTextarea = __decorate([
1969
- ProxyCmp({
1970
- inputs: ['autofocus', 'cols', 'disabled', 'helper', 'label', 'labelPosition', 'maxLength', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'rows', 'state', 'value']
1971
- })
1972
- ], TdsTextarea);
1973
- export { TdsTextarea };
1974
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTextarea, decorators: [{
1975
- type: Component,
1976
- args: [{
1977
- selector: 'tds-textarea',
1978
- changeDetection: ChangeDetectionStrategy.OnPush,
1979
- template: '<ng-content></ng-content>',
1980
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1981
- inputs: ['autofocus', 'cols', 'disabled', 'helper', 'label', 'labelPosition', 'maxLength', 'modeVariant', 'name', 'noMinWidth', 'placeholder', 'readOnly', 'rows', 'state', 'value'],
1982
- }]
1983
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1984
- let TdsToast = class TdsToast {
1985
- constructor(c, r, z) {
1986
- this.z = z;
1987
- c.detach();
1988
- this.el = r.nativeElement;
1989
- proxyOutputs(this, this.el, ['tdsClose']);
1990
- }
1991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsToast, selector: "tds-toast", inputs: { closable: "closable", header: "header", hidden: "hidden", subheader: "subheader", toastId: "toastId", toastRole: "toastRole", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1993
- };
1994
- TdsToast = __decorate([
1995
- ProxyCmp({
1996
- inputs: ['closable', 'header', 'hidden', 'subheader', 'toastId', 'toastRole', 'variant'],
1997
- methods: ['hideToast', 'showToast']
1998
- })
1999
- ], TdsToast);
2000
- export { TdsToast };
2001
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToast, decorators: [{
2002
- type: Component,
2003
- args: [{
2004
- selector: 'tds-toast',
2005
- changeDetection: ChangeDetectionStrategy.OnPush,
2006
- template: '<ng-content></ng-content>',
2007
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2008
- inputs: ['closable', 'header', 'hidden', 'subheader', 'toastId', 'toastRole', 'variant'],
2009
- }]
2010
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2011
- let TdsToggle = class TdsToggle {
2012
- constructor(c, r, z) {
2013
- this.z = z;
2014
- c.detach();
2015
- this.el = r.nativeElement;
2016
- proxyOutputs(this, this.el, ['tdsToggle']);
2017
- }
2018
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2019
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsToggle, selector: "tds-toggle", inputs: { checked: "checked", disabled: "disabled", headline: "headline", name: "name", required: "required", size: "size", toggleId: "toggleId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2020
- };
2021
- TdsToggle = __decorate([
2022
- ProxyCmp({
2023
- inputs: ['checked', 'disabled', 'headline', 'name', 'required', 'size', 'toggleId'],
2024
- methods: ['toggle']
2025
- })
2026
- ], TdsToggle);
2027
- export { TdsToggle };
2028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsToggle, decorators: [{
2029
- type: Component,
2030
- args: [{
2031
- selector: 'tds-toggle',
2032
- changeDetection: ChangeDetectionStrategy.OnPush,
2033
- template: '<ng-content></ng-content>',
2034
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2035
- inputs: ['checked', 'disabled', 'headline', 'name', 'required', 'size', 'toggleId'],
2036
- }]
2037
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2038
- let TdsTooltip = class TdsTooltip {
2039
- constructor(c, r, z) {
2040
- this.z = z;
2041
- c.detach();
2042
- this.el = r.nativeElement;
2043
- }
2044
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
2045
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTooltip, selector: "tds-tooltip", inputs: { mouseOverTooltip: "mouseOverTooltip", offsetDistance: "offsetDistance", offsetSkidding: "offsetSkidding", placement: "placement", referenceEl: "referenceEl", selector: "selector", show: "show", text: "text", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2046
- };
2047
- TdsTooltip = __decorate([
2048
- ProxyCmp({
2049
- inputs: ['mouseOverTooltip', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'text', 'trigger']
2050
- })
2051
- ], TdsTooltip);
2052
- export { TdsTooltip };
2053
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTooltip, decorators: [{
2054
- type: Component,
2055
- args: [{
2056
- selector: 'tds-tooltip',
2057
- changeDetection: ChangeDetectionStrategy.OnPush,
2058
- template: '<ng-content></ng-content>',
2059
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2060
- inputs: ['mouseOverTooltip', 'offsetDistance', 'offsetSkidding', 'placement', 'referenceEl', 'selector', 'show', 'text', 'trigger'],
2061
- }]
2062
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2063
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWVoRSxJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsWUFBWTttR0FBWixZQUFZLCtIQUpiLDJCQUEyQjs7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7S0FDMUMsQ0FBQztHQVFXLFlBQVksQ0FNeEI7OzRGQU5ZLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztpQkFDMUM7O0FBd0JNLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWdCO0lBRTNCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFD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QUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQztpQkFDcEY7O0FBNkJNLElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7SUFFckIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxVQUFVO21HQUFWLFVBQVUsbVNBSlgsMkJBQTJCOztBQUkxQixVQUFVO0lBVnRCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO0tBQ3BJLENBQUM7R0FRVyxVQUFVLENBTXRCOzs0RkFOWSxVQUFVO2tCQVB0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztpQkFDcEkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhc3RCb3JkZXInLCAnbW9kZVZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYXN0Qm9yZGVyJywgJ21vZGVWYXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0FjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzQWNjb3JkaW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2V4cGFuZEljb25Qb3NpdGlvbicsICdleHBhbmRlZCcsICdoZWFkZXInLCAncGFkZGluZ1Jlc2V0J10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlQWNjb3JkaW9uSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdleHBhbmRJY29uUG9zaXRpb24nLCAnZXhwYW5kZWQnLCAnaGVhZGVyJywgJ3BhZGRpbmdSZXNldCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0FjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgQWNjb3JkaW9uIEl0ZW0gaXMgY2xpY2tlZCwgYnV0IGJlZm9yZSBpdCBpcyBjbG9zZWQgb3Igb3BlbmVkLlxuICAgKi9cbiAgdGRzVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0JhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYW5uZXJJZCcsICdoZWFkZXInLCAnaGlkZGVuJywgJ2ljb24nLCAnc3ViaGVhZGVyJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydoaWRlQmFubmVyJywgJ3Nob3dCYW5uZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Jhbm5lcklkJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnaWNvbicsICdzdWJoZWFkZXInLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Jhbm5lciB7XG4gIC8qKlxuICAgKiBTZW5kcyBhIHVuaXF1ZSBCYW5uZXIgaWRlbnRpZmllciB3aGVuIHRoZSBjbG9zZSBidXR0b24gaXMgcHJlc3NlZC5cbiAgICovXG4gIHRkc0Nsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBiYW5uZXJJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGVWYXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYmxvY2snLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21vZGVWYXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Jsb2NrIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQmxvY2sgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Jsb2NrIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NlbGxLZXknLCAnY2VsbFZhbHVlJywgJ2Rpc2FibGVQYWRkaW5nJywgJ3RleHRBbGlnbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJvZHktY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnZGlzYWJsZVBhZGRpbmcnLCAndGV4dEFsaWduJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JvZHlDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQm9keUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0JvZHlDZWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJyZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCcmVhZGNydW1iIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQnJlYWRjcnVtYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuVGRzQnJlYWRjcnVtYnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZnVsbGJsZWVkJywgJ21vZGVWYXJpYW50JywgJ3NpemUnLCAndGV4dCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Z1bGxibGVlZCcsICdtb2RlVmFyaWFudCcsICdzaXplJywgJ3RleHQnLCAndHlwZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0J1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0J1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvZHlEaXZpZGVyJywgJ2JvZHlJbWcnLCAnYm9keUltZ0FsdCcsICdjYXJkSWQnLCAnY2xpY2thYmxlJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvZHlEaXZpZGVyJywgJ2JvZHlJbWcnLCAnYm9keUltZ0FsdCcsICdjYXJkSWQnLCAnY2xpY2thYmxlJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuVGRzQ2FyZCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgQ2FyZCBpZGVudGlmaWVyIHdoZW4gdGhlIENhcmQgaXMgY2xpY2tlZCwgaWYgY2xpY2thYmxlPXRydWVcbiAgICovXG4gIHRkc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjYXJkSWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2JveElkJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlQ2hlY2tib3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tib3hJZCcsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNGb2N1cycsICd0ZHNCbHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0NoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNDaGVja2JveCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgQ2hlY2tib3ggaWRlbnRpZmllciBhbmQgY2hlY2tlZCBzdGF0dXMgd2hlbiBpdCBpcyBjaGVja2VkL3VuY2hlY2tlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hlY2tib3hJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyBpbmRldGVybWluYXRlOiBib29sZWFuOyB2YWx1ZT86IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnQgZm9yIHRoZSBDaGVja2JveFxuICAgKi9cbiAgdGRzRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgQ2hlY2tib3hcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnY2hpcElkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjaGlwSWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNDaGlwIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgYW5kIHZhbHVlIHdoZW4gaXQgaXMgY2hhbmdlZCAoY2hlY2tlZC91bmNoZWNrZWQpLlxuVmFsaWQgb25seSBmb3IgdHlwZSBjaGVja2JveCBhbmQgcmFkaW8uXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgY2hlY2tlZD86IGJvb2xlYW47IH0+PjtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgd2hlbiBDaGlwIGlzIGNsaWNrZWQuXG5WYWxpZCBvbmx5IGZvciB0eXBlIGJ1dHRvbi5cbklmIG5vIElEIGlzIHNwZWNpZmllZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuVG8gdXNlIHRoaXMgbGlzdGVuZXIsIGRvbid0IHVzZSB0aGUgcmFuZG9taXplZCBJRCwgdXNlIGEgc3BlY2lmaWMgb25lIG9mIHlvdXIgY2hvb3NpbmcuXG4gICAqL1xuICB0ZHNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jb3JlLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NvcmVIZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ29yZUhlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0NvcmVIZWFkZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3NpemUnLCAnc3RhdGUnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldFZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGF0ZXRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3NpemUnLCAnc3RhdGUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNEYXRldGltZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNCbHVyJywgJ3Rkc0ZvY3VzJywgJ3Rkc0lucHV0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RhdGV0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEYXRldGltZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBEYXRldGltZVxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERhdGV0aW1lXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcmllbnRhdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29yaWVudGF0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0RpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEaXZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdmaWx0ZXInLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdFRleHQnLCAnbm9ybWFsaXplVGV4dCcsICdvcGVuRGlyZWN0aW9uJywgJ3BsYWNlaG9sZGVyJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydyZXNldCcsICdzZXRWYWx1ZScsICdyZW1vdmVWYWx1ZScsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnZmlsdGVyJywgJ2hlbHBlcicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21vZGVWYXJpYW50JywgJ211bHRpc2VsZWN0JywgJ25hbWUnLCAnbm9SZXN1bHRUZXh0JywgJ25vcm1hbGl6ZVRleHQnLCAnb3BlbkRpcmVjdGlvbicsICdwbGFjZWhvbGRlcicsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Ryb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2hhbmdlJywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInLCAndGRzSW5wdXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Ryb3Bkb3duIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IH0+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBEcm9wZG93bi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0U2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1kcm9wZG93bi1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Ryb3Bkb3duT3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzU2VsZWN0JywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRHJvcGRvd25PcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Ryb3Bkb3duT3B0aW9uIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IGZvciB0aGUgRHJvcGRvd24gb3B0aW9uLlxuICAgKi9cbiAgdGRzU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnQgZm9yIHRoZSBEcm9wZG93biBvcHRpb24uXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBEcm9wZG93biBvcHRpb24uXG4gICAqL1xuICB0ZHNCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvbGRlci10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0ZvbGRlclRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ZvbGRlclRhYiBleHRlbmRzIENvbXBvbmVudHMuVGRzRm9sZGVyVGFiIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTZWxlY3RlZEluZGV4JywgJ21vZGVWYXJpYW50JywgJ3NlbGVjdGVkSW5kZXgnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInLCAncmVpbml0aWFsaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9sZGVyLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTZWxlY3RlZEluZGV4JywgJ21vZGVWYXJpYW50JywgJ3NlbGVjdGVkSW5kZXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNGb2xkZXJUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb2xkZXJUYWJzIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgVGFiIGlzIGNoYW5nZWQuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb2RlVmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9kZVZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGl0bGVUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9vdGVyLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0aXRsZVRleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVyR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNGb290ZXJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVGRzRm9vdGVyR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1mb290ZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNGb290ZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzRm9vdGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1icmFuZC1zeW1ib2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyQnJhbmRTeW1ib2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJCcmFuZFN5bWJvbCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyQnJhbmRTeW1ib2wge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnY3VzdG9tV2lkdGgnLCAnZGlzYWJsZVBhZGRpbmcnLCAnc29ydGFibGUnLCAndGV4dEFsaWduJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NlbGxLZXknLCAnY2VsbFZhbHVlJywgJ2N1c3RvbVdpZHRoJywgJ2Rpc2FibGVQYWRkaW5nJywgJ3NvcnRhYmxlJywgJ3RleHRBbGlnbiddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzU29ydCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJDZWxsIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBUYWJsZSBpZGVudGlmaWVyLCBjb2x1bW4ga2V5IGFuZCBzb3J0aW5nIGRpcmVjdGlvbiB0byB0aGUgdGRzLXRhYmxlLWJvZHkgY29tcG9uZW50LFxuY2FuIGFsc28gYmUgbGlzdGVuZWQgdG8gaW1wbGVtZW50IGN1c3RvbS1zb3J0aW5nIGxvZ2ljLlxuICAgKi9cbiAgdGRzU29ydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nOyBjb2x1bW5LZXk6IHN0cmluZzsgc29ydGluZ0RpcmVjdGlvbjogJ2FzYycgfCAnZGVzYyc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9Ecm9wZG93bkljb24nLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vRHJvcGRvd25JY29uJywgJ3NlbGVjdGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzZWxlY3RlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWRyb3Bkb3duLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdC11c2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyRHJvcGRvd25MaXN0VXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItaGFtYnVyZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckhhbWJ1cmdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckhhbWJ1cmdlciBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVySGFtYnVyZ2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlciBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWQge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItZ3JpZC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyR3JpZEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWRJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWRJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWdyaWQtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkVGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJHcmlkVGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItbGlzdC10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3RUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckxpc3RUaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlclRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJUaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyduYW1lJywgJ3NpemUnLCAnc3ZnRGVzY3JpcHRpb24nLCAnc3ZnVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyduYW1lJywgJ3NpemUnLCAnc3ZnRGVzY3JpcHRpb24nLCAnc3ZnVGl0bGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0ljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1pbmxpbmUtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNJbmxpbmVUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNJbmxpbmVUYWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0lubGluZVRhYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4J10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWlubGluZS10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4J10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0lubGluZVRhYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSW5saW5lVGFicyBleHRlbmRzIENvbXBvbmVudHMuVGRzSW5saW5lVGFicyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIFRhYiBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndW5kZXJsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndW5kZXJsaW5lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc0xpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNMaW5rIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRlcicsICdtaW5pbWFsJywgJ21vZGVWYXJpYW50JywgJ25vSWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyJywgJ21pbmltYWwnLCAnbW9kZVZhcmlhbnQnLCAnbm9JY29uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc01lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlRkc01lc3NhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9uc1Bvc2l0aW9uJywgJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdwcmV2ZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ3Nob3dNb2RhbCcsICdjbG9zZU1vZGFsJywgJ2luaXRpYWxpemVNb2RhbCcsICdjbGVhbnVwTW9kYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uc1Bvc2l0aW9uJywgJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdwcmV2ZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc01vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNNb2RhbCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBNb2RhbCBpcyBjbG9zZWQuXG4gICAqL1xuICB0ZHNDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW5hdmlnYXRpb24tdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNOYXZpZ2F0aW9uVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzTmF2aWdhdGlvblRhYiBleHRlbmRzIENvbXBvbmVudHMuVGRzTmF2aWdhdGlvblRhYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4J10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW5hdmlnYXRpb24tdGFicycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNOYXZpZ2F0aW9uVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNOYXZpZ2F0aW9uVGFicyBleHRlbmRzIENvbXBvbmVudHMuVGRzTmF2aWdhdGlvblRhYnMge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBUYWIgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1jYW52YXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyQ2FudmFzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUG9wb3ZlckNhbnZhcyBleHRlbmRzIENvbXBvbmVudHMuVGRzUG9wb3ZlckNhbnZhcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvSGlkZScsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1jb3JlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvSGlkZScsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndHJpZ2dlciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyQ29yZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJDb3JlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyQ29yZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmbHVpZFdpZHRoJywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFNraWRkaW5nJywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93J10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZsdWlkV2lkdGgnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3Zlck1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNQb3BvdmVyTWVudSBleHRlbmRzIENvbXBvbmVudHMuVGRzUG9wb3Zlck1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3Zlck1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUG9wb3Zlck1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3JhZGlvSWQnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1yYWRpby1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyYWRpb0lkJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1JhZGlvQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGRzQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1JhZGlvQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNSYWRpb0J1dHRvbiB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgUmFkaW8gQnV0dG9uIGlkZW50aWZpZXIgYW5kIHN0YXR1cyB3aGVuIGl0IGlzIGNoZWNrZWQuXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByYWRpb0lkOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ29wZW4nLCAncGVyc2lzdGVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ29wZW4nLCAncGVyc2lzdGVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NvbGxhcHNlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBDb2xsYXBzZUV2ZW50IGFzIElUZHNTaWRlTWVudUNvbGxhcHNlRXZlbnQgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudSB7XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgU2lkZSBNZW51IGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHRkc0NvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1jbG9zZS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVDbG9zZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51Q2xvc2VCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51Q2xvc2VCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtY29sbGFwc2UtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDb2xsYXBzZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VFdmVudCBhcyBJVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkNvbGxhcHNlRXZlbnQgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24ge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBicm9hZGNhc3Qgd2hlbiB0aGUgY29sbGFwc2UgYnV0dG9uIGlzIGNsaWNrZWQuXG5QcmV2ZW50IGl0IGZyb20gZGlzYWJsaW5nIGF1dG9tYXRpYyBjb2xsYXBzaW5nLCBhbmQgc2V0IHRoZSBjb2xsYXBzZWQgcHJvcCBvbiB0aGUgU2lkZSBNZW51IHlvdXJzZWxmLlxuICAgKi9cbiAgdGRzQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkNvbGxhcHNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uTGFiZWwnLCAnZGVmYXVsdE9wZW4nLCAnb3BlbicsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uTGFiZWwnLCAnZGVmYXVsdE9wZW4nLCAnb3BlbicsICdzZWxlY3RlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudURyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVEcm9wZG93biB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1kcm9wZG93bi1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51RHJvcGRvd25MaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWRyb3Bkb3duLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudURyb3Bkb3duTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1vdmVybGF5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51T3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51T3ZlcmxheSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVPdmVybGF5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaW1nQWx0JywgJ2ltZ1NyYycsICdzdWJoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LXVzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaW1nQWx0JywgJ2ltZ1NyYycsICdzdWJoZWFkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51VXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51VXNlciBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVVc2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsdCcsICdzcmMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtdXNlci1pbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ3NyYyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudVVzZXJJbWFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51VXNlckltYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudVVzZXJJbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ3N1YmhlYWRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtdXNlci1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdzdWJoZWFkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51VXNlckxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVVc2VyTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51VXNlckxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2Rpc2FibGVkJywgJ2lucHV0JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdzaG93VGlja051bWJlcnMnLCAnc2xpZGVySWQnLCAnc25hcCcsICdzdGVwJywgJ3RodW1iU2l6ZScsICd0aWNrcycsICd0b29sdGlwJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsncmVzZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2Rpc2FibGVkJywgJ2lucHV0JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdzaG93VGlja051bWJlcnMnLCAnc2xpZGVySWQnLCAnc25hcCcsICdzdGVwJywgJ3RodW1iU2l6ZScsICd0aWNrcycsICd0b29sdGlwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NsaWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0NoYW5nZScsICd0ZHNJbnB1dCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NsaWRlciB7XG4gIC8qKlxuICAgKiBTZW5kcyB0aGUgdmFsdWUgb2YgdGhlIHNsaWRlciB3aGVuIGNoYW5nZWQuIEZpcmVzIGFmdGVyIG1vdXNlIHVwIGFuZCB0b3VjaCBlbmQgZXZlbnRzLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBTZW5kcyB0aGUgdmFsdWUgb2YgdGhlIHNsaWRlciB3aGlsZSBtb3ZpbmcgdGhlIHRodW1iLiBGaXJlcyBvbiBtb3VzZSBtb3ZlIGFuZCB0b3VjaCBtb3ZlIGV2ZW50cy5cbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuVGRzU3Bpbm5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRleCcsICdzdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXN0ZXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV4JywgJ3N0YXRlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1N0ZXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTdGVwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTdGVwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbHMnLCAnbGFiZWxQb3NpdGlvbicsICdvcmllbnRhdGlvbicsICdzaXplJywgJ3N0ZXBwZXJJZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbHMnLCAnbGFiZWxQb3NpdGlvbicsICdvcmllbnRhdGlvbicsICdzaXplJywgJ3N0ZXBwZXJJZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzU3RlcHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ2V4cGFuZGFibGVSb3dzJywgJ2hvcml6b250YWxTY3JvbGxXaWR0aCcsICdtb2RlVmFyaWFudCcsICdtdWx0aXNlbGVjdCcsICdub01pbldpZHRoJywgJ3Jlc3BvbnNpdmUnLCAndGFibGVJZCcsICd2ZXJ0aWNhbERpdmlkZXJzJywgJ3plYnJhTW9kZSddLFxuICBtZXRob2RzOiBbJ2dldFNlbGVjdGVkUm93cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ2V4cGFuZGFibGVSb3dzJywgJ2hvcml6b250YWxTY3JvbGxXaWR0aCcsICdtb2RlVmFyaWFudCcsICdtdWx0aXNlbGVjdCcsICdub01pbldpZHRoJywgJ3Jlc3BvbnNpdmUnLCAndGFibGVJZCcsICd2ZXJ0aWNhbERpdmlkZXJzJywgJ3plYnJhTW9kZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUJvZHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LWlucHV0LXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Nob3dJY29uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5SW5wdXRXcmFwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtYm9keS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3NlbGVjdGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc1NlbGVjdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUJvZHlSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlQm9keVJvdyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByb3cgaXMgc2VsZWN0ZWQvZGVzZWxlY3RlZC5cbiAgICovXG4gIHRkc1NlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyBzZWxlY3RlZFJvd3M6IGFueVtdOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbFNwYW4nLCAnZXhwYW5kZWQnLCAnb3ZlcmZsb3cnLCAncm93SWQnXSxcbiAgbWV0aG9kczogWydleHBhbmQnLCAnY29sbGFwc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LXJvdy1leHBhbmRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xTcGFuJywgJ2V4cGFuZGVkJywgJ292ZXJmbG93JywgJ3Jvd0lkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keVJvd0V4cGFuZGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZSB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgdGFibGUgcm93IGlkZW50aWZpZXIgYW5kIGlzRXhwYW5kZWQgc3RhdHVzIHdoZW4gaXQgaXMgZXhwYW5kZWQvY29sbGFwc2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByb3dJZDogc3RyaW5nOyBpc0V4cGFuZGVkOiBib29sZWFuOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHMnLCAncGFnZXMnLCAncGFnaW5hdGlvbicsICdwYWdpbmF0aW9uVmFsdWUnLCAncm93c1BlclBhZ2VWYWx1ZXMnLCAncm93c3BlcnBhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbHMnLCAncGFnZXMnLCAncGFnaW5hdGlvbicsICdwYWdpbmF0aW9uVmFsdWUnLCAncm93c1BlclBhZ2VWYWx1ZXMnLCAncm93c3BlcnBhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNQYWdpbmF0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUZvb3RlciB7XG4gIC8qKlxuICAgKiBFdmVudCB0byBzZW5kIGN1cnJlbnQgcGFnZSB2YWx1ZSB0byB0ZHMtdGFibGUtYm9keSBjb21wb25lbnQsIGNhbiBhbHNvIGJlIGxpc3RlbmVkIHRvIGluIG9yZGVyIHRvIGltcGxlbWVudCBjdXN0b20gcGFnaW5hdGlvbiBsb2dpYy5cbiAgICovXG4gIHRkc1BhZ2luYXRpb246IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZzsgcGFnaW5hdGlvblZhbHVlOiBudW1iZXI7IHJvd3NQZXJQYWdlPzogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbFNlbGVjdGVkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbFNlbGVjdGVkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNTZWxlY3RBbGwnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlSGVhZGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc3RhdHVzIG9mIHRoZSBzZWxlY3QgYWxsIGNoZWNrYm94IGNoYW5nZXMuXG4gICAqL1xuICB0ZHNTZWxlY3RBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZzsgY2hlY2tlZDogYm9vbGVhbjsgc2VsZWN0ZWRSb3dzOiBhbnlbXTsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ3Nob3dJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtaGVhZGVyLWlucHV0LXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbXBhY3REZXNpZ24nLCAnc2hvd0ljb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUhlYWRlcklucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsdGVyJywgJ3RhYmxlVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS10b29sYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaWx0ZXInLCAndGFibGVUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZVRvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNGaWx0ZXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZVRvb2xiYXIge1xuICAvKipcbiAgICogVXNlZCBmb3Igc2VuZGluZyB1c2VycycgaW5wdXQgdG8gdGhlIG1haW4gcGFyZW50IHRkcy10YWJsZSB0aGUgY29tcG9uZW50LFxuY2FuIGFsc28gYmUgbGlzdGVuZWQgdG8gaW4gb3JkZXIgdG8gaW1wbGVtZW50IGN1c3RvbSBzb3J0aW5nIGxvZ2ljLlxuICAgKi9cbiAgdGRzRmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdzaXplJywgJ3N0YXRlJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10ZXh0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3NpemUnLCAnc3RhdGUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUZXh0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzSW5wdXQnLCAndGRzRm9jdXMnLCAndGRzQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RleHRGaWVsZCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBUZXh0IEZpZWxkXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZFxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjb2xzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heExlbmd0aCcsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncm93cycsICdzdGF0ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY29scycsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXhMZW5ndGgnLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3Jvd3MnLCAnc3RhdGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNDaGFuZ2UnLCAndGRzQmx1cicsICd0ZHNJbnB1dCcsICd0ZHNGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGV4dGFyZWEge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IGZvciB0aGUgVGV4dGFyZWFcbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZXZlbnQgZm9yIHRoZSBUZXh0YXJlYVxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnaGVhZGVyJywgJ2hpZGRlbicsICdzdWJoZWFkZXInLCAndG9hc3RJZCcsICd0b2FzdFJvbGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2hpZGVUb2FzdCcsICdzaG93VG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnaGVhZGVyJywgJ2hpZGRlbicsICdzdWJoZWFkZXInLCAndG9hc3RJZCcsICd0b2FzdFJvbGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rkc0Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb2FzdCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVG9hc3QgaWRlbnRpZmllciB3aGVuIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gICAqL1xuICB0ZHNDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdG9hc3RJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaGVhZGxpbmUnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvZ2dsZUlkJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2hlYWRsaW5lJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b2dnbGVJZCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZHNUb2dnbGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb2dnbGUge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIFRvZ2dsZSBpZGVudGlmaWVyIGFuZCBzdGF0dXMgd2hlbiBpdCBpcyB0b2dnbGVkLlxuICAgKi9cbiAgdGRzVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0b2dnbGVJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vdXNlT3ZlclRvb2x0aXAnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndGV4dCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW91c2VPdmVyVG9vbHRpcCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZXh0JywgJ3RyaWdnZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGRzVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1Rvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1Rvb2x0aXAge31cblxuXG4iXX0=