@siemens/ix-angular 1.1.0-beta.4 → 1.1.0-beta.6

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.
@@ -0,0 +1,1621 @@
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 IxAnimatedTab = class IxAnimatedTab {
8
+ constructor(c, r, z) {
9
+ this.z = z;
10
+ c.detach();
11
+ this.el = r.nativeElement;
12
+ }
13
+ };
14
+ /** @nocollapse */ IxAnimatedTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxAnimatedTab, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
15
+ /** @nocollapse */ IxAnimatedTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxAnimatedTab, selector: "ix-animated-tab", inputs: { count: "count", icon: "icon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
+ IxAnimatedTab = __decorate([
17
+ ProxyCmp({
18
+ defineCustomElementFn: undefined,
19
+ inputs: ['count', 'icon']
20
+ })
21
+ ], IxAnimatedTab);
22
+ export { IxAnimatedTab };
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxAnimatedTab, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ selector: 'ix-animated-tab',
27
+ changeDetection: ChangeDetectionStrategy.OnPush,
28
+ template: '<ng-content></ng-content>',
29
+ inputs: ['count', 'icon']
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
32
+ let IxAnimatedTabs = class IxAnimatedTabs {
33
+ constructor(c, r, z) {
34
+ this.z = z;
35
+ c.detach();
36
+ this.el = r.nativeElement;
37
+ proxyOutputs(this, this.el, ['tabClick']);
38
+ }
39
+ };
40
+ /** @nocollapse */ IxAnimatedTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxAnimatedTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
41
+ /** @nocollapse */ IxAnimatedTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxAnimatedTabs, selector: "ix-animated-tabs", inputs: { disableAnimations: "disableAnimations", selectedIndex: "selectedIndex", tabPlacement: "tabPlacement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
+ IxAnimatedTabs = __decorate([
43
+ ProxyCmp({
44
+ defineCustomElementFn: undefined,
45
+ inputs: ['disableAnimations', 'selectedIndex', 'tabPlacement']
46
+ })
47
+ ], IxAnimatedTabs);
48
+ export { IxAnimatedTabs };
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxAnimatedTabs, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'ix-animated-tabs',
53
+ changeDetection: ChangeDetectionStrategy.OnPush,
54
+ template: '<ng-content></ng-content>',
55
+ inputs: ['disableAnimations', 'selectedIndex', 'tabPlacement']
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
58
+ let IxApplicationHeader = class IxApplicationHeader {
59
+ constructor(c, r, z) {
60
+ this.z = z;
61
+ c.detach();
62
+ this.el = r.nativeElement;
63
+ }
64
+ };
65
+ /** @nocollapse */ IxApplicationHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxApplicationHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
66
+ /** @nocollapse */ IxApplicationHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxApplicationHeader, selector: "ix-application-header", inputs: { name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ IxApplicationHeader = __decorate([
68
+ ProxyCmp({
69
+ defineCustomElementFn: undefined,
70
+ inputs: ['name']
71
+ })
72
+ ], IxApplicationHeader);
73
+ export { IxApplicationHeader };
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxApplicationHeader, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'ix-application-header',
78
+ changeDetection: ChangeDetectionStrategy.OnPush,
79
+ template: '<ng-content></ng-content>',
80
+ inputs: ['name']
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
83
+ let IxBasicNavigation = class IxBasicNavigation {
84
+ constructor(c, r, z) {
85
+ this.z = z;
86
+ c.detach();
87
+ this.el = r.nativeElement;
88
+ }
89
+ };
90
+ /** @nocollapse */ IxBasicNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBasicNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
91
+ /** @nocollapse */ IxBasicNavigation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxBasicNavigation, selector: "ix-basic-navigation", inputs: { applicationName: "applicationName", hideHeader: "hideHeader" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ IxBasicNavigation = __decorate([
93
+ ProxyCmp({
94
+ defineCustomElementFn: undefined,
95
+ inputs: ['applicationName', 'hideHeader']
96
+ })
97
+ ], IxBasicNavigation);
98
+ export { IxBasicNavigation };
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBasicNavigation, decorators: [{
100
+ type: Component,
101
+ args: [{
102
+ selector: 'ix-basic-navigation',
103
+ changeDetection: ChangeDetectionStrategy.OnPush,
104
+ template: '<ng-content></ng-content>',
105
+ inputs: ['applicationName', 'hideHeader']
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
108
+ let IxBlind = class IxBlind {
109
+ constructor(c, r, z) {
110
+ this.z = z;
111
+ c.detach();
112
+ this.el = r.nativeElement;
113
+ proxyOutputs(this, this.el, ['collapsedChange']);
114
+ }
115
+ };
116
+ /** @nocollapse */ IxBlind.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBlind, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
117
+ /** @nocollapse */ IxBlind.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxBlind, selector: "ix-blind", inputs: { collapsed: "collapsed", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
+ IxBlind = __decorate([
119
+ ProxyCmp({
120
+ defineCustomElementFn: undefined,
121
+ inputs: ['collapsed', 'label']
122
+ })
123
+ ], IxBlind);
124
+ export { IxBlind };
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBlind, decorators: [{
126
+ type: Component,
127
+ args: [{
128
+ selector: 'ix-blind',
129
+ changeDetection: ChangeDetectionStrategy.OnPush,
130
+ template: '<ng-content></ng-content>',
131
+ inputs: ['collapsed', 'label']
132
+ }]
133
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
134
+ let IxBreadcrumb = class IxBreadcrumb {
135
+ constructor(c, r, z) {
136
+ this.z = z;
137
+ c.detach();
138
+ this.el = r.nativeElement;
139
+ proxyOutputs(this, this.el, ['itemClick', 'nextClick']);
140
+ }
141
+ };
142
+ /** @nocollapse */ IxBreadcrumb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
143
+ /** @nocollapse */ IxBreadcrumb.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxBreadcrumb, selector: "ix-breadcrumb", inputs: { ghost: "ghost", nextItems: "nextItems", visibleItemCount: "visibleItemCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
144
+ IxBreadcrumb = __decorate([
145
+ ProxyCmp({
146
+ defineCustomElementFn: undefined,
147
+ inputs: ['ghost', 'nextItems', 'visibleItemCount']
148
+ })
149
+ ], IxBreadcrumb);
150
+ export { IxBreadcrumb };
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBreadcrumb, decorators: [{
152
+ type: Component,
153
+ args: [{
154
+ selector: 'ix-breadcrumb',
155
+ changeDetection: ChangeDetectionStrategy.OnPush,
156
+ template: '<ng-content></ng-content>',
157
+ inputs: ['ghost', 'nextItems', 'visibleItemCount']
158
+ }]
159
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
160
+ let IxBreadcrumbItem = class IxBreadcrumbItem {
161
+ constructor(c, r, z) {
162
+ this.z = z;
163
+ c.detach();
164
+ this.el = r.nativeElement;
165
+ }
166
+ };
167
+ /** @nocollapse */ IxBreadcrumbItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBreadcrumbItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
168
+ /** @nocollapse */ IxBreadcrumbItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxBreadcrumbItem, selector: "ix-breadcrumb-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
169
+ IxBreadcrumbItem = __decorate([
170
+ ProxyCmp({
171
+ defineCustomElementFn: undefined,
172
+ inputs: ['icon', 'label']
173
+ })
174
+ ], IxBreadcrumbItem);
175
+ export { IxBreadcrumbItem };
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxBreadcrumbItem, decorators: [{
177
+ type: Component,
178
+ args: [{
179
+ selector: 'ix-breadcrumb-item',
180
+ changeDetection: ChangeDetectionStrategy.OnPush,
181
+ template: '<ng-content></ng-content>',
182
+ inputs: ['icon', 'label']
183
+ }]
184
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
185
+ let IxButton = class IxButton {
186
+ constructor(c, r, z) {
187
+ this.z = z;
188
+ c.detach();
189
+ this.el = r.nativeElement;
190
+ }
191
+ };
192
+ /** @nocollapse */ IxButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
193
+ /** @nocollapse */ IxButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxButton, selector: "ix-button", inputs: { disabled: "disabled", ghost: "ghost", invisible: "invisible", outline: "outline", selected: "selected", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ IxButton = __decorate([
195
+ ProxyCmp({
196
+ defineCustomElementFn: undefined,
197
+ inputs: ['disabled', 'ghost', 'invisible', 'outline', 'selected', 'type', 'variant']
198
+ })
199
+ ], IxButton);
200
+ export { IxButton };
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxButton, decorators: [{
202
+ type: Component,
203
+ args: [{
204
+ selector: 'ix-button',
205
+ changeDetection: ChangeDetectionStrategy.OnPush,
206
+ template: '<ng-content></ng-content>',
207
+ inputs: ['disabled', 'ghost', 'invisible', 'outline', 'selected', 'type', 'variant']
208
+ }]
209
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
210
+ let IxCategoryFilter = class IxCategoryFilter {
211
+ constructor(c, r, z) {
212
+ this.z = z;
213
+ c.detach();
214
+ this.el = r.nativeElement;
215
+ proxyOutputs(this, this.el, ['inputChanged', 'filterChanged']);
216
+ }
217
+ };
218
+ /** @nocollapse */ IxCategoryFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxCategoryFilter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
219
+ /** @nocollapse */ IxCategoryFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxCategoryFilter, selector: "ix-category-filter", inputs: { categories: "categories", filterState: "filterState", hideIcon: "hideIcon", i18nPlainText: "i18nPlainText", icon: "icon", initialState: "initialState", labelCategories: "labelCategories", nonSelectableCategories: "nonSelectableCategories", placeholder: "placeholder", repeatCategories: "repeatCategories", suggestions: "suggestions", tmpDisableScrollIntoView: "tmpDisableScrollIntoView" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
220
+ IxCategoryFilter = __decorate([
221
+ ProxyCmp({
222
+ defineCustomElementFn: undefined,
223
+ inputs: ['categories', 'filterState', 'hideIcon', 'i18nPlainText', 'icon', 'initialState', 'labelCategories', 'nonSelectableCategories', 'placeholder', 'repeatCategories', 'suggestions', 'tmpDisableScrollIntoView']
224
+ })
225
+ ], IxCategoryFilter);
226
+ export { IxCategoryFilter };
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxCategoryFilter, decorators: [{
228
+ type: Component,
229
+ args: [{
230
+ selector: 'ix-category-filter',
231
+ changeDetection: ChangeDetectionStrategy.OnPush,
232
+ template: '<ng-content></ng-content>',
233
+ inputs: ['categories', 'filterState', 'hideIcon', 'i18nPlainText', 'icon', 'initialState', 'labelCategories', 'nonSelectableCategories', 'placeholder', 'repeatCategories', 'suggestions', 'tmpDisableScrollIntoView']
234
+ }]
235
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
236
+ let IxChip = class IxChip {
237
+ constructor(c, r, z) {
238
+ this.z = z;
239
+ c.detach();
240
+ this.el = r.nativeElement;
241
+ proxyOutputs(this, this.el, ['close']);
242
+ }
243
+ };
244
+ /** @nocollapse */ IxChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
245
+ /** @nocollapse */ IxChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxChip, selector: "ix-chip", inputs: { active: "active", background: "background", closable: "closable", color: "color", icon: "icon", outline: "outline", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
+ IxChip = __decorate([
247
+ ProxyCmp({
248
+ defineCustomElementFn: undefined,
249
+ inputs: ['active', 'background', 'closable', 'color', 'icon', 'outline', 'variant']
250
+ })
251
+ ], IxChip);
252
+ export { IxChip };
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxChip, decorators: [{
254
+ type: Component,
255
+ args: [{
256
+ selector: 'ix-chip',
257
+ changeDetection: ChangeDetectionStrategy.OnPush,
258
+ template: '<ng-content></ng-content>',
259
+ inputs: ['active', 'background', 'closable', 'color', 'icon', 'outline', 'variant']
260
+ }]
261
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
262
+ let IxCounterPill = class IxCounterPill {
263
+ constructor(c, r, z) {
264
+ this.z = z;
265
+ c.detach();
266
+ this.el = r.nativeElement;
267
+ }
268
+ };
269
+ /** @nocollapse */ IxCounterPill.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxCounterPill, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
270
+ /** @nocollapse */ IxCounterPill.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxCounterPill, selector: "ix-counter-pill", inputs: { alignLeft: "alignLeft", background: "background", color: "color", outline: "outline", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
271
+ IxCounterPill = __decorate([
272
+ ProxyCmp({
273
+ defineCustomElementFn: undefined,
274
+ inputs: ['alignLeft', 'background', 'color', 'outline', 'variant']
275
+ })
276
+ ], IxCounterPill);
277
+ export { IxCounterPill };
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxCounterPill, decorators: [{
279
+ type: Component,
280
+ args: [{
281
+ selector: 'ix-counter-pill',
282
+ changeDetection: ChangeDetectionStrategy.OnPush,
283
+ template: '<ng-content></ng-content>',
284
+ inputs: ['alignLeft', 'background', 'color', 'outline', 'variant']
285
+ }]
286
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
287
+ let IxDatePicker = class IxDatePicker {
288
+ constructor(c, r, z) {
289
+ this.z = z;
290
+ c.detach();
291
+ this.el = r.nativeElement;
292
+ proxyOutputs(this, this.el, ['dateChange', 'dateRangeChange', 'done', 'dateSelect']);
293
+ }
294
+ };
295
+ /** @nocollapse */ IxDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDatePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
296
+ /** @nocollapse */ IxDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDatePicker, selector: "ix-date-picker", inputs: { corners: "corners", eventDelimiter: "eventDelimiter", format: "format", from: "from", individual: "individual", maxDate: "maxDate", minDate: "minDate", range: "range", textSelectDate: "textSelectDate", to: "to" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
297
+ IxDatePicker = __decorate([
298
+ ProxyCmp({
299
+ defineCustomElementFn: undefined,
300
+ inputs: ['corners', 'eventDelimiter', 'format', 'from', 'individual', 'maxDate', 'minDate', 'range', 'textSelectDate', 'to'],
301
+ methods: ['getCurrentDate']
302
+ })
303
+ ], IxDatePicker);
304
+ export { IxDatePicker };
305
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDatePicker, decorators: [{
306
+ type: Component,
307
+ args: [{
308
+ selector: 'ix-date-picker',
309
+ changeDetection: ChangeDetectionStrategy.OnPush,
310
+ template: '<ng-content></ng-content>',
311
+ inputs: ['corners', 'eventDelimiter', 'format', 'from', 'individual', 'maxDate', 'minDate', 'range', 'textSelectDate', 'to']
312
+ }]
313
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
314
+ let IxDateTimeCard = class IxDateTimeCard {
315
+ constructor(c, r, z) {
316
+ this.z = z;
317
+ c.detach();
318
+ this.el = r.nativeElement;
319
+ }
320
+ };
321
+ /** @nocollapse */ IxDateTimeCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDateTimeCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
322
+ /** @nocollapse */ IxDateTimeCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDateTimeCard, selector: "ix-date-time-card", inputs: { corners: "corners", individual: "individual" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
+ IxDateTimeCard = __decorate([
324
+ ProxyCmp({
325
+ defineCustomElementFn: undefined,
326
+ inputs: ['corners', 'individual']
327
+ })
328
+ ], IxDateTimeCard);
329
+ export { IxDateTimeCard };
330
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDateTimeCard, decorators: [{
331
+ type: Component,
332
+ args: [{
333
+ selector: 'ix-date-time-card',
334
+ changeDetection: ChangeDetectionStrategy.OnPush,
335
+ template: '<ng-content></ng-content>',
336
+ inputs: ['corners', 'individual']
337
+ }]
338
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
339
+ let IxDatetimePicker = class IxDatetimePicker {
340
+ constructor(c, r, z) {
341
+ this.z = z;
342
+ c.detach();
343
+ this.el = r.nativeElement;
344
+ proxyOutputs(this, this.el, ['done', 'timeChange', 'dateChange', 'dateSelect']);
345
+ }
346
+ };
347
+ /** @nocollapse */ IxDatetimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDatetimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
348
+ /** @nocollapse */ IxDatetimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDatetimePicker, selector: "ix-datetime-picker", inputs: { dateFormat: "dateFormat", eventDelimiter: "eventDelimiter", from: "from", maxDate: "maxDate", minDate: "minDate", range: "range", showHour: "showHour", showMinutes: "showMinutes", showSeconds: "showSeconds", showTimeReference: "showTimeReference", textSelectDate: "textSelectDate", time: "time", timeFormat: "timeFormat", timeReference: "timeReference", to: "to" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
349
+ IxDatetimePicker = __decorate([
350
+ ProxyCmp({
351
+ defineCustomElementFn: undefined,
352
+ inputs: ['dateFormat', 'eventDelimiter', 'from', 'maxDate', 'minDate', 'range', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectDate', 'time', 'timeFormat', 'timeReference', 'to']
353
+ })
354
+ ], IxDatetimePicker);
355
+ export { IxDatetimePicker };
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDatetimePicker, decorators: [{
357
+ type: Component,
358
+ args: [{
359
+ selector: 'ix-datetime-picker',
360
+ changeDetection: ChangeDetectionStrategy.OnPush,
361
+ template: '<ng-content></ng-content>',
362
+ inputs: ['dateFormat', 'eventDelimiter', 'from', 'maxDate', 'minDate', 'range', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectDate', 'time', 'timeFormat', 'timeReference', 'to']
363
+ }]
364
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
365
+ let IxDrawer = class IxDrawer {
366
+ constructor(c, r, z) {
367
+ this.z = z;
368
+ c.detach();
369
+ this.el = r.nativeElement;
370
+ proxyOutputs(this, this.el, ['open', 'drawerClose']);
371
+ }
372
+ };
373
+ /** @nocollapse */ IxDrawer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDrawer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
374
+ /** @nocollapse */ IxDrawer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDrawer, selector: "ix-drawer", inputs: { closeOnClickOutside: "closeOnClickOutside", fullHeight: "fullHeight", maxWidth: "maxWidth", minWidth: "minWidth", show: "show", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
375
+ IxDrawer = __decorate([
376
+ ProxyCmp({
377
+ defineCustomElementFn: undefined,
378
+ inputs: ['closeOnClickOutside', 'fullHeight', 'maxWidth', 'minWidth', 'show', 'width'],
379
+ methods: ['toggleDrawer']
380
+ })
381
+ ], IxDrawer);
382
+ export { IxDrawer };
383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDrawer, decorators: [{
384
+ type: Component,
385
+ args: [{
386
+ selector: 'ix-drawer',
387
+ changeDetection: ChangeDetectionStrategy.OnPush,
388
+ template: '<ng-content></ng-content>',
389
+ inputs: ['closeOnClickOutside', 'fullHeight', 'maxWidth', 'minWidth', 'show', 'width']
390
+ }]
391
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
392
+ let IxDropdown = class IxDropdown {
393
+ constructor(c, r, z) {
394
+ this.z = z;
395
+ c.detach();
396
+ this.el = r.nativeElement;
397
+ proxyOutputs(this, this.el, ['showChanged']);
398
+ }
399
+ };
400
+ /** @nocollapse */ IxDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
401
+ /** @nocollapse */ IxDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDropdown, selector: "ix-dropdown", inputs: { adjustDropdownWidthToReferenceWidth: "adjustDropdownWidthToReferenceWidth", adjustDropdownWidthToReferenceWith: "adjustDropdownWidthToReferenceWith", anchor: "anchor", closeBehavior: "closeBehavior", header: "header", placement: "placement", positioningStrategy: "positioningStrategy", show: "show", trigger: "trigger" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
402
+ IxDropdown = __decorate([
403
+ ProxyCmp({
404
+ defineCustomElementFn: undefined,
405
+ inputs: ['adjustDropdownWidthToReferenceWidth', 'adjustDropdownWidthToReferenceWith', 'anchor', 'closeBehavior', 'header', 'placement', 'positioningStrategy', 'show', 'trigger'],
406
+ methods: ['updatePosition']
407
+ })
408
+ ], IxDropdown);
409
+ export { IxDropdown };
410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDropdown, decorators: [{
411
+ type: Component,
412
+ args: [{
413
+ selector: 'ix-dropdown',
414
+ changeDetection: ChangeDetectionStrategy.OnPush,
415
+ template: '<ng-content></ng-content>',
416
+ inputs: ['adjustDropdownWidthToReferenceWidth', 'adjustDropdownWidthToReferenceWith', 'anchor', 'closeBehavior', 'header', 'placement', 'positioningStrategy', 'show', 'trigger']
417
+ }]
418
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
419
+ let IxDropdownItem = class IxDropdownItem {
420
+ constructor(c, r, z) {
421
+ this.z = z;
422
+ c.detach();
423
+ this.el = r.nativeElement;
424
+ proxyOutputs(this, this.el, ['itemClick']);
425
+ }
426
+ };
427
+ /** @nocollapse */ IxDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDropdownItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
428
+ /** @nocollapse */ IxDropdownItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxDropdownItem, selector: "ix-dropdown-item", inputs: { checked: "checked", disabled: "disabled", hover: "hover", icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
429
+ IxDropdownItem = __decorate([
430
+ ProxyCmp({
431
+ defineCustomElementFn: undefined,
432
+ inputs: ['checked', 'disabled', 'hover', 'icon', 'label'],
433
+ methods: ['emitItemClick']
434
+ })
435
+ ], IxDropdownItem);
436
+ export { IxDropdownItem };
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxDropdownItem, decorators: [{
438
+ type: Component,
439
+ args: [{
440
+ selector: 'ix-dropdown-item',
441
+ changeDetection: ChangeDetectionStrategy.OnPush,
442
+ template: '<ng-content></ng-content>',
443
+ inputs: ['checked', 'disabled', 'hover', 'icon', 'label']
444
+ }]
445
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
446
+ let IxEventList = class IxEventList {
447
+ constructor(c, r, z) {
448
+ this.z = z;
449
+ c.detach();
450
+ this.el = r.nativeElement;
451
+ }
452
+ };
453
+ /** @nocollapse */ IxEventList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxEventList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
454
+ /** @nocollapse */ IxEventList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxEventList, selector: "ix-event-list", inputs: { animated: "animated", chevron: "chevron", compact: "compact", itemHeight: "itemHeight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
455
+ IxEventList = __decorate([
456
+ ProxyCmp({
457
+ defineCustomElementFn: undefined,
458
+ inputs: ['animated', 'chevron', 'compact', 'itemHeight']
459
+ })
460
+ ], IxEventList);
461
+ export { IxEventList };
462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxEventList, decorators: [{
463
+ type: Component,
464
+ args: [{
465
+ selector: 'ix-event-list',
466
+ changeDetection: ChangeDetectionStrategy.OnPush,
467
+ template: '<ng-content></ng-content>',
468
+ inputs: ['animated', 'chevron', 'compact', 'itemHeight']
469
+ }]
470
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
471
+ let IxEventListItem = class IxEventListItem {
472
+ constructor(c, r, z) {
473
+ this.z = z;
474
+ c.detach();
475
+ this.el = r.nativeElement;
476
+ proxyOutputs(this, this.el, ['itemClick']);
477
+ }
478
+ };
479
+ /** @nocollapse */ IxEventListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxEventListItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
480
+ /** @nocollapse */ IxEventListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxEventListItem, selector: "ix-event-list-item", inputs: { chevron: "chevron", color: "color", disabled: "disabled", opacity: "opacity", selected: "selected" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
481
+ IxEventListItem = __decorate([
482
+ ProxyCmp({
483
+ defineCustomElementFn: undefined,
484
+ inputs: ['chevron', 'color', 'disabled', 'opacity', 'selected']
485
+ })
486
+ ], IxEventListItem);
487
+ export { IxEventListItem };
488
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxEventListItem, decorators: [{
489
+ type: Component,
490
+ args: [{
491
+ selector: 'ix-event-list-item',
492
+ changeDetection: ChangeDetectionStrategy.OnPush,
493
+ template: '<ng-content></ng-content>',
494
+ inputs: ['chevron', 'color', 'disabled', 'opacity', 'selected']
495
+ }]
496
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
497
+ let IxExpandingSearch = class IxExpandingSearch {
498
+ constructor(c, r, z) {
499
+ this.z = z;
500
+ c.detach();
501
+ this.el = r.nativeElement;
502
+ proxyOutputs(this, this.el, ['valueChange']);
503
+ }
504
+ };
505
+ /** @nocollapse */ IxExpandingSearch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxExpandingSearch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
506
+ /** @nocollapse */ IxExpandingSearch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxExpandingSearch, selector: "ix-expanding-search", inputs: { icon: "icon", placeholder: "placeholder", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
507
+ IxExpandingSearch = __decorate([
508
+ ProxyCmp({
509
+ defineCustomElementFn: undefined,
510
+ inputs: ['icon', 'placeholder', 'value']
511
+ })
512
+ ], IxExpandingSearch);
513
+ export { IxExpandingSearch };
514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxExpandingSearch, decorators: [{
515
+ type: Component,
516
+ args: [{
517
+ selector: 'ix-expanding-search',
518
+ changeDetection: ChangeDetectionStrategy.OnPush,
519
+ template: '<ng-content></ng-content>',
520
+ inputs: ['icon', 'placeholder', 'value']
521
+ }]
522
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
523
+ let IxFilterChip = class IxFilterChip {
524
+ constructor(c, r, z) {
525
+ this.z = z;
526
+ c.detach();
527
+ this.el = r.nativeElement;
528
+ proxyOutputs(this, this.el, ['closeClick']);
529
+ }
530
+ };
531
+ /** @nocollapse */ IxFilterChip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFilterChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
532
+ /** @nocollapse */ IxFilterChip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxFilterChip, selector: "ix-filter-chip", inputs: { disabled: "disabled" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
533
+ IxFilterChip = __decorate([
534
+ ProxyCmp({
535
+ defineCustomElementFn: undefined,
536
+ inputs: ['disabled']
537
+ })
538
+ ], IxFilterChip);
539
+ export { IxFilterChip };
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFilterChip, decorators: [{
541
+ type: Component,
542
+ args: [{
543
+ selector: 'ix-filter-chip',
544
+ changeDetection: ChangeDetectionStrategy.OnPush,
545
+ template: '<ng-content></ng-content>',
546
+ inputs: ['disabled']
547
+ }]
548
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
549
+ let IxFlipTile = class IxFlipTile {
550
+ constructor(c, r, z) {
551
+ this.z = z;
552
+ c.detach();
553
+ this.el = r.nativeElement;
554
+ }
555
+ };
556
+ /** @nocollapse */ IxFlipTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFlipTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
557
+ /** @nocollapse */ IxFlipTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxFlipTile, selector: "ix-flip-tile", inputs: { footer: "footer", state: "state" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
558
+ IxFlipTile = __decorate([
559
+ ProxyCmp({
560
+ defineCustomElementFn: undefined,
561
+ inputs: ['footer', 'state']
562
+ })
563
+ ], IxFlipTile);
564
+ export { IxFlipTile };
565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFlipTile, decorators: [{
566
+ type: Component,
567
+ args: [{
568
+ selector: 'ix-flip-tile',
569
+ changeDetection: ChangeDetectionStrategy.OnPush,
570
+ template: '<ng-content></ng-content>',
571
+ inputs: ['footer', 'state']
572
+ }]
573
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
574
+ let IxFlipTileContent = class IxFlipTileContent {
575
+ constructor(c, r, z) {
576
+ this.z = z;
577
+ c.detach();
578
+ this.el = r.nativeElement;
579
+ }
580
+ };
581
+ /** @nocollapse */ IxFlipTileContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFlipTileContent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
582
+ /** @nocollapse */ IxFlipTileContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxFlipTileContent, selector: "ix-flip-tile-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
583
+ IxFlipTileContent = __decorate([
584
+ ProxyCmp({
585
+ defineCustomElementFn: undefined
586
+ })
587
+ ], IxFlipTileContent);
588
+ export { IxFlipTileContent };
589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxFlipTileContent, decorators: [{
590
+ type: Component,
591
+ args: [{
592
+ selector: 'ix-flip-tile-content',
593
+ changeDetection: ChangeDetectionStrategy.OnPush,
594
+ template: '<ng-content></ng-content>'
595
+ }]
596
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
597
+ let IxGroup = class IxGroup {
598
+ constructor(c, r, z) {
599
+ this.z = z;
600
+ c.detach();
601
+ this.el = r.nativeElement;
602
+ proxyOutputs(this, this.el, ['selectGroup', 'selectItem', 'collapsedChanged']);
603
+ }
604
+ };
605
+ /** @nocollapse */ IxGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
606
+ /** @nocollapse */ IxGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxGroup, selector: "ix-group", inputs: { collapsed: "collapsed", expandOnHeaderClick: "expandOnHeaderClick", header: "header", index: "index", selected: "selected", subHeader: "subHeader", suppressHeaderSelection: "suppressHeaderSelection" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
607
+ IxGroup = __decorate([
608
+ ProxyCmp({
609
+ defineCustomElementFn: undefined,
610
+ inputs: ['collapsed', 'expandOnHeaderClick', 'header', 'index', 'selected', 'subHeader', 'suppressHeaderSelection']
611
+ })
612
+ ], IxGroup);
613
+ export { IxGroup };
614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroup, decorators: [{
615
+ type: Component,
616
+ args: [{
617
+ selector: 'ix-group',
618
+ changeDetection: ChangeDetectionStrategy.OnPush,
619
+ template: '<ng-content></ng-content>',
620
+ inputs: ['collapsed', 'expandOnHeaderClick', 'header', 'index', 'selected', 'subHeader', 'suppressHeaderSelection']
621
+ }]
622
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
623
+ let IxGroupDropdownItem = class IxGroupDropdownItem {
624
+ constructor(c, r, z) {
625
+ this.z = z;
626
+ c.detach();
627
+ this.el = r.nativeElement;
628
+ }
629
+ };
630
+ /** @nocollapse */ IxGroupDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroupDropdownItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
631
+ /** @nocollapse */ IxGroupDropdownItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxGroupDropdownItem, selector: "ix-group-dropdown-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
632
+ IxGroupDropdownItem = __decorate([
633
+ ProxyCmp({
634
+ defineCustomElementFn: undefined,
635
+ inputs: ['icon', 'label']
636
+ })
637
+ ], IxGroupDropdownItem);
638
+ export { IxGroupDropdownItem };
639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroupDropdownItem, decorators: [{
640
+ type: Component,
641
+ args: [{
642
+ selector: 'ix-group-dropdown-item',
643
+ changeDetection: ChangeDetectionStrategy.OnPush,
644
+ template: '<ng-content></ng-content>',
645
+ inputs: ['icon', 'label']
646
+ }]
647
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
648
+ let IxGroupItem = class IxGroupItem {
649
+ constructor(c, r, z) {
650
+ this.z = z;
651
+ c.detach();
652
+ this.el = r.nativeElement;
653
+ proxyOutputs(this, this.el, ['selectedChanged']);
654
+ }
655
+ };
656
+ /** @nocollapse */ IxGroupItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroupItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
657
+ /** @nocollapse */ IxGroupItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxGroupItem, selector: "ix-group-item", inputs: { focusable: "focusable", icon: "icon", index: "index", secondaryText: "secondaryText", selected: "selected", suppressSelection: "suppressSelection", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
658
+ IxGroupItem = __decorate([
659
+ ProxyCmp({
660
+ defineCustomElementFn: undefined,
661
+ inputs: ['focusable', 'icon', 'index', 'secondaryText', 'selected', 'suppressSelection', 'text']
662
+ })
663
+ ], IxGroupItem);
664
+ export { IxGroupItem };
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxGroupItem, decorators: [{
666
+ type: Component,
667
+ args: [{
668
+ selector: 'ix-group-item',
669
+ changeDetection: ChangeDetectionStrategy.OnPush,
670
+ template: '<ng-content></ng-content>',
671
+ inputs: ['focusable', 'icon', 'index', 'secondaryText', 'selected', 'suppressSelection', 'text']
672
+ }]
673
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
674
+ let IxIcon = class IxIcon {
675
+ constructor(c, r, z) {
676
+ this.z = z;
677
+ c.detach();
678
+ this.el = r.nativeElement;
679
+ }
680
+ };
681
+ /** @nocollapse */ IxIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
682
+ /** @nocollapse */ IxIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxIcon, selector: "ix-icon", inputs: { color: "color", name: "name", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
683
+ IxIcon = __decorate([
684
+ ProxyCmp({
685
+ defineCustomElementFn: undefined,
686
+ inputs: ['color', 'name', 'size']
687
+ })
688
+ ], IxIcon);
689
+ export { IxIcon };
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxIcon, decorators: [{
691
+ type: Component,
692
+ args: [{
693
+ selector: 'ix-icon',
694
+ changeDetection: ChangeDetectionStrategy.OnPush,
695
+ template: '<ng-content></ng-content>',
696
+ inputs: ['color', 'name', 'size']
697
+ }]
698
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
699
+ let IxIconButton = class IxIconButton {
700
+ constructor(c, r, z) {
701
+ this.z = z;
702
+ c.detach();
703
+ this.el = r.nativeElement;
704
+ }
705
+ };
706
+ /** @nocollapse */ IxIconButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
707
+ /** @nocollapse */ IxIconButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxIconButton, selector: "ix-icon-button", inputs: { color: "color", disabled: "disabled", ghost: "ghost", icon: "icon", invisible: "invisible", outline: "outline", oval: "oval", selected: "selected", size: "size", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
708
+ IxIconButton = __decorate([
709
+ ProxyCmp({
710
+ defineCustomElementFn: undefined,
711
+ inputs: ['color', 'disabled', 'ghost', 'icon', 'invisible', 'outline', 'oval', 'selected', 'size', 'type', 'variant']
712
+ })
713
+ ], IxIconButton);
714
+ export { IxIconButton };
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxIconButton, decorators: [{
716
+ type: Component,
717
+ args: [{
718
+ selector: 'ix-icon-button',
719
+ changeDetection: ChangeDetectionStrategy.OnPush,
720
+ template: '<ng-content></ng-content>',
721
+ inputs: ['color', 'disabled', 'ghost', 'icon', 'invisible', 'outline', 'oval', 'selected', 'size', 'type', 'variant']
722
+ }]
723
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
724
+ let IxInputGroup = class IxInputGroup {
725
+ constructor(c, r, z) {
726
+ this.z = z;
727
+ c.detach();
728
+ this.el = r.nativeElement;
729
+ }
730
+ };
731
+ /** @nocollapse */ IxInputGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxInputGroup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
732
+ /** @nocollapse */ IxInputGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxInputGroup, selector: "ix-input-group", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
733
+ IxInputGroup = __decorate([
734
+ ProxyCmp({
735
+ defineCustomElementFn: undefined
736
+ })
737
+ ], IxInputGroup);
738
+ export { IxInputGroup };
739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxInputGroup, decorators: [{
740
+ type: Component,
741
+ args: [{
742
+ selector: 'ix-input-group',
743
+ changeDetection: ChangeDetectionStrategy.OnPush,
744
+ template: '<ng-content></ng-content>'
745
+ }]
746
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
747
+ let IxKpi = class IxKpi {
748
+ constructor(c, r, z) {
749
+ this.z = z;
750
+ c.detach();
751
+ this.el = r.nativeElement;
752
+ }
753
+ };
754
+ /** @nocollapse */ IxKpi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxKpi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
755
+ /** @nocollapse */ IxKpi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxKpi, selector: "ix-kpi", inputs: { label: "label", orientation: "orientation", state: "state", unit: "unit", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
756
+ IxKpi = __decorate([
757
+ ProxyCmp({
758
+ defineCustomElementFn: undefined,
759
+ inputs: ['label', 'orientation', 'state', 'unit', 'value']
760
+ })
761
+ ], IxKpi);
762
+ export { IxKpi };
763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxKpi, decorators: [{
764
+ type: Component,
765
+ args: [{
766
+ selector: 'ix-kpi',
767
+ changeDetection: ChangeDetectionStrategy.OnPush,
768
+ template: '<ng-content></ng-content>',
769
+ inputs: ['label', 'orientation', 'state', 'unit', 'value']
770
+ }]
771
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
772
+ let IxMapNavigation = class IxMapNavigation {
773
+ constructor(c, r, z) {
774
+ this.z = z;
775
+ c.detach();
776
+ this.el = r.nativeElement;
777
+ proxyOutputs(this, this.el, ['navigationToggled', 'contextMenuClick']);
778
+ }
779
+ };
780
+ /** @nocollapse */ IxMapNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMapNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
781
+ /** @nocollapse */ IxMapNavigation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMapNavigation, selector: "ix-map-navigation", inputs: { applicationName: "applicationName", hideContextMenu: "hideContextMenu", navigationTitle: "navigationTitle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
782
+ IxMapNavigation = __decorate([
783
+ ProxyCmp({
784
+ defineCustomElementFn: undefined,
785
+ inputs: ['applicationName', 'hideContextMenu', 'navigationTitle'],
786
+ methods: ['openOverlay', 'closeOverlay']
787
+ })
788
+ ], IxMapNavigation);
789
+ export { IxMapNavigation };
790
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMapNavigation, decorators: [{
791
+ type: Component,
792
+ args: [{
793
+ selector: 'ix-map-navigation',
794
+ changeDetection: ChangeDetectionStrategy.OnPush,
795
+ template: '<ng-content></ng-content>',
796
+ inputs: ['applicationName', 'hideContextMenu', 'navigationTitle']
797
+ }]
798
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
799
+ let IxMapNavigationOverlay = class IxMapNavigationOverlay {
800
+ constructor(c, r, z) {
801
+ this.z = z;
802
+ c.detach();
803
+ this.el = r.nativeElement;
804
+ proxyOutputs(this, this.el, ['closeClick']);
805
+ }
806
+ };
807
+ /** @nocollapse */ IxMapNavigationOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMapNavigationOverlay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
808
+ /** @nocollapse */ IxMapNavigationOverlay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMapNavigationOverlay, selector: "ix-map-navigation-overlay", inputs: { color: "color", icon: "icon", name: "name" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
809
+ IxMapNavigationOverlay = __decorate([
810
+ ProxyCmp({
811
+ defineCustomElementFn: undefined,
812
+ inputs: ['color', 'icon', 'name']
813
+ })
814
+ ], IxMapNavigationOverlay);
815
+ export { IxMapNavigationOverlay };
816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMapNavigationOverlay, decorators: [{
817
+ type: Component,
818
+ args: [{
819
+ selector: 'ix-map-navigation-overlay',
820
+ changeDetection: ChangeDetectionStrategy.OnPush,
821
+ template: '<ng-content></ng-content>',
822
+ inputs: ['color', 'icon', 'name']
823
+ }]
824
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
825
+ let IxMenu = class IxMenu {
826
+ constructor(c, r, z) {
827
+ this.z = z;
828
+ c.detach();
829
+ this.el = r.nativeElement;
830
+ proxyOutputs(this, this.el, ['expandChange', 'mapExpandChange']);
831
+ }
832
+ };
833
+ /** @nocollapse */ IxMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
834
+ /** @nocollapse */ IxMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenu, selector: "ix-menu", inputs: { applicationDescription: "applicationDescription", applicationName: "applicationName", enableMapExpand: "enableMapExpand", enableSettings: "enableSettings", enableToggleTheme: "enableToggleTheme", expand: "expand", i18nCollapse: "i18nCollapse", i18nExpand: "i18nExpand", i18nLegal: "i18nLegal", i18nMore: "i18nMore", i18nSettings: "i18nSettings", i18nToggleTheme: "i18nToggleTheme", maxVisibleMenuItems: "maxVisibleMenuItems", showAbout: "showAbout", showSettings: "showSettings" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
835
+ IxMenu = __decorate([
836
+ ProxyCmp({
837
+ defineCustomElementFn: undefined,
838
+ inputs: ['applicationDescription', 'applicationName', 'enableMapExpand', 'enableSettings', 'enableToggleTheme', 'expand', 'i18nCollapse', 'i18nExpand', 'i18nLegal', 'i18nMore', 'i18nSettings', 'i18nToggleTheme', 'maxVisibleMenuItems', 'showAbout', 'showSettings'],
839
+ methods: ['toggleMapExpand', 'toggleMenu', 'toggleSettings', 'toggleAbout']
840
+ })
841
+ ], IxMenu);
842
+ export { IxMenu };
843
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenu, decorators: [{
844
+ type: Component,
845
+ args: [{
846
+ selector: 'ix-menu',
847
+ changeDetection: ChangeDetectionStrategy.OnPush,
848
+ template: '<ng-content></ng-content>',
849
+ inputs: ['applicationDescription', 'applicationName', 'enableMapExpand', 'enableSettings', 'enableToggleTheme', 'expand', 'i18nCollapse', 'i18nExpand', 'i18nLegal', 'i18nMore', 'i18nSettings', 'i18nToggleTheme', 'maxVisibleMenuItems', 'showAbout', 'showSettings']
850
+ }]
851
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
852
+ let IxMenuAbout = class IxMenuAbout {
853
+ constructor(c, r, z) {
854
+ this.z = z;
855
+ c.detach();
856
+ this.el = r.nativeElement;
857
+ proxyOutputs(this, this.el, ['close']);
858
+ }
859
+ };
860
+ /** @nocollapse */ IxMenuAbout.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAbout, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
861
+ /** @nocollapse */ IxMenuAbout.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuAbout, selector: "ix-menu-about", inputs: { activeTabLabel: "activeTabLabel", label: "label", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
862
+ IxMenuAbout = __decorate([
863
+ ProxyCmp({
864
+ defineCustomElementFn: undefined,
865
+ inputs: ['activeTabLabel', 'label', 'show']
866
+ })
867
+ ], IxMenuAbout);
868
+ export { IxMenuAbout };
869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAbout, decorators: [{
870
+ type: Component,
871
+ args: [{
872
+ selector: 'ix-menu-about',
873
+ changeDetection: ChangeDetectionStrategy.OnPush,
874
+ template: '<ng-content></ng-content>',
875
+ inputs: ['activeTabLabel', 'label', 'show']
876
+ }]
877
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
878
+ let IxMenuAboutItem = class IxMenuAboutItem {
879
+ constructor(c, r, z) {
880
+ this.z = z;
881
+ c.detach();
882
+ this.el = r.nativeElement;
883
+ }
884
+ };
885
+ /** @nocollapse */ IxMenuAboutItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAboutItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
886
+ /** @nocollapse */ IxMenuAboutItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuAboutItem, selector: "ix-menu-about-item", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
887
+ IxMenuAboutItem = __decorate([
888
+ ProxyCmp({
889
+ defineCustomElementFn: undefined,
890
+ inputs: ['label']
891
+ })
892
+ ], IxMenuAboutItem);
893
+ export { IxMenuAboutItem };
894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAboutItem, decorators: [{
895
+ type: Component,
896
+ args: [{
897
+ selector: 'ix-menu-about-item',
898
+ changeDetection: ChangeDetectionStrategy.OnPush,
899
+ template: '<ng-content></ng-content>',
900
+ inputs: ['label']
901
+ }]
902
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
903
+ let IxMenuAboutNews = class IxMenuAboutNews {
904
+ constructor(c, r, z) {
905
+ this.z = z;
906
+ c.detach();
907
+ this.el = r.nativeElement;
908
+ proxyOutputs(this, this.el, ['showMore', 'closePopover']);
909
+ }
910
+ };
911
+ /** @nocollapse */ IxMenuAboutNews.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAboutNews, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
912
+ /** @nocollapse */ IxMenuAboutNews.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuAboutNews, selector: "ix-menu-about-news", inputs: { aboutItemLabel: "aboutItemLabel", expanded: "expanded", i18nShowMore: "i18nShowMore", label: "label", offsetBottom: "offsetBottom", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
913
+ IxMenuAboutNews = __decorate([
914
+ ProxyCmp({
915
+ defineCustomElementFn: undefined,
916
+ inputs: ['aboutItemLabel', 'expanded', 'i18nShowMore', 'label', 'offsetBottom', 'show']
917
+ })
918
+ ], IxMenuAboutNews);
919
+ export { IxMenuAboutNews };
920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAboutNews, decorators: [{
921
+ type: Component,
922
+ args: [{
923
+ selector: 'ix-menu-about-news',
924
+ changeDetection: ChangeDetectionStrategy.OnPush,
925
+ template: '<ng-content></ng-content>',
926
+ inputs: ['aboutItemLabel', 'expanded', 'i18nShowMore', 'label', 'offsetBottom', 'show']
927
+ }]
928
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
929
+ let IxMenuAvatar = class IxMenuAvatar {
930
+ constructor(c, r, z) {
931
+ this.z = z;
932
+ c.detach();
933
+ this.el = r.nativeElement;
934
+ proxyOutputs(this, this.el, ['logoutClick']);
935
+ }
936
+ };
937
+ /** @nocollapse */ IxMenuAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
938
+ /** @nocollapse */ IxMenuAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuAvatar, selector: "ix-menu-avatar", inputs: { bottom: "bottom", i18nLogout: "i18nLogout", top: "top" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
939
+ IxMenuAvatar = __decorate([
940
+ ProxyCmp({
941
+ defineCustomElementFn: undefined,
942
+ inputs: ['bottom', 'i18nLogout', 'top']
943
+ })
944
+ ], IxMenuAvatar);
945
+ export { IxMenuAvatar };
946
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAvatar, decorators: [{
947
+ type: Component,
948
+ args: [{
949
+ selector: 'ix-menu-avatar',
950
+ changeDetection: ChangeDetectionStrategy.OnPush,
951
+ template: '<ng-content></ng-content>',
952
+ inputs: ['bottom', 'i18nLogout', 'top']
953
+ }]
954
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
955
+ let IxMenuAvatarItem = class IxMenuAvatarItem {
956
+ constructor(c, r, z) {
957
+ this.z = z;
958
+ c.detach();
959
+ this.el = r.nativeElement;
960
+ proxyOutputs(this, this.el, ['itemClick']);
961
+ }
962
+ };
963
+ /** @nocollapse */ IxMenuAvatarItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAvatarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
964
+ /** @nocollapse */ IxMenuAvatarItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuAvatarItem, selector: "ix-menu-avatar-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
965
+ IxMenuAvatarItem = __decorate([
966
+ ProxyCmp({
967
+ defineCustomElementFn: undefined,
968
+ inputs: ['icon', 'label']
969
+ })
970
+ ], IxMenuAvatarItem);
971
+ export { IxMenuAvatarItem };
972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuAvatarItem, decorators: [{
973
+ type: Component,
974
+ args: [{
975
+ selector: 'ix-menu-avatar-item',
976
+ changeDetection: ChangeDetectionStrategy.OnPush,
977
+ template: '<ng-content></ng-content>',
978
+ inputs: ['icon', 'label']
979
+ }]
980
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
981
+ let IxMenuItem = class IxMenuItem {
982
+ constructor(c, r, z) {
983
+ this.z = z;
984
+ c.detach();
985
+ this.el = r.nativeElement;
986
+ }
987
+ };
988
+ /** @nocollapse */ IxMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
989
+ /** @nocollapse */ IxMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuItem, selector: "ix-menu-item", inputs: { active: "active", bottom: "bottom", disabled: "disabled", home: "home", notifications: "notifications", tabIcon: "tabIcon" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
990
+ IxMenuItem = __decorate([
991
+ ProxyCmp({
992
+ defineCustomElementFn: undefined,
993
+ inputs: ['active', 'bottom', 'disabled', 'home', 'notifications', 'tabIcon']
994
+ })
995
+ ], IxMenuItem);
996
+ export { IxMenuItem };
997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuItem, decorators: [{
998
+ type: Component,
999
+ args: [{
1000
+ selector: 'ix-menu-item',
1001
+ changeDetection: ChangeDetectionStrategy.OnPush,
1002
+ template: '<ng-content></ng-content>',
1003
+ inputs: ['active', 'bottom', 'disabled', 'home', 'notifications', 'tabIcon']
1004
+ }]
1005
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1006
+ let IxMenuSettings = class IxMenuSettings {
1007
+ constructor(c, r, z) {
1008
+ this.z = z;
1009
+ c.detach();
1010
+ this.el = r.nativeElement;
1011
+ proxyOutputs(this, this.el, ['close']);
1012
+ }
1013
+ };
1014
+ /** @nocollapse */ IxMenuSettings.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuSettings, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1015
+ /** @nocollapse */ IxMenuSettings.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuSettings, selector: "ix-menu-settings", inputs: { activeTabLabel: "activeTabLabel", label: "label", show: "show" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1016
+ IxMenuSettings = __decorate([
1017
+ ProxyCmp({
1018
+ defineCustomElementFn: undefined,
1019
+ inputs: ['activeTabLabel', 'label', 'show']
1020
+ })
1021
+ ], IxMenuSettings);
1022
+ export { IxMenuSettings };
1023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuSettings, decorators: [{
1024
+ type: Component,
1025
+ args: [{
1026
+ selector: 'ix-menu-settings',
1027
+ changeDetection: ChangeDetectionStrategy.OnPush,
1028
+ template: '<ng-content></ng-content>',
1029
+ inputs: ['activeTabLabel', 'label', 'show']
1030
+ }]
1031
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1032
+ let IxMenuSettingsItem = class IxMenuSettingsItem {
1033
+ constructor(c, r, z) {
1034
+ this.z = z;
1035
+ c.detach();
1036
+ this.el = r.nativeElement;
1037
+ }
1038
+ };
1039
+ /** @nocollapse */ IxMenuSettingsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuSettingsItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1040
+ /** @nocollapse */ IxMenuSettingsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMenuSettingsItem, selector: "ix-menu-settings-item", inputs: { label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1041
+ IxMenuSettingsItem = __decorate([
1042
+ ProxyCmp({
1043
+ defineCustomElementFn: undefined,
1044
+ inputs: ['label']
1045
+ })
1046
+ ], IxMenuSettingsItem);
1047
+ export { IxMenuSettingsItem };
1048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMenuSettingsItem, decorators: [{
1049
+ type: Component,
1050
+ args: [{
1051
+ selector: 'ix-menu-settings-item',
1052
+ changeDetection: ChangeDetectionStrategy.OnPush,
1053
+ template: '<ng-content></ng-content>',
1054
+ inputs: ['label']
1055
+ }]
1056
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1057
+ let IxMessageBar = class IxMessageBar {
1058
+ constructor(c, r, z) {
1059
+ this.z = z;
1060
+ c.detach();
1061
+ this.el = r.nativeElement;
1062
+ proxyOutputs(this, this.el, ['closedChange']);
1063
+ }
1064
+ };
1065
+ /** @nocollapse */ IxMessageBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMessageBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1066
+ /** @nocollapse */ IxMessageBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxMessageBar, selector: "ix-message-bar", inputs: { dismissible: "dismissible", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1067
+ IxMessageBar = __decorate([
1068
+ ProxyCmp({
1069
+ defineCustomElementFn: undefined,
1070
+ inputs: ['dismissible', 'type']
1071
+ })
1072
+ ], IxMessageBar);
1073
+ export { IxMessageBar };
1074
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxMessageBar, decorators: [{
1075
+ type: Component,
1076
+ args: [{
1077
+ selector: 'ix-message-bar',
1078
+ changeDetection: ChangeDetectionStrategy.OnPush,
1079
+ template: '<ng-content></ng-content>',
1080
+ inputs: ['dismissible', 'type']
1081
+ }]
1082
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1083
+ let IxModal = class IxModal {
1084
+ constructor(c, r, z) {
1085
+ this.z = z;
1086
+ c.detach();
1087
+ this.el = r.nativeElement;
1088
+ proxyOutputs(this, this.el, ['closed', 'dismissed']);
1089
+ }
1090
+ };
1091
+ /** @nocollapse */ IxModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1092
+ /** @nocollapse */ IxModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxModal, selector: "ix-modal", inputs: { animation: "animation", ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy", backdrop: "backdrop", backdropClass: "backdropClass", beforeDismiss: "beforeDismiss", centered: "centered", content: "content", headerTitle: "headerTitle", icon: "icon", iconColor: "iconColor", keyboard: "keyboard", modalDialogClass: "modalDialogClass", scrollable: "scrollable", size: "size", windowClass: "windowClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1093
+ IxModal = __decorate([
1094
+ ProxyCmp({
1095
+ defineCustomElementFn: undefined,
1096
+ inputs: ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'backdrop', 'backdropClass', 'beforeDismiss', 'centered', 'content', 'headerTitle', 'icon', 'iconColor', 'keyboard', 'modalDialogClass', 'scrollable', 'size', 'windowClass'],
1097
+ methods: ['dismiss', 'close']
1098
+ })
1099
+ ], IxModal);
1100
+ export { IxModal };
1101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModal, decorators: [{
1102
+ type: Component,
1103
+ args: [{
1104
+ selector: 'ix-modal',
1105
+ changeDetection: ChangeDetectionStrategy.OnPush,
1106
+ template: '<ng-content></ng-content>',
1107
+ inputs: ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'backdrop', 'backdropClass', 'beforeDismiss', 'centered', 'content', 'headerTitle', 'icon', 'iconColor', 'keyboard', 'modalDialogClass', 'scrollable', 'size', 'windowClass']
1108
+ }]
1109
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1110
+ let IxModalContainer = class IxModalContainer {
1111
+ constructor(c, r, z) {
1112
+ this.z = z;
1113
+ c.detach();
1114
+ this.el = r.nativeElement;
1115
+ }
1116
+ };
1117
+ /** @nocollapse */ IxModalContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModalContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1118
+ /** @nocollapse */ IxModalContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxModalContainer, selector: "ix-modal-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1119
+ IxModalContainer = __decorate([
1120
+ ProxyCmp({
1121
+ defineCustomElementFn: undefined,
1122
+ methods: ['showModal']
1123
+ })
1124
+ ], IxModalContainer);
1125
+ export { IxModalContainer };
1126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModalContainer, decorators: [{
1127
+ type: Component,
1128
+ args: [{
1129
+ selector: 'ix-modal-container',
1130
+ changeDetection: ChangeDetectionStrategy.OnPush,
1131
+ template: '<ng-content></ng-content>'
1132
+ }]
1133
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1134
+ let IxModalExample = class IxModalExample {
1135
+ constructor(c, r, z) {
1136
+ this.z = z;
1137
+ c.detach();
1138
+ this.el = r.nativeElement;
1139
+ }
1140
+ };
1141
+ /** @nocollapse */ IxModalExample.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModalExample, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1142
+ /** @nocollapse */ IxModalExample.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxModalExample, selector: "ix-modal-example", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1143
+ IxModalExample = __decorate([
1144
+ ProxyCmp({
1145
+ defineCustomElementFn: undefined
1146
+ })
1147
+ ], IxModalExample);
1148
+ export { IxModalExample };
1149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxModalExample, decorators: [{
1150
+ type: Component,
1151
+ args: [{
1152
+ selector: 'ix-modal-example',
1153
+ changeDetection: ChangeDetectionStrategy.OnPush,
1154
+ template: '<ng-content></ng-content>'
1155
+ }]
1156
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1157
+ let IxPill = class IxPill {
1158
+ constructor(c, r, z) {
1159
+ this.z = z;
1160
+ c.detach();
1161
+ this.el = r.nativeElement;
1162
+ }
1163
+ };
1164
+ /** @nocollapse */ IxPill.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxPill, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1165
+ /** @nocollapse */ IxPill.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxPill, selector: "ix-pill", inputs: { alignLeft: "alignLeft", background: "background", color: "color", icon: "icon", outline: "outline", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1166
+ IxPill = __decorate([
1167
+ ProxyCmp({
1168
+ defineCustomElementFn: undefined,
1169
+ inputs: ['alignLeft', 'background', 'color', 'icon', 'outline', 'variant']
1170
+ })
1171
+ ], IxPill);
1172
+ export { IxPill };
1173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxPill, decorators: [{
1174
+ type: Component,
1175
+ args: [{
1176
+ selector: 'ix-pill',
1177
+ changeDetection: ChangeDetectionStrategy.OnPush,
1178
+ template: '<ng-content></ng-content>',
1179
+ inputs: ['alignLeft', 'background', 'color', 'icon', 'outline', 'variant']
1180
+ }]
1181
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1182
+ let IxSelect = class IxSelect {
1183
+ constructor(c, r, z) {
1184
+ this.z = z;
1185
+ c.detach();
1186
+ this.el = r.nativeElement;
1187
+ proxyOutputs(this, this.el, ['itemSelectionChange', 'addItem']);
1188
+ }
1189
+ };
1190
+ /** @nocollapse */ IxSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1191
+ /** @nocollapse */ IxSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxSelect, selector: "ix-select", inputs: { allowClear: "allowClear", disabled: "disabled", editable: "editable", i18nPlaceholder: "i18nPlaceholder", i18nPlaceholderEditable: "i18nPlaceholderEditable", i18nSelectListHeader: "i18nSelectListHeader", mode: "mode", readonly: "readonly", selectedIndices: "selectedIndices" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1192
+ IxSelect = __decorate([
1193
+ ProxyCmp({
1194
+ defineCustomElementFn: undefined,
1195
+ inputs: ['allowClear', 'disabled', 'editable', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices']
1196
+ })
1197
+ ], IxSelect);
1198
+ export { IxSelect };
1199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSelect, decorators: [{
1200
+ type: Component,
1201
+ args: [{
1202
+ selector: 'ix-select',
1203
+ changeDetection: ChangeDetectionStrategy.OnPush,
1204
+ template: '<ng-content></ng-content>',
1205
+ inputs: ['allowClear', 'disabled', 'editable', 'i18nPlaceholder', 'i18nPlaceholderEditable', 'i18nSelectListHeader', 'mode', 'readonly', 'selectedIndices']
1206
+ }]
1207
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1208
+ let IxSelectItem = class IxSelectItem {
1209
+ constructor(c, r, z) {
1210
+ this.z = z;
1211
+ c.detach();
1212
+ this.el = r.nativeElement;
1213
+ proxyOutputs(this, this.el, ['itemClick']);
1214
+ }
1215
+ };
1216
+ /** @nocollapse */ IxSelectItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSelectItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1217
+ /** @nocollapse */ IxSelectItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxSelectItem, selector: "ix-select-item", inputs: { hover: "hover", label: "label", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1218
+ IxSelectItem = __decorate([
1219
+ ProxyCmp({
1220
+ defineCustomElementFn: undefined,
1221
+ inputs: ['hover', 'label', 'selected', 'value'],
1222
+ methods: ['onItemClick']
1223
+ })
1224
+ ], IxSelectItem);
1225
+ export { IxSelectItem };
1226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSelectItem, decorators: [{
1227
+ type: Component,
1228
+ args: [{
1229
+ selector: 'ix-select-item',
1230
+ changeDetection: ChangeDetectionStrategy.OnPush,
1231
+ template: '<ng-content></ng-content>',
1232
+ inputs: ['hover', 'label', 'selected', 'value']
1233
+ }]
1234
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1235
+ let IxSpinner = class IxSpinner {
1236
+ constructor(c, r, z) {
1237
+ this.z = z;
1238
+ c.detach();
1239
+ this.el = r.nativeElement;
1240
+ }
1241
+ };
1242
+ /** @nocollapse */ IxSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1243
+ /** @nocollapse */ IxSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxSpinner, selector: "ix-spinner", inputs: { size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1244
+ IxSpinner = __decorate([
1245
+ ProxyCmp({
1246
+ defineCustomElementFn: undefined,
1247
+ inputs: ['size', 'variant']
1248
+ })
1249
+ ], IxSpinner);
1250
+ export { IxSpinner };
1251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSpinner, decorators: [{
1252
+ type: Component,
1253
+ args: [{
1254
+ selector: 'ix-spinner',
1255
+ changeDetection: ChangeDetectionStrategy.OnPush,
1256
+ template: '<ng-content></ng-content>',
1257
+ inputs: ['size', 'variant']
1258
+ }]
1259
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1260
+ let IxSplitButton = class IxSplitButton {
1261
+ constructor(c, r, z) {
1262
+ this.z = z;
1263
+ c.detach();
1264
+ this.el = r.nativeElement;
1265
+ proxyOutputs(this, this.el, ['buttonClick']);
1266
+ }
1267
+ };
1268
+ /** @nocollapse */ IxSplitButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSplitButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1269
+ /** @nocollapse */ IxSplitButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxSplitButton, selector: "ix-split-button", inputs: { disabled: "disabled", ghost: "ghost", icon: "icon", invisible: "invisible", label: "label", outline: "outline", placement: "placement", splitIcon: "splitIcon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1270
+ IxSplitButton = __decorate([
1271
+ ProxyCmp({
1272
+ defineCustomElementFn: undefined,
1273
+ inputs: ['disabled', 'ghost', 'icon', 'invisible', 'label', 'outline', 'placement', 'splitIcon', 'variant']
1274
+ })
1275
+ ], IxSplitButton);
1276
+ export { IxSplitButton };
1277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSplitButton, decorators: [{
1278
+ type: Component,
1279
+ args: [{
1280
+ selector: 'ix-split-button',
1281
+ changeDetection: ChangeDetectionStrategy.OnPush,
1282
+ template: '<ng-content></ng-content>',
1283
+ inputs: ['disabled', 'ghost', 'icon', 'invisible', 'label', 'outline', 'placement', 'splitIcon', 'variant']
1284
+ }]
1285
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1286
+ let IxSplitButtonItem = class IxSplitButtonItem {
1287
+ constructor(c, r, z) {
1288
+ this.z = z;
1289
+ c.detach();
1290
+ this.el = r.nativeElement;
1291
+ proxyOutputs(this, this.el, ['itemClick']);
1292
+ }
1293
+ };
1294
+ /** @nocollapse */ IxSplitButtonItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSplitButtonItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1295
+ /** @nocollapse */ IxSplitButtonItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxSplitButtonItem, selector: "ix-split-button-item", inputs: { icon: "icon", label: "label" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1296
+ IxSplitButtonItem = __decorate([
1297
+ ProxyCmp({
1298
+ defineCustomElementFn: undefined,
1299
+ inputs: ['icon', 'label']
1300
+ })
1301
+ ], IxSplitButtonItem);
1302
+ export { IxSplitButtonItem };
1303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxSplitButtonItem, decorators: [{
1304
+ type: Component,
1305
+ args: [{
1306
+ selector: 'ix-split-button-item',
1307
+ changeDetection: ChangeDetectionStrategy.OnPush,
1308
+ template: '<ng-content></ng-content>',
1309
+ inputs: ['icon', 'label']
1310
+ }]
1311
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1312
+ let IxTabItem = class IxTabItem {
1313
+ constructor(c, r, z) {
1314
+ this.z = z;
1315
+ c.detach();
1316
+ this.el = r.nativeElement;
1317
+ }
1318
+ };
1319
+ /** @nocollapse */ IxTabItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTabItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1320
+ /** @nocollapse */ IxTabItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxTabItem, selector: "ix-tab-item", inputs: { counter: "counter", disabled: "disabled", icon: "icon", layout: "layout", placement: "placement", rounded: "rounded", selected: "selected", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1321
+ IxTabItem = __decorate([
1322
+ ProxyCmp({
1323
+ defineCustomElementFn: undefined,
1324
+ inputs: ['counter', 'disabled', 'icon', 'layout', 'placement', 'rounded', 'selected', 'small']
1325
+ })
1326
+ ], IxTabItem);
1327
+ export { IxTabItem };
1328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTabItem, decorators: [{
1329
+ type: Component,
1330
+ args: [{
1331
+ selector: 'ix-tab-item',
1332
+ changeDetection: ChangeDetectionStrategy.OnPush,
1333
+ template: '<ng-content></ng-content>',
1334
+ inputs: ['counter', 'disabled', 'icon', 'layout', 'placement', 'rounded', 'selected', 'small']
1335
+ }]
1336
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1337
+ let IxTabs = class IxTabs {
1338
+ constructor(c, r, z) {
1339
+ this.z = z;
1340
+ c.detach();
1341
+ this.el = r.nativeElement;
1342
+ }
1343
+ };
1344
+ /** @nocollapse */ IxTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1345
+ /** @nocollapse */ IxTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxTabs, selector: "ix-tabs", inputs: { layout: "layout", placement: "placement", rounded: "rounded", selected: "selected", small: "small" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1346
+ IxTabs = __decorate([
1347
+ ProxyCmp({
1348
+ defineCustomElementFn: undefined,
1349
+ inputs: ['layout', 'placement', 'rounded', 'selected', 'small']
1350
+ })
1351
+ ], IxTabs);
1352
+ export { IxTabs };
1353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTabs, decorators: [{
1354
+ type: Component,
1355
+ args: [{
1356
+ selector: 'ix-tabs',
1357
+ changeDetection: ChangeDetectionStrategy.OnPush,
1358
+ template: '<ng-content></ng-content>',
1359
+ inputs: ['layout', 'placement', 'rounded', 'selected', 'small']
1360
+ }]
1361
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1362
+ let IxTile = class IxTile {
1363
+ constructor(c, r, z) {
1364
+ this.z = z;
1365
+ c.detach();
1366
+ this.el = r.nativeElement;
1367
+ }
1368
+ };
1369
+ /** @nocollapse */ IxTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1370
+ /** @nocollapse */ IxTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxTile, selector: "ix-tile", inputs: { size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1371
+ IxTile = __decorate([
1372
+ ProxyCmp({
1373
+ defineCustomElementFn: undefined,
1374
+ inputs: ['size']
1375
+ })
1376
+ ], IxTile);
1377
+ export { IxTile };
1378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTile, decorators: [{
1379
+ type: Component,
1380
+ args: [{
1381
+ selector: 'ix-tile',
1382
+ changeDetection: ChangeDetectionStrategy.OnPush,
1383
+ template: '<ng-content></ng-content>',
1384
+ inputs: ['size']
1385
+ }]
1386
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1387
+ let IxTimePicker = class IxTimePicker {
1388
+ constructor(c, r, z) {
1389
+ this.z = z;
1390
+ c.detach();
1391
+ this.el = r.nativeElement;
1392
+ proxyOutputs(this, this.el, ['done', 'timeChange']);
1393
+ }
1394
+ };
1395
+ /** @nocollapse */ IxTimePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTimePicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1396
+ /** @nocollapse */ IxTimePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxTimePicker, selector: "ix-time-picker", inputs: { corners: "corners", format: "format", individual: "individual", showHour: "showHour", showMinutes: "showMinutes", showSeconds: "showSeconds", showTimeReference: "showTimeReference", textSelectTime: "textSelectTime", time: "time", timeReference: "timeReference" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1397
+ IxTimePicker = __decorate([
1398
+ ProxyCmp({
1399
+ defineCustomElementFn: undefined,
1400
+ inputs: ['corners', 'format', 'individual', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectTime', 'time', 'timeReference'],
1401
+ methods: ['getCurrentTime']
1402
+ })
1403
+ ], IxTimePicker);
1404
+ export { IxTimePicker };
1405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTimePicker, decorators: [{
1406
+ type: Component,
1407
+ args: [{
1408
+ selector: 'ix-time-picker',
1409
+ changeDetection: ChangeDetectionStrategy.OnPush,
1410
+ template: '<ng-content></ng-content>',
1411
+ inputs: ['corners', 'format', 'individual', 'showHour', 'showMinutes', 'showSeconds', 'showTimeReference', 'textSelectTime', 'time', 'timeReference']
1412
+ }]
1413
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1414
+ let IxToast = class IxToast {
1415
+ constructor(c, r, z) {
1416
+ this.z = z;
1417
+ c.detach();
1418
+ this.el = r.nativeElement;
1419
+ proxyOutputs(this, this.el, ['closeToast']);
1420
+ }
1421
+ };
1422
+ /** @nocollapse */ IxToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1423
+ /** @nocollapse */ IxToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxToast, selector: "ix-toast", inputs: { autoClose: "autoClose", autoCloseDelay: "autoCloseDelay", icon: "icon", iconColor: "iconColor", toastTitle: "toastTitle", type: "type" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1424
+ IxToast = __decorate([
1425
+ ProxyCmp({
1426
+ defineCustomElementFn: undefined,
1427
+ inputs: ['autoClose', 'autoCloseDelay', 'icon', 'iconColor', 'toastTitle', 'type']
1428
+ })
1429
+ ], IxToast);
1430
+ export { IxToast };
1431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToast, decorators: [{
1432
+ type: Component,
1433
+ args: [{
1434
+ selector: 'ix-toast',
1435
+ changeDetection: ChangeDetectionStrategy.OnPush,
1436
+ template: '<ng-content></ng-content>',
1437
+ inputs: ['autoClose', 'autoCloseDelay', 'icon', 'iconColor', 'toastTitle', 'type']
1438
+ }]
1439
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1440
+ let IxToastContainer = class IxToastContainer {
1441
+ constructor(c, r, z) {
1442
+ this.z = z;
1443
+ c.detach();
1444
+ this.el = r.nativeElement;
1445
+ }
1446
+ };
1447
+ /** @nocollapse */ IxToastContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToastContainer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1448
+ /** @nocollapse */ IxToastContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxToastContainer, selector: "ix-toast-container", inputs: { containerClass: "containerClass", containerId: "containerId", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1449
+ IxToastContainer = __decorate([
1450
+ ProxyCmp({
1451
+ defineCustomElementFn: undefined,
1452
+ inputs: ['containerClass', 'containerId', 'position'],
1453
+ methods: ['showToast']
1454
+ })
1455
+ ], IxToastContainer);
1456
+ export { IxToastContainer };
1457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToastContainer, decorators: [{
1458
+ type: Component,
1459
+ args: [{
1460
+ selector: 'ix-toast-container',
1461
+ changeDetection: ChangeDetectionStrategy.OnPush,
1462
+ template: '<ng-content></ng-content>',
1463
+ inputs: ['containerClass', 'containerId', 'position']
1464
+ }]
1465
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1466
+ let IxToggle = class IxToggle {
1467
+ constructor(c, r, z) {
1468
+ this.z = z;
1469
+ c.detach();
1470
+ this.el = r.nativeElement;
1471
+ proxyOutputs(this, this.el, ['checkedChange']);
1472
+ }
1473
+ };
1474
+ /** @nocollapse */ IxToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1475
+ /** @nocollapse */ IxToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxToggle, selector: "ix-toggle", inputs: { checked: "checked", color: "color", disabled: "disabled", hideText: "hideText", indeterminate: "indeterminate", textIndeterminate: "textIndeterminate", textOff: "textOff", textOn: "textOn" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1476
+ IxToggle = __decorate([
1477
+ ProxyCmp({
1478
+ defineCustomElementFn: undefined,
1479
+ inputs: ['checked', 'color', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn']
1480
+ })
1481
+ ], IxToggle);
1482
+ export { IxToggle };
1483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxToggle, decorators: [{
1484
+ type: Component,
1485
+ args: [{
1486
+ selector: 'ix-toggle',
1487
+ changeDetection: ChangeDetectionStrategy.OnPush,
1488
+ template: '<ng-content></ng-content>',
1489
+ inputs: ['checked', 'color', 'disabled', 'hideText', 'indeterminate', 'textIndeterminate', 'textOff', 'textOn']
1490
+ }]
1491
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1492
+ let IxTreeItem = class IxTreeItem {
1493
+ constructor(c, r, z) {
1494
+ this.z = z;
1495
+ c.detach();
1496
+ this.el = r.nativeElement;
1497
+ proxyOutputs(this, this.el, ['toggle', 'itemClick']);
1498
+ }
1499
+ };
1500
+ /** @nocollapse */ IxTreeItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTreeItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1501
+ /** @nocollapse */ IxTreeItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxTreeItem, selector: "ix-tree-item", inputs: { context: "context", hasChildren: "hasChildren", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1502
+ IxTreeItem = __decorate([
1503
+ ProxyCmp({
1504
+ defineCustomElementFn: undefined,
1505
+ inputs: ['context', 'hasChildren', 'text']
1506
+ })
1507
+ ], IxTreeItem);
1508
+ export { IxTreeItem };
1509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxTreeItem, decorators: [{
1510
+ type: Component,
1511
+ args: [{
1512
+ selector: 'ix-tree-item',
1513
+ changeDetection: ChangeDetectionStrategy.OnPush,
1514
+ template: '<ng-content></ng-content>',
1515
+ inputs: ['context', 'hasChildren', 'text']
1516
+ }]
1517
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1518
+ let IxUpload = class IxUpload {
1519
+ constructor(c, r, z) {
1520
+ this.z = z;
1521
+ c.detach();
1522
+ this.el = r.nativeElement;
1523
+ proxyOutputs(this, this.el, ['filesChanged']);
1524
+ }
1525
+ };
1526
+ /** @nocollapse */ IxUpload.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1527
+ /** @nocollapse */ IxUpload.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxUpload, selector: "ix-upload", inputs: { accept: "accept", disabled: "disabled", i18nUploadDisabled: "i18nUploadDisabled", i18nUploadFile: "i18nUploadFile", loadingText: "loadingText", multiline: "multiline", multiple: "multiple", selectFileText: "selectFileText", state: "state", uploadFailedText: "uploadFailedText", uploadSuccessText: "uploadSuccessText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1528
+ IxUpload = __decorate([
1529
+ ProxyCmp({
1530
+ defineCustomElementFn: undefined,
1531
+ inputs: ['accept', 'disabled', 'i18nUploadDisabled', 'i18nUploadFile', 'loadingText', 'multiline', 'multiple', 'selectFileText', 'state', 'uploadFailedText', 'uploadSuccessText'],
1532
+ methods: ['setFilesToUpload']
1533
+ })
1534
+ ], IxUpload);
1535
+ export { IxUpload };
1536
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxUpload, decorators: [{
1537
+ type: Component,
1538
+ args: [{
1539
+ selector: 'ix-upload',
1540
+ changeDetection: ChangeDetectionStrategy.OnPush,
1541
+ template: '<ng-content></ng-content>',
1542
+ inputs: ['accept', 'disabled', 'i18nUploadDisabled', 'i18nUploadFile', 'loadingText', 'multiline', 'multiple', 'selectFileText', 'state', 'uploadFailedText', 'uploadSuccessText']
1543
+ }]
1544
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1545
+ let IxValidationTooltip = class IxValidationTooltip {
1546
+ constructor(c, r, z) {
1547
+ this.z = z;
1548
+ c.detach();
1549
+ this.el = r.nativeElement;
1550
+ }
1551
+ };
1552
+ /** @nocollapse */ IxValidationTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxValidationTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1553
+ /** @nocollapse */ IxValidationTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxValidationTooltip, selector: "ix-validation-tooltip", inputs: { message: "message", placement: "placement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1554
+ IxValidationTooltip = __decorate([
1555
+ ProxyCmp({
1556
+ defineCustomElementFn: undefined,
1557
+ inputs: ['message', 'placement']
1558
+ })
1559
+ ], IxValidationTooltip);
1560
+ export { IxValidationTooltip };
1561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxValidationTooltip, decorators: [{
1562
+ type: Component,
1563
+ args: [{
1564
+ selector: 'ix-validation-tooltip',
1565
+ changeDetection: ChangeDetectionStrategy.OnPush,
1566
+ template: '<ng-content></ng-content>',
1567
+ inputs: ['message', 'placement']
1568
+ }]
1569
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1570
+ let IxWorkflowStep = class IxWorkflowStep {
1571
+ constructor(c, r, z) {
1572
+ this.z = z;
1573
+ c.detach();
1574
+ this.el = r.nativeElement;
1575
+ }
1576
+ };
1577
+ /** @nocollapse */ IxWorkflowStep.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxWorkflowStep, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1578
+ /** @nocollapse */ IxWorkflowStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxWorkflowStep, selector: "ix-workflow-step", inputs: { clickable: "clickable", disabled: "disabled", position: "position", selected: "selected", status: "status", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1579
+ IxWorkflowStep = __decorate([
1580
+ ProxyCmp({
1581
+ defineCustomElementFn: undefined,
1582
+ inputs: ['clickable', 'disabled', 'position', 'selected', 'status', 'vertical']
1583
+ })
1584
+ ], IxWorkflowStep);
1585
+ export { IxWorkflowStep };
1586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxWorkflowStep, decorators: [{
1587
+ type: Component,
1588
+ args: [{
1589
+ selector: 'ix-workflow-step',
1590
+ changeDetection: ChangeDetectionStrategy.OnPush,
1591
+ template: '<ng-content></ng-content>',
1592
+ inputs: ['clickable', 'disabled', 'position', 'selected', 'status', 'vertical']
1593
+ }]
1594
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1595
+ let IxWorkflowSteps = class IxWorkflowSteps {
1596
+ constructor(c, r, z) {
1597
+ this.z = z;
1598
+ c.detach();
1599
+ this.el = r.nativeElement;
1600
+ proxyOutputs(this, this.el, ['stepSelected']);
1601
+ }
1602
+ };
1603
+ /** @nocollapse */ IxWorkflowSteps.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxWorkflowSteps, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1604
+ /** @nocollapse */ IxWorkflowSteps.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.4", type: IxWorkflowSteps, selector: "ix-workflow-steps", inputs: { clickable: "clickable", linear: "linear", selectedIndex: "selectedIndex", vertical: "vertical" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1605
+ IxWorkflowSteps = __decorate([
1606
+ ProxyCmp({
1607
+ defineCustomElementFn: undefined,
1608
+ inputs: ['clickable', 'linear', 'selectedIndex', 'vertical']
1609
+ })
1610
+ ], IxWorkflowSteps);
1611
+ export { IxWorkflowSteps };
1612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: IxWorkflowSteps, decorators: [{
1613
+ type: Component,
1614
+ args: [{
1615
+ selector: 'ix-workflow-steps',
1616
+ changeDetection: ChangeDetectionStrategy.OnPush,
1617
+ template: '<ng-content></ng-content>',
1618
+ inputs: ['clickable', 'linear', 'selectedIndex', 'vertical']
1619
+ }]
1620
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1621
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztJQW1CMUQsYUFBYSxTQUFiLGFBQWE7SUFFeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGLENBQUE7NkhBTlksYUFBYTtpSEFBYixhQUFhLGlHQUhkLDJCQUEyQjtBQUcxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztLQUMxQixDQUFDO0dBT1csYUFBYSxDQU16QjtTQU5ZLGFBQWE7MkZBQWIsYUFBYTtrQkFOekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztpQkFDMUI7O0lBNEJZLGNBQWMsU0FBZCxjQUFjO0lBRXpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMs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QkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDO2lCQUM3RCIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2llbWVucy9peCc7XG5cblxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEFuaW1hdGVkVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5JeEFuaW1hdGVkVGFiIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY291bnQnLCAnaWNvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYW5pbWF0ZWQtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb3VudCcsICdpY29uJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhBbmltYXRlZFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QW5pbWF0ZWRUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5JeEFuaW1hdGVkVGFicyB7XG4gIC8qKlxuICAgKiBUYWIgbmF2aWdhdGVkIFxuICAgKi9cbiAgdGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVBbmltYXRpb25zJywgJ3NlbGVjdGVkSW5kZXgnLCAndGFiUGxhY2VtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1hbmltYXRlZC10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlQW5pbWF0aW9ucycsICdzZWxlY3RlZEluZGV4JywgJ3RhYlBsYWNlbWVudCddXG59KVxuZXhwb3J0IGNsYXNzIEl4QW5pbWF0ZWRUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGFiQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhBcHBsaWNhdGlvbkhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuSXhBcHBsaWNhdGlvbkhlYWRlciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ25hbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWFwcGxpY2F0aW9uLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbmFtZSddXG59KVxuZXhwb3J0IGNsYXNzIEl4QXBwbGljYXRpb25IZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEJhc2ljTmF2aWdhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuSXhCYXNpY05hdmlnYXRpb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhcHBsaWNhdGlvbk5hbWUnLCAnaGlkZUhlYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYmFzaWMtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25OYW1lJywgJ2hpZGVIZWFkZXInXVxufSlcbmV4cG9ydCBjbGFzcyBJeEJhc2ljTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QmxpbmQgZXh0ZW5kcyBDb21wb25lbnRzLkl4QmxpbmQge1xuICAvKipcbiAgICogQ29sbGFwc2VkIHN0YXRlIGNoYW5nZWQgXG4gICAqL1xuICBjb2xsYXBzZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWJsaW5kJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBJeEJsaW5kIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY29sbGFwc2VkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuSXhCcmVhZGNydW1iIHtcbiAgLyoqXG4gICAqIENydW1iIGl0ZW0gY2xpY2tlZCBldmVudCBcbiAgICovXG4gIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogTmV4dCBpdGVtIGNsaWNrZWQgZXZlbnQgXG4gICAqL1xuICBuZXh0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBVSUV2ZW50OyBpdGVtOiBzdHJpbmcgfT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZ2hvc3QnLCAnbmV4dEl0ZW1zJywgJ3Zpc2libGVJdGVtQ291bnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2dob3N0JywgJ25leHRJdGVtcycsICd2aXNpYmxlSXRlbUNvdW50J11cbn0pXG5leHBvcnQgY2xhc3MgSXhCcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbUNsaWNrJywgJ25leHRDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEJyZWFkY3J1bWJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeEJyZWFkY3J1bWJJdGVtIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYnJlYWRjcnVtYi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhCcmVhZGNydW1iSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5JeEJ1dHRvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2dob3N0JywgJ2ludmlzaWJsZScsICdvdXRsaW5lJywgJ3NlbGVjdGVkJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdnaG9zdCcsICdpbnZpc2libGUnLCAnb3V0bGluZScsICdzZWxlY3RlZCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBJeEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgSW5wdXRTdGF0ZSBhcyBJQ2F0ZWdvcnlGaWx0ZXJJbnB1dFN0YXRlIH0gZnJvbSAnQHNpZW1lbnMvaXgnO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJTdGF0ZSBhcyBJQ2F0ZWdvcnlGaWx0ZXJGaWx0ZXJTdGF0ZSB9IGZyb20gJ0BzaWVtZW5zL2l4JztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENhdGVnb3J5RmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeENhdGVnb3J5RmlsdGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGRpc3BhdGNoZWQgd2hlbmV2ZXIgdGhlIHRleHQgaW5wdXQgY2hhbmdlcy4gXG4gICAqL1xuICBpbnB1dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQ2F0ZWdvcnlGaWx0ZXJJbnB1dFN0YXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCBkaXNwYXRjaGVkIHdoZW5ldmVyIHRoZSBmaWx0ZXIgc3RhdGUgY2hhbmdlcy4gXG4gICAqL1xuICBmaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUNhdGVnb3J5RmlsdGVyRmlsdGVyU3RhdGU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NhdGVnb3JpZXMnLCAnZmlsdGVyU3RhdGUnLCAnaGlkZUljb24nLCAnaTE4blBsYWluVGV4dCcsICdpY29uJywgJ2luaXRpYWxTdGF0ZScsICdsYWJlbENhdGVnb3JpZXMnLCAnbm9uU2VsZWN0YWJsZUNhdGVnb3JpZXMnLCAncGxhY2Vob2xkZXInLCAncmVwZWF0Q2F0ZWdvcmllcycsICdzdWdnZXN0aW9ucycsICd0bXBEaXNhYmxlU2Nyb2xsSW50b1ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNhdGVnb3J5LWZpbHRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2F0ZWdvcmllcycsICdmaWx0ZXJTdGF0ZScsICdoaWRlSWNvbicsICdpMThuUGxhaW5UZXh0JywgJ2ljb24nLCAnaW5pdGlhbFN0YXRlJywgJ2xhYmVsQ2F0ZWdvcmllcycsICdub25TZWxlY3RhYmxlQ2F0ZWdvcmllcycsICdwbGFjZWhvbGRlcicsICdyZXBlYXRDYXRlZ29yaWVzJywgJ3N1Z2dlc3Rpb25zJywgJ3RtcERpc2FibGVTY3JvbGxJbnRvVmlldyddXG59KVxuZXhwb3J0IGNsYXNzIEl4Q2F0ZWdvcnlGaWx0ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dENoYW5nZWQnLCAnZmlsdGVyQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeENoaXAgZXh0ZW5kcyBDb21wb25lbnRzLkl4Q2hpcCB7XG4gIC8qKlxuICAgKiBGaXJlIGV2ZW50IGlmIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkIFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdiYWNrZ3JvdW5kJywgJ2Nsb3NhYmxlJywgJ2NvbG9yJywgJ2ljb24nLCAnb3V0bGluZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYmFja2dyb3VuZCcsICdjbG9zYWJsZScsICdjb2xvcicsICdpY29uJywgJ291dGxpbmUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEl4Q2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4Q291bnRlclBpbGwgZXh0ZW5kcyBDb21wb25lbnRzLkl4Q291bnRlclBpbGwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnbkxlZnQnLCAnYmFja2dyb3VuZCcsICdjb2xvcicsICdvdXRsaW5lJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWNvdW50ZXItcGlsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25MZWZ0JywgJ2JhY2tncm91bmQnLCAnY29sb3InLCAnb3V0bGluZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgSXhDb3VudGVyUGlsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgTGVnYWN5RGF0ZUNoYW5nZUV2ZW50IGFzIElEYXRlUGlja2VyTGVnYWN5RGF0ZUNoYW5nZUV2ZW50IH0gZnJvbSAnQHNpZW1lbnMvaXgnO1xuaW1wb3J0IHR5cGUgeyBEYXRlQ2hhbmdlRXZlbnQgYXMgSURhdGVQaWNrZXJEYXRlQ2hhbmdlRXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEYXRlUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5JeERhdGVQaWNrZXIge1xuICAvKipcbiAgICogRGF0ZSBjaGFuZ2UgZXZlbnRcblxuSWYgZGF0ZXBpY2tlciBpcyBpbiByYW5nZSBtb2RlIHRoZSBldmVudCBkZXRhaWwgd2lsbCBiZSBzcGVyYXRlZCB3aXRoIGEgYC1gIGUuZy5cbmAyMDIyLzEwLzIyIC0gMjAyMi8xMC8yNGAgKHN0YXJ0IGFuZCBlbmQpLiBJZiByYW5nZSBtb2RlIGlzIGNob29zZW4gY29uc2lkZXIgdG8gdXNlIGBkYXRlUmFuZ2VDaGFuZ2VgLiBAZGVwcmFjdGVkIFN0cmluZyBvdXRwdXQgd2lsbCBiZSByZW1vdmVkLiBTZXQgwrRkb25lRXZlbnREZWxpbWl0ZXLCtCB0byB1bmRlZmluZWQgb3IgbnVsbCB0byBnZXQgZGF0ZSBjaGFuZ2Ugb2JqZWN0IGluc3RlYWQgb2YgYSBzdHJpbmdcbiAgICovXG4gIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRGF0ZVBpY2tlckxlZ2FjeURhdGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGF0ZSByYW5nZSBjaGFuZ2UuXG5Pbmx5IHRyaWdnZXJlZCBpZiBkYXRlcGlja2VyIGlzIGluIHJhbmdlIG1vZGUgQHNpbmNlIDEuMS4wXG4gICAqL1xuICBkYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRGF0ZVBpY2tlckRhdGVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGF0ZSBzZWxlY3Rpb24gY29uZmlybWVkIHZpYSBidXR0b24gYWN0aW9uIEBkZXByZWNhdGVkIFVzZSBgZGF0ZVNlbGVjdGBcbiAgICovXG4gIGRvbmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIERhdGUgc2VsZWN0aW9uIGNvbmZpcm1lZCB2aWEgYnV0dG9uIGFjdGlvbiBAc2luY2UgMS4xLjBcbiAgICovXG4gIGRhdGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRGF0ZVBpY2tlckRhdGVDaGFuZ2VFdmVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29ybmVycycsICdldmVudERlbGltaXRlcicsICdmb3JtYXQnLCAnZnJvbScsICdpbmRpdmlkdWFsJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdyYW5nZScsICd0ZXh0U2VsZWN0RGF0ZScsICd0byddLFxuICBtZXRob2RzOiBbJ2dldEN1cnJlbnREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kYXRlLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29ybmVycycsICdldmVudERlbGltaXRlcicsICdmb3JtYXQnLCAnZnJvbScsICdpbmRpdmlkdWFsJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdyYW5nZScsICd0ZXh0U2VsZWN0RGF0ZScsICd0byddXG59KVxuZXhwb3J0IGNsYXNzIEl4RGF0ZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RhdGVDaGFuZ2UnLCAnZGF0ZVJhbmdlQ2hhbmdlJywgJ2RvbmUnLCAnZGF0ZVNlbGVjdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeERhdGVUaW1lQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuSXhEYXRlVGltZUNhcmQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb3JuZXJzJywgJ2luZGl2aWR1YWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRhdGUtdGltZS1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb3JuZXJzJywgJ2luZGl2aWR1YWwnXVxufSlcbmV4cG9ydCBjbGFzcyBJeERhdGVUaW1lQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgRGF0ZVRpbWVTZWxlY3RFdmVudCBhcyBJRGF0ZVBpY2tlckRhdGVUaW1lU2VsZWN0RXZlbnQgfSBmcm9tICdAc2llbWVucy9peCc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEYXRldGltZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuSXhEYXRldGltZVBpY2tlciB7XG4gIC8qKlxuICAgKiBEb25lIGV2ZW50XG5cblNldCBgZG9uZUV2ZW50RGVsaW1pdGVyYCB0byBudWxsIG9yIHVuZGVmaW5lIHRvIGdldCB0aGUgdHlwZWQgZXZlbnQgXG4gICAqL1xuICBkb25lOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBUaW1lIGNoYW5nZSBAc2luY2UgMS4xLjBcbiAgICovXG4gIHRpbWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIERhdGUgY2hhbmdlIEBzaW5jZSAxLjEuMFxuICAgKi9cbiAgZGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IE9taXQ8SURhdGVQaWNrZXJEYXRlVGltZVNlbGVjdEV2ZW50LCAndGltZSc+Pj47XG4gIC8qKlxuICAgKiBEYXRlIHNlbGVjdGlvbiBldmVudCBpcyBmaXJlZCBhZnRlciBjb25maXJtIGJ1dHRvbiBpcyBwcmVzc2VuZCBAc2luY2UgMS4xLjBcbiAgICovXG4gIGRhdGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRGF0ZVBpY2tlckRhdGVUaW1lU2VsZWN0RXZlbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RhdGVGb3JtYXQnLCAnZXZlbnREZWxpbWl0ZXInLCAnZnJvbScsICdtYXhEYXRlJywgJ21pbkRhdGUnLCAncmFuZ2UnLCAnc2hvd0hvdXInLCAnc2hvd01pbnV0ZXMnLCAnc2hvd1NlY29uZHMnLCAnc2hvd1RpbWVSZWZlcmVuY2UnLCAndGV4dFNlbGVjdERhdGUnLCAndGltZScsICd0aW1lRm9ybWF0JywgJ3RpbWVSZWZlcmVuY2UnLCAndG8nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRhdGV0aW1lLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGF0ZUZvcm1hdCcsICdldmVudERlbGltaXRlcicsICdmcm9tJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdyYW5nZScsICdzaG93SG91cicsICdzaG93TWludXRlcycsICdzaG93U2Vjb25kcycsICdzaG93VGltZVJlZmVyZW5jZScsICd0ZXh0U2VsZWN0RGF0ZScsICd0aW1lJywgJ3RpbWVGb3JtYXQnLCAndGltZVJlZmVyZW5jZScsICd0byddXG59KVxuZXhwb3J0IGNsYXNzIEl4RGF0ZXRpbWVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkb25lJywgJ3RpbWVDaGFuZ2UnLCAnZGF0ZUNoYW5nZScsICdkYXRlU2VsZWN0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RHJhd2VyIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyYXdlciB7XG4gIC8qKlxuICAgKiBGaXJlIGV2ZW50IGFmdGVyIGRyYXdlciBpcyBvcGVuIFxuICAgKi9cbiAgb3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRmlyZSBldmVudCBhZnRlciBkcmF3ZXIgaXMgY2xvc2UgXG4gICAqL1xuICBkcmF3ZXJDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2xvc2VPbkNsaWNrT3V0c2lkZScsICdmdWxsSGVpZ2h0JywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3cnLCAnd2lkdGgnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVEcmF3ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWRyYXdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2xvc2VPbkNsaWNrT3V0c2lkZScsICdmdWxsSGVpZ2h0JywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3Nob3cnLCAnd2lkdGgnXVxufSlcbmV4cG9ydCBjbGFzcyBJeERyYXdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wZW4nLCAnZHJhd2VyQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuSXhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBGaXJlIGV2ZW50IGFmdGVyIHZpc2liaWxpdHkgb2YgZHJvcGRvd24gaGFzIGNoYW5nZWQgXG4gICAqL1xuICBzaG93Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FkanVzdERyb3Bkb3duV2lkdGhUb1JlZmVyZW5jZVdpZHRoJywgJ2FkanVzdERyb3Bkb3duV2lkdGhUb1JlZmVyZW5jZVdpdGgnLCAnYW5jaG9yJywgJ2Nsb3NlQmVoYXZpb3InLCAnaGVhZGVyJywgJ3BsYWNlbWVudCcsICdwb3NpdGlvbmluZ1N0cmF0ZWd5JywgJ3Nob3cnLCAndHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZVBvc2l0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWRqdXN0RHJvcGRvd25XaWR0aFRvUmVmZXJlbmNlV2lkdGgnLCAnYWRqdXN0RHJvcGRvd25XaWR0aFRvUmVmZXJlbmNlV2l0aCcsICdhbmNob3InLCAnY2xvc2VCZWhhdmlvcicsICdoZWFkZXInLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uaW5nU3RyYXRlZ3knLCAnc2hvdycsICd0cmlnZ2VyJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Nob3dDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4RHJvcGRvd25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeERyb3Bkb3duSXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBvbiBpdGVtIFxuICAgKi9cbiAgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SFRNTEl4RHJvcGRvd25JdGVtRWxlbWVudD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdob3ZlcicsICdpY29uJywgJ2xhYmVsJ10sXG4gIG1ldGhvZHM6IFsnZW1pdEl0ZW1DbGljayddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZHJvcGRvd24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdob3ZlcicsICdpY29uJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhEcm9wZG93bkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhFdmVudExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkl4RXZlbnRMaXN0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnY2hldnJvbicsICdjb21wYWN0JywgJ2l0ZW1IZWlnaHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWV2ZW50LWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FuaW1hdGVkJywgJ2NoZXZyb24nLCAnY29tcGFjdCcsICdpdGVtSGVpZ2h0J11cbn0pXG5leHBvcnQgY2xhc3MgSXhFdmVudExpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEV2ZW50TGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4RXZlbnRMaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBFdmVudCBsaXN0IGl0ZW0gY2xpY2sgXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZXZyb24nLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnb3BhY2l0eScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZXZlbnQtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGV2cm9uJywgJ2NvbG9yJywgJ2Rpc2FibGVkJywgJ29wYWNpdHknLCAnc2VsZWN0ZWQnXVxufSlcbmV4cG9ydCBjbGFzcyBJeEV2ZW50TGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhFeHBhbmRpbmdTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLkl4RXhwYW5kaW5nU2VhcmNoIHtcbiAgLyoqXG4gICAqIFZhbHVlIGNoYW5nZWQgXG4gICAqL1xuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZXhwYW5kaW5nLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvbicsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIEl4RXhwYW5kaW5nU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmFsdWVDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhGaWx0ZXJDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5JeEZpbHRlckNoaXAge1xuICAvKipcbiAgICogQ2xvc2UgY2xpY2tlZCBcbiAgICovXG4gIGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZmlsdGVyLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhGaWx0ZXJDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEZsaXBUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5JeEZsaXBUaWxlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZm9vdGVyJywgJ3N0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1mbGlwLXRpbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Zvb3RlcicsICdzdGF0ZSddXG59KVxuZXhwb3J0IGNsYXNzIEl4RmxpcFRpbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeEZsaXBUaWxlQ29udGVudCBleHRlbmRzIENvbXBvbmVudHMuSXhGbGlwVGlsZUNvbnRlbnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1mbGlwLXRpbGUtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIEl4RmxpcFRpbGVDb250ZW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhHcm91cCBleHRlbmRzIENvbXBvbmVudHMuSXhHcm91cCB7XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHdob2xlIGdyb3VwIGdldHMgc2VsZWN0ZWQuIFxuICAgKi9cbiAgc2VsZWN0R3JvdXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGdyb3VwIGl0ZW0gZ2V0cyBzZWxlY3RlZC4gXG4gICAqL1xuICBzZWxlY3RJdGVtOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBHcm91cCBjb2xsYXBzZWQgXG4gICAqL1xuICBjb2xsYXBzZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ2V4cGFuZE9uSGVhZGVyQ2xpY2snLCAnaGVhZGVyJywgJ2luZGV4JywgJ3NlbGVjdGVkJywgJ3N1YkhlYWRlcicsICdzdXBwcmVzc0hlYWRlclNlbGVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlZCcsICdleHBhbmRPbkhlYWRlckNsaWNrJywgJ2hlYWRlcicsICdpbmRleCcsICdzZWxlY3RlZCcsICdzdWJIZWFkZXInLCAnc3VwcHJlc3NIZWFkZXJTZWxlY3Rpb24nXVxufSlcbmV4cG9ydCBjbGFzcyBJeEdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2VsZWN0R3JvdXAnLCAnc2VsZWN0SXRlbScsICdjb2xsYXBzZWRDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4R3JvdXBEcm9wZG93bkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4R3JvdXBEcm9wZG93bkl0ZW0ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1ncm91cC1kcm9wZG93bi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhHcm91cERyb3Bkb3duSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4R3JvdXBJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeEdyb3VwSXRlbSB7XG4gIC8qKlxuICAgKiBTZWxlY3Rpb24gY2hhbmdlZCBcbiAgICovXG4gIHNlbGVjdGVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEhUTUxJeEdyb3VwSXRlbUVsZW1lbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ZvY3VzYWJsZScsICdpY29uJywgJ2luZGV4JywgJ3NlY29uZGFyeVRleHQnLCAnc2VsZWN0ZWQnLCAnc3VwcHJlc3NTZWxlY3Rpb24nLCAndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtZ3JvdXAtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZm9jdXNhYmxlJywgJ2ljb24nLCAnaW5kZXgnLCAnc2Vjb25kYXJ5VGV4dCcsICdzZWxlY3RlZCcsICdzdXBwcmVzc1NlbGVjdGlvbicsICd0ZXh0J11cbn0pXG5leHBvcnQgY2xhc3MgSXhHcm91cEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzZWxlY3RlZENoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5JeEljb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xvcicsICduYW1lJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ25hbWUnLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIEl4SWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4SWNvbkJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuSXhJY29uQnV0dG9uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdpbnZpc2libGUnLCAnb3V0bGluZScsICdvdmFsJywgJ3NlbGVjdGVkJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1pY29uLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnZGlzYWJsZWQnLCAnZ2hvc3QnLCAnaWNvbicsICdpbnZpc2libGUnLCAnb3V0bGluZScsICdvdmFsJywgJ3NlbGVjdGVkJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgSXhJY29uQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhJbnB1dEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5JeElucHV0R3JvdXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1pbnB1dC1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIEl4SW5wdXRHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4S3BpIGV4dGVuZHMgQ29tcG9uZW50cy5JeEtwaSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ29yaWVudGF0aW9uJywgJ3N0YXRlJywgJ3VuaXQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LWtwaScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbGFiZWwnLCAnb3JpZW50YXRpb24nLCAnc3RhdGUnLCAndW5pdCcsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIEl4S3BpIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNYXBOYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1hcE5hdmlnYXRpb24ge1xuICAvKipcbiAgICogTmF2aWdhdGlvbiB0b2dnbGVkIFxuICAgKi9cbiAgbmF2aWdhdGlvblRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBDb250ZXh0IG1lbnUgY2xpY2tlZCBcbiAgICovXG4gIGNvbnRleHRNZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhcHBsaWNhdGlvbk5hbWUnLCAnaGlkZUNvbnRleHRNZW51JywgJ25hdmlnYXRpb25UaXRsZSddLFxuICBtZXRob2RzOiBbJ29wZW5PdmVybGF5JywgJ2Nsb3NlT3ZlcmxheSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWFwLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FwcGxpY2F0aW9uTmFtZScsICdoaWRlQ29udGV4dE1lbnUnLCAnbmF2aWdhdGlvblRpdGxlJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhNYXBOYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbmF2aWdhdGlvblRvZ2dsZWQnLCAnY29udGV4dE1lbnVDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1hcE5hdmlnYXRpb25PdmVybGF5IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1hcE5hdmlnYXRpb25PdmVybGF5IHtcbiAgLyoqXG4gICAqIEV2ZW50IGNsb3NlZCBcbiAgICovXG4gIGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWFwLW5hdmlnYXRpb24tb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICduYW1lJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhNYXBOYXZpZ2F0aW9uT3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnUge1xuICAvKipcbiAgICogTWVudSBleHBhbmRlZCBcbiAgICovXG4gIGV4cGFuZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIE1hcCBTaWRlYmFyIGV4cGFuZGVkIFxuICAgKi9cbiAgbWFwRXhwYW5kQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25EZXNjcmlwdGlvbicsICdhcHBsaWNhdGlvbk5hbWUnLCAnZW5hYmxlTWFwRXhwYW5kJywgJ2VuYWJsZVNldHRpbmdzJywgJ2VuYWJsZVRvZ2dsZVRoZW1lJywgJ2V4cGFuZCcsICdpMThuQ29sbGFwc2UnLCAnaTE4bkV4cGFuZCcsICdpMThuTGVnYWwnLCAnaTE4bk1vcmUnLCAnaTE4blNldHRpbmdzJywgJ2kxOG5Ub2dnbGVUaGVtZScsICdtYXhWaXNpYmxlTWVudUl0ZW1zJywgJ3Nob3dBYm91dCcsICdzaG93U2V0dGluZ3MnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVNYXBFeHBhbmQnLCAndG9nZ2xlTWVudScsICd0b2dnbGVTZXR0aW5ncycsICd0b2dnbGVBYm91dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXBwbGljYXRpb25EZXNjcmlwdGlvbicsICdhcHBsaWNhdGlvbk5hbWUnLCAnZW5hYmxlTWFwRXhwYW5kJywgJ2VuYWJsZVNldHRpbmdzJywgJ2VuYWJsZVRvZ2dsZVRoZW1lJywgJ2V4cGFuZCcsICdpMThuQ29sbGFwc2UnLCAnaTE4bkV4cGFuZCcsICdpMThuTGVnYWwnLCAnaTE4bk1vcmUnLCAnaTE4blNldHRpbmdzJywgJ2kxOG5Ub2dnbGVUaGVtZScsICdtYXhWaXNpYmxlTWVudUl0ZW1zJywgJ3Nob3dBYm91dCcsICdzaG93U2V0dGluZ3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydleHBhbmRDaGFuZ2UnLCAnbWFwRXhwYW5kQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUFib3V0IGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVBYm91dCB7XG4gIC8qKlxuICAgKiBBYm91dCBhbmQgTGVnYWwgY2xvc2VkIFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LWFib3V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J11cbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51QWJvdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnVBYm91dEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudUFib3V0SXRlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LWFib3V0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51QWJvdXRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZW51QWJvdXROZXdzIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVBYm91dE5ld3Mge1xuICAvKipcbiAgICogU2hvdyBNb3JlIGJ1dHRvbiBpcyBwcmVzc2VkIFxuICAgKi9cbiAgc2hvd01vcmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlZCBcbiAgICovXG4gIGNsb3NlUG9wb3ZlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Fib3V0SXRlbUxhYmVsJywgJ2V4cGFuZGVkJywgJ2kxOG5TaG93TW9yZScsICdsYWJlbCcsICdvZmZzZXRCb3R0b20nLCAnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudS1hYm91dC1uZXdzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhYm91dEl0ZW1MYWJlbCcsICdleHBhbmRlZCcsICdpMThuU2hvd01vcmUnLCAnbGFiZWwnLCAnb2Zmc2V0Qm90dG9tJywgJ3Nob3cnXVxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVBYm91dE5ld3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaG93TW9yZScsICdjbG9zZVBvcG92ZXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZW51QXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lbnVBdmF0YXIge1xuICAvKipcbiAgICogTG9nb3V0IGNsaWNrIFxuICAgKi9cbiAgbG9nb3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JvdHRvbScsICdpMThuTG9nb3V0JywgJ3RvcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVudS1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JvdHRvbScsICdpMThuTG9nb3V0JywgJ3RvcCddXG59KVxuZXhwb3J0IGNsYXNzIEl4TWVudUF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2xvZ291dENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUF2YXRhckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudUF2YXRhckl0ZW0ge1xuICAvKipcbiAgICogQXZhdGFyIGRyb3Bkb3duIGl0ZW0gY2xpY2tlZCBcbiAgICovXG4gIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1lbnUtYXZhdGFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVBdmF0YXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4TWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudUl0ZW0ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3RpdmUnLCAnYm90dG9tJywgJ2Rpc2FibGVkJywgJ2hvbWUnLCAnbm90aWZpY2F0aW9ucycsICd0YWJJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdib3R0b20nLCAnZGlzYWJsZWQnLCAnaG9tZScsICdub3RpZmljYXRpb25zJywgJ3RhYkljb24nXVxufSlcbmV4cG9ydCBjbGFzcyBJeE1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZW51U2V0dGluZ3MgZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudVNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2VkIFxuICAgKi9cbiAgY2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LXNldHRpbmdzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3RpdmVUYWJMYWJlbCcsICdsYWJlbCcsICdzaG93J11cbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51U2V0dGluZ3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1lbnVTZXR0aW5nc0l0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkl4TWVudVNldHRpbmdzSXRlbSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tZW51LXNldHRpbmdzLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhNZW51U2V0dGluZ3NJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNZXNzYWdlQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5JeE1lc3NhZ2VCYXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjbG9zZSBidXR0b24gaXMgY2xpY2tlZCBcbiAgICovXG4gIGNsb3NlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlzbWlzc2libGUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtbWVzc2FnZS1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc21pc3NpYmxlJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBJeE1lc3NhZ2VCYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjbG9zZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuSXhNb2RhbCB7XG4gIC8qKlxuICAgKiBNb2RhbCBjbG9zZWQgXG4gICAqL1xuICBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIE1vZGFsIGRpc21pc3NlZCBcbiAgICovXG4gIGRpc21pc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2FyaWFEZXNjcmliZWRCeScsICdhcmlhTGFiZWxsZWRCeScsICdiYWNrZHJvcCcsICdiYWNrZHJvcENsYXNzJywgJ2JlZm9yZURpc21pc3MnLCAnY2VudGVyZWQnLCAnY29udGVudCcsICdoZWFkZXJUaXRsZScsICdpY29uJywgJ2ljb25Db2xvcicsICdrZXlib2FyZCcsICdtb2RhbERpYWxvZ0NsYXNzJywgJ3Njcm9sbGFibGUnLCAnc2l6ZScsICd3aW5kb3dDbGFzcyddLFxuICBtZXRob2RzOiBbJ2Rpc21pc3MnLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYXJpYURlc2NyaWJlZEJ5JywgJ2FyaWFMYWJlbGxlZEJ5JywgJ2JhY2tkcm9wJywgJ2JhY2tkcm9wQ2xhc3MnLCAnYmVmb3JlRGlzbWlzcycsICdjZW50ZXJlZCcsICdjb250ZW50JywgJ2hlYWRlclRpdGxlJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2tleWJvYXJkJywgJ21vZGFsRGlhbG9nQ2xhc3MnLCAnc2Nyb2xsYWJsZScsICdzaXplJywgJ3dpbmRvd0NsYXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlZCcsICdkaXNtaXNzZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhNb2RhbENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuSXhNb2RhbENvbnRhaW5lciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgbWV0aG9kczogWydzaG93TW9kYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LW1vZGFsLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIEl4TW9kYWxDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeE1vZGFsRXhhbXBsZSBleHRlbmRzIENvbXBvbmVudHMuSXhNb2RhbEV4YW1wbGUge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1tb2RhbC1leGFtcGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgSXhNb2RhbEV4YW1wbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFBpbGwgZXh0ZW5kcyBDb21wb25lbnRzLkl4UGlsbCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWduTGVmdCcsICdiYWNrZ3JvdW5kJywgJ2NvbG9yJywgJ2ljb24nLCAnb3V0bGluZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1waWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbkxlZnQnLCAnYmFja2dyb3VuZCcsICdjb2xvcicsICdpY29uJywgJ291dGxpbmUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEl4UGlsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5JeFNlbGVjdCB7XG4gIC8qKlxuICAgKiBJdGVtIHNlbGVjdGlvbiBjaGFuZ2VkIFxuICAgKi9cbiAgaXRlbVNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBJdGVtIGFkZGVkIHRvIHNlbGVjdGlvbiBcbiAgICovXG4gIGFkZEl0ZW06IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsbG93Q2xlYXInLCAnZGlzYWJsZWQnLCAnZWRpdGFibGUnLCAnaTE4blBsYWNlaG9sZGVyJywgJ2kxOG5QbGFjZWhvbGRlckVkaXRhYmxlJywgJ2kxOG5TZWxlY3RMaXN0SGVhZGVyJywgJ21vZGUnLCAncmVhZG9ubHknLCAnc2VsZWN0ZWRJbmRpY2VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsbG93Q2xlYXInLCAnZGlzYWJsZWQnLCAnZWRpdGFibGUnLCAnaTE4blBsYWNlaG9sZGVyJywgJ2kxOG5QbGFjZWhvbGRlckVkaXRhYmxlJywgJ2kxOG5TZWxlY3RMaXN0SGVhZGVyJywgJ21vZGUnLCAncmVhZG9ubHknLCAnc2VsZWN0ZWRJbmRpY2VzJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtU2VsZWN0aW9uQ2hhbmdlJywgJ2FkZEl0ZW0nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhTZWxlY3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeFNlbGVjdEl0ZW0ge1xuICAvKipcbiAgICogSXRlbSBjbGlja2VkIFxuICAgKi9cbiAgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydob3ZlcicsICdsYWJlbCcsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ29uSXRlbUNsaWNrJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zZWxlY3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaG92ZXInLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBJeFNlbGVjdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeFNwaW5uZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIEl4U3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4U3BsaXRCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkl4U3BsaXRCdXR0b24ge1xuICAvKipcbiAgICogQnV0dG9uIGNsaWNrZWQgXG4gICAqL1xuICBidXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2dob3N0JywgJ2ljb24nLCAnaW52aXNpYmxlJywgJ2xhYmVsJywgJ291dGxpbmUnLCAncGxhY2VtZW50JywgJ3NwbGl0SWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zcGxpdC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2dob3N0JywgJ2ljb24nLCAnaW52aXNpYmxlJywgJ2xhYmVsJywgJ291dGxpbmUnLCAncGxhY2VtZW50JywgJ3NwbGl0SWNvbicsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgSXhTcGxpdEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4U3BsaXRCdXR0b25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeFNwbGl0QnV0dG9uSXRlbSB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBpdGVtIGNsaWNrZWQgXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC1zcGxpdC1idXR0b24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIEl4U3BsaXRCdXR0b25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4VGFiSXRlbSBleHRlbmRzIENvbXBvbmVudHMuSXhUYWJJdGVtIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY291bnRlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2xheW91dCcsICdwbGFjZW1lbnQnLCAncm91bmRlZCcsICdzZWxlY3RlZCcsICdzbWFsbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdGFiLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdsYXlvdXQnLCAncGxhY2VtZW50JywgJ3JvdW5kZWQnLCAnc2VsZWN0ZWQnLCAnc21hbGwnXVxufSlcbmV4cG9ydCBjbGFzcyBJeFRhYkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLkl4VGFicyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2xheW91dCcsICdwbGFjZW1lbnQnLCAncm91bmRlZCcsICdzZWxlY3RlZCcsICdzbWFsbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdGFicycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3BsYWNlbWVudCcsICdyb3VuZGVkJywgJ3NlbGVjdGVkJywgJ3NtYWxsJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5JeFRpbGUge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10aWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhUaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUaW1lUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5JeFRpbWVQaWNrZXIge1xuICAvKipcbiAgICogVGltZSBldmVudCBcbiAgICovXG4gIGRvbmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIFRpbWUgY2hhbmdlIGV2ZW50IFxuICAgKi9cbiAgdGltZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29ybmVycycsICdmb3JtYXQnLCAnaW5kaXZpZHVhbCcsICdzaG93SG91cicsICdzaG93TWludXRlcycsICdzaG93U2Vjb25kcycsICdzaG93VGltZVJlZmVyZW5jZScsICd0ZXh0U2VsZWN0VGltZScsICd0aW1lJywgJ3RpbWVSZWZlcmVuY2UnXSxcbiAgbWV0aG9kczogWydnZXRDdXJyZW50VGltZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdGltZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Nvcm5lcnMnLCAnZm9ybWF0JywgJ2luZGl2aWR1YWwnLCAnc2hvd0hvdXInLCAnc2hvd01pbnV0ZXMnLCAnc2hvd1NlY29uZHMnLCAnc2hvd1RpbWVSZWZlcmVuY2UnLCAndGV4dFNlbGVjdFRpbWUnLCAndGltZScsICd0aW1lUmVmZXJlbmNlJ11cbn0pXG5leHBvcnQgY2xhc3MgSXhUaW1lUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZG9uZScsICd0aW1lQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4VG9hc3QgZXh0ZW5kcyBDb21wb25lbnRzLkl4VG9hc3Qge1xuICAvKipcbiAgICogVG9hc3QgY2xvc2VkIFxuICAgKi9cbiAgY2xvc2VUb2FzdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b0Nsb3NlJywgJ2F1dG9DbG9zZURlbGF5JywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ3RvYXN0VGl0bGUnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9DbG9zZScsICdhdXRvQ2xvc2VEZWxheScsICdpY29uJywgJ2ljb25Db2xvcicsICd0b2FzdFRpdGxlJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBJeFRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VUb2FzdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRvYXN0Q29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5JeFRvYXN0Q29udGFpbmVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29udGFpbmVyQ2xhc3MnLCAnY29udGFpbmVySWQnLCAncG9zaXRpb24nXSxcbiAgbWV0aG9kczogWydzaG93VG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRvYXN0LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29udGFpbmVyQ2xhc3MnLCAnY29udGFpbmVySWQnLCAncG9zaXRpb24nXVxufSlcbmV4cG9ydCBjbGFzcyBJeFRvYXN0Q29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkl4VG9nZ2xlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHdpbGwgYmUgZGlzcGF0Y2hlZCBlYWNoIHRpbWUgdGhlIHNsaWRlLXRvZ2dsZSBjaGFuZ2VzIGl0cyB2YWx1ZS4gXG4gICAqL1xuICBjaGVja2VkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjb2xvcicsICdkaXNhYmxlZCcsICdoaWRlVGV4dCcsICdpbmRldGVybWluYXRlJywgJ3RleHRJbmRldGVybWluYXRlJywgJ3RleHRPZmYnLCAndGV4dE9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnY29sb3InLCAnZGlzYWJsZWQnLCAnaGlkZVRleHQnLCAnaW5kZXRlcm1pbmF0ZScsICd0ZXh0SW5kZXRlcm1pbmF0ZScsICd0ZXh0T2ZmJywgJ3RleHRPbiddXG59KVxuZXhwb3J0IGNsYXNzIEl4VG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hlY2tlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJeFRyZWVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5JeFRyZWVJdGVtIHtcbiAgLyoqXG4gICAqIEV4cGFuZC9Db2xsYXBzZWQgdG9nZ2xlZCBcbiAgICovXG4gIHRvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIENsaWNrZWQgXG4gICAqL1xuICBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb250ZXh0JywgJ2hhc0NoaWxkcmVuJywgJ3RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXRyZWUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29udGV4dCcsICdoYXNDaGlsZHJlbicsICd0ZXh0J11cbn0pXG5leHBvcnQgY2xhc3MgSXhUcmVlSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RvZ2dsZScsICdpdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnRzLkl4VXBsb2FkIHtcbiAgLyoqXG4gICAqIFlvdSBnZXQgYW4gYXJyYXkgb2YgRmlsZXMgYWZ0ZXIgZHJvcC1hY3Rpb24gb3IgYnJvd3NlIGFjdGlvbiBpcyBmaW5pc2hlZCBcbiAgICovXG4gIGZpbGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEFycmF5PEZpbGU+Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NlcHQnLCAnZGlzYWJsZWQnLCAnaTE4blVwbG9hZERpc2FibGVkJywgJ2kxOG5VcGxvYWRGaWxlJywgJ2xvYWRpbmdUZXh0JywgJ211bHRpbGluZScsICdtdWx0aXBsZScsICdzZWxlY3RGaWxlVGV4dCcsICdzdGF0ZScsICd1cGxvYWRGYWlsZWRUZXh0JywgJ3VwbG9hZFN1Y2Nlc3NUZXh0J10sXG4gIG1ldGhvZHM6IFsnc2V0RmlsZXNUb1VwbG9hZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY2NlcHQnLCAnZGlzYWJsZWQnLCAnaTE4blVwbG9hZERpc2FibGVkJywgJ2kxOG5VcGxvYWRGaWxlJywgJ2xvYWRpbmdUZXh0JywgJ211bHRpbGluZScsICdtdWx0aXBsZScsICdzZWxlY3RGaWxlVGV4dCcsICdzdGF0ZScsICd1cGxvYWRGYWlsZWRUZXh0JywgJ3VwbG9hZFN1Y2Nlc3NUZXh0J11cbn0pXG5leHBvcnQgY2xhc3MgSXhVcGxvYWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmaWxlc0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSXhWYWxpZGF0aW9uVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuSXhWYWxpZGF0aW9uVG9vbHRpcCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnLCAncGxhY2VtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpeC12YWxpZGF0aW9uLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnLCAncGxhY2VtZW50J11cbn0pXG5leHBvcnQgY2xhc3MgSXhWYWxpZGF0aW9uVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4V29ya2Zsb3dTdGVwIGV4dGVuZHMgQ29tcG9uZW50cy5JeFdvcmtmbG93U3RlcCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdwb3NpdGlvbicsICdzZWxlY3RlZCcsICdzdGF0dXMnLCAndmVydGljYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2l4LXdvcmtmbG93LXN0ZXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdwb3NpdGlvbicsICdzZWxlY3RlZCcsICdzdGF0dXMnLCAndmVydGljYWwnXVxufSlcbmV4cG9ydCBjbGFzcyBJeFdvcmtmbG93U3RlcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEl4V29ya2Zsb3dTdGVwcyBleHRlbmRzIENvbXBvbmVudHMuSXhXb3JrZmxvd1N0ZXBzIHtcbiAgLyoqXG4gICAqIE9uIHN0ZXAgc2VsZWN0ZWQgZXZlbnQgXG4gICAqL1xuICBzdGVwU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdsaW5lYXInLCAnc2VsZWN0ZWRJbmRleCcsICd2ZXJ0aWNhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXgtd29ya2Zsb3ctc3RlcHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdsaW5lYXInLCAnc2VsZWN0ZWRJbmRleCcsICd2ZXJ0aWNhbCddXG59KVxuZXhwb3J0IGNsYXNzIEl4V29ya2Zsb3dTdGVwcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3N0ZXBTZWxlY3RlZCddKTtcbiAgfVxufVxuIl19